TCP窗口机制

窗口机制原理:

      比如主机A主机B发送数据,为了更高的通话效率,主机A一次给主机B发了三次数据。(主机a给主机b发送了一个大的数据);主机B收到数据以后他的窗口大小只能处理其中的一部分数据那么主机B就会向主机     A   恢复一个确认值三个数据都收到了,但是他的窗口大小只显示处理了2个数据,那么主机A收到以后就会做一个发送处理,将数据调成发送的量为2个进行发送这样一来就解决了发送多个而处理不完的现象。

TCP窗口机制 - arvin_ti - arvin_ti的博客
 


滑动窗口:

滑动窗口用于加速传输,比如发了一个seq=100的包,理应收到这个包的确认ack=101后再继续发下一个包,但有了滑动窗口,只要新包的seq与没有得到确认的最小seq之差小于滑动窗口大小,就可以继续发。TCP要保证可靠,就需要对一个数据包进行ack确认表示接收端收到。有了滑动窗口,接收端就可以等收到许多 包后只发一个ack包,确认之前已经收到过的多个数据包。有了滑动窗口,发送端在发送完一个数据包后不用等待。它的ack,在滑动窗口大小内可以继续发送其 他数据包。举个例子来看吧。 大家看上图,标志位为.表示所有的flag都为0。标志位P表示flagPSHTCP包,用于快速传输数据。前三个包是三次握手,客户端表示自己的滑动窗口大小是65535(我的XP机器),服务器端表示滑动窗口是5840(屏幕宽了,没截出来)。从第四个包开 始,客户端向服务器发送PSH包,数据长度是520字节,服务器发了ack确认包。注意此时win窗口大小发生了改变哈。以此类推。
 
倒数第二、三包,服务器在滑动窗口内连续向客户端发包,客户端发送的ack 124同时确认了之前的两个包。这就是滑动窗口的功能了。
 
如果谈到TCP攻击就需要注意,TCP的各种实现中,在滑动窗口之外的seq会被扔掉!下面会讲这个问题。
 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值