UDP和TCP的对比

article/2025/9/22 2:56:07
  • 用户数据报协议UDP(User Datagram Protocol)传输控制协议TCP(Transmission Control Protocol)

  • UDP和TCP是TCP/IP体系结构运输层中两个重要协议,其使用频率仅次于网际层的IP协议

  • 运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但TCP协议就相当于在逻辑上建立了一条通信信道,该信道是全双工的可靠信道

  • 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道

接下来,我们从以下几个方面对比UDP和TCP:

  • 以下的连接逻辑上连接不是物理上的连接

1、在连接方式上: 

 

 UDP是无连接的通信方式


TCP是通过著名的**“三次握手”建立连接,“四次挥手”释放连接**。

2、在传播方式上: 

 

UDP由于不建立连接,支持多播和广播


TCP由于每次通信需要建立基于TCP连接的可靠信道,且每次只能建立一条连接,因此只支持单播 

3、在报文传输处理上:

 

UDP协议中,对于应用层传输下来的报文不进行处理,保留报文的边界。在给报文加上UDP首部,进行发送。UDP接收方首部接收到UDP数据后,去除其首部,交付给应用层。


可以看出,UDP是针对报文为单位进行处理的,也就是UDP是面向应用报文的。


在TCP协议中比较复杂:
在TCP发送方:

TCP协议会把应用进程交付下来的数据块(报文)看作是一连串无结构的字节流(TCP并不知道这些子节含义),将他们编号,并存储在自己的发送缓存中,TCP再根据发送策略,提取一定量的字节,加上TCP首部,构建成TCP报文进行发送。


对于接收方,同时进行两件事:
从所接受到的TCP报文段中,取出数据载荷部分并存储在接收缓存中,同时将接收缓存中的一些字节交付给应用进程。

TCP将大块数据分割成以报文段为单位的数据包进行管理,是为了更方便传输。


有两个点值得注意:

TCP协议保证接收方收到的字节流和发送方应用进程发出的字节流完全一样
TCP不保证接收方应用进程所收到的数据块与发送方发送的数据块,具有对应大小的关系,例如,发送方应用进程交给发送方的TCP共10个数据块,但接收方的TCP可能只用了4个数据块,就把收到的字节流交付给了上层的应用进程。但。就是不会全部将数据交付给上层。


因此接收方的TCP应用进程必须有能力识别收到的字节流,把它还原成有意义的应用层数据


可以看出,TCP对报文的处理是以子节为单位的,也就是TCP是面向字节流的,这正是TCP实现可靠传输、流量控制、以及拥塞控制的基础
 

4、在给上层提供的服务上: 

 在这里插入图片描述

UDP提供的是不可靠服务:
对于发送的UDP数据报,接收方在检测到其误码后直接丢弃,不做其他操作。对于发送方发送过程中出现分组丢失,也不做处理。因此其传输数据是不一定能使接收方全部收到数据,因此是不可靠服务。


TCP提供的是可靠服务:
由于TCP字传输过程中需要建立连接,通过建立的可靠信道进行传输,因此不会出现传输差错,也就是误码、丢失、乱序、重复。因此可以保证发送端发送什么,接收端接收到什么,是可靠传输。

4、协议首部的对比:

由于UDP不提供可靠传输的服务,因此其首部只需要在网际层的基础上添加区分端口的子节,其首部比较简单。


在TCP中,需要提供可靠传输、流量控制、拥塞控制等服务,首部比较复杂,字段比较多。 

 TCP和UDP的对比总结:

对比总结


http://chatgpt.dhexx.cn/article/yVTUwoeW.shtml

相关文章

848-UDP 检验和 的计算过程

UDP 检验和 的计算过程 对发送方的 UDP 报文段的所有 16 比特字的和进行反码运算,当求和遇见溢出的时候,进行回卷(回卷的补充在下面),得到的结果放在 UDP 报文段中的检验和字段。 什么是回卷? 所谓 “回卷…

点估计 矩估计

1.说明: 设总体 X 的分布函数形式已知, 但它的一个或多个参数为未知, 借助于总体 X 的一个样本来估计总体未知参数的值的问题称为点估计问题. 在统计问题中往往先使用最大似然估计法, 在最大似然估计法使用不方便时, 再用矩估计法. 2.常用构造估计量的方法 1&#…

概率论-小记录(矩估计)

