TCP_报文格式解读

报文格式

在这里插入图片描述

header部分字段含义解析

固定字段

对于header中固定部分字段含义,见之前的blog《TCP报文分析》;
对部分字段含义补充说明

  • Data Offset:4bit,tcp header的长度,单位:32bit(4字节);RFC原文介绍:The number of 32-bit words in the TCP header. This indicates where the data begins. The TCP header (even one including options) is an integer multiple of 32 bits long.

Options部分字段解读

  • 长度计算: (DOffset-5)*32 (bit)

  • 数据结构,一般Option的格式为TLV;其中Kind为0、1的两个类型格式比较特殊;
    在这里插入图片描述

  • RFC文档中规定必须识别的类型

    • kind = 2,表示mss信息,在tcp握手阶段,SYN和SYN+ACK报文中会包含该信息进行协商
      在这里插入图片描述
  • 一些常用的Option

    • 其中SACK、Timestamps、Window Scale建议实现,用于提升TCP的性能
      在这里插入图片描述

抓包分析

TCP握手过程

syn报文

在这里插入图片描述

MSS为1460字节;
SACK permitted : 支持SACK机制,用于对收到的不连续数据段的确认
Window scale:窗口扩大系数为3,是2的指数,23=8;说明发送方可接收窗口大小为Window*2window scale = 29200 * 2^3 = 233600 字节;
Timesatmps,TSval:发送端发送的时间戳;TSecr:最近一次接收的报文中携带了TSval;
图片来源:https://zhuanlan.zhihu.com/p/612010050
图片来源:https://zhuanlan.zhihu.com/p/612010050

syn-ack报文

在这里插入图片描述
接收方接收窗口大小为:28960 * 2^7 = 3706880;

ack

在这里插入图片描述

补充信息说明

window scale的意义

在这里插入图片描述

SACK的意义

在这里插入图片描述

参考资料

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 08:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 08:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 08:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 08:40:02       18 阅读

热门阅读

  1. Vue实战(十):对数组数据的拆分和分组合并

    2023-12-07 08:40:02       39 阅读
  2. 有基础转Go语言学习笔记(2. 基本数据结构篇)

    2023-12-07 08:40:02       33 阅读
  3. C++的文件读写

    2023-12-07 08:40:02       45 阅读
  4. C++11改进观察者模式

    2023-12-07 08:40:02       33 阅读
  5. [leetcode 差分数组] 拼车 M

    2023-12-07 08:40:02       35 阅读
  6. ElasticSearch 查询优化手段有哪些?

    2023-12-07 08:40:02       31 阅读
  7. 持续集成部署-k8s-高级调度-亲和力

    2023-12-07 08:40:02       27 阅读
  8. 图论|841钥匙和房间

    2023-12-07 08:40:02       41 阅读
  9. 安全众测-内网渗透常用的工具和命令

    2023-12-07 08:40:02       41 阅读
  10. Android 消息分发机制解读

    2023-12-07 08:40:02       28 阅读
  11. html css样式选择器介绍

    2023-12-07 08:40:02       39 阅读