简析TCP 报文格式_报文格式


来源端口和目的端口就不用说了吧

串行号码: TCP协议时面向字节流的,在一个TCP连接中传送的每一个字节都按顺寻编号,这个顺寻就    

          是串行号码。它指出的是本报文段所发送的字节流的起始字节的序号。

确认号码:是期望收到对方下一个报文段的第一个数据字节的序号。

标题长度:即首部长度,但请注意,它的单位是32位字。

保留:留作今后使用,目前置为0。

标识符:6位中的每一位都是一个标志。

       紧急URG:当URG=1时,表示紧急指针字段有效。它告诉系统次报文段中有紧急数据,应尽

                快传送,相当于高优先级的数据。与紧急指针字段配合使用。

       确认ACK:当ACK=1时确认号码才有效。TCP规定,当连接建立后,所有的报文段ACK都置为1。

                也就是说,只有在连接阶段ACK才有可能为0。

       推送PSH:当俩个应用进程通信时,有时在一端的应用程序希望在键入一个命令后立即能够收

                到对方的响应。这种情况下,TCP就可以使用推送操作。

       复位RST: 当RST=1,表明TCP连接中出现 差错,必须释放链接,然后重新建立运输连接。

       同步SYN :在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文

                段。对方若同意建立连接,则在响应报文中使SYN=1,ACK=1。也就是说,当

                SYN=1,就是连接请求或连接接受报文。

       终止FIN: 用来释放一个连接。当FIN=1时,表明次报文段的发送方的数据已经发送完成

窗口:指的是发送本报文段的一方的接受窗口,即自己目前允许对方发送的数据量。

检验和:检验首部和数据

紧急指针:只在URG=1时才有意义,它指出报文段紧急数据的字节数。当紧急数据处理完,余下的数据

        就正常操作。

选项:  长度可变,最初规定的一种选项是最大报文段长度MSS。MSS太短会使传输效率过低,太长那么到了ip层又要分解成多个短数据报片,到终点又要重新装配成原来的TCP报文段,使传输开销增大。

由于ip数据报经历的路径是动态变化的,因此这条路径上确定的不需要分片的MSS,改走另一条路径就可能进行分片。最佳的MSS是很难确定的,因此在连接建立的过程中,双方都把自己能够支持的MSS写入这一字段,以后就按这个数值传送数据,俩个传送方向可以有不同的MSS值。若位填写,则默认值是536,加上20字节的TCP首部和20字节IP首部,正好是576字节,这正是规定的所有主机和路由能够处理的最小ip数据报长度。