TCP协议和UDP协议的对比

article/2025/9/22 1:56:57

TCP与UDP区别和应用场景,基于TCP的协议有哪些,基于UDP的有哪些

类型特点性能应用过场景首部字节
TCP面向连接、可靠、字节流传输效率慢、所需资源多文件、邮件传输20-60
UDP无连接、不可靠、数据报文段传输效率快、所需资源少语音、视频、直播8个字节

TCPUDP是TCP/IP体系结构的运输层中最重要的两个协议:
在这里插入图片描述
TCP和UDP协议的使用频率,仅次于网际层的IP协议。
TCP/IP体系结构应用层中的某些服务(如HTTP、SMTP等)需要使用TCP提供的服务:
在这里插入图片描述
而另一些应用层的服务(如DNS、RTP等),需要使用UDP提供的服务:
在这里插入图片描述
UDP(User Datagram Protocol)是用户数据报协议的英文缩写词。
TCP(Transmission Control Protocol)是传输控制协议的英文缩写词。
接下来,将从几个方面对这两个协议进行比较:
如图,下面是因特网上面的两台主机:
在这里插入图片描述

它们在运输层使用UDP协议进行通信,纵坐标为时间t,使用UDP协议的通信双方可以随时发送数据:
在这里插入图片描述
再来看使用TCP时的情况:
使用TCP协议的通信双方,在进行数据传输之前,必须使用三报文握手来建立TCP连接,TCP连接建立成功之后才能进行数据传输,数据传输结束之后,必须使用四报文挥手来释放TCP连接。
在这里插入图片描述
这里使用的三报文握手和四报文挥手可以参考如下文章:
https://blog.csdn.net/sunqi568/article/details/106671419
https://blog.csdn.net/weixin_43207025/article/details/106886738
需要注意的是,这里说的TCP连接是指逻辑连接,而不是物理连接。
综上所述,UDP是无连接的,TCP是面向连接的。
这是某个通信网上,使用UDP协议的四台主机:
在这里插入图片描述
其中,任何一台主机都可以向其他任意三台主机发送广播:
在这里插入图片描述
也可以向某个多播组发送多播:
在这里插入图片描述
还可以向某台主机发送单播:
在这里插入图片描述
也就是说,UDP支持单播、多播以及广播,换句话说,UDP支持一对一、一对多、一对全的通信。
再来看使用TCP协议的情况:
使用TCP协议的通信双方,在使用数据传输之前,必须使用三报文握手来建立TCP连接:
在这里插入图片描述
TCP连接建立成功之后,通信双方就好像有一条可靠的通信信道:
在这里插入图片描述
通信双方使用这条可靠信道进行通信,很显然,TCP仅仅支持单播,也就是一对一的通信。
接下来对比这两个协议对应用报文的处理:
先看使用UDP协议的情况:
在这里插入图片描述
在这里插入图片描述
发送方的应用进程将应用层报文交付给运输层的UDP:
在这里插入图片描述
UDP直接给应用报文添加一个UDP首部:
在这里插入图片描述
使之成为UDP用户数据报,然后进行发送:
在这里插入图片描述
这里忽略运输层下面的各层处理
在这里插入图片描述
接收方的UDP接收到用户数据报后:
在这里插入图片描述
去掉UDP的首部,将应用层报文交付给应用进程:
在这里插入图片描述
也就是说,UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,换句话说,UDP是面向应用报文的。
再来看使用TCP协议的情况:
在这里插入图片描述

