tcp窗口机制(写的最简单精炼的文章)
2015-09-15 15:36
253 查看
转自:http://blog.sina.com.cn/s/blog_5ec353710101g5a7.html
收录下,感谢原作者。
我们可以大概看一下上图的模型:
首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。
A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B的确认。
A发送过来的数据逐渐将缓冲区填满。
这时候缓冲区中的一个报文被进程读取,缓冲区有了一个空位,于是B向A发送一个ACK,这个报文中指示窗口大小为1。
A收到B发过来的ACK消息,并且知道B将窗口大小调整为1,因此他只发送了一个单位的数据并且等待B的下一个确认报文。
如此反复。
收录下,感谢原作者。
我们可以大概看一下上图的模型:
首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。
A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B的确认。
A发送过来的数据逐渐将缓冲区填满。
这时候缓冲区中的一个报文被进程读取,缓冲区有了一个空位,于是B向A发送一个ACK,这个报文中指示窗口大小为1。
A收到B发过来的ACK消息,并且知道B将窗口大小调整为1,因此他只发送了一个单位的数据并且等待B的下一个确认报文。
如此反复。
相关文章推荐
- Linux内存管理之mmap详解 http://blog.chinaunix.net/uid-26669729-id-3077015.html
- java apache commons HttpClient发送get和post请求的学习整理
- PHP接收客户端数据方式:post,HTTP_RAW_POST_DATA,input
- 网络请求框架---Volley
- iOS网络监测如何区分2、3、4G?
- Kickstart+HTTP+DHCP+TFTP全自动批量安装部署Linux系统
- HTTP 的应答码,错误码,通信码
- http连接池使用
- TCP/IP协议数据传输中一些限制性字段
- 错误信息:A TCP error (10013: 以一种访问权限不允许的方式做了一个访问套接字的尝试。) occurred while listening on IP Endpoint=192.168.1.18:8002.
- hdu-5442(后缀数组,2015网络赛长春赛区)
- IOS AFNetworking https
- httpclient传参调用服务端方法
- HTTP File Server SoftWare
- HTTPConnection与HTTPClient的区别
- http协议与web本质
- swoole swoole_http yaf medoo 微信
- HTTP协议和web工作原理
- http
- 浅谈HttpClient