了解ISO七层模型的思想
- 需要传输的数据,越到底层,需要的“其他”数据越多。
- 其传输前的处理过程类似于:
- 每到下一层,理论上都需要增加一个头部用以标识
- wireshark抓包实践
TCP协议详解
- TCP报文段的格式
- 如图

- 报文段由报文首部和数据组成,报文首部最小占20字节最多占60字节,固定的20字节包含各种连接信息,可扩展的40字节存放各种选项值
- TCP报文首部的字段解析
- 序号
- 确认号
- 表示期望下次收到的序列号。比如服务器收到客户端发来的报文段,其序列号字段值为501,并通过计算可知数据长度为200,所以服务器可以算出最后一个字节的序列号为700。这表明服务器正确收到了客户端 发送的序列号到700为止的数据,因此,服务器期望下次收到的序列号 为701,并将其作为确认号放入应答报文段中
- 数据偏移
- 表示TCP报文段的第一个数据距离报文段起始处有多远。由于TCP报文段首部长度不确定,20到60字节不等,所以需要一个字段用于找到数据起始处
- 保留
- 控制位
- 用于说明报文段的性质,每个控制字段占1位。
- 用于在三次握手、四次挥手及平时的传输数据过程中。
- 窗口
- 表示发送该报文段的一方能够接收的字节数,用于控制对端发送数据的个数(控制对端滑动窗口)
- 检验和
- 用于检验报文段是否出错。发送方根据发送的报文段计算检验和填入报文段首部,接收方根据接收的报文段重新计算,如果不匹配,表明报文段出错
- 紧急指针
- 表示紧急数据的个数,因为报文段中可以既包含紧急数据也可以包含普通数据,该字段用于区分二者
- 只有紧急URG控制位置1时才有效
- 选项(长度可变)
- 长度可变, 最长为40字节,当没有使用选项字段时,TCP报文段首部共20字节。
- TCP选项比较常用的是MSS,即最大报文段长度。
- 需要注意的是MSS指的是数据的最大长度而不是TCP报文段长度。在将数据发送之前,会根据MSS将数据进行合理的切分,即单次发送的报文段中的数据不能超过MSS,所以MSS应该适当调大一些以降低网络中的报文段个数
- 填充
- 参考资料
来源:https://www.cnblogs.com/HelloGreen/p/11746305.html