一、UPD和TCP区别总结
二、详细对比UDP和TCP如下:
1、TCP是面向连接的,UDP是面向无连接的
-
TCP则在通信前需要进行三次握手,UDP不需要。
-
UDP在发送端,应用层将数据传递给传输层的UDP协议,UDP只会给数据增加一个UDP头,标识是UDP协议,然后就传递给网络层了。在接收端,网络层将数据传递给传输层,UDP只去除IP报文头就传递给应用层了,不做任何拼接操作。
2、TCP可靠,UDP不可靠
- UDP不可靠具体体现在,UDP的无连接上,通信都不需要建立连接,想发就发,这样的情况肯定不可靠。发送数据也不会关心对方是否已经正确接收到数据。
- 网络环境时好时坏,但是UDP是没有拥塞控制的,一直会以恒定的速度发送数据。就算网络不好,也不会对发送速率作调整,这样就会在网络不好时,可能产生丢包。
- 优点也明显,就是对于一些实时性要求高的场景(比如电话会议)就需要UDP,因为远程视频的话,你丢一些数据(例如像素)并不影响视频的内容。
3、TCP面向字节流,UDP面向报文
-
TCP基于流的传输表示TCP不认为消息是一条一条的。
-
UDP面向报文,是有 保护消息边界 的,接收方一次只能接受一条独立的消息,所以UDP不存在粘包。
4、 TCP只有一对一传输,而UDP还可以一对多,多对多
-
UDP 不仅支持一对一的传输方式,同样支持一对多,多对多,多对一的方式,也就是 UDP 提供了单播,多播,广播的功能。
-
TCP不能一对多的原因是:TCP通信前要跟一台主机进行三次握手连接。
5、UDP的头部开销小,TCP的头部开销大
- UDP的头部8个字节,TCP至少20个字节。