【TCP/IP 笔记】IPv4-02 | IPv4 报头详解

参考 <The TCP/IP Guide> http://tcpipguide.com


在这里插入图片描述

IPv4 数据报的一般格式

在这里插入图片描述

Version

用于标识生成该数据报的 IP 版本。对于 IPv4 这里的值为 4。

IHL (Internet Header Length)

以 32 比特为一个单位指出 IP 头的长度,包括选项和填补部分,当没有选项时这个值为 5。

TOS (Type Of Service)

携带 IP 数据报的服务质量特征信息,如优先传递,其含义后来被重新定义以供称为差异化服务 (Differentiated Services, DS) 的技术使用。

子字段长度 (bits)描述
Precedence3指示数据报的优先级,下面有八个定义的值,从最低到最高
Precedence 值优先级
000Routine
001Priority
010Immediate
011Flash
100Flash Override
101CRITIC/ECP
110Internetwork Control
111Network Control
D1如果需要低延迟传输则设为 1,否则为 0
T1如果需要更高吞吐量传输则设为 1,否则为 0
R1如果需要更可靠的传输则设为 1,否则为 0
Reserved2保留

TL (Total Length)

以字节 (byte) 为单位指出 IP 数据报的总长度。因为这个字段只有 16 bits 所以 IP 数据报的最大长度为 65,535 Bytes,实际上大多数都远小于这个上限。

Identification

这个字段的值对于属于同一数据报的碎片是相同的,这样接收方在重组时才能分辨哪些碎片是属于一个数据报的。

Flags

用来管理碎片。

子字段名称长度 (bits)描述
Reserved1保留
DF1值为 1 时表示该数据报不能被分片,因为分片操作对更高层的协议不可见,所以很多时候不会设置这个值。但也不是没用,常用与测试最大 MTU
MF1值为 0 时表示该数据报为最后一块碎片;值为 1 时表示后面还有若干数据报碎片。

Fragment Offset

当数据报被分片时,这个字段指出当前碎片在原数据报中的偏移量或位置,以 8 Bytes 为一个单位,第一个碎片的偏移量为 0。

TTL (Time To Live)

指出数据报允许在互联网中存活的时间,没经过一个路由器,路由器就会将这个值减 1,当这个值为 0 时路由器将丢弃该数据报不再转发。这其实是指出数据报的最多跳数而非时间。

Protocol

指出数据报中携带的更高层协议。

值(16 进制)值(10 进制)协议
000保留
011ICMP
022IGMP
033GGP
044IP-in-IP Encapsulation
066TCP
088EGP
1117UDP
3250Encapsulating Security Payload (ESP) Extension Header
3351Authentication Header (AH) Extension Header

Header Checksum

仅计算报头的校验和,以提供对传输中的损坏的基本保护,不对数据进行校验和。

Source Address & Destination Address

源地址和目标地址。

Options

每个 IP 选项都有自己的 子字段格式,下图和表表示通用选项格式:
在这里插入图片描述

子字段名称长度 (Bytes)描述
Option Type1这 8 bits 被分成如下三个子子字段
子子字段名称长度 (bits)描述
Copied1如果设为 1 则说明当数据报被分片时,这个选项要复制到所有分片中,反之设为 0
Option Class2指定可能的四个值中的一个,用于指示该选项所属的类别,实际上只有两个值被使用:0 表示控制选项 (Control Options);2 表示调试和测量。
Option Number5指定选项的种类,因为长度为 5 bits,所以每个类别的选项可以有 32 个种类
Option Length0 or 1以 Byte 为单位指出变长选项的长度,包括这里所说的三个子字段。
Option Data0 or Variable为变长选项提供,包含选项要发送的数据。
Option ClassOption NumberLength (Bytes)Option NameDescription
001End Of Options List只含有一个 0 Byte 的选项,用来标记选项列表的结尾。
011No Operation虚拟选项,用于内部填充,用于一些需要 32-bit 对齐的选项。
0211Security为军方提供的选项,用于指示 IP 数据报的安全分类。
03VariableLoose Source Route包含一个 IP 地址列表,用来指定数据报必须准确、按顺序使用所给 IP 地址列表的路由器到达终点,途中可以使用列表外的路由器做中间跳转。
07VariableRecord Route如果数据报含有这个选项,那么处理这个数据报的路由器会将自己的 IP 地址添加到这个选项中,这样接收方就可以提取地址列表查看数据报采用的路由。
因为这个选项的长度是由发送该数据报的设备设置的,它不会在路由途中增大,所以,如果在到达目的之前该选项已经填满,那么将只记录了部分路由。
09VariableStrict Source Route和 Loose Source Route 选项类似,但是不允许列表外的路由器做中间跳转。
24VariableTimestamp和 Record Route 选项类似,不同的是处理该数据报的路由器往选项里添加的是时间戳,这样接收方就可以知道数据报在各个路由器之间传输所用的时间。途中同样不能修改该选项的长度。
21812Traceroute用于 traceroute 程序的增强。

Padding

如果有选项,使得报头长度不为 32 bits 的倍数,就用 0 去填补,使得报头长度始终为 32 bits 的倍数。

Data

要传送的数据。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值