发送方的TCP把应用进程交付下来的数据块仅仅看作是一连串的无结构的字节流:
在这里插入图片描述
TCP并不知道这些字节流的含义,仅将它们编号并放入发送缓存中:
在这里插入图片描述
TCP根据发送策略,从发送缓存中的提取一定数量的字节来构建TCP报文段来发送:
在这里插入图片描述
接收方的TCP 一方面从所接收到的TCP报文段中取出数据载荷部分并存储在接收缓存中:
在这里插入图片描述
一方面把接收缓存的字节交付给应用进程:
在这里插入图片描述
TCP不保证接收方应用进程所收到的数据块与发送方应用进程所发出的数据块具有对应大小的关系。
例如,发送方的应用进程交给发送方的TCP共10个数据块,但接收方的TCP可能只用了4个数据块就把收到的字节流交付给了上层的应用进程,但接收方收到的应用进程收到的字节流必须和发送方的应用进程发送的字节流完全一致,当然接收方的应用进程必须有能力识别收到的字节流,把它还原成有意义的应用层数据。
也就是说TCP是面向字节流的,这正是TCP实现可靠传输、流量控制以及拥塞控制的基础。
需要说明的是,上面的图只说明了一个方向的字节流,在实际网络中,基于TCP连接的两端,可以同时进行TCP报文段的发送和接收,也就是全双工通信。
另外,图中的TCP报文段的数据部分,只包含了几个字节,实际当中,一个TCP报文段包含上千个字节是很常见的。
再来看下一个对比:
我们知道TCP/IP体系结构的网际层向上层提供无连接不可靠的传输服务:
在这里插入图片描述
当运输层使用UDP协议时,向其上层页提供无连接不可靠的传输服务:
在这里插入图片描述
发送方给接收方发送用户数据报,若传输过程中,用户数据报受到干扰而产生误码,接收方UDP可以通时该数据报首部中的校验和字段的值,检测出产生误码的情况,但是仅仅丢弃该数据报,其他什么也不做:
在这里插入图片描述
发送方给接收方发送UDP数据报,如果该数据报被因特网上面的某个路由器丢弃了,发送方UDP不做任何的处理:
在这里插入图片描述
因为UDP向上层提供的是无连接不可靠的传输服务。
因此,对于UDP数据报出现了误码和丢失等问题,UDP并不关心,基于UDP的这个特点,UDP适用于实时应用,例如IP电话、视频会议等。
再来看使用TCP协议的情况:
尽管网际层向上层提供的是无连接不可靠的传输服务,也就是说,IP数据报可能在传输过程中出现丢失和误码:
在这里插入图片描述
但只要运输层使用TCP协议,就可向其上层提供面向连接的可靠传输服务:

在这里插入图片描述
我们可以将其想象成基于TCP协议的收发双方,基于TCP连接的可靠信道进行数据传输:
在这里插入图片描述
不会出现传输差错(误码、丢失、乱序、重复等):
在这里插入图片描述
TCP向上层提供面向连接的可靠传输服务,例如文件传输。
下面来对比一下TCP和UDP报文段的首部:
一个UDP用户数据报由首部和数据载荷两部分构成:
UDP的首部格式如图所示:
在这里插入图片描述
其仅有四个字段,每个字段长度为两个字节,由于UDP不提供可靠传输服务,它仅仅在文件网际层的基础上,添加了用于区分应用进程的端口。
一个TCP用户数据报由首部和数据载荷两部分构成:
其首部格式如如图所示:
在这里插入图片描述
这比UDP数据报的格式复杂得多,其最小长度为20字节,最大长度为60字节,这是因为TCP要实现可靠传输、流量控制、拥塞控制等服务,其首部自然比较复杂。首部的字段比较多,首部的长度比较长。
UDP和TCP的对比图如下所示:
在这里插入图片描述
教学视频链接如下:
https://www.bilibili.com/video/BV1c4411d7jb?p=59


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

相关文章

TCP和UDP的异同

文章目录 udp和tcp的相同点udp和tcp的不同点区别udp的介绍tcp的介绍 最近看了计网的资料和视频,以及其他博主的资料,对最近所学的知识进行以下总结,方便让其他小伙伴儿参考学习,也利于自己巩固,回头复习用,…

TCP和UDP的介绍及使用场景

TCP和UDP的优势和劣势 TCP 最核心的价值是提供了可靠性,而 UDP 最核心的价值是灵活,你几乎可以用它来做任何事情。 例如:HTTP 协议 1.1 和 2.0 都基于 TCP,而到了 HTTP 3.0 就开始用 UDP 了。 TCP 的稳定性 TCP 作为一个传输层…

Qt UDP和TCP对比

一、UPD和TCP区别总结 二、详细对比UDP和TCP如下: 1、TCP是面向连接的,UDP是面向无连接的 TCP则在通信前需要进行三次握手,UDP不需要。 UDP在发送端,应用层将数据传递给传输层的UDP协议,UDP只会给数据增加一个UDP头&…

UDP和TCP对比与区别

文章目录 UDP和TCP对比总对比1.udp是无连接的服务,tcp是面向连接的服务2.udp支持单播,多播以及广播;tcp仅支持单播3.udp面向报文,tcp面向字节流4.udp是不可靠传输,tcp是可靠传输5.udp数据报首部短,tcp报文段…

UDP和TCP的对比

用户数据报协议UDP(User Datagram Protocol)、传输控制协议TCP(Transmission Control Protocol) UDP和TCP是TCP/IP体系结构运输层中的两个重要协议,其使用频率仅次于网际层的IP协议 运输层采用面向连接的 TCP 协议时…

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启动失败,更多详细信息…