• TCP报文格式


    1、源端口(Source Port):发送方的TCP端口号;

    2、目的端口(Destination port):接收方的端口号;

    3、序号(Sequence Number):该报文数据在发送方的数据流中的位置,使用当前时间值计算出一个数值作为起始序号;

    4、确认号(Acknowledgment Number):包含发送确认的一端所期望接收到的下一个序号。因此,确认序号应该是上次已成功收到的数据字节序列号加1(也就是序号+1)。

    5、首部长度(Data Offset):表示TCP报文首部信息的长度。由于首部可能含有选项内容,因为TCP首部的长度是不确定的。首部长度指示了数据区在报文段中的起始偏移值。没有任何选项字段的TCP头部长度为20字节,做多可以有60字节的TCP头部。

    6、保留(Reserved):6位保留字段,值通常为0;

    7、标志位:占6比特。各比特的含义如下:

    ◆URG:紧急指针(urgent pointer)有效。

    ◆ACK:确认序号有效。

    ◆PSH:接收方应该尽快将这个报文段交给应用层。

    ◆RST:重建连接。

    ◆SYN:发起一个连接。

    ◆FIN:释放一个连接。

    8、窗口(window):占16比特。此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。例如Windows size=3, 表示一次可以发送三个数据包。

    9、校验和(CheckSum):占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。

    10、     紧急指针(Urgent Pointer):如果TCP通信中,一方有紧急的数据需要尽快发送给接收方,并且让接收方的TCP协议尽快通知相应的应用程序,可以将URG置位,并通过紧急指针指示紧急数据在报文段中的结束位置。占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

    11、     选项(可选)(Options):填充字段:占32比特。可能包括"窗口扩大因子"、"时间戳"等选项。

    12、     填充(Padding):为了使选项字段对齐32位,可能采用若干位0作为填充数据。

    13、     数据(Data):应用程序的数据。

  • 相关阅读:
    学习Mybatis中的一对多表关联
    学习Mybatis中的一对一表关联
    学习Mybatis中的动态sql
    学习Mybatis中的约定大于配置、数据库配置优化、定义别名、类型处理器、resultMap和parameterType
    第八周进度
    构建之法阅读笔记07
    正则表达式
    梦断代码之阅读笔记02
    顶会热词统计
    本周进度
  • 原文地址:https://www.cnblogs.com/laoxia/p/7736814.html
Copyright © 2020-2023  润新知