TCP 慢启动(slow start)报文观察

来源:互联网 发布:app开发用什么软件 编辑:程序博客网 时间:2024/04/30 13:42

慢启动定义

慢启动,是传输控制协议使用的一种拥塞控制机制。慢启动也叫做指数增长期。慢启动是指每次TCP接收窗口收到确认时都会增长。增加的大小就是已确认段的数目。这种情况一直保持到要么没有收到一些段,要么窗口大小到达预先定义的阈值。如果发生丢失事件,TCP就认为这是网络阻塞,就会采取措施减轻网络拥挤。一旦发生丢失事件或者到达阈值,TCP就会进入线性增长阶段。这时,每经过一个RTT窗口增长一个段。

慢启动解析

 发送方一开始便向网络发送多个报文段,直至达到接收方通告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能出现一些问题。一些中间路由器必须缓存分组,并有可能耗尽存储器的空间。现在,TCP需要支持一种被称为“慢启动(slowstart)”的算法。该算法通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。慢启动为发送方的TCP增加了另一个窗口:拥塞窗口(congestionwindow),记为cwnd。当与另一个网络的主机建立TC P连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个报文段(c w n d以字节为单位,但是慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。发送方开始时发送一个报文段,然后等待A C K。当收到该AC K时,拥塞窗口从1增加为2,即可以发送两个报文段。当收到这两个报文段的A C K时,拥塞窗口就增加为4。这是一种指数增加的关系。

 

下面我就观察一段慢启动的报文,

No.     Time           Source                Destination           Protocol Length Info

  28196357.263885000  146.11.2.87           147.128.6.103         TCP     66     6043235461 [SYN] Seq=0 Win=65535Len=0 MSS=1460 WS=128 SACK_PERM=1

  28197 357.302364000  147.128.6.103         146.11.2.87           TCP      66    3546160432[SYN, ACK] Seq=0 Ack=1 Win=49640 Len=0 MSS=1460 WS=1 SACK_PERM=1      服务器初始:window size=49640

  28198357.302646000  146.11.2.87           147.128.6.103         TCP     54     6043235461 [ACK] Seq=1 Ack=1 Win=4194304Len=0 

  28199357.306459000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes                       此时拥塞窗口(cwnd)为2,因为收到了一个ack  客户端:发送seq1, next seq 1461

  28200357.306490000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes                         客户端: 发送seq1461, next seq 2921 然后停止,等待2921ack.

  28201357.343904000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=1461 Win=48180 Len=0

  28202357.344034000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=2921Win=46720 Len=0

  28203 357.344348000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes              此时拥塞窗口(cwnd)为2+2=4,因为收到了2 ack,    客户端:可以发送8segment

  28204357.344383000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28205357.344396000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28206357.344412000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes             客户端发送四个segment后停止,因为达到了拥塞窗口大小

  28207357.348952000  147.128.6.103         146.11.2.87           TCP     60     [TCP Window Update] 3546160432[ACK] Seq=1 Ack=2921 Win=49640 Len=0

  28209357.383284000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=5841Win=46720 Len=0

 28210357.383404000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=8761 Win=43800 Len=0虽然只受到两条ack分节,但是却确认了四个分节(8761-2921)/1460=4

  28211357.383950000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes     此时拥塞窗口(cwnd)为4+4=8,因为收到了4ack,   客户端:可以发送8segment      

  28212 357.383979000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28213357.383992000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28214357.384026000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28215357.384038000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28216357.384058000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28217 357.384069000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28218357.384081000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes      客户端发送八个分节后停止,因为达到了拥塞窗口的大小。

  28221357.422673000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=11681Win=48180 Len=0

  28222357.422803000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=14601Win=45260 Len=0 收到4个分节的ack

  28223357.423293000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes    此时拥塞窗口(cwnd)为8+4=12,因为收到了 4 ack,   客户端:可以发送8segment

  28224357.423323000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes      因为还是4个发出的分节没有确认。

  28225357.423337000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=17521Win=49640 Len=0

  28226357.423387000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28227357.423404000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28228 357.423415000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=20441 Win=46720 Len=0

  28229357.423456000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28230357.423469000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28231357.423532000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28232357.423563000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28233357.424046000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28234357.424084000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28235357.424096000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28236357.424107000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28237357.424119000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28238357.424131000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28239357.424143000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28240 357.424155000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28241357.462125000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=23361Win=43800 Len=0

  28242357.462554000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=26281Win=48180 Len=0

  28243357.462646000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28244 357.462675000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=29201 Win=45260 Len=0

  28245357.462719000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28246357.462735000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28247357.462760000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28248357.463316000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28249357.463353000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28250357.463365000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=32121Win=49640 Len=0

  28251 357.463418000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28252357.463433000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28253357.463445000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28254357.463457000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=35041Win=46720 Len=0

  28255357.463496000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28256357.463509000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28257357.463520000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28258 357.464025000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28259357.464063000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=37961Win=43800 Len=0

  28260357.464113000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=40881 Win=48180 Len=0

  28261357.464151000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=43801Win=45260 Len=0

  28262 357.464186000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28263357.464200000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28264357.464212000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28265357.464223000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28266357.464234000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28267 357.464246000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28268357.464257000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28269357.464851000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28270357.464865000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28271357.464876000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28272357.464888000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28273357.464899000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28274357.464933000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28275357.464945000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28276357.464957000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28277357.464968000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28278357.464980000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28279357.464992000  146.11.2.87           147.128.6.103         FTP-DATA 1514   [TCP Window Full] FTP Data: 1460 bytes

  28280357.501415000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=46721Win=49640 Len=0

  28281357.501974000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=49641 Win=46720 Len=0

  28282357.502025000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28283357.502054000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28284357.502075000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28285357.502089000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=52561Win=43800 Len=0

  28286357.502112000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28287 357.502125000  146.11.2.87           147.128.6.103         FTP-DATA 1514   [TCP Window Full] FTP Data: 1460 bytes

  28288357.502137000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=55481Win=48180 Len=0

  28289 357.502193000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=58401 Win=45260 Len=0

  28290357.502604000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28291357.502666000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28292357.502681000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=61321Win=49640 Len=0

  28293357.502760000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28294357.502777000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28295357.502788000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28296357.502800000  147.128.6.103         146.11.2.87           TCP      60    3546160432[ACK] Seq=1 Ack=64241 Win=46720 Len=0

  28297357.503125000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28298 357.503142000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28299357.503154000  147.128.6.103         146.11.2.87           TCP     60     3546160432 [ACK] Seq=1 Ack=67161Win=48180 Len=0

  28300357.503254000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28301357.503270000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

  28302357.503282000  146.11.2.87           147.128.6.103         FTP-DATA 1514   FTP Data: 1460 bytes

 

 

0 0
原创粉丝点击