原文:TCP系列32—窗口管理&流控—6、TCP zero windows和persist timer

一 简介 我们之前介绍过,TCP报文中的window size表示发出这个报文的一端准备多少bytes的数据,当TCP的一端一直接收数据,但是应用层没有及时读取的话,数据一直在TCP模块中缓存,最终受限于接收缓存的大小,window size会变为 ,此时我们称呼这个接收窗口为零窗 zero window ,对端也不能在发送更多的数据。如果随后本端应用层从TCP接收缓存中读取了足够数据,TCP模块 ...

2016-11-07 14:05 3 7985 推荐指数:

查看详情

TCP系列31—窗口管理&—5、TCP与滑窗

一、TCP 之前我们介绍过TCP是基于窗口的流量控制,在TCP的发送端会维持一个发送窗口,我们假设发送窗口的大小为N比特,网络环回时延为RTT,那么在网络状况良好没有发生拥塞的情况下,发送端每个RTT就可以发送N比特的数据,发送端的速率应该与N/RTT成正比,因此通过改变发送 ...

Mon Nov 07 22:05:00 CST 2016 0 2647
TCP系列29—窗口管理&—3、Nagle算法

一、Nagle算法概述 之前我们介绍过,有一些交互式应用会传递大量的小包(称呼为tinygrams),这些小包的负载可能只有几个bytes,但是TCP和IP的基本头就有40bytes,如果大量传递这种小包,会严重降低网络利用率,还可能造成网络拥塞。福特公司就曾经遇到过这种问题,John Nagle ...

Mon Nov 07 22:03:00 CST 2016 0 1824
TCP系列28—窗口管理&—2、延迟ACK(Delayed Acknowledgments)

一、简介 之前的内容中我们多次提到延迟ACK(Delayed Ack),延迟ACK是在RFC1122协议中定义的,协议指出,一个TCP实现应该实现延迟ACK,但是ACK不能被过度延迟,协议给出延迟ACK的最大时间为0.5s。如果发送端连续发送最大的数据报文,那么没两个数据报文就需要回复一次ACK ...

Mon Nov 07 22:02:00 CST 2016 0 2213
tcp窗口

现在开始介绍我们的第一个主题 - TCP 接收窗口TCP 连接的吞吐量可以通过发送和接收应用程序、发送和接收 TCP 的实现以及 TCP 对等方之间的传输路径来限制。在本专栏中,我将介绍 TCP 接收窗口及其对 TCP 吞吐量的影响、TCP 窗口缩放的使用以及 Windows ...

Thu Dec 13 05:17:00 CST 2012 0 7035
TCP系列03—连接管理—2、TCP连接的同时打开和同时关闭

在前面的内容中我们介绍了TCP连接管理中最常见的三次握手方式和四次挥手的方式。但是有可能A和B两端同时执行主动打开并连接对方或者同时执行主动关闭连接(尽管发生这种情况的可能性比较低低),这个时候的流程就略有不同了。下面我们分别对同时打开(simultaneous open)连接 ...

Mon Nov 07 21:33:00 CST 2016 4 3147
TCP系列08—连接管理—7、TCP 常见选项(option)

一、TCP选项概述 在前面介绍TCP头的时候,我们说过tcp基本头下面可以带有tcp选项,其中有些选项只能在连接过程中随着SYN包发送,有些可以延后。下表汇总了一些tcp选项 其中我标记为红色的部分是常见的TCP选项,我们仅针对这些红色的TCP选项进行介绍(主要是非红色 ...

Mon Nov 07 21:41:00 CST 2016 0 4252
TCP系列09—连接管理—8、TCP Reset

我们在介绍TCP头的时候,提到过其中有个RST标志位。当一个TCP报文中这个标志位打开的时候,我们叫做reset包(严格的说应该叫做reset段,但是很多时候段包帧并不加以区分)或者简单称呼为reset、RST。通常reset的产生是由于一个异常包导致,reset一般会导致TCP ...

Mon Nov 07 21:42:00 CST 2016 3 3874
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM