Sunset
1690 字
8 分钟
计算机网络 网络层
计算机网络 网络层
基本概念
- 网络层是第三层,也叫 IP层(主要考IP计算)
- 网络层提供灵活的、无连接的、尽最大努力交付的数据报服务
- 主要任务:把分组从通过路由选择与转发从远端传到目的端,为分组交换网上的不同主机提供通信服务
- 物联网可以由多种异构网络互相组成
IP数据报分片
基本概念
- IP数据报:首部20字节 + 数据部分3800字节
- 需要分片为不超过1420的数据报片
- 片偏移计算:片偏移 = 原始 offset / 8(每个单位代表8个字节)
分片示例
| 数据报 | 首部 | 总长度 | 标识 | MF | DF | 片偏移 |
|---|---|---|---|---|---|---|
| 原始数据报 | 20 | 3820 | 12345 | 0 | 0 | 0 |
| 数据报1 | 20 | 1420 | 12345 | 1 | 0 | 0 |
| 数据报2 | 20 | 1420 | 12345 | 1 | 0 | 175 |
| 数据报3 | 20 | 1020 | 12345 | 0 | 0 | 350 |
计算说明:片偏移 175 = 1400 / 8
IP地址分类
五类地址
| 类别 | 地址范围 | 前缀 | 主机号位数 |
|---|---|---|---|
| A类 | 1-126 | 0 + 主机号 | 24位 |
| B类 | 128-191 | 10 + 主机号 | 16位 |
| C类 | 192-223 | 110 + 主机号 | 8位 |
| D类(多播) | 223-239 | 1110 | - |
| E类(保留) | 240-255 | 1111 | - |
注意:在IP协议中采用组播的是 D类IP地址
私有IP地址
- 路由器对于私有IP地址的数据报一律不进行转发
| 地址类别 | 地址范围 | 网段个数 |
|---|---|---|
| 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 | 256 |
特殊IP地址
| 网络号 | 主机号 | 用途 | 例子 |
|---|---|---|---|
| 全0 | 全0 | 本网范围表示主机,路由表中表示默认路由 | 0.0.0.0 |
| 全1 | 全1 | 本网广播地址(路由器不会转发) | 255.255.255.255 |
| 特定值 | 全0 | 网络地址,表示一个网络 | 某B类地址,172.17.0.0 |
| 特定值 | 全1 | 直接广播地址,对特定网络上的所有主机进行广播 | 某B类地址,172.17.255.255 |
| 127 | 任何数 | 用于本地软件环回测试,被称为环回地址 | 127.0.0.1 |
NAT技术
- IPv4不够了,使用NAT节约IPv4的地址
- 安装了NAT软件的路由器叫 NAT路由器,至少有一个外部全球IP地址
子网掩码与子网划分
二进制运算基础
二进制转换为十进制
例如:110012^0 + 2^3 + 2^4 = 1 + 8 + 16 = 25十进制转换为二进制
例如:194194 / 2 = 97 余 097 / 2 = 48 余 148 / 2 = 24 余 024 / 2 = 12 余 012 / 2 = 6 余 06 / 2 = 3 余 03 / 2 = 1 余 11 / 2 = 0 余 1
按倒序连接:11000010计算题汇总
1. 已知主机IP地址和子网掩码,求网络号
- 公式:
网络号 = IP地址 AND 子网掩码 - 按位与规则:11为1,否则为0
IP: 192.168.10.34掩码: 255.255.255.0
进行按位与运算:11000000.10101000.00001010.0010001011111111.11111111.11111111.00000000 =11000000.10101000.00001010.00000000
转换为十进制:192.168.10.02. 已知主机IP和子网掩码,求子网数、每个子网最大主机数
- 公式:
- 子网位数 n = 掩码中从原网络类借来的 1
- 子网数 = 2ⁿ
- 主机位数 m = 0的数量
- 每个子网主机数 = 2ᵐ - 2
IP:192.168.1.10子网掩码:255.255.255.224
看子网掩码最后一位:224 = 11100000子网位数 = 3(3个1)主机位 = 5(5个0)
子网数 = 2^3 = 8每个子网最大主机数 = 2^5 - 2 = 303. 已知网络号,X位子网号,求子网掩码
- 方法:子网掩码 = 原网络掩码 + X个1
网络号:192.168.0.0(C类,原掩码 /24)子网号位数:X = 3
原掩码:11111111.11111111.11111111.00000000加3位: 11111111.11111111.11111111.11100000
最终得到:255.255.255.2244. 已知网络号,要分成X个子网,求子网掩码和IP地址范围
- 计算方法:
- 找最小 n,使 2ⁿ ≥ X
- 新掩码 = 原掩码 + n
- 步长 = 256 - 掩码最后一段
- 按步长划分子网
网络号:192.168.1.0要求:分成 6 个子网
n = 3(因为 2^3 = 8 > 6)子网掩码:11111111.11111111.11111111.11100000 = 255.255.255.224步长 = 256 - 224 = 32
子网划分结果:| 子网 | 网络地址 | 可用主机范围 | 广播地址 ||------|----------|--------------|----------|| 1 | 192.168.1.0 | .1 – .30 | .31 || 2 | 192.168.1.32 | .33 – .62 | .63 || 3 | 192.168.1.64 | .65 – .94 | .95 || 4 | 192.168.1.96 | .97 – .126 | .127 || 5 | 192.168.1.128 | .129 – .158 | .159 || 6 | 192.168.1.160 | .161 – .190 | .191 |5. 已知子网掩码,判断哪些IP属于同一子网
- 方法:IP AND 子网掩码 → 网络号,网络号相同则同一子网
子网掩码:255.255.255.192步长 = 256 - 192 = 64
IP1:192.168.1.70IP2:192.168.1.120
子网范围:0-63, 64-127, 128-191, 192-25570在64-127之间,120也在64-127之间因此属于同一子网公式总结
- 网络号 = IP AND 掩码
- 子网数 = 2ⁿ
- 主机数 = 2ᵐ - 2
- 步长 = 256 - 掩码
- 同一子网:网络号相同
无分类编址CIDR
出现背景
- B类地址很快分配完毕
- 路由表中的项目急剧增长
目的
- 节约IPv4的资源
方法
- 将多个子网聚合成一个较大的子网
- 叫做构成超网,或路由聚合
重要协议
ICMP(Internet Control Message Protocol)
- 属于:网络层协议
- 用途:差错报告和网络控制
- 不用于:传输用户数据
重要表述(常考)
- ICMP 是 IP 的辅助协议
- 封装在 IP 数据报中传输
ICMP的作用(必背)
- 差错报告:主机或路由器发现问题,通知源主机
- 网络诊断:如 ping、tracert
ICMP的封装位置
┌──────────────┐│ ICMP 报文 │└──────────────┘ ↓┌──────────────┐│ IP 首部 │└──────────────┘结论:ICMP不直接使用链路层,必须封装在IP数据报中
ICMP差错报告的”不发送规则”(高频考点)
以下情况不发送 ICMP 差错报文:
- 对 ICMP 差错报文本身
- 对广播地址或多播地址
- 对分片中的非首片
- 对特殊地址(如 127.x.x.x)
ping 的原理
- 使用 ICMP 回送请求(类型8)
- 对方返回 ICMP 回送应答(类型0)
- ping 能检测:
- 主机是否可达
- 网络是否连通
- 往返时延(RTT)
- ping 不是应用层协议
ARP协议
- 属于:数据链路层传输的协议
- 作用:解决下一跳去哪里的问题
- 使用广播的形式传输
工作过程
- 检查ARP高速缓存,有对应表则写入MAC帧
- 没有则用目的MAC地址为
FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组 - 同一局域网所有主机都能收到这个请求
- 写入ARP缓存中
RARP协议
- 完成主机或路由器 MAC地址到IP地址 的映射
IGMP协议
- 如果周期性发送IGMP没有响应,那么认为这个组是不活跃的
- 就不再发送给其他组播路由器
OSPF协议
- 域内路由协议
网络层设备
路由器
- 主要工作在网络层
- 负责路由选择与转发