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

【计算机网络】网络层数据包(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 支持


http://www.kler.cn/a/548875.html

相关文章:

  • 箭头函数(js)
  • 软件运维资料-系统移交运维计划(原件)
  • pandas(11 分类数据和数据可视化)
  • 仿叮咚买菜鸿蒙原生APP
  • AAOS Audio 快问快答,快速理解系统特点
  • 【第10章:自然语言处理高级应用—10.3 NLP在智能客服、舆情分析与情感倾向判断中的应用案例】
  • ECharts 实战指南:组件封装+地图轮廓高亮 + 自定义 Tooltip+轮播+锥形柱子
  • 【MODIS\VIIRS】h5文件信息查看python代码
  • Pytorch深度学习教程_3_初识pytorch
  • 基于AWS云平台的法律AI应用系统开发方案
  • 【iOS】包大小和性能稳定性优化
  • 如何测试和验证CVE-2024-1430:Netgear R7000 路由器信息泄露漏洞分析
  • 详细介绍:封装简易的 Axios 函数获取省份列表
  • 【云安全】云原生-K8S(四)安全问题分析
  • 【前端】自己从头实现一个gpt聊天页面
  • 用命令模式设计一个JSBridge用于JavaScript与Android交互通信
  • Visionpro 齿轮测量
  • DeepSeek-R1使用生存指南
  • Windows逆向工程入门之汇编位运算
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_cycle_t 类型