速读原著-TCP/IP(TCP经受时延的确认)

news/2024/7/23 16:21:05

第19章 TCP的交互数据流

19.3 经受时延的确认

在图1 9 - 2中有一些与本节将要论及的时间有关的细微之处。图 1 9 - 3表示了图1 9 - 2中数据交换的时间系列(在该时间系列中,去掉了所有的窗口通告,并增加了一个记号来表明正在传输何种数据)。

把从b s d i发送到s r v 4的7个A C K标记为经受时延的A C K。通常T C P在接收到数据时并不立即发送A C K;相反,它推迟发送,以便将 A C K与需要沿该方向发送的数据一起发送(有时称这种现象为数据捎带 A C K)。绝大多数实现采用的时延为 200 ms,也就是说,T C P将以最大200 ms的时延等待是否有数据一起发送。

如果观察b s d i接收到数据和发送A C K之间的时间差,就会发现它们似乎是随机的: 1 2 3 . 5、6 5 . 6、1 0 9 . 0、1 3 2 . 2、4 2 . 0、1 4 0 . 3和195.8 ms。相反,观察到发送A C K的实际时间(从0开始)为:1 3 9 . 9、5 3 9 . 3、9 4 0 . 1、1 3 3 9 . 9、1 7 3 9 . 9、1 9 4 0 . 1和2140.1 ms(在图1 9 - 3中用星号标出)。

这些时间之间的差则是 200 ms的整数倍,这里所发生的情况是因为 T C P使用了一个200 ms的定时器,该定时器以相对于内核引导的 200 ms固定时间溢出。由于将要确认的数据是随机到达的(在时刻 16.4, 474.3, 831.1等),T C P在内核的200 ms定时器的下一次溢出时得到通知。这有可能是将来1~200 ms中的任何一刻。
在这里插入图片描述
如果观察s v r 4为产生所收到的每个字符的回显所使用的时间,则这些时间分别为 1 6 . 5、1 6 . 3、1 6 . 5、1 6 . 4和17.3 ms。由于这个时间小于200 ms,因此我们在另一端从来没有观察到一个经受时延的A C K。在经受时延的定时器溢出前总是有数据需要发送(如果有一个约为 16 ms等待时间越过了内核的 200 ms时钟滴答的边界,则仍可以看到一个经受时延的 A C K。在本例中我们一个也没有看到)。

在图1 8 - 7中,当为检测超时而使用500 ms的T C P定时器时,我们会看到同样的情况。这两个200 ms和500 ms的定时器都在相对于内核引导的时间处溢出。不论 T C P何时设置一个定时器,该定时器都可能在将来 1~200 ms和1~500 ms的任一处溢出。Host Requirements RFC声明T C P需要实现一个经受时延的A C K,但时延必须小于500 ms。


http://www.niftyadmin.cn/n/1281214.html

相关文章

学车总结

昨天刚拿到小黑本(C1)。 小黑本 我是在北京学的车。历时2个月,学费5800 请假工资 打车费,大概7000大洋,总算拿到了这个小黑本。 说说我最近学车的感悟吧 学车由报名、理论学习、约考、考试、约车、练车等部分组成。…

速读原著-TCP/IP(Nagle算法)

第19章 TCP的交互数据流 19.4 Nagle算法 在前一节我们看到 , 在一个R l o g i n连接上客户一般每次发送一个字节到服务器,这就产生了一些4 1字节长的分组:2 0字节的I P首部、2 0字节的T C P首部和1个字节的数据。在局域网上,这些小分组&…

关于float/double的取值范围、精度和表示

https://blog.csdn.net/shenziheng1/article/details/79471340 1.float和double的范围和精度 float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下: float:1bit(符号位&…

网页设计之 JSP_1

刘志勇网页制作课程地址&#xff1a; http://person.nenu.edu.cn/lzy/html/Show1.asp?typeid25 JSP 环境配置 (一) 安装JDK(jdk-1_5_0-windows-i586.exe)&#xff0c;默认安装&#xff1b; (二) 安装Tomcat。<两个文件安装顺寻不可颠倒> tomcat7.0压缩版的配置方法(推荐…

ifstream seekg 问题

文件输入流&#xff08;ifstream&#xff09;读到文件尾之后&#xff0c;调用seekg 重定向 读pos 类似于以下代码片段&#xff1a; //read whole file while&#xff08;ifs.readline(str,strLen)&#xff09;{std::cout << line << " : "<<str&…

速读原著-TCP/IP(TCP窗口大小通告)

第19章 TCP的交互数据流 19.5 窗口大小通告 在图1 9 - 4中&#xff0c;我们可以观察到s l i p通告窗口大小为4 0 9 6字节&#xff0c;而v a n g o g h通告其窗口大小为8 1 9 2个字节。该图中的大多数报文段都包含这两个值中的一个。 然而&#xff0c;报文段5通告的窗口大小为…

速读原著-TCP/IP(TCP的成块数据流)

第20章 TCP的成块数据流 20.1 引言 在第1 5章我们看到T F T P使用了停止等待协议。数据发送方在发送下一个数据块之前需要等待接收对已发送数据的确认。本章我们将介绍 T C P所使用的被称为滑动窗口协议的另一种形式的流量控制方法。该协议允许发送方在停止并等待确认前可以连…

《深入Ajax架构和最佳实践》读书笔记

在Web开发中&#xff0c;因为Ajax是前端和后台交互的主要方式之一&#xff0c;其他的交互方式有Flash,Slverlight。特别是网页游戏&#xff0c;大多数还是采用Flash&#xff0c;一方面可以使用ActionScript来编写代码&#xff0c;虽然ActionScript也是根据ECMAScript规范来实现…