使用wireshark抓包分析 TCP handshake 中 window scale 参数

使用wireshark抓包分析 TCP handshake 中 window scale 参数

Window scale简析

首先TCP的窗口有两种,发送窗口和接收窗口。这里我们主要讨论接收窗口,在TCP通信中,发送方的TCP报头中会包含一个窗口信息,这个窗口是指发送方的接收窗口的大小,当接收方进行应答时,发送的在途数据不能超过窗口大小,否则会造成丢包。

下面我们讨论下Window scale的具体作用。

在TCP的报头中,有一个16bit的字段是表示window的大小的,而2^16 = 65536,即由于字段的长度,窗口最大为64KB,显然对于现在动辄1000Mbps的带宽,这个大小是远远无法满足实际需求。如果要修改该字段的长度,则对TCP的兼容性会造成比较大的影响,因此采用了Window scale的方法。即在TCP的报头的option 中增加一个Window scale,计算方式如下:
实际的窗口大小 = (window size value) X (2^(Window scale))

这样在实际交互过程中就可以采用比较大的实际窗口了。

TCP 握手

tcp的三次握手过程如下图所示。12号包是客户端发送的SYN握手请求包;15号包是服务器返回的SYN/ACK包,即是应答12号包;17号包是客户端发送的ACK包,即是对15号包的应答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值