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

IPv4头部和IPv6头部

  IPv4和IPv6是互联网协议(IP)中的两个主要版本,它们在数据包头部(Header)结构上存在显著差异。以下是IPv4头部和IPv6头部的主要结构和区别:

IPv4头部结构

  IPv4(Internet Protocol Version 4)的头部较为复杂,长度可变,最小为20字节,最大为60字节。IPv4头部包含以下主要字段:

  1. Version(版本号):4位,表示协议版本号,IPv4的值为4。
  2. Header Length(头部长度):4位,IHL表示IPv4头部的长度,单位为32位字(即4字节)。
  3. Differentiated Services Code Point(区分服务字段,DSCP):用于标识服务类别(服务等级),实现基于优先级的流量控制和QoS(服务质量)。不同的DSCP值定义不同的流量优先级,如AF(Assured Forwarding,保证转发)和EF(Expedited Forwarding,加速转发)。
    常见DSCP值:
  • 000000: Best Effort(默认,尽力而为服务)
  • 001010: AF11(保证转发1类,低)
  • 101110: EF(加速转发,通常用于实时通信)
  1. Explicit Congestion Notification(显示拥塞通知,ENC):ECN位用于标记网络中的拥塞情况,支持主动拥塞通知而不丢弃数据包。
  • 00: Non-ECN Capable Transport(不支持ECN)
  • 01: ECN Capable Transport (ECT(0))(支持ECN,未检测到拥塞)
  • 10: ECN Capable Transport (ECT(1))(支持ECN,未检测到拥塞)
  • 11: Congestion Experienced(检测到拥塞)
  1. Total Length(总长度):16位,表示整个IP数据包(包括头部和数据部分)的总长度,单位为字节,所以IPv4数据报的最大长度(包括头部)为65535字节。通过这个字段和IHL字段,可以知道数据报的数据部分从哪里开始,以及他的场长度。
  2. Identification(标识):16位,用于标识分片的数据包。
  3. Flags(标志位):3位,包含用于分片的标志信息,如“不分片”和“更多分片”。
  4. Fragment Offset(分片偏移量):13位,表示数据包分片后每片在原始数据中的位置。
  5. Time to Live(生存时间,TTL):8位,表示数据包可以在网络中传输的最大跳数。即一个数据报可经过的路由器数量上限。发送方将该值初始化为某个值(一般建议64),每台路由器在转发数据报时将该值减1。当这个字段值达到0时,该数据报被丢弃,并使用一个ICMP消息通知发送方。
  6. Protocol(协议):8位,指定上层协议类型,表示数据报有效载荷部分的数据类型。 如TCP(6)或UDP(17)。
  7. Header Checksum(头部校验和):16位,用于验证IPv4头部的完整性。初始值设置为0,之后对头部字段计算16位二进制反码和。
  8. Source Address(源地址):32位,表示发送端的IPv4地址。
  9. Destination Address(目的地址):32位,表示接收端的IPv4地址。
  10. Options(选项):可选字段,长度可变,用于携带额外的控制信息。

IPv6头部结构

  IPv6(Internet Protocol Version 6)的头部比IPv4简单,固定为40字节,减少了处理开销。IPv6头部包含以下主要字段:

  1. Version(版本号):4位,表示协议版本号,IPv6的值为6。
  2. Traffic Class(流量类别):8位,用于定义数据包的优先级和QoS。
  3. Flow Label(流标签):20位,用于标识需要特殊处理的数据流(如实时服务)。
  4. Payload Length(有效载荷长度):16位,表示数据部分的长度(不包含头部),单位为字节。
  5. Next Header(下一个头部):8位,指示数据包中下一个扩展头部或上层协议类型(如TCP或UDP)。
  6. Hop Limit(跳数限制):8位,类似于IPv4中的TTL字段,表示数据包可以传输的最大跳数。
  7. Source Address(源地址):128位,表示发送端的IPv6地址。
  8. Destination Address(目的地址):128位,表示接收端的IPv6地址。

IPv4与IPv6头部的主要区别

  • 地址长度:IPv4使用32位地址,IPv6使用128位地址。
  • 头部长度:IPv4头部长度可变(20-60字节),IPv6头部长度固定为40字节。
  • 分片处理:IPv4头部包含分片相关字段(标识、标志位、分片偏移量),IPv6将分片处理移至扩展头部。
  • 校验和:IPv4头部包含校验和字段,IPv6取消了校验和,减轻了路由器处理负担。
  • 扩展性:IPv6通过扩展头部简化了基本头部,增强了灵活性,而IPv4需要通过“选项”字段扩展功能。
      IPv6头部结构更加简洁,设计目标是提高效率并简化路由设备的处理。IPv4则更为复杂,主要为了适应早期网络环境下的灵活需求。

http://www.mrgr.cn/news/55608.html

相关文章:

  • Lua中的goto语句
  • ZYNQ:流水灯实验
  • .net framework3.5sp1runtime组件怎么开启
  • Python Web 框架中 Django 框架
  • Java面试题五
  • AB包资源管理器
  • CISP/NISP二级练习题-第一卷
  • c语言typedef的使用 Java短路逻辑运算符
  • Linux 查看进程内存占用的 6 种方法,建议点赞收藏备用,排查问题好帮手
  • 详解23种设计模式——第二部分:结构型模式
  • 计算机基础 -- 计算机补码的原理
  • 数据库中`cast(x as type)` 或 `convert(type, x)` 函数的处理
  • Git合并多个分支中的提交内容
  • 用PYTHON可视化分析热门MEMECOIN的代码思路参考。
  • boost搜索引擎
  • 边缘计算与联邦学习:探索隐私保护和高效数据处理的结合
  • 关于技术管理者的一些思考
  • hashCode的底层原理
  • windows 上验证请求接口是否有延迟
  • 进程:消息队列