TCP和UDP的区别与流量控制、拥塞控制

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP面向报文,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道


流量控制(点对点通信控制)

让发送方发送速率不要太快,使接收方来得及接收。

基于滑动窗口的流量控制机制:接收方根据接收缓存的大小动态控制发送方的发送窗口大小(调整TCP首部“窗口”字段值),限制发送方网络注入报文的速率,同时根据网络拥塞程度估计窗口值。

拥塞控制(全局,涉及全网络主机、路由器等)

防止过多的数据注入网络,可以使网络中的路由器或链路不致于过载。

算法:慢开始、拥塞避免、快重传、快恢复


慢开始与拥塞避免

发送方维持一个拥塞窗口(cwnd)的状态变量,该大小取决于网络拥塞程度,并动态变化

变化原则:网络无拥塞,窗口增大;网络拥塞则减小

慢开始(cwnd指数型增长)

新建立的连接不能够一开始就大量发送数据包,而是根据网络情况逐步增加每次发送的数量。

为防止cwnd增长过大引起网络阻塞,设置慢开始门限ssthresh状态变量选择慢开始算法与拥塞避免算法

拥塞避免(cwnd线性增长)

拥塞窗口缓慢增长,每经过一个往返时间RTT就把发送发的拥塞窗口+1,而不是加倍。

(以上两个阶段若出现拥塞,门限设置为出现拥塞时发送窗口的一半,窗口值设为1,执行慢开始算法)

快重传与快恢复

快重传

接收方在收到一个失序的报文段后立即发出重复确认,发送方只要收到三个重复确认就应当立即重传尚未收到的报文段,不必等待设置的重传计时器时间到期。

快恢复

发送方收到三个重复确认时,ssthresh门限减半,然后执行拥塞避免算法。


猜你喜欢

转载自blog.csdn.net/quitozang/article/details/80861376
今日推荐