从TCP协议之滑动窗口分析应用性能

TCP协议是一个很有意思的内容,这半年对TCP协议有了更多的认识,于是想重新更新一些对TCP协议的内容。今天先从TCP协议里面的滑动窗口说起。

1、先说原理

就发送端来说,一般如下所示:

 

主要分为:已发送已确认的包(应用层未读取)。发送未确认的包,未发送可发送的包,未发送不可发送的包。其中,滑动窗口指的是发送未确认和未发送可发送区域的大小。

2、滑动窗口

通常情况下,在wireshark抓包中看到的 win 表示向对方声明自己的接收窗口的大小,对方收到以后,会把自己的[发送窗口]限制在 指定大小之内。如果自己的处理能力有限,导致自己的接收缓冲区满,接收窗口大小为 0时发送端应该停止发送数据。

比如,使用模拟工具产生的TCP报文,其中客户端窗口声明为20,抓包如下:

 

  • 第1~3包:三次握手过程,其中第一包是客户端向服务端发起连接,并声明自己的接收窗口为20字节。第2包为服务端返回的ACK+SYN,同时也声明了自己的接收窗口29200字节。第三包为客户端回复服务端的ACK,此时自己接口窗口还是20。此后开始正常的数据收发。
  • 第4包:服务器端向客户端发送的第一次数据&
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值