TCP和UDP的区别以及应用场景
区别
首先UDP协议非常简单,头部只有8个字节:
校验和为了提供可靠的UDP首部和数据而设计,防止收到在网络传输中受损的UDP包。
再对比下TCP协议:
传输层有两个传输协议分别是 TCP 和 UDP,在内核中是两个完全独立的软件模块。
TCP传输数据前先要建立连接,UDP不需要。
TCP是一对一两点服务,一条连接只有两个端点,UDP支持一对一,一对多,多对多。
TCP是可靠交付数据的,数据可以是无差错,无丢失,无重复,按序可达。UDP尽可能最大努力交付,不保证可靠交付数据。
TCP有拥塞控制和流量控制机制,保证数据传输安全性。UDP没有,即使网络非常堵塞也不影响UDP的发送速率。
TCP首部最少20个字节,UDP首部8个字节且固定不变。
TCP流式传输无边界但保证顺序和可靠,UDP则一个包一个包发送,有边界,但可能会丢包和乱序。
TCP数据如果大于MSS,则会在传输层进行分片,目标主机收到后也同样在传输层组装TCP数据包,如果中途丢失一个分片,只需要传输丢失的这个分片。UDP的数据大小如果大于MTU大小,会在IP层分片,目标主机收到后,在IP层组装完数据,接着再传给传输层。
UDP没有首部长度TCP则有,因为TCP是可变长的字段,UDP不可变无序一个字段记录UDP的首部长度。
UDP有包长度字段,因为首部字段要求是4字节的整数倍,如果去掉UDP的包长度字段,那UDP首部长度就不是4字节的整数倍了。
应用场景
TCP 面向连接,保证数据的可靠性交付,经常用于:
- FTP文件传输
- HTTP/HTTPS
UDP面向无连接,可随时发送数据,再加上UDP本身的处理简单且高效,经常用于:
- 包总量较少的通信,如DNS,SNMP等
- 视频,音频
- 广播通信
相关文章:
![](https://img-blog.csdnimg.cn/9e55881f08644fb586992960e24901ec.png)
TCP和UDP的区别以及应用场景
区别 首先UDP协议非常简单,头部只有8个字节: 校验和为了提供可靠的UDP首部和数据而设计,防止收到在网络传输中受损的UDP包。 再对比下TCP协议: 传输层有两个传输协议分别是 TCP 和 UDP,在内核中是两个完全独立的软件…...
![](https://img-blog.csdnimg.cn/12095740e64a4f90bc7fbdcdc2ddc583.png)
高铁轮毂表面缺陷的<视觉显著性>超像素图像检测方法
内容:提出一种基于视觉显著性注意机制的超像素自适应检测方法; 设计视觉显著性注意机制滤波器用于粗略定位出缺陷空间范围,结合超像素分块图像分割方法消除光照不均匀引起的噪声干扰,有效地完成缺陷区域的边界分割和实时特征提取&…...
![](https://img-blog.csdnimg.cn/9df3393683d144ffa0f85cb3af1b2f75.png)
纺织工业库房如何有效防潮?恒温恒湿真的有效吗?
纺织工业库房中的设备或存放的货物对温度或湿度的变化又非常敏感,温度或湿度的波动可能会产生一些问题。 针对库房环境温湿度的监测,若采用人工检测的方式,很难管控精准且工作效率低;其次,人工综合成本高。那么该如何实…...
![](https://www.ngui.cc/images/no-images.jpg)
SDK之动态链接库开发—基本概念
动态链接库(Dynamic Link Library,简称 DLL)是一种在运行时加载的库,可用于在多个应用程序之间共享代码和数据。与静态链接库相比,动态链接库的主要优劣势如下: 优势: 空间效率更高࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
spring生命周期、IOC工作流程、AOP过程,循环依赖、BeanFactory和FactoryBean
1、生命周期 划分为5个阶段: 创建前准备阶段、创建实例阶段、 依赖注入阶段、 容器缓存阶段、销毁实例阶段。一、创建前准备阶段:这个阶段主要的作用是,Bean 在开始加载之前,需要从上下文和相关配置中解 析并查找 Bean 有关的扩展…...
![](https://img-blog.csdnimg.cn/70e0bdb885da4b8ba34336cc7c0b594d.png)
小黑子—Java从入门到入土过程:第六章
Java零基础入门6.0Java系列第六章1. 面向对象综合练习1.1 文字版格斗游戏参数占位,格式化输出回顾关于printf和print和println的区别1.2 对象数组练习1.2.1 练习一1.2.2 练习二1.2.3 练习三1.2.4 练习四1.3 键盘录入回顾1.4 复杂对象数组练习1.4.1 复杂练习一1.4.2 …...
![](https://www.ngui.cc/images/no-images.jpg)
python实战应用讲解-【numpy数组篇】常用函数(二)(附python示例代码)
目录 Python numpy.flipud() Python numpy.insert() Python numpy.ravel() Python numpy.shapes() Python numpy.roll() Python numpy.rot90() Python numpy.append() Python numpy.flipud() Python numpy.flipud()函数将数组(每列中的项)按上下方向翻转,但保留形状。…...
![](https://img-blog.csdnimg.cn/e2a2f09ea6aa4b2c86f0383bcf500738.png)
windows10 java 创建合约
a. 安装Nodejs 主要是方便使用npm 命令 并配置环境变量 b.使用 npm 可以便捷地安装Solidity编译器solcjs npm install -g solc c.找个目录 创建一个solidity文件 如 // SPDX-License-Identifier: GPL-3.0pragma solidity >0.8.2 <0.9.0;/*** title Storage* dev Store…...
![](https://www.ngui.cc/images/no-images.jpg)
阿里巴巴获得商品详情 API调用示例
为了进行此平台API的调用,首先我们需要做下面几件事情。 1、 获取一个KEY。 2、 参考API文档里的接入方式和示例。 3、查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求。 4、利用平台的文档中心和API测试工具,对接口进…...
![](https://www.ngui.cc/images/no-images.jpg)
企业工程管理系统源码-数字化可视化项目管理平台
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...
![](https://www.ngui.cc/images/no-images.jpg)
【C语言】一文带你简单了解C语言
这里写目录标题)引言C语言概述基础语法数据类型运算符循环语句分支语句函数数组指针文件操作内存管理高级特性结构体枚举类型联合体预处理器应用场景操作系统编译器游戏开发嵌入式系统引言 C语言是一种通用的计算机编程语言,具有高效、灵活、可移植等特点…...
![](https://img-blog.csdnimg.cn/1164531dbb5842efa6bdfbcc6515cb37.png)
LeetCode 589 LeetCode590 N叉树的前序遍历和后序遍历
题目: N叉树的前序遍历:给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔。 示例 1: 输入:root [1,null,3,2,4,null,5,…...
![](https://img-blog.csdnimg.cn/img_convert/c13a413d60cc2732d599bd2788aa489c.png)
为什么CAD多段线没有面积属性或数值不对?快看过来!
有些设计师小伙伴在CAD制图过程中,会遇到这样的一个问题:在CAD图纸中直接选取线条后用工具标出来的面积是实际面积的两倍,而且用CAD面积查询命令直接选择对象查不出面积,这是为什么呢?本文就和小编来给大家分享一下CAD…...
![](https://www.ngui.cc/images/no-images.jpg)
WRF后处理:使用ncl脚本批量提取wrfout变量并输出/Shell 入门:Shell进入不同文件夹执行脚本
目录背景思路NCL提取wrfout特定变量Shell批量执行背景 在之前的博客WRF后处理总结我提到过将NCL与python结合进行后处理的问题,即,使用NCL进行wrfout变量的提取、计算、输出,再用已有python脚本绘图,这样可以极大节省时间。 对于…...
![](https://www.ngui.cc/images/no-images.jpg)
Consul在Windows系统下的安装与启动
1、Consul的简介 Consul 是由 HashiCorp 公司推出的一款开源工具,用于实现分布式系统的服务发现与服务配置。它内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key-Value 存储、多数据中心方案。 Consul 使用 GO 语言编写,因此天然具有可移…...
![](https://img-blog.csdnimg.cn/25e42e8d89504832bc9554d2054b00cd.png)
2022国赛16:神州路由器交换机BGP配置实例1
实验拓扑图 一、基本配置: R1配置: Router>ena Router#conf Router_config#host R1 R1_config#int g0/0 R1_config_g0/0#ip add 202.11.1.1 255.255.255.252 R1_config_g0/0#int l0 R1_config_l0#ip add 1.1.1.1 255.255.255.255 R1_confi...
![](https://img-blog.csdnimg.cn/7c65b47ac08b4a27b75f11631260488b.png)
PaddlePaddle NLP学习笔记1 词向量
文章目录1.语言模型 Language Model1.1 语言模型是什么1.2 语言模型计算什么1.3 n-gram Language Model2.神经网络语言模型NNLM2.1 N-gram模型的问题3. 词向量3.1 词向量(word Embedding)word2vec 词向量训练算法3.2 如何把词转换为词向量?3.3如何让向量具有语义信息…...
![](https://www.ngui.cc/images/no-images.jpg)
无重复全排列 [2*+]
目录 无重复全排列 [2*+] 程序设计 程序分析 无重复全排列 [2*+] 输出N个数的无重复全排列 Input 输入一个数值N 1<=N=50 Output 输出N个数的无重复全排列,每个数之间用空格隔开 最后一行输出无重复全排列的个数。 Sample Input 3 Sample Output 1 2...
![](https://img-blog.csdnimg.cn/1b48e1bf50c947a0b047dab446f9a23a.png#pic_center)
【血泪建议】软件测试岗位现状,可惜之前没人告诉我,肠子都晦青了....
谈到现状,国内的软件测试行情目前呈现了两极分化的极端情况。 一个是早期的手工测试人员吐槽工作不好做,即使有工作也是外包,而且薪资太低;一方面是很多互联网企业感叹自动化测试人才难找,有技术的自动化测试工程师&a…...
![](https://img-blog.csdnimg.cn/img_convert/637c139b35336c6af6307a8457e91517.png)
Elastic(ELK) Stack 架构师成长路径
Elastic Stack(ELK Stack)是一个开源的日志分析平台,由 Elasticsearch、Logstash 和 Kibana 三个组件组成,主要用于数据搜索、分析和可视化。要成为一名 ELK Stack 架构师,需要遵循一定的成长路径,以便逐步…...
![](https://www.ngui.cc/images/no-images.jpg)
Netty的高性能体现在哪些方面
文章目录Netty的高性能体现在哪些方面1. 非阻塞I/O2. 零拷贝3. 内存池4. 线程模型Netty的高性能体现在哪些方面 Netty是一个高性能、异步事件驱动的网络应用程序框架,它具有出色的稳定性和灵活性。在现代的分布式系统和互联网应用中,Netty已经成为构建高…...
![](https://img-blog.csdnimg.cn/6f928f3264094a5ca8fabff43388c51e.png)
CompletableFuture详解
1、概述 咱们都知道可以通过继承Thread类或者实现Runnable接口两种方式实现多线程。但是有时候我们希望得到多线程异步任务执行后的结果,也就是异步任务执行后有返回值,Thread和Runnable是不能实现的。当我们需要返回值的时候怎么办呢? Java…...
![](https://img-blog.csdnimg.cn/60eb7f5f92794ea69634ce6a7057f461.png)
(学习日记)2023.3.10
写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…...
![](https://img-blog.csdnimg.cn/d6b954c2dabe488a95368f902a35acaf.png)
【图像分割】Meta分割一切(SAM)模型环境配置和使用教程
注意:python>3.8, pytorch>1.7,torchvision>0.8 Feel free to ask any question. 遇到问题欢迎评论区讨论. 官方教程: https://github.com/facebookresearch/segment-anything 1 环境配置 1.1 安装主要库: (1&…...
![](https://www.ngui.cc/images/no-images.jpg)
AJ入门路线
一.AspectJ 入门 概述安装示例代码切入点表达式thisJoinPointStaticPart 和 thisJoinPoint与Spring 切面写法的对比总结 初步了解了aspectJ的使用,我们可以了解以下几点: 1)aspectJ的使用是在编译期,通过特殊的编译器可以在不改变…...
![](https://img-blog.csdnimg.cn/2c370e5df4854346b7255d8869ba5fb8.jpeg)
多商户商城小程序源码开发需具备哪些功能?
随着电商的进一步发展,传统企业为了更好的占领市场也纷纷向电商市场迈进,着手打造属于自己的商城系统。多商户商城系统是一种多商户、多商品、多支付的电子商务平台,功能丰富,涵盖多个行业,能够满足多种商家和用户的需…...
![](https://www.ngui.cc/images/no-images.jpg)
【动态规划模板】最长公共|上升子序列问题
最长公共子序列🍉 给定两个长度分别为N和M的字符串A和B,求既是A的子序列又是B的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为N的字符串,表示字符串A。 第三行包含一个长度为M的字符串&am…...
![](https://img-blog.csdnimg.cn/e34c0a689a5c4ee2b7d64191eb7fbb4b.png)
Android系统启动流程--zygote进程的启动流程
在上一篇init进程启动流程中已经提到,在init中会解析一个init.rc文件,解析后会执行其中的命令来启动zygote进程、serviceManager进程等,下面我们来看一下: //文件路径:system/core/init/init.cppstatic void LoadBoot…...
![](https://img-blog.csdnimg.cn/img_convert/7882fd90714332f677801a8265247f7d.jpeg)
C++程序设计——异常
一、C异常概念 异常处理是一种处理错误的方式,当一个函数发现自己无法处理的错误时,就可以抛出异常,让函数的直接或间接的调用者处理这个错误。 (1)throw:当问题出现时,程序会通过throw关键字抛…...
![](https://img-blog.csdnimg.cn/47eda46bfa7244cbb929ab70a38fab11.png)
2022年第十三届蓝桥杯web开发—东奥大抽奖【题目、附官方解答】
冬奥大抽奖 介绍 蓝桥云课庆冬奥需要举行一次抽奖活动,我们一起做一个页面提供给云课冬奥抽奖活动使用。 准备 开始答题前,需要先打开本题的项目代码文件夹,目录结构如下: ├── css │ └── style.css ├── effect.g…...
![](/images/no-images.jpg)
广东省住房和城乡建设部网站/网上如何推广自己的产品
涉及到的知识点1、设计一个完整程序的流程 2、HTML部分表单标签的使用 3、PHP里的页面相互调用 4、PHP接收参数的几种方式首先做的就是html表单的显示部分,创建一个文件(list.php)内容(‘//’后边是注释):&…...
![](/images/no-images.jpg)
网站的分页效果怎么做/想学销售去哪培训
转载于:https://blog.51cto.com/noo2008/41504...
![](https://img-blog.csdnimg.cn/img_convert/e216dfa79b603f24022f9d190b48b786.png)
做直播券的网站有多少/互联网推广销售好做吗
多线程有什么用? 多线程使得程序内部可以分出多个线程来做多件事情,而不会造成程序界面卡死。比如迅雷等多线程下载工具就是典型的多线程。一个下载任务进来,迅雷把文件平分成10份,然后开10个线程分别下载。这时主界面是一个单独…...
淡水网站建设哪家便宜/seo教程免费分享
网上胡说八道,众说风云,感觉这篇还算靠谱点。 原文链接:http://blog.csdn.net/dog250/article/details/51809566 为什么大家看到这个以后总是会往MSS,TSO上联系呢?也许第一个解释这个的人是个高手,而且以MS…...
![](/images/no-images.jpg)
有源码手机怎么搭建网站/百度如何推广网站
gitHub是一个代码托管服务的提供商,可以提供个人或者企业的代码托管,同时它也是一个巨大的开源社区。-- https://github.com/ 对于企业的代码协作,如果采用http的方式登录,那么每次进行需要交互的操作时,都必须输入账户…...
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
更改wordpress密码/网站打开
基本CSS选择器有标记选择器、类别选择器、ID选择器3种1。标记选择器 每一种HTML标记的名称都可以作为相应的标记选择器的名称,如h1,p,等等2。类别选择器 类别选择器的名称可以由用户自定义 格式如下:.class{color:green;font-size:20px;}3。ID选…...