计网—TCP与UDP的区别

一、TCP与UDP

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。

UDP是数据报传输协议,利用 IP 提供面向无连接的通信服务。

二、TCP与UDP的区别

首先TCP与UDP的头部报文格式不同
TCP多了序列号、确认号、标志位、窗口大小、紧急指针等
UDP多了报文长度字段

下面我们来具体说一下TCP与UDP的区别

1. 连接

TCP 是面向连接的传输层协议,传输数据前先要建立连接。
UDP 是不需要连接,即刻传输数据。


2. 服务对象

TCP 是一对一的两点服务,即一条连接只有两个端点。
UDP 支持一对一、一对多、多对多的交互通信


3. 可靠性

TCP 是可靠交付数据的,数据可以无差错、不丢失、不重复、不失序。
UDP 是尽最大努力交付,不保证可靠交付数据。但是我们可以基于 UDP 传输协议实现一个可靠的传输协议,比如 QUIC 协议,此时我们就可以引申到HTTP3的QUIC协议


4. 拥塞控制、流量控制

TCP 有拥塞控制和流量控制机制,保证数据传输的安全性。
UDP 则没有,即使网络非常拥堵了,也不会影响 UDP 的发送速率。

此时我们就可以引申到TCP/UDP的应用场景,因为TCP有拥塞控制和流量控制以及具有可靠性,所以一些需要保证安全性的操作需要用到TCP,同样可以根据UDP的特性,应用到一些需要实时性的操作


5. 首部开销

TCP 首部长度较长,会有一定的开销,首部在没有使用选项字段时是 20 个字节,如果使用了选项字段则会变长的。
UDP 首部只有 8 个字节,并且是固定不变的,开销较小。


6. 传输方式

TCP 是流式传输,没有边界,但保证顺序和可靠。(可以引申到TCP为什么是基于字节流的,以及TCP的粘包问题以及解决
UDP 是一个包一个包的发送,是有边界的,但可能会丢包和乱序。


7. 分片不同

TCP 的数据大小如果大于 MSS 大小,则会在传输层进行分片,目标主机收到后,也同样在传输层组装 TCP 数据包,如果中途丢失了一个分片,只需要传输丢失的这个分片。
UDP 的数据大小如果大于 MTU 大小,则会在 IP 层进行分片,目标主机收到后,在 IP 层组装完数据,接着再传给传输层。(可以引申到IP层的路径MTU发现,利用ICMP协议)、

还有一些不那么重要的差别,比如socket通信中UDP和TCP的使用等,一定要注意知识的系统性,学会延伸与扩展

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃代码的航航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值