目录
- IPv4 地址
- 全局地址和私有地址
- IP报文分片与重组
- IPv6
- IPv4首部
- IPv6首部
- DNS
- ARP
- ICMP
- DHCP
- NAT
- IP隧道
- 路由控制
1. IPv4 地址
- 描述:在连接到网络的所有主机中识别出进行通信的主机的目标地址,具有32 bit,由网络地址和主机标识组成,不同网段的网络地址不允许重复,同网段内的主机标识不允许重复,由子网掩码确定标识网络地址的比特位数,如192.168.1.10 /24组成如下:
| 192 | 168 | 1 | 10 | /24 |
|---|---|---|---|---|
| 11000000 | 10101000 | 00000001 | 00001010 | 255.255.255.0 |
- A类地址:网络地址为前8 bit,第1 bit为0,地址范围为0.---.---.--- ~ 127.---.---.---
| 0 | 7 bit | 8 bit | 8 bit | 8 bit |
|---|
- B类地址:网络地址为前16 bit,前2 bit为10,地址范围为128.0.---.--- ~ 191.255.---.---
| 1 | 0 | 6 bit | 8 bit | 8 bit | 8 bit |
|---|
- C类地址:网络地址为前24位,前2 bit为110,地址范围为192.0.0.--- ~ 223.255.255.---
| 1 | 1 | 0 | 5 bit | 8 bit | 8 bit | 8 bit |
|---|
- D类地址:网络地址为前32 bit,前3 bit为1110,地址范围为224.0.0.0 ~ 239.255.255.255
| 1 | 1 | 1 | 0 | 4 bit | 8 bit | 8 bit | 8 bit |
|---|
- 广播地址:用于在同一数据链路中相互连接的主机间发送数据,将IP地址中的主机地址全部设为1即为广播地址,广播分为本地广播和直接广播,本地广播指的是向同网段内的主机进行广播,会被路由器屏蔽,直接广播指的是向不同网段内的主机进行广播
- IP多播:用于将数据发送给特定组内的主机,使用D类地址进行多播,前四位为1110,后28位为多播的组编号
2. 全局地址和私有地址
-
私有地址:A类 10.0.0.0-10.255.255.255 网络数:1
B类 172.16.0.0-172.31.255.255 网络数:16
C类 192.168.0.0-192.168.255.255 网络数:255 - NAT技术:将私有IP与全局IP进行互换
3. IP报文分片与重组
- 描述:根据不同数据链路的MTU(最大数据大小)不同对IP报文进行分片,并在目标主机进行重组,路由器只进行分片而不进行重组
- IP报文分片:按照MTU大小对UDP或TCP爆粉进行分割,并在IP首部中设置片偏移字段,用于表示分片后IP报文的数据在UDP或TCP报文数据中的相对位置和该分片之后是否还有后续其他分片
- IP报文重组:根据IP首部中的片偏移字段,对数据进行重组操作
- 路径MTU:指从发送端到接收端之间不需要分片时最大的MTU大小,即路径中所有数据链路的最小MTU,这样只需要在发送端进行分片,路由器就可以不用参与分片
4. IPv6
- 描述:为了根本解决IPv4地址耗尽的问题而提出的标准化网络协议,长度为IPv4的4倍(128 bit),一般写成8个16 bit
- 全局单播地址:前64 bit为网络地址,网络地址由48 bit全局路由前缀和16 bit子网ID组成,后64 bit为接口ID,用作主机地址
| 48 bit | 16 bit | 64 bit |
|---|---|---|
| 全局路由前缀 | 子网ID | 接口ID(主机地址) |
- 链路本地单播地址:前10位为1111 1110 10,后面54位为0,最后64为接口ID,用作主机地址
| 10 bit | 54 bit | 64 bit |
|---|---|---|
| 1111 1110 10 | 0 | 接口ID(主机地址) |
- 唯一本地地址:前8位为1111 1101,后面40位为全局ID,随即决定,
| 7 bit | 1 bit | 40 bit | 16 bit | 64 bit |
|---|---|---|---|---|
| 1111 110 | 通常为1 | 随机决定 | 子网ID | 接口ID(主机地址) |
- 分片:只在发送端进行,最小MTU为1280字节
5. IPv4首部

