由4比特构成,表示标识IP首部的版本号。IPv4的版本号即为4。
版本 | 简称 | 协议 |
---|---|---|
4 | IP | Internet Protocol |
5 | ST | ST Datagram Mode |
6 | IPv6 | Internet Protocol version 6 |
7 | TP/IX | TP/IX:The Next Internet |
8 | PIP | The P Internet Protocol |
9 | TUBA | TUBA |
由4比特构成,表明IP首部的大小,单位为4字节(32比特)。对于没有可选项的IP包,首部长度则设置为“5”。也就是说,当没有可选项时,IP首部的长度为20字节(4x5=20)。
由8比特构成,用来表明服务质量。每一位的具体含义如下:
比特 | 含义 |
---|---|
0 1 2 | 优先度 |
3 | 最低延迟 |
4 | 最大吞吐 |
5 | 最大可靠性 |
6 | 最小代价 |
(3~6) | 最大安全 |
7 | 未定义 |
这个值通常由应用指定。不过由于TOS控制变得极其复杂。这也导致TOS整个互联网几乎就没有被投入使用。不过已有人提出将TOS字段本身再划分为DSCP和ECN两个字段得建议。
DSCP(Differential Services Codepoint,差分服务代码点)是TOS(Type Of Service)的一部分。现在统称为DiffServ,用来进行质量控制。
如果3~5位的值为0,0~2位则被称作类别选择代码点。这样就可以像TOS的优先度那样提供8种类型的质量控级别。对于每一种级别所采用的措施则由提供DiffServ的运营管理者制定。为了与TOS保持一致,值越大优先度越高。
ECN(Explicit Congestion Notification,显式拥塞通告)用来报告网络拥堵情况,由两个比特构成。
比特 | 简称 | 含义 |
---|---|---|
6 | ECT | ECN-Capable Transport |
7 | CE | Congenstion Experienced |
第6位的ECT用以通告上层TCP层协议是否处理ECN。当路由器在转发ECN为1的包过程中,如果出现网络拥堵的情况,就将CE位设置为1。
表示IP首部与数据部分合起来的总字节数。该字段长16比特。因此IP包的最大长度为65535(=2^16-1)字节。
由16比特构成,用于分片重组。同一个分片的标识值相同,不同分片的标识值不同。通常,每发送一个IP包,它的值也逐渐递增。此外,即使ID相同,如果目标地址、源地址或协议不同的话,也会被认为是不同的分片。
由3比特构成,表示包被分片的相关信息。每一位的具体含义如下:
比特 | 含义 |
---|---|
0 | 未使用。现在必须是0 |
1 | 指示是否进行分片(don't fragment) 0-可以分片 1-不能分片 |
2 | 包被分片的情况下,表示是否为最后一个包(more fragment) 0-最后一个分片的包 1-分片中段的包 |
由13比特构成,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对应的值为0.由于FO域占13位,因此最多可以表示8192(=2^13)个相对位置。单位为8字节。因此最大可表示原始数据8x8192=65536字节的位置。
由8比特构成,它最初的意思是以秒为单位记录当前包在网络上应该生存的期限。然而,在实际中它是指可以中转多少个路由器的意思。每经过一个路由器,TTL会减少1,直到变成0则丢弃该包。
由8比特构成,表示的是IP包传输层的上层协议编号。目前常使用的协议如下:
分配编号 | 简称 | 协议 |
---|---|---|
0 | HOPOPT | IPv6 Hop-by-Hop Option |
1 | ICMP | Internet Control Message |
2 | IGMP | Internet Group Management |
4 | IP | IP in IP(encapsulation) |
6 | TCP | Transmission Control |
8 | EGP | Exterior Gateway Protocol |
9 | IGP | any private Internet gateway(Cisco IGRP) |
17 | UDP | User Datagram |
33 | DCCP | Datagram Congestion Control Protocol |
41 | IPv6 | IPv6 |
43 | IPv6-Route | Routing Header for IPv6 |
44 | IPv6-Frag | Fragment Header for IPv6 |
46 | RSVP | Reservation Protocol |
50 | ESP | Encap Security Payload |
51 | AH | Authentication Header |
58 | IPv6-ICMP | ICMP for IPv6 |
59 | IPv6-NoNxt | No Next Header for IPv6 |
60 | IPv6-Opts | Destination Options for IPv6 |
88 | EIGRP | EIGRP |
89 | OSPFIGP | OSPF |
97 | ETHERIP | Ethernet-within-IP Encapsulation |
103 | PIM | Protocol Independent Multicast |
108 | IPComp | IP Payload Compression Protocol |
112 | VRRP | Virtual Router Redundancy Protocol |
115 | L2TP | Layer Two Tunneling Protocol |
124 | ISIS over IPv4 | ISIS over IPv4 |
132 | SCTP | Stream Control Transmission Protocol |
133 | FC | Fibre Channel |
134 | RSVP-E2E-IGNORE | RSVP-E2E-IGNORE |
135 | Mobility Header(IPv6) | Mobility Header(IPv6) |
136 | UDPLite | UDP-Lite |
137 | MPLS-in-IP | MPLS-in-IP |
由16比特(2个字节)构成,也叫IP首部校验和。该字段只校验数据报的首部,不校验数据部分。它主要用来确保IP数据报不被破坏。校验和的计算过程,首先要将该校验和的所有位置设置为0,然后以16比特为单位划分IP首部,并用1补数计算所有16位字的和。最后将所得到这个和1补数赋给首部校验和字段。
由32比特(4字节)构成,表示发送端IP地址。
由32比特(4字节)构成,表示接收端IP地址。
长度可变,通常只在进行实验或诊断时使用。该字段包含如下几点信息:
a、安全级别
b、源路径
c、路径记录
d、时间戳
也称作填补物。在有可选项的情况下,首部长度可能不是32比特的整数倍。为此,通过向字段填充 0,调整为32比特的整数倍。
存入数据。将IP上层协议的首部也作为数据进行处理。