网络层(数据平面)
一、网络层提供的服务
1、虚电路服务
通讯前建立虚电路,发送前认为选择路径,所以分组沿着同一条虚电路。
特点:带宽固定
2、数据报服务
数据可能沿着不同路径传输
3、网络层的两个层面
数据层面:源主机到目标主机
控制层面:路由器之前传递路由信息
同一网段:直接交付
非同一网段:间接交付
路由器基本功能:不同网段数据的转发
4、互联网络与虚拟互联网络
二、IP协议
1、IP地址
1)IP地址概述
每一类地址都由两个固定长度的字段组成其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另个字段则是主机号 host-id,它标志该主机(或路由器)。
IP地址:网络号+主机号
32位(4字节)
点分十进制:每8个字节二进制转换成10进制,用.分隔
2)IP地址的分类
以ip地址第一位区分
- A类:1-126:默认255.0.0.0
- B类:128-191:默认255.255.0.0
- C类:192-223:默认255.255.255.0
- D类:224-239:多播/组播(一个地址代表一组)
- E类:240-254:科研保留
127.0.0.1:回环地址localhost
xxx.xxx.0.0:本网络(网段)
xxx.xxx.255.255:广播地址
192.0.0.0、128.0.0.0:未指派
3)IP地址的特点
IP地址是标志一个主机(或路由器)和一条链路的接口
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机。
由于一个路由器至少应当连接到两个网络,这样它才能将IP数据报从一个网络转发到另一个网络。因此一个路由器至少应当有两个不同的IP地址
用转发器、网桥或交换机连接起来的局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id(内网转发)
所有分配到网络号net-id的网络,无论范围大小都是平等的
2、ARP地址解析协议
1)ARP概要
不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用MAC地址
每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的IP地址到MAC地址的映射表
查看arp缓存:cmd =>
arp -a
ARP 是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
2)ARP过程
3)RARP逆地址解析协议
逆地址解析协议 RARP :通过MAC地址获得IP地址
3、IP数据报格式
1)版本:4
区分ipv4和ipv6
0100(ipv4包头)
0110(ipv6包头)
2)首部长度:4
IP包头的长度是可变的:20~60字节,大多为20字节
首部长度存储ip包头的长度,0101(20字节)
首部长度以4字节为单位
首部长度 * 4字节 = 首部真实长度
3)区分服务:8
1-3位:优先级
4-7位:服务类型(低延迟、高通道服务类型)
8位:未被启用
4)总长度:16
表明整个IP包(三四五层)的总长度
5)标识:16
标识同一个报文的所有分片,由发送端随机生成
标识用于区分不同分片,接收方据此将收到的分片进行"拼接"
6)标志:3
第一个比特
永远为0(未被启用)
第二个比特 DF
不能分片:Donot Fragment
若为0,则表明进行了分片
若为1,则表明未进行分片
第三个比特 MF
更多分片:More Fragment
表明本分片后面是否还有分片(本分片是否为最后一个分片)
1:本分片不是最后一个分片
0:最后一个分片
7)片偏移:13
段偏移量:标志IP分片的先后顺序
片偏移以8字节为单位
片偏移 * 8字节 = 片的真实偏移
防火墙会拦截IP分片:防火墙只让标志位的010通过,则将分片任务交给应用层,应用层将其分成1480的分片
8)TTL:8
TTL(time to live):防止一个数据包在网络上兜圈子
TTL由8个比特组成(0~255),这个数字表示通过路由器的个数,每经过一个路由器TTL值-1
通过TTL初始值可以大概判断对方是什么主机
9)协议:8
6:通向TCP协议
17:通向UDP协议
1: 通向同层的ICMP协议
41:IPv6
10)首部校验和:16
11)原ip:32
12)目标ip:32
13)可选项目
排错、测量、安全...
增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的,这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。
4、划分子网
1)划分子网概述
目的: 隔离网络广播,保证网络的安全,节约IP地址
特点:对内划分子网,对外表现为没有划分子网的网络
IP地址:网络号 + 子网号 + 主机号
2)子网掩码
IP地址无法判断子网号 => 用子网掩码找出IP地址中的子网部分 => 用于(交换机、路由器)判断是否在同一网段
IP地址 AND(按位与) 子网掩码 = 网络地址(网段)
子网掩码两种写法:
- 点分十进制:192.168.0.1/255.255.255.0
- 网络位长度:192.168.0.1/24
- 子网掩码是一个网络或一个子网的重要属性
- 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码
3)路由聚合
**路由汇聚:**是把一组路由汇聚为一个单个的路由广播。路由汇聚的最终结果和最明显的好处是缩小网络上的路由表的尺寸。
192.128.0.0/25 192.168.2.1
192.128.0.128/25 192.168.2.1
=>192.168.0.0/24 192.168.2.1
5、ICMP
1)ICMP概述
网际控制报文协议:ICMP (Internet Control Message Protocol)
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
ICMP是IP层的协议。但ICMP报文作位IP层数据报的数据,加上IP包头组成IP数据报发送
2)ping命令
PING (Packet Internet Grope):因特网包探索器
用于测试网络连接量的程序。Ping发送1个ICMP回声请求消息,给目的地并报告是否收到所希望的ICMP回声应答
cmd / term =>
ping 域名/ip地址