目录 矩估计量 无偏性-估计量的评选标准 一致估计量 矩估计量 定义: 矩估计法: 用样本k阶矩Ak作为总体k阶矩E(Xk)的估计量的方法. 注意最后用B2作为方差的矩估计量。 矩估计量不唯一 在总体的均值和方差都存在时,求均值μ和方差σ2 的矩估计量, 并不一定要知道…

矩估计和最大似然估计关系

1、矩估计 理论根源是辛钦大数定律,样本之间是独立同分布,当数据样本量很大的时候,样本观测值的平均值和总体的数学期望是在一个极小的误差范围内。 矩估计法, 也称“矩法估计”,就是利用样本矩来估计总体中相应的参数。首先推导…

数学:矩估计和最大似然估计

一、为什么要估计(estimate) 在概率,统计学中,我们所要观测的数据往往是很大的,(比如统计全国身高情况)我们几乎不可能去统计如此之多的值。这时候,就需要用到估计了。我们先抽取样本&#xff0…

矩估计和最大似然估计

参数估计 参数估计 :是根据从总体中抽取的样本估计总体分布中包含的未知参数的方法。它是统计推断的一种基本形式,是数理统计学的一个重要分支,分为点估计和区间估计两部分。 点估计 :依据样本估计总体分布中所含的未知参数或未…

广义矩估计

矩估计就是用样本矩代替总体矩进行统计推断的方法。 举例:正态参数估计问题, ,估计μ和σ。 ,而根据大数定理,在一定的条件下:当样本量足够大的时候,样本矩与总体矩只差了一个无穷小量&#xff…

机器学习总结(三):矩估计

鉴于后续机器学习课程中多次提到参数估计的概念,为了避免囫囵吞枣的理解某些知识点,决定对概率统计的这部分知识点进行简要总结,这篇博客主要涉及的是点估计中的矩估计知识点,后续的博客将总结点估计中其他两个比较常见的方式&…

参数估计-矩估计

​​​​​​​参数估计:分布类型有很多种,决定正态分布的两个参数:均值和方差。因此,参数就是决定分布的关键性数据。知道了参数,也就知道了分布的详细内容。 问题来了,总体的分布类别如果我们知道了&am…

矩估计与最大似然估计

一、为什么要估计(estimate) 在概率,统计学中,我们所要观测的数据往往是很大的,(比如统计全国身高情况)我们几乎不可能去统计如此之多的值。这时候,就需要用到估计了。我们先抽取样本&#xff0…

机器学习笔记1.矩估计、极大似然估计。

1.矩估计 1.1矩估计思想: 矩估计是基于一种简单的“替换”思想,即用样本矩估计总体矩 1.2矩估计理论: 矩估计的理论依据就是基于大数定律的,大数定律语言化表述为:当总体的k阶矩存在时,样本的k阶矩依概率收…

解决“至少有一个JAR被扫描用于TLD但尚未包含TLD”的问题

一、问题描述 26-Aug-2020 18:52:00.419 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期…

tld自定义标签之基础入门篇

一、tld说明 tld,是taglib description 的缩写,其自定义标签一般用于jsp页面,tld其作用一般是在web项目中结 jstl、c标签等用于有效性判断、权限判断等方面,对前端的一些页面标签起到约束、限制的作用。 很多人只知道有这类型的标…

至少有一个JAR被扫描用于TLD但尚未包含TLD。

问题描述: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 一个或多个listeners启动失败,更多详细信息…

至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。

24-Jul-2022 17:18:15.259 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的…

TLD的环境配置

TLD的matlab代码调试 建议matlab版本保证比vs版本高,不然会出现很多问题。例如找不到编译器,以及识别不了程序之类的 我调试的环境 VS2015 Matlab2016a OpenCV3.4.1,后面会出一个windows下使用cmake编译opencv扩展包 因为matlab是没有编译…

TLD之检测篇(二)

TLD之检测篇(二) TLD之扯淡篇(一) 、 TLD之跟踪篇(三) 、 TLD之学习篇(四) 扫描方式前面已经说过,具体参数【5.3】:scales step 1.2, horizontal step 10…

TLD目标跟踪原理解析

转自http://blog.csdn.net/app_12062011/article/details/52277159 TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生在其攻读博士学位期间提出的一种新的单目标长时间(long term tracking)跟踪算法。该算法与传统跟踪算法的显著区别在…

庖丁解牛TLD(一)——开篇

最近在网上多次看到有关Zdenek Kalal的TLD的文章,说他做的工作如何的帅,看了一下TLD的视频,感觉确实做的很好,有人夸张的说他这个系统可以和Kniect媲美,我倒是两者的工作可比性不大,实现的方法也不同。但这…