码迷,mamicode.com
首页 > 其他好文 > 详细

TCP与UDP的区别

时间:2019-05-27 16:31:58      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:tag   需求   ram   三次握手   tcp与udp   class   机制   主机   的区别   

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的区别

标签:tag   需求   ram   三次握手   tcp与udp   class   机制   主机   的区别   

原文地址:https://www.cnblogs.com/zhanp/p/10931322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!