IPv4首部
- 版本:4 bit,表示标识IP首部的版本号,IPv4的版本号为4,就位0100
- 首部长度:4 bit,标本IP首部的大小,单位为4字节,对于没有可选项的IP包,首部长度为5,即为4*5=20字节
- 区分服务:8 bit,用来进行质量控制
- 总长度:16 bit,表示IP首部与数据合起来的总字节数
- 标识:16 bit,用于分片重组,同一个包分片后的标识相同
- 标志:3 bit,表示包被分片的相关信息
| 1 bit | 1 bit | 1 bit |
|---|---|---|
| 0(固定为0) | 表示是否可以分片(0-可以分片,1-不能分片) | 表示是否为最后一个包(0-最后一个包,1-中间的包) |
- 片偏移:13 bit,用来标识被分片的片段相对于原始数据的位置,单位为8字节
- 生存时间:8 bit,指可以中转多少个路由器,每经过一个路由器TTL减1,直到变成0丢弃
- 协议:8 bit,表示IP首部的下一个首部属于哪个协议
- 首部校验和: 16 bit,用于校验IP首部
- 源地址:32 bit,发送端IP地址
- 目的地址:32 bit,接收端IP地址
- 可选项:长度可变,用于进行实验或诊断
- 填充:在有可选项的情况下,用于将IP首都填充至32的整数倍
- 数据:保存IP上层的数据
6. IPv6首部

IPv6首部
7. DNS
- 描述:管理域名和IP地址之间对应关系的系统
- 域名服务器:管理域名的主机和相应软件
- 解析器:进行DNS查询的主机和软件,比如用户的主机
8. ARP
- 描述:以目标地址为线索,来定位下一个应该接受数据分包的网络设备对应的MAC地址,即通过IP地址查询MAC地址,用以在数据链路层进行数据传输
- ARP请求:包含目标主机的IP地址、发送端IP地址和发送端MAC地址,通过广播的形式发送给本数据链路中的所有主机
- ARP响应:包含目标主机的MAC地址
- RARP:从MAC地址定位IP地址的协议,通过RARP服务器实现
9. ICMP:
- 描述:主要功能包括确认IP包是否成功送达目标地址、通知在发送过程中IP包被丢弃的具体原因,以及改善网络设置等,ICMP消息主要分为错误消息和查询消息两类
- 目标不可达消息:IP路由器无法将IP数据包发送给目标地址时,会给发送端返回一个目标不可达的ICMP消息
- 重定向消息:路由器发现发送端主机使用了次优的路径发送数据,就会返回一个ICMP重定向消息,消息中包含了最适合的路由信息和源数据
- 超时消息:当IP包中的TTL字段变为0时,路由器会返回一个ICMP超时消息
10. DHCP:自动设置IP地址、统一管理IP地址分配
- DHCP客户端通过广播发送DHCP发现包,要求设置IP地址和子网掩码
- DHCP服务器返回一个DHCP提供包,提供可以使用的网络设置
- DHCP客户端通过广播发送DHCP请求包,通知想要使用DHCP提供包中的设置
- DHP服务器再次返回一个DHCP提供包,通知允许使用前一个DHCP提供包中的设置
11. NAT
- 描述:用于本地网络中的私有地址到连接互联网时的全局IP地址的转换技术
12. IP隧道
- 描述:在网络层的首部后面继续追加网络层的首部的通信方法,用于在不同的网络中的传送数据,比如在IPv6数据包后面追加IPv4首部,以便在IPv4网络中传送IPv6数据包
13. 路由控制
- 描述:IP数据包通过路由器的存储转发功能,从而最终到达目标地址。所有主机都维护着一张路由控制表,该表记录了IP数据包在下一步应该发往的路由器
-
路由控制表:记录网络地址与下一步应该发送到的路由器的地址
静态路由 — 管理员设置好的并将路由信息固定的方法
动态路由 — 由路由协议在运行过程中自动地设置路由控制信息 - 默认路由:与路由控制表中无匹配项的被转发至默认路由
- 环回地址:127.0.0.1作为环回地址,被用于本机上的程序之间进行通信的地址,数据不会流向网络