内部公开目录•TCP传输:–滑窗、拥塞控制、慢启动–超时、重传–饱和链路的概念1内部公开©ZTECorporation.Allrightsreserved.TCP传输算法:2•连续发送,分次确认;•不必确认每一个分组;•收到连续两个包时立即回ACK,否则等待200ms发延时ACK。内部公开©ZTECorporation.Allrightsreserved.TCP传输算法:3•连续发送,获得对方有空闲缓冲区后再继续发送;内部公开©ZTECorporation.Allrightsreserved.TCP传输算法:•滑窗、拥塞控制、慢启动共同作用下的传输行为。4内部公开©ZTECorporation.Allrightsreserved.TCP传输算法:•滑窗、拥塞控制、慢启动共同作用下的传输行为(续)。5内部公开©ZTECorporation.Allrightsreserved.TCP传输算法:6发生重传的行为:1)出现失序之后(报文46),接收端停止发给上层应用程序。但继续接受、缓存收到的数据包。2)直到收到丢失的数据包(报文63),接收端才连同缓存的数据包提交给上层应用(2340字节)。内部公开©ZTECorporation.Allrightsreserved.TCP:失序的情况7失序的情况:红色圆点是起点,红色字体编号是正常包序。内部公开目录•介绍Wireshark常见的几个字段:–Sequencenumber,acknolegementnumber–Win:Windowsizevalue、Calculatedwindowsize、Windowsizescalingfactor(Windowscale)8内部公开©ZTECorporation.Allrightsreserved.[ACK]seq=180,ack=1461.Len=0[TCPsegmentofareassembledPDU]seq=1461,ack=180.Len=1460[SYN]seq=0,ack=.Len=0手机侧:36428互联网服务器侧:80[SYN,ACK]seq=0,ack=1.Len=0[ACK]seq=1,ack=1.Len=0[GET]seq=1,ack=1.Len=179GET/apk/201207/com.yybackup_41263100_0.apk?vcode=4002&nettype=NET&wap=3gnet,,0HTTP/1.1\r\n[ACK]seq=1,ack=180.Len=0[TCPsegmentofareassembledPDU]seq=1,ack=180.Len=1460确认号ACKnum就是期望对方下次发送的seq号。捎带给上一条消息回ACK。建TCP连接⇒发GET请求⇒对GET回ACK⇒ACK没有seq,不消耗序号。这里可能是wireshark提示的。TCP字段:sequencenumber编号的依据是待传输的数据字节流。TCP是双向流连接,两边有各自待传输的数据字节流、各自独立进行sequencenumber编号。内部公开©ZTECorporation.Allrightsreserved.手机侧:36428[TCPsegmentofareassembledPDU]seq=32121,ack=180.Len=1460[ACK]seq=180,ack=35041.Len=0……[TCPsegmentofareassembledPDU]seq=33581,ack=180.Len=1460互联网服务器侧:801)注1:sequencenumber两端分别对自己的传输对象编号,各自独立;对任意一边:本端发送的seq与对端响应的ACK号对应。2)注2:SYN、FIN标志消耗了一个序号。//分别对应建链、拆链。3)注3:单独的ACK没有序号,不消耗sequencenumber序号。TCP字段:sequencenumber(续)[ACK]seq=180,ack=2921.Len=0[TCPsegmentofareassembledPDU]seq=2921,ack=180.Len=1460内部公开©ZTECorporation.Allrightsreserved.TCP字段:Win11内部公开©ZTECorporation.Allrightsreserved.TCP字段:Win12•在ACK应答消息中告知对方,本端当前缓存大小。内部公开©ZTECorporation.Allrightsreserved.TCP字段:Win13•TCP首部的窗口字段只有16bit,最大可表示64K;•为了表示更大的窗口,使用可选的放大倍数。内部公开©ZTECorporation.Allrightsreserved.TCP字段:Win•放大窗口的实例。14