1.TCP面向连接,UDP面向非连接(发送数据前不需要连接)
面向连接是通信前,确认双方链路是否可达(三次握手和四次挥手)
面向非连接,通信前不去确认链路是否可达
2.TCP提供安全可靠的数据传输服务,UDP不保证传输数据的可靠性
TCP在数据传输会确认连接与信息是否正确收到,保证数据无差错、不丢失、不重复
UDP收到什么数据就传递什么数据,不会备份数据,发送数据也不关心对方是否正确接收到了数据
3.TCP面向字节流,UDP面向报文
字节流是因为TCP遵循Nagle算法,会将数据分组,会造成粘包
只有上一个分组得到确认,才会发送下一个分组
手机出多个小分组,在一个确认来时一起发送
面向报文是将同一种数据包一起打包到IP层,不会出现TCP中两种不同的数据包一起发送到IP层的问题,所以不会出现粘包
4.TCP传输速度慢,UDP传输数据快(现在TCP不比UDP 慢多少)
5.TCP连接只能是点对点的,UDP可以一对一,一对多,多对一
6.TCP首部开销20字节,UDP首部开销小,只需8字节

参考文章
TCP/IP协议之传输层:TCP/UDP协议详解(一)_一个Android菜鸟的博客-优快云博客
本文详细介绍了TCP和UDP两种传输层协议的区别。TCP是面向连接的,通过三次握手建立连接,确保数据安全可靠传输,而UDP则是面向非连接的,不保证数据传输的可靠性。TCP遵循Nagle算法,可能导致粘包问题,而UDP则不会。虽然TCP传输速度相对较慢,但现代优化后与UDP速度差距不大。此外,TCP是点对点连接,而UDP支持一对一、一对多和多对一的通信模式。TCP首部开销较大,UDP则更轻量级。
742

被折叠的 条评论
为什么被折叠?



