当前位置: 首页 > news >正文

【计算机网络】网络层数据包(Packet)格式

在计算机网络中,数据包(Packet) 是网络层的协议数据单元(PDU),用于在不同网络之间传输数据。数据包的格式取决于具体的网络层协议(如 IPv4、IPv6 等)。以下是常见数据包格式的详细说明:


IPv4 数据包格式

IPv4(Internet Protocol version 4)是最常用的网络层协议,其数据包格式如下:

字段长度(比特)说明
版本(Version)4协议版本号,IPv4 为 4
头部长度(IHL)4IPv4 头部的长度(以 32 位字为单位),最小值为 5(20 字节)。
生存时间(TTL)8数据包的最大跳数,每经过一个路由器减 1,减到 0 时丢弃。
协议(Protocol)8指示上层协议类型(如 TCP 为 6,UDP 为 17)。
头部校验和(Header Checksum)16用于检测 IPv4 头部的传输错误。
源 IP 地址32发送方的 IP 地址。
目的 IP 地址32接收方的 IP 地址。
选项(Options)可变长度可选字段,用于支持扩展功能(如记录路由、时间戳等)。
填充(Padding)可变长度确保 IPv4 头部长度是 32 位的整数倍。
数据(Data)可变长度上层协议的数据(如 TCP 或 UDP 数据段)。
服务类型(ToS)8用于指示数据包的服务质量(QoS),包括优先级、延迟、吞吐量等。
总长度(Total Length)16数据包的总长度(包括头部和数据,以字节为单位),最大值为 65535 字节。
标识(Identification)16用于标识数据包,便于分片重组。
标志(Flags)3包含 3 个标志位:
- 保留位:必须为 0。
- DF(Don’t Fragment):禁止分片。
- MF(More Fragments):表示还有更多分片。
片偏移(Fragment Offset)13指示当前分片在原始数据包中的位置(以 8 字节为单位)。

IPv4 数据包的特点
  • 分片支持:如果数据包大小超过 MTU(最大传输单元),可以分片传输。
  • 校验和:仅校验头部,不校验数据部分。
  • 地址长度:使用 32 位 IP 地址。

** 其他网络层协议的数据包格式**

  • ICMP(Internet Control Message Protocol)
    用于传递控制消息(如 ping 请求和回复)。其数据包格式包括类型、代码、校验和和数据字段。

  • ARP(Address Resolution Protocol)
    用于将 IP 地址解析为 MAC 地址。其数据包格式包括硬件类型、协议类型、操作码、发送方和目标的 IP/MAC 地址。


扩展

IPv6 数据包格式

IPv6(Internet Protocol version 6)是 IPv4 的下一代协议,其数据包格式如下:

字段长度(比特)说明
版本(Version)4协议版本号,IPv6 为 6
流量类别(Traffic Class)8用于指示数据包的优先级和服务类型。
流标签(Flow Label)20用于标识同一流的数据包,便于 QoS 处理。
有效载荷长度(Payload Length)16数据部分的总长度(以字节为单位)。
下一个头部(Next Header)8指示下一个头部的类型(如 TCP 为 6,UDP 为 17)。
跳数限制(Hop Limit)8数据包的最大跳数,每经过一个路由器减 1,减到 0 时丢弃。
源 IP 地址128发送方的 IPv6 地址。
目的 IP 地址128接收方的 IPv6 地址。
数据(Data)可变长度上层协议的数据(如 TCP 或 UDP 数据段)。

IPv6 数据包的特点
  • 简化头部:固定长度为 40 字节,去除了 IPv4 中的选项和填充字段。
  • 无分片:分片由发送方处理,路由器不进行分片。
  • 地址长度:使用 128 位 IP 地址,解决了 IPv4 地址耗尽的问题。
  • 扩展头部:通过“下一个头部”字段支持扩展功能(如路由、分片、认证等)。

** IPv4 和 IPv6 数据包的比较**

特性IPv4IPv6
地址长度32 位128 位
头部长度可变长度(最小 20 字节)固定 40 字节
分片支持支持(由路由器和发送方处理)仅支持发送方分片
校验和包含头部校验和无头部校验和
QoS 支持通过 ToS 字段实现通过流量类别和流标签实现
安全性依赖外部协议(如 IPsec)内置 IPsec 支持

相关文章:

  • 全方位养生指南:打造健康生活蓝图
  • vue-plugin-hiprint (vue2
  • 文本表示方法
  • 什么是FCC认证
  • React echarts柱状图点击某个柱子跳转页面
  • QxOrm生成json
  • Django 创建表时 “__str__ ”方法的使用
  • buu-ciscn_2019_c_1-好久不见36
  • SpringBoot整合Email 邮件发送详解
  • Python经典游戏:植物大战僵尸(附源码!)
  • mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办
  • springboot整合modbus实现通讯
  • github用户名密码登陆失效了
  • SolidWorks速成教程P3-7【零件 | 第七节】——3D设计打印手机支架+草图文本草图图片材质与质量属性测量
  • TypeScript 面试题
  • 直线导轨尺寸参数
  • 在Autonomous DB中创建训练数据集
  • 机试刷题_数组中出现次数超过一半的数字【python】
  • Linux上Elasticsearch 集群部署指南
  • UE5中的四元数
  • 破题“省会担当”,南京如何走好自己的路?
  • 全国35城居民对公共服务满意度“打分”,上海多项指标居首
  • 陕西籍青年作家卜文哲爬山时发生意外离世,终年28岁
  • 文化厚度与市场温度兼具,七猫文学为现实题材作品提供土壤
  • 总书记回信二周年之际,上海如何将垃圾分类深度融入城市发展?
  • 世卫大会连续9年拒绝涉台提案