首页 > 代码库 > TCP传输中序号与确认序号的交互
TCP传输中序号与确认序号的交互
本实验通过SSH远程登录服务器,然后使用Wireshark抓包分析。开头的三次握手已经省略。关于序号的交互过程,需要记住一点:TCP首部中的确认序号表示已成功收到字节,但还不包含确认序号所指的字节,希望下一次能收到确认序号所指的字节。
当在远程登录软件上键入命令时,客户端便开始了数据的发送,TCP头如下:
初始化序列号ISN = 1,这个序列号是客户端对发送数据的一个标记,以1作为起始值。根据SSH包长度计算下一次将会发送的起始序号为65。确认序号为1表示我希望下次收到起始序号为1的TCP包。
服务器端返回的TCP头如下:
客户端想要序号1,那服务器就发送序号1,所以服务器发送的TCP包起始序号为1。同时,服务器又希望下一次收到起始序号为65的包,这和客户端下一次会发送起始序号为65的包完全吻合。
客户端发送的TCP头如下:
服务器要序号65,那我客户端这边就发送65。同时我希望下一次收到序号65。
服务器的TCP头如下:
服务器果然又满足客户端的要求返回65。同时希望获得序号129。
客户端和服务器两端反复进行这样的过程直至连接中断(见文章“四次握手终止连接”)。每一个TCP包头都在满足对方的需求同时希望对方会满足自己的需求...
参考:
《TCP/IP详解》 P172、P175.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。