快速理解TCP和UDP的差异总结

比较这两个,首先我们要比较他们的报文格式,进而分析他们的特点。

TCP首部 :

UDP首部:

如上图,网络层要实现的目的是在两台机器能相互通信的前提下, 定位到是机器上的哪两个程序在进行通信, 而定位机器上的程序的方式是通过端口号实现的(每个端口只能被一个程序占用)。

所以TCP和UDP都添加了源端口号和目的端口号进去。

但是可以看到TCP头的信息要比UDP多得多,那么多出来的这部分信息是用来干嘛的呢?

这个就涉及到丢包, 如果udp丢包, 通信双方是没有感知的, 这就导致udp传输的不可靠。

而tcp通过ACK字段和一系列的规则(比如每发送一个包都需要对方应答一个包,而且应答包要跟之前发送的包相关联, 否则就重新发送之前的那个包。)来保证数据不会丢失。

同样的, TCP 在实现相同目的的情况下比 udp 多做了这么多操作, 而且包头比udp大, 则传输相同数据的情况下, 需要发送的包自然也更多, 传输效率更低。

总结一下主要有以下方面 :

1、连接建立方式

tcp需要三次握手,udp无连接

2、数据发送方式

tcp发送的是基于连接的数据流,udp发送的是一个个独立的数据报

3、数据有序性

tcp因为包头有字段维护顺序, 可以做到有序。udp是无序的

4、可靠性

tcp有重传机制保证对方一定接收到数据,但是udp发完就不管了

5、包大小

tcp包头比udp大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值