TCP可靠机制

超时重传:
可以重传超时事件内未收到确认的TCP报文段.
为此,TCP每个模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动.如果超时时间内未收到接收方的应答,TCP模块将重传TCP报文段并重置定时器.TCP一共执行5次重传,每次重传超时时间都增加一倍,在5次重传均失败的情况下,底层的IP和ARP开始接管,直至客户端放弃连接为止.
Linux有两个重要的内核参数与TCP超时重传相关:(1)在底层IP接管之前TCP最少执行的重传次数,默认值是3.(2)连接放弃前TCP最多可以执行的重传次数,默认值是15.
拥塞控制:
为了提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性.
包括四个部分:慢启动,拥塞避免,快速重传,快速恢复
拥塞控制的最终受控变量是发送端向网络一次连续写入(收到其中第一个数据的确认之前)的数据量,我们称为发送窗口.它限制了发送端能连续发送的TCP报文段数量.这些TCP报文段的最大长度称为SMSS.
慢启动和拥塞避免:
慢启动算法:TCP模块刚开始发送数据时并不知道网络的实际情况,需要用一种试探的方式平滑地增加拥塞窗口的大小,但是如果不施加其他手段,慢启动必然使得拥塞窗口很快膨胀,并导致网络拥塞,所以定义了一个慢启动门限,如果拥塞窗口的大小超过该值,TCP将进入拥塞避免阶段.
发送端判断拥塞发生的依据:(1)传输超时,或者说TCP重传定时器溢出.(2)接收到重复的确认报文段.
对第一种情况:使用慢启动和拥塞避免.
第二种情况:使用快速重传和快速恢复,如果第二种情况发生在第一次之后,则也被当成第一种情况来对待.
快速重传和快速恢复:
在很多情况下,发送端都可能接收到重复的确认报文段,比如TCP报文段丢失,或者接收端收到乱序TCP报文段并重排它.拥塞控制算法需要判断当收到重复的确认报文段时,网络是否真的发生了拥塞,或者说TCP报文段是否真的丢失了.
做法:发送端如果连续收到3个重复的确认报文段,就认为是拥塞发生了.然后启用快速重传和快速恢复算法来处理拥塞:
(1)当收到第3个重复的确认报文段时,立即重传丢失的报文段,并设置拥塞窗口.
(2)每次收到一个重复的确认时,设置拥塞窗口.此时发送端可以发送新的TCP报文段(如果新的拥塞窗口允许的话)
(3)当收到新数据的确认时,设置拥塞窗口等于新的慢启动门限值.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值