计算机网络笔记(二十)——4.2网际协议IP
4.2.1 虚拟互连网络
虚拟互连网络(Virtual Interconnected Network)指通过统一的网络层协议(如 IP 协议),将不同物理网络在逻辑上互联为一个整体。其目标是屏蔽底层异构网络的差异(如物理介质、数据链路层协议),使上层应用无需关心具体物理网络的细节。
核心思想
- 统一寻址:
- 用全局唯一的 IP 地址 替代物理网络地址(如 MAC 地址),使不同网络的设备可通过统一的逻辑地址通信。
- 路由器转发:
- 通过 路由器 在不同网络间转发数据包,基于 IP 地址进行路由选择。
- 协议封装:
- 将高层数据封装为统一的 IP 数据报,适配不同底层网络的帧格式和传输要求。
关键组件
- IP 协议:
- 提供统一的虚拟网络层,使跨网络通信透明化。
- 路由器:
- 在不同网络间转发数据包,维护路由表以确定最佳路径。
- IP 地址:
- 全局分配的地址,标识网络接口,如
192.168.1.1
。
- 全局分配的地址,标识网络接口,如
工作流程
为什么要虚拟互连?
- 异构网络兼容:
- 不同网络的物理层和数据链路层可能完全不兼容(如以太网、Wi-Fi、卫星通信),IP 层将它们抽象为统一接口。
- 简化上层协议:
- 应用层和传输层无需处理底层网络的差异,专注于数据传递逻辑。
示例:跨网络通信
假设主机 A(IP: 10.1.1.2
,以太网)需和主机 B(IP: 172.16.2.5
,Wi-Fi)通信:
- 封装:
- 主机 A 将数据封装为 IP 数据报(源 IP:
10.1.1.2
,目标 IP:172.16.2.5
)。
- 主机 A 将数据封装为 IP 数据报(源 IP:
- 路由:
- 通过路由器查找目标网络,逐跳转发。
- 解封装:
- 数据最终到达主机 B,移除 IP 头并提交给传输层。
网络拓扑图
关键总结
- 虚拟互连网络通过 IP 协议屏蔽物理差异,实现跨网络通信。
- 路由器是虚拟网络的枢纽,负责根据 IP 地址选择最佳路径。
- IP 地址是逻辑核心,确保全局可达性与统一寻址。
4.2.2 IP地址
一、IP地址基本概念
IP地址(Internet Protocol Address)是给互联网上的每个网络设备分配的逻辑地址,用于实现网络间的通信和路由选择。IPv4地址长度为32位(4字节),IPv6地址长度为128位。
┌───────────────────────────────┐
│ IPv4地址:32位二进制 → 点分十进制表示 │
│ e.g. 11000000.10101000.00000001.01100101 → 192.168.1.101 │
└───────────────────────────────┘
二、IPv4地址分类(经典分类)
类别 | 首字节范围 | 结构 | 适用场景 | 有效网络数 | 每网络主机数 |
---|---|---|---|---|---|
A类 | 1-126 | 0+网络号(7b)+主机号(24b) | 超大型机构 | 126 | 16,777,214 |
B类 | 128-191 | 10+网络号(14b)+主机号(16b) | 中型企业 | 16,384 | 65,534 |
C类 | 192-223 | 110+网络号(21b)+主机号(8b) | 小型网络 | 2,097,151 | 254 |
D类 | 224-239 | 1110+多播地址 | 组播通信 | - | - |
E类 | 240-255 | 1111+保留 | 实验用途 | - | - |
三、特殊IP地址
四、子网划分与CIDR
子网掩码示例:
IP地址:192.168.1.100
子网掩码:255.255.255.0 → /24
网络地址:192.168.1.0
可用主机范围:192.168.1.1 ~ 192.168.1.254
广播地址:192.168.1.255
五、私有地址范围
六、IP地址分类图(结构)
七、IPv6简介(对比IPv4)
+-----------------+---------------------+
| 特征 | IPv4 | IPv6 |
+-----------------+---------------------+
| 地址长度 | 32位 | 128位 |
| 地址表示 | 点分十进制 | 冒分十六进制|
| 示例 | 192.168.1.1 | 2001:db8::1 |
| 是否支持自动配置 | 需要DHCP | 原生支持 |
+-----------------+---------------------+
4.2.3 IP地址与MAC地址
一、基础概念
-
IP地址:
- 定义:网络层标识符(逻辑地址),用于跨网络通信
- 版本:IPv4(32位)、IPv6(128位)
- 结构:
网络号.主机号
(可分层寻址) - 示例:
192.168.1.100/24
-
MAC地址:
- 定义:数据链路层标识符(物理地址),用于局域网通信
- 长度:48位(6字节)
- 结构:
厂商OUI(24位) + 设备编号(24位)
- 示例:
00:1A:2B:3C:4D:5E
二、核心区别
特征 | IP地址 | MAC地址 |
---|---|---|
层次性 | 分层结构(网络/主机) | 平面结构 |
作用范围 | 全局唯一 | 局域网唯一 |
修改性 | 动态分配(DHCP/NAT) | 固化在硬件中 |
协议层 | 网络层 | 数据链路层 |
三、ARP协议工作流程
场景:当主机A(IP 192.168.1.2)需要与主机B(IP 192.168.1.3)通信:
过程解析:
- ARP请求:广播查询目标IP的MAC地址
- ARP响应:目标主机单播响应携带MAC地址
- 缓存机制:维护ARP表(有效期15-20分钟)
四、典型案例分析
某路由器转发IP数据包时的地址变化:
关键要点:
- IP地址:全程保持不变(端到端)
- MAC地址:每经过一个数据链路层就改变
- 路由器作用:修改帧头MAC地址,转发至下一跳
五、关键问答
Q:为何需要同时使用IP与MAC地址?
A:
- 网络分层:IP解决跨网络路由,MAC解决链路层直连通信
- 地址分配:IP可动态管理,MAC永久硬件标识
- 工作范围:IP实现全球寻址,MAC限定本地网络通信
典型场景:访问www.example.com
时先DNS解析IP地址,再通过ARP获取网关MAC地址。
六、RARP协议拓展
- 作用:通过MAC地址反向查询IP地址(适于无盘工作站)
- 流程:广播MAC地址→ RARP服务器分配对应IP
4.2.4 地址解析协议ARP
一、ARP 的作用
ARP 是网络层协议(工作在网络层与数据链路层之间),将已知的 IP 地址解析为对应的 MAC 地址,解决同一局域网内设备通信时的地址映射问题。
二、为什么需要 ARP?
-
IP 与 MAC 的分工
- IP 地址:逻辑地址(网络层),负责跨网络的端到端寻址
- MAC 地址:物理地址(数据链路层),负责同一局域网内的直接通信
- ARP 的价值:在网络中传输数据时,直接通信需基于 MAC 地址,而应用程序使用的是 IP 地址。
-
典型案例
当主机 A 向同一子网的主机 B 发送数据时,数据链路层需要封装目标 MAC 地址,但 A 只知道 B 的 IP 地址,此时需 ARP 查询。
三、ARP 工作原理
流程图
分步说明
-
ARP 请求(广播)
-
主机 A 的 ARP 缓存表中没有 IP_B 的映射时,广播发送 ARP 请求包。
-
请求包内容:
发送方IP: IP_A 发送方MAC: MAC_A 目标IP: IP_B 目标MAC: FF-FF-FF-FF-FF-FF(广播地址)
-
-
ARP 响应(单播)
-
主机 B 收到请求,识别目标 IP 与自己一致,单播回复 ARP 响应。
-
响应包内容:
发送方IP: IP_B 发送方MAC: MAC_B 目标IP: IP_A 目标MAC: MAC_A
-
-
缓存更新
- 主机 A 收到响应后,将
IP_B → MAC_B
的映射存入 ARP 缓存表(有效期通常为 15–20 分钟)。
- 主机 A 收到响应后,将
四、关键机制解析
-
ARP 缓存表(ARP Cache)
-
作用:避免重复广播,提升效率。
-
查看命令(Linux/Windows):
arp -a # 显示所有 ARP 缓存条目 arp -d <IP> # 删除指定条目
-
-
代理 ARP(Proxy ARP)
- 场景:当目标主机位于不同子网时,路由器代替目标主机回应 ARP 请求。
- 流程:
- 主机 A 广播查询网关的 MAC 地址。
- 网关回应自己的 MAC 地址。
- 数据包的下一跳由网关转发。
-
免费 ARP(Gratuitous ARP)
- 作用:检测 IP 地址冲突或更新其他主机的 ARP 缓存。
- 特征:发送方的 IP 与目标 IP 字段相同。
五、ARP 报文格式
| 硬件类型 | 协议类型 | 硬件地址长度 | 协议地址长度 | 操作类型 |
|------------|------------|-------------|-------------|-------------|
| 发送方MAC地址 | 发送方IP地址 |
| 目标MAC地址 | 目标IP地址 |
- 操作类型:1(请求)、2(响应)
- MAC 地址字段:全0表示待解析。
六、常见攻击与防御
- ARP 欺骗(ARP Spoofing)
- 攻击者伪造虚假的 IP-MAC 映射,劫持流量。
- 防御方法:
- 静态 ARP 绑定(手动设置关键设备的 ARP 条目)。
- 动态 ARP 检测(DAI,网络设备自动监测异常 ARP 包)。
七、总结
ARP 通过广播查询和单播响应的方式解决 IP 到 MAC 的映射问题,是局域网通信的基础。理解 ARP 后,学习 ICMP、DHCP 等协议会更顺畅。
4.2.5 IP数据报的格式
IPv4数据报的格式由固定首部(20字节)和可变选项部分(最多40字节)组成
IPv4数据报格式
各字段详解
-
版本(Version - 4bit)
表示IP协议版本号,IPv4固定为0100
(二进制),对应十进制4
。 -
首部长度(IHL - 4bit)
以4字节为单位标识IP首部长度,取值范围5~15
(对应实际长度20~60字节)。 -
区分服务(TOS - 8bit)
用于QoS(服务质量),包含优先级(3bit)、延迟、吞吐量、可靠性、代价等标记。 -
总长度(Total Length - 16bit)
整个数据报的最大长度为65535字节
,包含首部和数据部分。 -
标识(Identification - 16bit)
分片时唯一标识同一原始数据报的分片,接收端通过此值重组报文。 -
标志(Flags - 3bit)
- 第1位(保留未用)
- 第2位(DF - Don’t Fragment):设置时禁止分片,若MTU不足则丢弃并返回ICMP错误。
- 第3位(MF - More Fragments):除最后一个分片外,其他分片此位均置1。
-
片偏移(Fragment Offset - 13bit)
以8字节为单位,标识分片在原始数据报中的位置。例如偏移值为185
表示分片起始位置为185*8=1480
字节。 -
生存时间(TTL - 8bit)
每经过一次路由减1,TTL=0时丢弃报文,防止循环。 -
协议(Protocol - 8bit)
上层协议类型:- TCP=
6
,UDP=17
,ICMP=1
。
- TCP=
-
首部校验和(Checksum - 16bit)
仅计算首部的错误校验,转发时每跳路由器重新计算。 -
源/目的IP地址(各32bit)
32位IPv4地址。 -
选项和填充(Options + Padding - 可变长度)
- 可选功能(如路由记录、时间戳)。
- 填充确保首部长度为4字节的倍数。
-
数据部分(Data)
包含上层协议数据(如TCP段或UDP数据报)。
分片示例(MTU=1500字节)
一个4000字节的原始数据报(数据部分3980字节)分片过程:
关键特性
- 标识与重组:同一报文的分片具有相同
标识
,接收端根据片偏移
重组。 - MTU限制:若数据报超过链路MTU且
DF=0
,则必须分片。 - 首部长度:固定首部20字节,选项最多40字节,总和不超过60字节。
通过学习IPv4数据报格式,可以深入理解网络分片、路由转发和协议交互机制。