TCP报文中的SYN, ACK, ISN

来源:互联网 发布:如何软件绘制横道图 编辑:程序博客网 时间:2024/05/27 21:10

        在网络分析中,读懂TCP序列号和确认号的值,可以帮助我们学习TCP协议以及排查问题,如通过查看序列号和确认号可以确定数据传输是否乱序。

        SYN:同步标志        同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把 TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。
        ACK:确认标志        确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。

        TCP协议工作在传输层,是一种可靠的面向连接的数据流协议。TCP之所以可靠,是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。响应包内也包括一个序列号,表示接收方准备好这个序列号的包。在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。另外,TCP通过数据分段中的序列号来保证所有传输的数据可以按照正常的顺序进行重组,从而保证数据传输的完整。

        TCP通讯中主要有连接的建立、数据的传输、连接的关闭三个过程。每个过程完成不同的工作,而且序列号和确认号在每个过程中的变化都是不同的。

        TCP建立连接,也就是三路握手,需要三步完成。发送第一个SYN的一端执行的是主动打开。而接收这个SYN并发回下一个SYN的另一端执行的是被动打开。过程大致如下:

        1. 客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号(ISN)是客户端随机产生的一个值,确认号是0; 

        2. 服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据包中,序列号(ISN)是服务器随机产生的一个值,确认号是客户端的初始序列号+1;

        3. 客户端收到这个同步确认数据包后,再对服务器进行一个确认。该数据包中,序列号是上一个同步请求数据包中的确认号值,确认号是服务器的初始序列号+1。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑开机卡在主板界面 电脑开机卡在欢迎界面 开机卡在主板logo 电脑卡在开机第一屏 电脑开机卡在logo界面 手机卡在开机画面怎么办 联想笔记本开机卡在lenovo界面 开机卡在正在启动windows iphone卡在开机界面 笔记本开机卡在欢迎界面 电脑开机一直卡在开机画面 电脑开机一直卡在欢迎界面 开机卡在主板界面 dell开机卡在logo 戴尔笔记本开机卡在logo界面 三星手机开机卡在开机画面 手机卡在开机界面 今晚3d开什么号 电脑开机打不开任何软件 电脑开机显示屏没反应 电脑开机一直显示正在启动 电脑开机屏幕没反应 电脑开机显示屏显示无信号 电脑开机后黑屏 电脑开机后不显示桌面 电脑开机后黑屏不显示桌面 电脑开机后打不开任何软件 电脑开机后一直显示正在启动 电视开机后屏幕不亮 电脑开机后蓝屏 电脑开机后显示屏没反应 电脑开机后显示屏显示无信号 海信电视开机后黑屏 开机后黑屏 开机后显示器没反应 笔记本电脑开机后黑屏 电脑待机后怎么开机 笔记本开机后黑屏只有鼠标 笔记本电脑开机后不显示桌面 电脑蓝屏后开机屏幕不亮 电脑开机后桌面没有任何图标