tcp/ip 详解杂记

来源:互联网 发布:新源代源码论坛 编辑:程序博客网 时间:2024/06/06 04:54

 当一个数据段到达时,该数据段最初会被网卡的驱动处理,然后被按序放到ip模块的输入队列中,如果是本机数据,ip层再按序传送给tcp,放置在tcp的接受缓冲区中。
 tcp 数据交互过程中,这个是动态的,每次都不一样的,这取决于tcp的接受和发生模块的实现/接受数据的进程,而进程又收操作系统调度的影响,所以每次连接数据交互都是动态的,都是不一样的。
这里写图片描述
 从left 到 right , left是向右移动的,right也是向右移动的,left 的移动受着对端的控制,如果对端确认了,那滑动窗口就可以向右移动了。
 right的向右移动,也取决于对端,当对端应用读取了确认的数据后释放了自己的tcp缓冲区后,对端tcp缓冲区可以容纳更多的数据时,此时发生端的窗户right边就可以向右移动增加发生端窗口的大小。
 接受确认数据和读取数据是俩回事,接受数据,数据被放到了 tcp缓冲区内,而读取数据是应用从tcp缓冲区中读取,所以接受了数据,发生确定ack 时windows的值不一定会往大调,因为 tcp缓冲区的数据不变,当缓冲区的数据被应用读取走了后,才可以增大窗口的大小。

原创粉丝点击