tcp为什么比udp慢_TCP与UDP究竟谁更可靠?

862bbfb26be6bde7264a0d28ca2f9ba8.gif

网络通信的建立必须在通信双方的对等层进行,在整个数据传输过程中,需要对数据进行协议封装,以标识对应层所用的通信协议。TCP/IP协议模型的传输层有两个极具代表性的协议:TCP协议与UDP协议。

TCP的传输速度相对较慢,而UDP的传输速度相对较快,因此许多人认为TCP协议比UDP协议更可靠。事实果真如此吗?让我们通过分析一探究竟。

251c2e4141fab1332fb561193db7bfc1.png

被误解的TCP

TCP有着严谨的特性,它的传输机制虽然复杂,但是清晰、明确:

af743969230eced7fd648e1c25246b95.gif

(图片来自网络)

第一步,TCP需要建立连接才能传输。一方发送,另一方传输,整个连接通畅才可以进行数据传输。

第二步,TCP会根据对方缓存大小进行数据分段和流量控制。当连接建立完成以后,双方先要进行沟通,了解清楚对方缓存区的大小,然后根据对方缓存区的大小对数据包进行切片,也就是所谓的TCP窗口。TCP的窗口大小在传输过程中会持续协商,必要的时候进行更改。

第三步,TCP会有端到端的校验和,并且存在出错重传机制。当传输过程的协商完成以后,开始正式传输对话内容。在此过程当中,TCP协议会进行端到端的校验和,如果传输过程中,传输的内容发生变化,接收方会发现校验失败,而发送方会触发出错重传机制。

第四步,TCP收到准确数据后发送确认,存在超时重传机制。当接收方准确无误的收到内容以后,接收方会发出确认信息,如果发送方一段时间没有收到确认信息,会触发超时重传机制,并将需要传输的内容进行重传。

正是由于TCP拥有了如此之多的确认机制,才能确保待传输的内容准确无误的在端到端之间传输;也正是因为TCP如此严谨,大家才会产生TCP传输速度较慢的错觉。

251c2e4141fab1332fb561193db7bfc1.png

不可靠的UDP

UDP协议与TCP协议一样用于处理数据包,但它是一种无连接的协议。它不提供数据包分组、组装,也不能对数据包进行排序,当报文发送之后,无法得知其是否安全完整到达,因此常说UDP是一个不可靠的协议。

bddcb516a3b028dfd6711c550e95ebd4.gif

(图片来自网络)

UDP的不可靠主要体现在以下两个方面:

第一方面:UDP面向无连接。在发送端,应用层将数据传递给传输层的UDP协议,UDP只会给数据增加一个标识,然后就传递给网络层;在接收端,网络层将数据传递给传输层,UDP只去除IP报文头就传递给应用层,不会进行任何拼接操作。

第二方面:UDP面向报文。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。因此,应用程序必须选择合适大小的报文。

251c2e4141fab1332fb561193db7bfc1.png

TCP与UDP谁更可靠

我们客观、公正地比较TCP与UDP会发现:

1、TCP会协商发送与接收双方各自缓存的大小,并且将数据分片,以确保传输不会因为对方接受能力不足而丢失数据;而UDP不会估计对方的接收能力,它认为IP层有MTU机制,所以会尽最快速度进行传输。

2、TCP有数据到达确认信息和超时重传机制,以保证数据不会出现丢失;但UDP为了传输速度快,舍弃了确认机制,不再等待确认信息。

3、TCP有校验和机制,以确保数据不会被篡改变化,如果校验失败会重传;UDP的重传机制是可选项,即使发现数据出错,UDP只会悄悄丢掉数据。

因此,TCP协议虽然传输速度慢,但是相对可靠;UDP协议尽管传输速度快,但是并不可靠。

4分钟视频了解TCP与UDP的区别:

7427d53b1b90cc2dc77b553cc17a7e11.png

扫码即刻前往

7cbd16fc4b41a984a4b271ac3a4062bd.png
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值