论文部分内容阅读
【摘 要】时延测量和拥塞控制对于网络的管理、协议开发与技术发展具有重要意义。本文列出了时延和拥塞控制的概念以及产生的相应机理,并提出了应对的算法。对于网络时延测算软件的设计,本文具有理论指导意义。
【关键词】TCP 往返时延 拥塞控制
一、概念简介
TCP协议实现了流量控制和拥塞控制功能,可以保证数据的有序可靠的到达目的端。因此,目前网络传输层中多数的应用均釆用TCP协议进行。
往返时延(RTT)是研究TCP连接行为的重要测度,它是指从TCP发端发出报文到接收到通信对端立即返回的确认报文所经历的时长。
拥塞控制(congestion control)是防止过多的数据注入网络中,这样可以使网络的路由或链路不过载。对于通信端点来说,拥塞往往表现为通信时延的增加。
二、TCP往返时延
(一)概述
TCP相对于UDP来说是可靠传输,但代价也是存在的。TCP采用一种自适应的算法,它记录一个报文段发出的时间,以及收到相应确认的时间,这两个时间之差就是往返时延(RTT)。TCP保留了RTT的一个加权平均往返时间RTTs。时延的测量有挺多,以下给出两种。
(二)SYN-ACK方法
SYN-ACK方法,通过监测TCP三次握手建立连接的过程来估计RTT。用监测到的最后一个和第一个ACK之间的时间间隔来计算RTT。使用此方法的前提: SYN-ACK和ACK的传输没有被延迟;SYN-ACK在传输中没有丢包,ACK在到达监测点前没有丢包;SYN和ACK在传输的过程中时间抖动不大。SYN-ACK方法的不足之处在于:丢包可能导致RTT估计过长,超过3秒的RTT被认为是不准确的。有些操作系统会使用DelayACK方式工作,导致RTT估计错误。为了减少错误,,SYN-ACK方法使用HTTP请求和应答之间的时延作为RTT估计的上界。
(三)SPECTRAL ANALYSIS方法
SPECTRAL ANALYSIS方法基本思想是:(1)使用前256个分组的到达间隔生成RTT初始估计值。(2)使用滑动窗口估计来设置RTT估计的上界。(3)使用序列号/应答号之间的关系来寻找DATA-ACK-DATA关联,设置RTT估计的下界。(4)使用自相关函数和Lomb-Scargle周期图来估计RTT。
三、TCP拥塞控制
(一)概述
拥塞的直接原因主要有:(1)存储空间不足;(2)带宽容量不足;(3)处理能力较弱。为对传输层进行拥塞控制,因特网建议标准定义了四种算法。
(二)拥塞控制算法
1.慢启动
旧的TCP在启动一个连接时会向网络中发送许多数据包,由于一些路由器必须对数据包排队,所以这样就有可能耗尽存储空间,从而导致TCP连接的吞吐量(throughput)急剧下降。避免这种情况发生的算法就是慢启动。当建立新的TCP连接时,拥塞窗口(cwnd)初始化为一个数据包大小。源端按cwnd大小发送数据,每收到一个ACK确认,cwnd 就增加一个数据包发送量. 很显然,cwnd的增长将随RTT呈指数级(exponential)增长:1个、2个、4个等等。 源端向网络中发送的数据量将急剧增加。
2.拥塞避免
发送端的cwnd每经过一个往返时延RTT就增加一个最大报文段长度MSS的大小,而不是加倍,使得cwnd按线性规律缓慢增长,当出现一次超时时,令慢开始门限ssthresh等于当前cwnd的一半。可归纳如下:
当cwnd小于ssthresh时,使用慢开始算法。
当cwnd大于等于ssthresh时,改用拥塞避免算法。
3.快重传和快恢复
当数据包超时时,cwnd 要被置为1,重新进入慢启动,这会导致过大地减小发送窗口尺寸,降低TCP连接的吞吐量. 所以快速重传和恢复就是在源端收到3 个或3 个以上重复ACK 时,就断定数据包已经丢失,重传数据包,同时将ssthresh 置为当前cwnd 的一半,而不必等到RTO 超时。
总的来说,TCP 拥塞控制算法如下:
1.初始化: win = min( cwnd,awin)
cwnd = 1;
ssthresh = 65535bytes (缺省值);/
2.当新确认包ACK 到达时:If( cwnd < ssthresh)
/ Slow Start /
cwnd = cwnd + 1;
Eise
/ Congestion Auoidance /
cwnd = cwnd + 1 / cwnd;
3.超时: ssthresh = max(2,min( cwnd / 2,awin));
cwnd = 1;
四、结语
计算机网络给我们带来便利的同时,也存在一些问题,如网络时延、拥塞、带宽等问题。本文给出了一些问题的原因以及解决算法。在设计网络时延的测量软件时,本文可以起到较好的理论指导。
参考文献:
[1]张轶博,雷振明.一种被动式RTT测量算法.北京邮电大学学报,2004,27(5).
[2]范君晖.TCP/IP拥塞控制算法浅述[期刊论文]-上海工程技术大学学报,2004(3).
[3]施荣华,王国才.计算机通信网络技术及应用,中国水利水电出版社,2010.
[4]周明天,汪文勇编著,《TCP /IP网络原理与技术》,清华大学出版社.
【关键词】TCP 往返时延 拥塞控制
一、概念简介
TCP协议实现了流量控制和拥塞控制功能,可以保证数据的有序可靠的到达目的端。因此,目前网络传输层中多数的应用均釆用TCP协议进行。
往返时延(RTT)是研究TCP连接行为的重要测度,它是指从TCP发端发出报文到接收到通信对端立即返回的确认报文所经历的时长。
拥塞控制(congestion control)是防止过多的数据注入网络中,这样可以使网络的路由或链路不过载。对于通信端点来说,拥塞往往表现为通信时延的增加。
二、TCP往返时延
(一)概述
TCP相对于UDP来说是可靠传输,但代价也是存在的。TCP采用一种自适应的算法,它记录一个报文段发出的时间,以及收到相应确认的时间,这两个时间之差就是往返时延(RTT)。TCP保留了RTT的一个加权平均往返时间RTTs。时延的测量有挺多,以下给出两种。
(二)SYN-ACK方法
SYN-ACK方法,通过监测TCP三次握手建立连接的过程来估计RTT。用监测到的最后一个和第一个ACK之间的时间间隔来计算RTT。使用此方法的前提: SYN-ACK和ACK的传输没有被延迟;SYN-ACK在传输中没有丢包,ACK在到达监测点前没有丢包;SYN和ACK在传输的过程中时间抖动不大。SYN-ACK方法的不足之处在于:丢包可能导致RTT估计过长,超过3秒的RTT被认为是不准确的。有些操作系统会使用DelayACK方式工作,导致RTT估计错误。为了减少错误,,SYN-ACK方法使用HTTP请求和应答之间的时延作为RTT估计的上界。
(三)SPECTRAL ANALYSIS方法
SPECTRAL ANALYSIS方法基本思想是:(1)使用前256个分组的到达间隔生成RTT初始估计值。(2)使用滑动窗口估计来设置RTT估计的上界。(3)使用序列号/应答号之间的关系来寻找DATA-ACK-DATA关联,设置RTT估计的下界。(4)使用自相关函数和Lomb-Scargle周期图来估计RTT。
三、TCP拥塞控制
(一)概述
拥塞的直接原因主要有:(1)存储空间不足;(2)带宽容量不足;(3)处理能力较弱。为对传输层进行拥塞控制,因特网建议标准定义了四种算法。
(二)拥塞控制算法
1.慢启动
旧的TCP在启动一个连接时会向网络中发送许多数据包,由于一些路由器必须对数据包排队,所以这样就有可能耗尽存储空间,从而导致TCP连接的吞吐量(throughput)急剧下降。避免这种情况发生的算法就是慢启动。当建立新的TCP连接时,拥塞窗口(cwnd)初始化为一个数据包大小。源端按cwnd大小发送数据,每收到一个ACK确认,cwnd 就增加一个数据包发送量. 很显然,cwnd的增长将随RTT呈指数级(exponential)增长:1个、2个、4个等等。 源端向网络中发送的数据量将急剧增加。
2.拥塞避免
发送端的cwnd每经过一个往返时延RTT就增加一个最大报文段长度MSS的大小,而不是加倍,使得cwnd按线性规律缓慢增长,当出现一次超时时,令慢开始门限ssthresh等于当前cwnd的一半。可归纳如下:
当cwnd小于ssthresh时,使用慢开始算法。
当cwnd大于等于ssthresh时,改用拥塞避免算法。
3.快重传和快恢复
当数据包超时时,cwnd 要被置为1,重新进入慢启动,这会导致过大地减小发送窗口尺寸,降低TCP连接的吞吐量. 所以快速重传和恢复就是在源端收到3 个或3 个以上重复ACK 时,就断定数据包已经丢失,重传数据包,同时将ssthresh 置为当前cwnd 的一半,而不必等到RTO 超时。
总的来说,TCP 拥塞控制算法如下:
1.初始化: win = min( cwnd,awin)
cwnd = 1;
ssthresh = 65535bytes (缺省值);/
2.当新确认包ACK 到达时:If( cwnd < ssthresh)
/ Slow Start /
cwnd = cwnd + 1;
Eise
/ Congestion Auoidance /
cwnd = cwnd + 1 / cwnd;
3.超时: ssthresh = max(2,min( cwnd / 2,awin));
cwnd = 1;
四、结语
计算机网络给我们带来便利的同时,也存在一些问题,如网络时延、拥塞、带宽等问题。本文给出了一些问题的原因以及解决算法。在设计网络时延的测量软件时,本文可以起到较好的理论指导。
参考文献:
[1]张轶博,雷振明.一种被动式RTT测量算法.北京邮电大学学报,2004,27(5).
[2]范君晖.TCP/IP拥塞控制算法浅述[期刊论文]-上海工程技术大学学报,2004(3).
[3]施荣华,王国才.计算机通信网络技术及应用,中国水利水电出版社,2010.
[4]周明天,汪文勇编著,《TCP /IP网络原理与技术》,清华大学出版社.