免费注册 查看新帖 |

Chinaunix

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

TCP的本次握手为什么是ACK+1而不是SYN+1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-22 15:55 |只看该作者 |倒序浏览
TCP正常的三次握手过程:1主动方发SYN1 .2被动方回ACK1(SYN1 + 1) +SYN2 .3主动方回ACK2(SYN2 +1).在这个过程中为什么ACK=SYN+1而不是 ACK=SYN,下次传输的时候SYN=SYN+1。这种方案更容易想到才对,我记得好几年前看过一篇帖里提到过这个方案有BUG,我想了很久都没有合理的答案,在网上也没有找到答案,望高人指点。

论坛徽章:
0
2 [报告]
发表于 2012-02-22 17:04 |只看该作者
这个表示期待接受下个包得序号吧。只是数据部分为0 ,所以才加1吧

论坛徽章:
0
3 [报告]
发表于 2012-02-23 13:33 |只看该作者
回复 2# xnmpnet
问题就在这里,为什么是表示期待接收的序号而不是当前已经接收的序号

   

论坛徽章:
0
4 [报告]
发表于 2012-02-23 14:00 |只看该作者
我觉得,表示期待的序列号实际上表示该序列号之前的所有数据包都已经收到,TCP提供的确认机制,可以在通信过程中可以不对每一个TCP数据包发出单独的确认包(Delayed ACK机制),而是在传送数据时,顺便把确认信息传出,这样可以大大提高网络的利用率和传输效率。同时,TCP的确认机制,也可以一次确认多个数据报,例如,接收方收到了201,301,401的数据报,则只需要对401的数据包进行确认即可,对401的数据包的确认也意味着401之前的所有数据包都已经确认,这样也可以提高系统的效率。

参见:http://www.xnmp.net/forum.php?mo ... &extra=page%3D1

论坛徽章:
0
5 [报告]
发表于 2012-02-23 18:55 |只看该作者
回复 4# xnmpnet


   跟效率没有关系,确认401-1效率一样

论坛徽章:
0
6 [报告]
发表于 2012-02-24 14:08 |只看该作者
好问题, 从来都是知道是这么做的, 没想过, 今天也好好想想.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP