TCP与UDP的区别

Posted zhanp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP与UDP的区别相关的知识,希望对你有一定的参考价值。

UDP

什么是UDP

UDP(User Datagram Protocol)用户数据报协议

特点:

  1. 面向无连接的,也就是通信双方不需要像TCP那样先建立连接才能发送数据

  2. 尽最大努力交付,不可靠,没有确认也没有重传机制。

  3. 面向报文,应用层传下来的报文有多大,都统一接收,既不合并,也不拆分,

    所以IP很可能由于传输层的UDP报文过大,加上IP头后,大于MTU,出现分片的情况

    而TCP在这里会有一个MSS的功能,他还有一个缓存,可以等到一个MSS的长度时,再一并

    组成一个报文发下去。

  4. 没有拥塞控制,所以通常能胜任一些实时性需求较高的服务,比如IP电话和视频传输,

    而TCP通过拥塞窗口和慢开始,拥塞避免等算法实现拥塞控制,会降低发送方的发送速度。

  5. 从开销的角度看,UDP报文首部只有8个字节,和TCP固定首部长度20字节比起来小了,

    而且不用建立连接,所以开销更小。

  6. 通信方式:一对多,多对多,多对一的。而TCP是端到端的

几个技术

伪头部:用于实现传输层对传输层报文的校验,不会出现在网络层,只是到达传输层的时候,

临时加上这个伪头部,根据伪头部 + UDP头部 + UDP数据部分 计算UDP校验和。

为什么? 因为IP地址传输过程中可能出现差错,而路由器重新计算校验和后,传给错误的主机,

而主机最终还可以在这一层通过校验和,发现差错,并丢弃报文。

 

TCP

  1. Transmission Control Protocol 传输控制协议

  2. 面向连接 ,区别于UDP,使用TCP的发送方和接收方发送数据之前需要先建立连接,(三次握手)

    数据传输完毕后,还要释放连接 (四次握手)

  3. 端对端的通信方式,是一个Socket连接到另一个Socket,这里的Socket指IP:端口号

  4. 面向字节流,应用层交给传输层的时候,是一个字节一个字节这样的,区别于UDP,他不是

    一整个报文这样接受下来的,因此他可以当应用层交下来的字节过多,大于MSS(Maximum Segment Size)最大报文段长度的时候,分段,组成多个报文;又或者字节过少,小于1个MSS,则等待一会,利用缓存,这样可以提高报文的利用率,而避免首部过长,数据过短,头重脚轻。

  5. 可靠。具有确认,重传等功能确保可靠。

  6. 具有流量控制和拥塞控制。以提供很可靠的网络质量。(可以展开来写)

以上是关于TCP与UDP的区别的主要内容,如果未能解决你的问题,请参考以下文章

tcp和udp有啥区别,tcp和udp各有啥优缺点

UDP和TCP有啥区别

TCP与UDP的区别

tcp和udp的区别

TCP与UDP的区别

TCP和UDP的区别