(21)TCP的超时和重传

本文详细介绍了TCP的超时重传机制,包括4种定时器的作用,以及如何通过往返时间测量调整超时时间。此外,文章还讨论了拥塞避免算法,包括慢启动和拥塞避免阶段的cwnd和ssthresh变量管理,并阐述了快速重传和快速恢复算法的原理。最后,提到了TCP如何处理ICMP差错和重新分组的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

  TCP提供可靠的传输层。使用的方法之一是确认从另一端收到的数据,但数据和确认都有可能会丢失。TCP通过设置定时器和重传策略来解决这种问题。

  TFTP客户使用UDP时限了一个简单的超时和重传机制:5秒作为定时器值,每隔5秒进行重传;另外,向一个不存在的主机主机发送ARP,当TCP试图建立连接的时候,在每个重传之间使用一个较长的时延来重传SYN。

  对每一个连接,TCP管理4个不同的定时器:

  (1) 重传定时器用于当希望收到另一端的确认。

  (2) 坚持定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。

  (3) 保活定时器可检测到一个空闲连接的另一端何时崩溃或重启。

  (4)2MSL定时器测量一个连接处于TIME_WAIT状态的时间。

二、往返时间测量

  TCP超时和重传重最重要的就是对一个给定连接的往返时间(RTT)的测量。由于路由器和网络流量均会变化,因此TCP应该跟踪这些变化并相应地改变超时时间。首先TCP必须测量在发送一个带有特别序号地字节和接收到包含该字节地确认之间的RTT。

三、拥塞避免算法

  拥塞避免算法是一种处理丢失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1%),因此分组丢失就意味着在源主机和目的主机之间的某处网络上发生了阻塞。

  有两种分组丢失的指示:发生超时和收到重复的确认。

  拥塞避免算法需要对每个连接维持两个变量:一个拥塞窗口cwnd和一个慢启动门限ssthresh。

  (1) 对一个给定的连接,初始化cwnd为1个报文段,ssthresh为65535个字节。

  (2) TCP输出例程的输出不能超过cwnd和接收方通告窗口的大小。拥塞避免是发送方使用的流量控制,而通告窗口时接收方进行的流量控制。前者是发送方感受到的网络拥塞的估计,而后者则与接收方在该连接上的可用缓存大小有关。

  (3) 当拥塞发生时,ssthresh被设置为当前窗口大小的一半(cwnd和接收方通告窗口大小的最小值,但最小为2个报文段)。此外

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值