原文:TCP系列15—重传—5、Linux中RTO的计算

之前我们介绍的都是协议中给出的RTO计算方法,下面我们看一下linux实现中RTO的计算方法。在linux中维护了srtt mdev mdev max rttvar rtt seq几个状态变量用来计算RTO,其中linux实现中的mdev变量相当于协议中的RTTVAR变量。rtt seq状态变量用来控制一个RTT时间窗,linux在一个RTT时间窗内部更新状态变量的方式与RTT时间窗结束更新状态变 ...

2016-11-07 13:50 1 1965 推荐指数:

查看详情

TCP系列13—重传—3、协议RTO计算RTO定时器维护

从上一篇示例我们可以看到在TCP中有一个重要的过程就是决定何时进行超时重传,也就是RTO计算更新。由于网络状况可能会受到路由变化、网络负载等因素的影响,因此RTO也必须跟随网络状况动态更新。如果TCP过早重传,则可能会向网络中注入很多重复报文,如果过晚重传,则在丢包时候则会影响 ...

Mon Nov 07 21:48:00 CST 2016 0 4557
TCP系列24—重传—14、F-RTO虚假重传探测

一、虚假重传 在一些情况下,TCP可能会在没有数据丢失的情况下初始化一个重传,这种重传就叫做虚假重传(Spurious retransmission)。发生虚假重传的原因可能是包传输重排序、传输中发生包复制、ACK确认包传输丢失等等。如果由于链路时延变化或者负载变化等因素导致RTT突然变大 ...

Mon Nov 07 21:58:00 CST 2016 0 2166
TCP系列12—重传—2、Linux超时重传引入示例

在前面我们概述了TCP的超时重传之后我们简单的看一下tcp超时重传的示例。首先简单的描述一下测试过程 1、设置/proc/sys/net/ipv4/tcp_early_retrans为2,关掉TLP功能(后面内容介绍TLP)。设置/proc/sys/net/ipv4 ...

Mon Nov 07 21:47:00 CST 2016 3 5552
TCP系列11—重传—1、TCP重传概述

在最开始介绍TCP的时候,我们就介绍了TCP的三个特点,分别是面向连接、可靠、字节流式。前面内容我们已经介绍过了TCP的连接管理,接下来的这部分内容将会介绍与TCP可靠性强关联的TCP重传。 很多网络协议都提供了checksum或者CRC手段来检测收到的数据包是否 ...

Mon Nov 07 21:45:00 CST 2016 0 2661
TCP系列23—重传—13、RACK重传

一、RACK概述 RACK(Recent ACKnowledgment)是一种新的基于时间的丢包探测算法,RACK的目的是取代传统的基于dupthresh门限的各种快速重传及其变种。前面介绍的各种基于dup ACK的快速重传算法及其变种通过修改dupthresh门限等手段,有些可以迅速的探测到丢包 ...

Mon Nov 07 21:56:00 CST 2016 0 2368
TCP系列17—重传—7、SACK下的重传

我们之前介绍SACK选项的时候说过,SACK可以把接收端系列号空间的洞反映给发送端,因此发送端可以更充分的理解接收端的情况,而进行更好的重传恢复过程。这种过程有时候也叫做advanced loss recovery。 一、数据接收端SACK行为 我们通过一个 ...

Mon Nov 07 21:51:00 CST 2016 14 5937
TCPRTT的测量和RTO计算 以及 接收缓存大小的动态调整

RTT测量 在发送端有两种RTT的测量方法,但是因为TCP流控制是在接收端进行的,所以接收端也需要 有测量RTT的方法。 调整接收缓存 数据从TCP接收缓存复制到用户空间之后,会调用tcp_rcv_space_adjust()来调整TCP接收缓存和接收窗口 ...

Sun Nov 24 01:52:00 CST 2019 0 355
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM