实际系统的TCP 拥塞控制技术剖析
2017年5月04日 11:27 作者:lunwwcom【关键词】TCP 拥塞控制 慢启动 拥塞避免
wireshark
近年来,随着因特网的迅猛发展,因特
网中的业务呈逐年上升趋势,如何有效地进行
流量控制和防止网络拥塞成为近年来关注的课
题。TCP 提供了面向连接的端到端的流传输,
可提供较为可靠的端到端传递服务,因而很多
要求可靠性较高的业务(如FTP, Telnet, HTTP
等)都是基于TCP 设计的。TCP 的主要目的
就是避免增加网络负担并且尽量使用网络资
源。
文/杨贝松
本文介绍拥塞的基本概念
以及产生原因,并详细分析了基
于TCP 拥塞控制的机制, 通过
wireshark 抓包工具抓对TCP 拥
塞控制的过程与机制进行探讨。
摘 要
拥塞现象是网络中存在过多的数据分组
时引起网络的性能下降。拥塞产生的根本原
因是网络资源需求超过其所能提供的最大上
限。由于网络结构的特殊性导致拥塞现象的不
可避免。在一般资源共享网络的情况下,多个
数据分组同时要求服务,并且想要通过同一个
服务端口发送数据,但必须按照先后的顺序进
行处理,这就出现了拥塞现象,当拥塞严重的
时候,网络的性能就会急剧下降,甚至造成拥
塞崩溃图1 说明了拥塞发生的情况。
2 拥塞发生的原因
拥塞发生的根本原因是网络处理能力和
资源容量小于用户带给网络的负载。其主要
表现有以下几个类型:丢弃概率增大、数据包
时延增加和上层应用系统性能明显下降等。网
络产生拥塞主要是由以下4 个方面引起的:
(1)带宽容量相对不足;
(2)队列容量相对不足;
(3)路由器的处理能力弱;
(4)网络流量分布不均衡。
3 基于TCP拥塞控制的分析
TCP 连接分为3 部分: 建立连接、数据
传送和拆除连接,其中建立连接和拆除连接主
要是运用其3 次握手方式。而在数据传送中,
TCP 利用端到端的拥塞控制算法, 通过 TCP 提
供的确认信号判断网络状态, 通过滑动窗口协
议决定发送窗口的大小, 从而控制注入网络中
业务量的目的。
TCP 的拥塞控制主要是依赖于拥塞窗口
(cwnd) 以及对用于流量控制的对端通告的接收
窗口(rwnd)。TCP 拥塞控制算法是在两者之间
找到平衡点,选择拥塞窗口的最佳值,从而保
证网络吞吐量的最大化,并且不造成拥塞。
因为需要考虑拥塞控制和流量控制两个
图1:拥塞发生情况
网络天地 • Network World
36 • 电子技术与软件工程 Electronic Technology & Software Engineering
方面的内容,所以TCP 的真正的发送窗口
=min(rwnd, cwnd)。然而由于网络环境对 rwnd
没有影响,因此考虑拥塞时只考虑cwnd 即可。
在TCP 中cwnd 的单位是字节, cwnd 增加1
即字节数增加1 个MSS 大小。
TCP 拥塞控制的概念是利用每个源了解
当前网络中可用容量,进而知道能够安全完
成传送的分组数。TCP 拥塞控制机制包括慢启
动、拥塞避免、快速重传和快速恢复等。图2
主要是拥塞控制窗口在以上4 个阶段随时间的
变化情况。通过在终端适当的调整网络的拥
塞情况,从而最大程度提高网络传输性能,降
低拥塞发生的概率。
4 实际拥塞控制分析
通过wireshark 抓包工具抓包, 访问
https://wiki.wireshark.org/CaptureSetup, 不断
刷新网页,恰好观测到有三拍数据中存在三个
ack,源地址192.168.1.106 为本机IP 地址,目
的地址220.181.111.21 为网站IP 地址,如图3
所示。
访问网页时,TCP 在刚建立连接时使用
了慢启动,当新建连接时,cwnd 初始化为1
个最大报文段(MSS) 大小,发送端开始按照
拥塞窗口大小发送数据,每当有一个报文段被
确认,cwnd 就增加1 个MSS 大小;增大到一
定程度后开始拥塞避免策略,也就是cwnd 的
值不再指数级往上升,开始加法增加,慢慢的
增加调整到网络的最佳值。在出现图3 中连续
收到三个ack 时,进行快速重传,然后重新进
入拥塞避免阶段。
5 总结
随着Internet 的广泛应用, 网络的可靠性、
稳定性越来越依赖于TCP 拥塞控制, 对拥塞控
制的研究是非常具有价值的。由于拥塞控制的
复杂性, 存在着亟待解决的许多问题,特别是
缺乏在拥塞仿真模拟方面的研究。使得TCP
拥塞控制缺少实例支撑。
参考文献
[1]Richard J,Anantharam V.A case study f
or TCP vegas anddeficit Round-Robin
gateways.http://www.path. berkeley.
edu/ ~ hyongla,1998.
[ 2 ] B e r g e n d o r f f P e t a l . C o n g e s
tion toll s pricing of t raf fi
c networks.In:Pardalos P M eds,
Network Optimization,Springer,1997.
51-71.
[3]Macki e-Mason J K,Varian H R.Pricing
contestable network resources.IE EE
Journal on Selected Areas in Communi
cations,1995,13(7):1141-1149.
[4]Floyd S,Jacobs on V.Random early
detection gateways f or congestion
a v o i d a n c e . I E E E / A C M T r a n s a c t i o n s
on Network-POSTEL,J.Transmission
Control Protocol.RFC 793.1981.
[5]JACOBSON,V.Congestion avoidance and
control[J].Computer Communication
Review.1995. TANENBAUM,A.S.Computer
Networks(4th).Prentice Hall,2003.
作者简介
杨贝松(1989-),男,陕西省咸阳市人。主
要研究方向为嵌入式软件测试。
作者单位
工业和信息化部电子第五研究所 广东省广州
市 510610
图2:TCP 拥塞控制算法示意图
图3:TCP 拥塞抓包实例