UDP | TCP |
---|---|
首部8个字节(额外空间小) | 首部20个字节以上(有额外字段,首部长度标识) |
不可靠传输(发送端:尽最大努力交付,没有发送缓冲区;接收端:检验和校验错误就丢失该包) | 可靠传输,重传机制(发送端:使用ACK确认,保证传输成功后才清除掉缓冲区;接收端:回复ack) |
无连接服务,从一个端运输到另一个端口 | 有连接服务,传输数据时先建立连接 |
一对多,一对一 | 一对一 |
接收窗口存在溢出可能,会直接丢弃 | 因为有流量控制不会出现溢出 |
UDP一次性发一个包或读一个包(有包长度字段),不存在粘包 | TCP存在粘包问题,发送时因为是比特流,每个包首尾连在一起,应用程序无法区分头尾,主要是没有包长度字段 |
UDP 是面向报文的(不会出现黏包问题) | TCP 面向字节流(可能出现黏包问题),实际上是 TCP 把数据看成一连串无结构的字节流 |
包过长会被IP分片(分片传输,一片丢失那就被接收方检验丢弃,不可靠) | 因为MSS的关系,一般会对过长的包分组,防止被IP分片 |
UDP与TCP的区别
最新推荐文章于 2024-07-14 15:37:30 发布