ipv4详解

  1. IP 传输尽量防止产生无限循环(通常会加入传递过程中的计数器,超过次数则会丢掉IP数据包)
  2. 如果IP 包太长 IP包则会分割 分别传输(因为有些网络无法传输太长的数据包,比如以太网)
  3. 使用 header checksum(头部校验)来减少数据包传递到错误的目的地
  4. IPV4 and IPV6
  5. 可以在头部添加新的字段(喜忧参半,增加特性,但是也增加了复杂程度)

IPv4 数据结构

请添加图片描述

以下是IPv4数据报头各字段的详细功能解析,按图中顺序从左到右(即从Bit 0到Bit 31的传输顺序)说明:


1. 版本(Version - 4位)

作用:标识IP协议版本(IPv4固定值为0100
细节:确保接收方能正确解析数据报格式。若设备不支持该版本则丢弃数据包。

2. 头部长度(Header Length - 4位)

作用:表示IP头部的长度(单位:32位字,即4字节)
细节:最小值为5(20字节无选项),最大值为15(60字节含选项)。因选项字段较少使用,常见值为5。

3. 服务类型(Type of Service - 8位)

作用:定义数据包的优先级和服务质量参数(如延迟、吞吐量、可靠性)
细节:实际使用中多被DiffServ(区分服务)或ECN(显式拥塞通知)机制替代。

4. 总包长度(Total Packet Length - 16位)

作用:指示整个IP数据报的长度(头+数据,单位:字节)
细节:最大值为65535字节,但受MTU限制(如以太网MTU通常为1500字节)。

5. 包ID(Packet ID - 16位)

作用:唯一标识同一数据包的所有分片(用于重组)
细节:发送主机为每个原始数据包分配唯一ID,分片时所有片段保留相同ID。

6. 标志(Flags - 3位)

关键位
DF(Don’t Fragment):置1时禁止分片(如用于路径MTU发现)
MF(More Fragments):置1表示后续还有分片(最后一个片段置0)

7. 片段偏移(Fragment Offset - 13位)

作用:指示当前分片在原始数据包中的位置(单位:8字节块)
示例:若偏移值为100,则该分片数据从原始包的800字节处开始。

8. 生存时间(Time to Live - 8位)

作用:限制数据包经过的最大路由器跳数(每经过一跳减1,归零则丢弃)
实际用途:防止环路,同时用于Traceroute工具实现。

9. 协议ID(Protocol ID - 8位)

作用:标识上层协议类型(如TCP=6, UDP=17, ICMP=1)
意义:告知接收方将数据交给哪个协议处理。

10. 校验和(Checksum - 16位)

作用:仅校验IP头部完整性(不包括数据部分)
计算方式:对头部每16位进行反码求和,接收方验证结果应为全1。

11. 源IP地址(32位)

作用:标识发送主机的逻辑地址
关键点:NAT设备会修改此字段以实现地址转换。

12. 目的IP地址(32位)

作用:标识接收主机的逻辑地址
路由依据:路由器根据此字段决定转发路径。

13. 选项(OPTIONS - 可变长)

可选功能:如记录路由(Record Route)、时间戳(Timestamp)等
现状:极少使用,因增加头部复杂度且可能被防火墙丢弃。

14. 填充(PAD - 可变长)

作用:确保IP头部长度是32位的整数倍(通过补0实现)

15. 数据(Data - 可变长)

内容:上层协议(如TCP/UDP)的报文
MTU限制:数据部分最大长度 = MTU - IP头长度(通常为1480字节)。


关键设计思想

  1. 分片控制:通过ID、标志、偏移实现大数据包的分片与重组。
  2. 生存管理:TTL机制兼顾防环与路径探测。
  3. 轻量校验:仅校验头部以平衡性能与可靠性。
  4. 灵活扩展:选项字段为协议演进预留空间(虽实际使用有限)。

如需进一步探讨某个字段的实际应用场景(如分片在VPN中的问题或TTL与Traceroute的关系),可具体说明!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值