IP协议
IP基础
IP地址分类
网络类别 | 最大网络数 | IP地址范围 | 最大主机数 | 私有IP地址范围 |
---|---|---|---|---|
A | 126 (2 ^ 7 - 2) | 1.0.0.0 - 126.255.255.255 | 2 ^ 24 - 2 | 10.0.0.0 - 10.255.255.255 |
B | 16384 (2 ^ 14) | 128.0.0.0 - 191.255.255.255 | 2 ^ 16 - 2 | 172.16.0.0 - 172.31.255.255 |
C | 2097152 (2 ^ 21) | 192.0.0.0 - 223.255.255.255 | 2 ^ 8 - 2 | 192.168.0.0 - 192.168.255.255 |
分配IP的主机地址不可为全0或全1:
主机地址全0只有在对应的网络地址或IP地址不可获知的情况下才使用.
主机地址全1的地址通常作为广播地址
特殊的IP地址
IP地址 | 作用 |
---|---|
255.255.255.255 | 这个地址指本网段内(同一广播域)的所有主机 |
0.0.0.0 | 表示所有不清楚的主机和目的网络的集合, 在路由器中表示默认路由 |
172.0.0.1 | 本机回路地址 |
169.254.x.x | DHCP故障时Windows自动分配的地址 |
广播地址
将IP地址中表示主机的地址设为全1, 就成了广播地址.
本地广播
例如网络地址在192.168.0.0 24位网络地址的情况下, IP地址192.168.0.255是本地广播地址, 该广播IP包会被路由器屏蔽, 不会到达该网段以外的链路上
直接广播
网络地址在192.168.0.0 24位网络地址的情况下, 向目标IP地址为192.168.1.255.的地址发送数据包 则收到这个包的路由器会将数据转给192.168.1.0, 从而让IP地址为192.168.1.X的主机能收到这个包.
IP报文分片和重组
数据链路不同, 其对应的MTU最大传输单元也不尽相同.
数据链路 | MTU |
---|---|
IP最大MTU | 65535 |
以太网 | 1500 |
PPP | 1500 |
PPPoE | 1492 |
IP最小的MTU | 68 |
对于过大的数据报无法在一个帧中发送完成, 因此路由器需要将大数据报分片发送, 且最后在目标主机对数据包进行重组.
IP数据报首部
版本(Version)
由4bit构成, 标识IP首部的版本号
版本号 | 简称 | 协议 |
---|---|---|
4 | IP | Internet Protocol |
6 | IPv6 | Internet Protocol version 6 |
首部长度(IHL)
由4bit构成, 表明IP首部的大小, 单位为4字节。
对于没有可选项的IP包,首部长度为5(5 * 4 = 20字节)。
区分服务(Type Of Service)
由8bit构成,表明服务的质量。
比特 | 含义 |
---|---|
0 1 2 | 优先级从低到高0~7 |
3 | 最低延迟 |
4 | 最大吞吐量 |
5 | 最大可靠性 |
6 | 最小代价 |
(3 ~ 6) | 最大安全 |
7 | 未定义 |
通过该字段可以设置服务优先级, 实现该种服务的叫QOS
总长度(Total Length)
表示IP首部于数据部分合起来的总字节数.
该字段长16比特, 因此IP包的最大长度为 2^16 = 65535字节
标识(ID)
由16比特组成, 用于分片重组. 同一个分片的标识值相同, 不同分片的标识值不同.
同一个分片不但标识值相同, 也要有相同的目标地址源地址和协议, 否则认为是不同的分片.
标志(Flags)
由3比特组成, 表示包被分片的相关信息,
比特 | 含义 |
---|---|
0 | 未使用, 现在必须是0 |
1 | 0 - 可以分片, 1-不可分片 |
2 | 0 - 最后一个分片的包, 1 - 分片中段的包 |
片偏移(Fragment Offset)
由13比特构成, 标识被分片的每一个分片相对于原始数据的位置. 第一个值为0.
占13位, 最多可以表示2^13 = 8192个相对位置.
生存时间(Time To Live)
由8比特构成, 指数据包可以中转多少个路由.
没经过一个路由器TTL的值减1. 减到0直接丢包.
协议(Protocol)
由8比特构成, 标识IP包传输层的上层协议号.
常用的协议编号
编号 | 简称 | 协议 |
---|---|---|
0 | HOPOPT | IPv6 Hop-by-Hop Option |
1 | ICMP | Internet Control Message |
2 | IGMP | Internet Group Management |
4 | IP | IP in IP |
6 | TCP | Transmission Control |
17 | UDP | User Datagram |
首部校验和(Header Checksum)
16比特构成, 校验数据报的首部, 确保其不被破坏.
源地址(Source Address)
由32比特构成, 表示发送端的IP地址
目标地址(Destination Address)
由32比特构成, 表示接收端IP地址
可选项(Options)
长度可变, 通常只在实验和诊断时使用
填充(Padding)
,通过在填充位加0来保证首部长度是32比特的整数倍
数据(DATA)
存入的数据, 包括IP上层的所有数据.