免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3772 | 回复: 3
打印 上一主题 下一主题

[网络] 求解 经受时延的ACK [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-25 23:24 |只看该作者 |倒序浏览
TCP/IP协议详解中有这样一段 (十九章)

19.3    经受时延的确认
把从bsdi发送到 srv4的7个ACK标记为经受时延的 ACK。通常 TCP在接收到数据时并不 立即发送 ACK;相反,它推迟发送,以便将 ACK与需要沿该方向发送的数据一起发送(有时 称这种现象为数据捎带 ACK)。绝大多数实现采用的时延为 200 ms,也就是说, TCP将以最大200 ms 的时延等待是否有数据一起发送。
如果观察 bsdi接收到数据和发送 ACK之间的时间差,就会发现它们似乎是随机的: 123.5、65.6、109.0、132.2、42.0、140.3和195.8 ms 。相反,观察到发送 ACK的实际时间(从 0开始) 为: 139.9、539.3、940.1、1339.9、1739.9、1940.1和2140.1 ms (在图 19-3中用星号标出)。 这些时间之间的差则是200 ms 的整数倍,这里所发生的情况是因为 TCP使用了一个 200 ms 的 定时器,该定时器以相对于内核引导的 200 ms 固定时间溢出。由于将要确认的数据是随机到 达的(在时刻 16.4, 474.3, 831.1 等),TCP在内核的 200 ms 定时器的下一次溢出时得到通知。 这有可能是将来 1~200 ms 中的任何一刻。

这里面的时间“ 139.9、539.3、940.1、1339.9、1739.9、1940.1和2140.1 ms (在图 19-3中用星号标出)。 这些时间之间的差则是200 ms 的整数倍”是怎么计时的,200ms不是从收到数据后开始计时么,既然收到数据的时间是随机的那么每次发送ACK时间间隔为什么会是200ms的整数倍啊  求解释啊  

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
2 [报告]
发表于 2013-12-27 10:33 |只看该作者
回复 1# bjutslg
我觉得这段话解释的很清楚。
200毫秒的定时器是相对于上一次溢出时,而不是收到数据时。

   

论坛徽章:
0
3 [报告]
发表于 2013-12-27 15:37 |只看该作者
哦哦,好像明白了,是不是这样:定时器每200ms一个循环,如果在这200ms内某个时刻收到数据的话,就等到这个200ms结束时发送ACK,计时器再从0开始计时 对吧?回复 2# 井蛙夏虫


   

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
4 [报告]
发表于 2013-12-30 19:34 |只看该作者
回复 3# bjutslg
我是这样理解的

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP