1.ipv4的报头:
注意:ipv4的报头长度共有20个字节,数据包通过ipv4协议传输后,会进行封装和解封装:
封装:tcp/ip五层参考模型 应用层+网络层+传输层+数据链路层+物理层
网络层:tcp/udp
传输层:tcp/ip协议
数据链路层:mac地址表+lsc校验核
物理层:物理设备,如路由器,交换机
数据是自上而下进行封装和解封装 : mac地址表+tcp/ip协议+tcp/udp数据包+lsc校验核
ipv4报头各个数据详解
版本:用于标识生成该数据报的 IP 版本。对于 IPv4 这里的值为 4。
IHL (Internet Header Length)--头部长度
以 32 比特为一个单位指出 IP 头的长度,包括选项和填补部分,当没有选项时这个值为 5。
TOS (Type Of Service)--优先级和服务类型
携带 IP 数据报的服务质量特征信息,如优先传递,其含义后来被重新定义以供称为差异化服务 (Differentiated Services, DS) 的技术使用。
TL (Total Length)总长度
以字节 (byte) 为单位指出 IP 数据报的总长度。因为这个字段只有 16 bits 所以 IP 数据报的最大长度为 65,535 Bytes,实际上大多数都远小于这个上限。
Identification-标识
这个字段的值对于属于同一数据报的碎片是相同的,这样接收方在重组时才能分辨哪些碎片是属于一个数据报的。
Flags-标志
用来管理碎片。
Fragment Offset-片偏移
当数据报被分片时,这个字段指出当前碎片在原数据报中的偏移量或位置,以 8 Bytes 为一个单位,第一个碎片的偏移量为 0。
TTL (Time To Live)
指出数据报允许在互联网中存活的时间,没经过一个路由器,路由器就会将这个值减 1,当这个值为 0 时路由器将丢弃该数据报不再转发。这其实是指出数据报的最多跳数而非时间。
Protocol
指出数据报中携带的更高层协议。
Header Checksum--头部校验核
仅计算报头的校验和,以提供对传输中的损坏的基本保护,不对数据进行校验和。
Source Address & Destination Address
源地址和目标地址。
Options
每个 IP 选项都有自己的 子字段格式,