计算机网络——网络层协议分析
网络层——IPv4 协议
IPv4 概述
IPv4(Internet Protocol version 4)是第四版互联网协议,也是目前互联网中使用最广泛的网络层协议,用于为设备分配唯一的 IP 地址,实现网络中设备之间的通信。
主要特点
地址格式:32 位二进制表示,通常写作点分十进制,例如:
192.168.1.1
地址数量:理论上支持约 42 亿个地址(
) 组成部分:
- 网络号:标识网络
- 主机号:标识网络中的设备
子网划分:通过子网掩码划分网络和主机部分
IP地址:192.168.0.1
子网掩码:255.255.255.0 #CIDR格式 /24
无分类地址类型
公网地址:用于互联网通信
私有地址:用于局域网,如:
类别 IP 地址范围 最大主机数 私有 IP 地址范围 A 0.0.0.0 ~ 127.255.255.255 16777214 10.0.0.0 ~ 10.255.255.255 B 128.0.0.0 ~ 191.255.255.255 65534 172.16.0.0 ~ 172.31.255.255 C 192.0.0.0 ~ 223.255.255.255 254 192.168.0.0 ~ 192.168.255.255 特殊地址:
127.0.0.1
(本地回环)0.0.0.0
(表示任意地址)255.255.255.255
(广播)
IPv4 分类
[!tip]
IPv4 分类是已经淘汰的分类,和局域网没有任何关系。
现在的网络不再采用分类,均为 IP 地址 + 子网掩码。
类别 | IP 地址范围 | 最大主机数 / 用途 | 说明 |
---|---|---|---|
A | 0.0.0.0 ~ 127.255.255.255 | 16777214 | 大型网络 |
B | 128.0.0.0 ~ 191.255.255.255 | 65534 | 中型网络 |
C | 192.0.0.0 ~ 223.255.255.255 | 254 | 小型网络 |
D | 224.0.0.0 ~ 239.255.255.255 | 用于多播(Multicast) | 不用于主机分配 |
E | 240.0.0.0 ~ 255.255.255.255 | 保留地址 | 实验性/预留用途 |
公网 IP
- 公网 IP 均是由 ICANN 组织的 IANA 机构进行分配的。(查看)
头部格式
网络层——IPv6 协议
IPv6 概述
- IPv6(Internet Protocol version 6)是为解决 IPv4 地址耗尽问题设计的下一代网络层协议,使用 128 位地址,支持几乎无限的地址空间。
主要特点
地址格式:128 位,写作 8 组 16 位十六进制数,用冒号分隔(如
2001:0db8:0000:0000:0000:0000:0000:0001
),可省略前导零或连续全零段。地址数量:
,约 340 万亿亿亿个地址。 优势:
- 更大的地址空间。
- 自动配置(无状态地址自动配置,SLAAC)。
- 更好的路由效率和安全性(内置 IPSec 支持)。
IPv6 网段
[!note]
/20
是 IPv6 地址的网络前缀,表示前 20 位固定,后 108 位可自由分配。
- IPv4 的 CIDR 表示法(如
192.168.1.0/24
)与 IPv6 的/20
概念相同,但 IPv6 的前缀长度通常更小(即地址块更大)。
地址类型 | 前缀范围 | 用途 | 示例 |
---|---|---|---|
全球单播地址 (Global Unicast) | 2000::/3 | 公共互联网(类似 IPv4 的公网 IP),由 IANA 分配给 ISP | 2408:8200::/32(中国联通) |
2000::/16~3fff::/16 | 具体分配给各区域(如亚太、欧洲、北美等) | 2001:0db8::/32(文档示例) | |
唯一本地地址 (ULA, Unique Local Address) | fc00::/7 | 私有网络(类似 IPv4 的 10.0.0.0/8),不可路由到公网 | fd00:1234:5678::/48 |
链路本地地址 (Link-Local) | fe80::/10 | 同一链路内通信(自动配置,无需 DHCP),如局域网内设备通信 | fe80:: 1(本地接口) |
多播地址 (Multicast) | ff00::/8 | 一对多通信(如视频会议、服务发现) | ff02:: 1(所有节点) |
回环地址 (Loopback) | :: 1/128 | 本地回环测试(类似 IPv4 的 127.0.0.1) | :: 1 |
未指定地址 (Unspecified) | ::/128 | 表示 “无地址”(用于初始化或占位) | :: |
文档示例地址 (Documentation) | 2001:db8::/32 | 仅用于文档和示例(实际网络中不可用) | 2001:db8:1:1::/64 |
国内运营商 IPv6
运营商 | IPv6 地址前缀(典型范围) | 地址类型 | 备注 |
---|---|---|---|
中国电信 | 240e::/20 | 固定宽带/IDC | 全国统一分配 |
240e:100::/28 ~ 240e:7f0::/28 | 移动网络(4G/5G) | 各省可能不同 | |
中国移动 | 2409:8000::/20 | 固定宽带/IDC | 全国统一分配 |
2409:8000::/24 ~ 2409:8fff::/24 | 移动网络(4G/5G) | 各省可能不同 | |
中国联通 | 2408:8000::/20 | 固定宽带/IDC | 全国统一分配 |
2408:8000::/24 ~ 2408:8fff::/24 | 移动网络(4G/5G) | 各省可能不同 |
浏览器访问 IPv6
格式:将 IPv6 地址用
[]
括起来,后接端口(如有)。http://[2404:6800:4005:80c::200e]/
部分网站(如百度、京东等)已支持 IPv6,直接输入域名即可,浏览器会自动选择 IPv6 或 IPv4。
NAT 网络地址转换协议
概述
NAT(Network Address Translation)是一种将私有 IP 地址转换为公网 IP 地址的技术,用于缓解 IPv4 地址短缺问题。
功能
- 将私有 IP 地址(如
192.168.1.10
)映射到公网 IP 地址(如203.0.113.1
)。 - 允许多台设备共享一个公网 IP。
类型
- 静态 NAT:一对一固定映射。
- 动态 NAT:从公网 IP 池中动态分配。
- PAT(端口地址转换):多台设备通过不同端口共享一个公网 IP(也称 NAPT)。
应用场景
- 家庭/企业网络连接互联网。
- 隐藏内部网络结构,增强安全性。
NAT 转换
NAPT 网络地址转换协议
概述
NAPT(Network Address Port Translation)是 NAT 的一种形式,允许多个私有 IP 通过端口号复用一个公网 IP。
工作原理:
- 路由器维护一张 NAT 表,记录私有 IP: 端口到公网 IP: 端口的映射。
- 例如:
192.168.1.10:12345
映射到203.0.113.1:54321
。
优劣
优势:
- 最大化公网 IP 利用率。
- 支持大规模设备接入。
局限性:
- 可能影响某些需要固定端口的协议(如 P2P 应用)。
- 端口号耗尽可能导致连接失败。
NAPT 转换
网络层——ICMP 协议
[!tip]
关闭 TUN(虚拟网卡模式),否则在用 Wireshark 抓包时,会抓取到虚拟的 IP。
ICMP 概述
ICMP(Internet Control Message Protocol)是网络层协议,用于诊断和错误报告,常用于网络故障排查。
功能:
- 错误报告:如目标不可达、超时。
- 诊断:如 Ping(回显请求/响应)、Traceroute(跟踪路由)。
常见消息类型:
消息类型 内容 种类 0 回送应答 (Echo Reply) 查询 报文类型 3 目标不可达 (Destination Unreachable) 差错 报文类型 4 原点抑制 (Source Quench) 差错 报文类型 5 重定向或改变路由 (Redirect) 差错 报文类型 8 回送请求 (Echo Request) 查询 报文类型 11 超时 (Time Exceeded) 差错 报文类型
高低地址与大小端
高低地址:
- 低地址:内存中较小的地址值(如
0x1000
)。 - 高地址:内存中较大的地址值(如
0x1001
)。 - 网络协议(如 ICMP)通常使用大端序,确保跨平台一致性。
- 低地址:内存中较小的地址值(如
大小端(Big-Endian vs Little-Endian):
大端序(BE):高位字节存储在低地址(如网络字节序,TCP/IP 使用)。
小端序(LE):低位字节存储在低地址(如大多数现代 CPU)。
示例:数值
0x1234
在内存中:- 大端:
12 34
- 小端:
34 12
- 大端:
ICMP 抓包示例
使用 Wireshark 捕获 Ping 数据包:
- 输入过滤规则
icmp
。 - 运行
ping
命令,观察 ICMP 回显请求/应答包。
网络层——ARP 协议
ARP 概述
ARP(Address Resolution Protocol)用于将 IP 地址解析为 MAC 地址,适用于局域网通信。
工作原理:
- 设备发送 ARP 请求(广播),询问目标 IP 的 MAC 地址。
- 目标设备响应其 MAC 地址。
- 发送方缓存 IP-MAC 映射,存储在 ARP 缓存表中,第二次访问,默认不再通过广播询问 mac 地址。
ARP 缓存:
存储 IP 与 MAC 地址的映射,减少重复请求。
查看/管理命令:
arp -a #查看ARP缓存表 arp -d #清除ARP缓存表,需管理员
抓包 ARP
[!note]
target mac address
是00:00:00
,表明是广播包。
- 打开 Wireshark,设置过滤规则
arp
。 - 以管理员权限运行
arp -d
清空缓存。 - 计算机立即广播 ARP 请求,Wireshark 捕获请求/响应包,显示 IP-MAC 映射。
ARP 欺骗攻击
- ARP(Address Resolution Protocol)用于将 IP 地址解析为 MAC 地址。ARP 欺骗 是一种网络攻击手段,攻击者通过伪造 ARP 响应包,欺骗目标设备将错误的 MAC 地址与 IP 地址绑定,从而劫持或监听流量。