网络层(下)
这一篇更多以了解为主
一、IPv6
IPv6是具有更大地址空间的新版IP协议
1. IPv6的基本首部
1.1 IPv6的主要变化
- 更大的地址空间:
32
位 -->64
位 - 扩展的地址层次结构
- 灵活的首部格式:定义了许多可选扩展首部
- 改进的选项
- 允许协议继续扩充
- 支持自动配置:不需要使用DHCP(动态主机配置协议)
- 支持资源的预分配:IPv6支持实时视像,保证一定的带宽和时延的应用
- 首部改为8字节对齐:
4
-->8
2.2 数据报的组成
- 基本首部
- 有效载荷:有效载荷允许有零个或多个扩展首部(extension header),再后面是数据部分
- 如图
2.3 基本首部
- 首部长度固定为
40
字节,称为基本首部 - 删除一些不必要的功能,使IPv6首部的字段数减少到
8
个 - IPv6对首部字段的具体更改:
- 取消了首部长度字段、服务字段、校验和字段
- 将总长度字段改为有效载荷字段
- 将TTL字段改称为跳数限制字段
- 将协议字段替换为下一个首部字段
- 将选项字段改为扩展首部来实现选项功能
- IPv6数据报格式图
- 各字段说明
- 版本:6
- 通信量类:区分不同的IPv6数据报的类别或优先级
- 流[1]标号:所有属于同一个流的数据包都具有同样的流标号
- 有效载荷长度:指明IPv6除了基本首部之外的字节数,最大值为64KB
- 下一个首部:相当于IPv4的协议或可选字段
- 跳数限制:每经过一个路由器跳数-1,当跳数限制为0时丢弃该数据报
- 扩展首部:实现扩展功能
- 逐跳选项
- 路由选择
- 分片
- 鉴别
- 封装安全有效载荷
- 目的站选项
- 数据报途中经过的路由器不处理这些扩展首部(逐跳选项扩展首部),大大提高了路由器的处理效率
2. IPv6的地址
主要分为以下三类:
- 单播:传统点对点
- 多播:一点对多点
- 任播:目的站是一组计算机,但在交付数据报时只交付其中的一个
2.1 结点与接口
- 结点:实现IPv6的主机和路由器,每个结点可以有多个接口
- IPv6地址是分配给结点上的接口的
- 一个接口可以有多个单播地址
- 一个结点接口的单播地址可以用来唯一标识该结点
2.2 地址记法
- 冒号16进制记法:
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
- 零压缩:将连续的0压缩成
::
FF05:0:0:0:0:0:0:B3
可压缩为:FF05::B3
- 点分十进制记法:
0:0:0:0:0:0:128.10.2.1
- CIDR的斜线表示法
12AB:0000:0000:CD30:0000:0000:0000:0000/60
12AB:0:0:CD30::/60
2.3 地址分类
根据网络前缀不同划分
- 未指明地址:
::
,为还没有配置到一个标准的 IP 地址的主机当作源地址使用 - 环回地址:
::1
- 多播地址:
FF00::/8
,多播地址只能用于目的地址,不能用于源地址 - 本地链路单播地址:
FE80::/10
,使用TCP/IP协议但没有连接到互联网上的网络,连接在这样的网络上的主机可以使用本地地址通信 - 全球单播地址:除了上面意外的ip地址
3. 从IPv4向IPv6过渡
3.1 使用双协议栈
- 一部分主机(路由器)装有两个协议栈,一个IPv4和一个IPv6
- 双协议栈的主机具有两种IP地址:IPv6和IPv4
- 双协议栈主机在和 IPv6 主机通信时是采用 IPv6 地址,而和 IPv4 主机通信时就采用 IPv4 地址
3.2 使用隧道技术
- 在 IPv6 数据报要进入IPv4网络时,根据IPv6数据报的首部信息构造一个IPv4数据报首部,把整个IPv6 数据报装入 IPv4 数据报的数据部分。
- 当 IPv4 数据报离开 IPv4 网络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈。
4. ICMPv6
IPv6 也不保证数据报的可靠交付,因为互联网中的路由器可能会丢弃数据报,所以IPv6 也需要使用 ICMP 来反馈一些差错信息,新的版本称为 ICMPv6
二、IP多播
1. IP多播的基本概念
- 一对多通信:一个源点发送到多个终点(新闻、股市行情等)
- 目的:更好地支持一对多通信
- 多播相较单播可大大节约网络资源
- 在互联网上进行多播就叫IP多播
- IP多播所传送的分组需要使用多播IP地址,在多播数据报的目的地址写入的是多播组的标识符
- 多播组的标识符就是IP地址中的[多播地址](#2.3 地址分类)
- 多播数据报使用的协议是网际组管理协议 IGMP,字段值为2
- 对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应
2. 在局域网上进行硬件多播(了解)
由于多播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
3. IGMP和多播路由选择协议
3.1 网际组管理协议IGMP
-
作用:使路由器知道多播组成员的信息
-
实现原理:让连接在本地局域网的多播路由器知道本局域网上是否有主机参加(退出)了某个多播组
-
-
IGMP是属于网易协议IP的一个组成部分,使用IP数据报传递其报文
3.2 IGMP的两个工作阶段
3.2.1 加入多播组
- 当一个主机加入新的多播组时,该主机向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员
- 本地的多播路由器收到IGMP报文后,将组成员关系转发给互联网上的其他多播路由器
3.2.2 探询组成员变化情况
- 因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
- 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
- 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
3.3 多播路由选择协议
使连接在局域网的多播路由器能和互联网上的其他多播路由器协调工作,把多播数据报用最小的代价送给所有的组成员,即找出以源主机为根结点的多播转发树
3.3.1 洪泛与剪除法
- 这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
- 一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。
- 为了避免兜圈子,采用了叫作反向路径广播 RPB (Reverse Path Broadcasting)的策略
- RGB:
- 路由器收到多播数据报时,先检查它是否是从源点经最短路径传送来的。
若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。 - 如果存在几条同样长度的最短路径,那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。
- 最后就得出了用来转发多播数据报的多播转发树,以后就按这个多播转发树转发多播数据报。
- 如果在多播转发树上的某个路由器发现它的下游树枝(即叶节点方向)已没有该多播组的成员,就应把它和下游的树枝一起剪除。
- 当某个树枝有新增加的组成员时,可以再接入到多播转发树上。
- 路由器收到多播数据报时,先检查它是否是从源点经最短路径传送来的。
3.3.2 隧道技术(tunneling)
3.3.3 基于核心的发现技术
- 这种方法对于多播组的大小在较大范围内变化时都适合。
- 这种方法是对每一个多播组 G 指定一个核心(core) 路由器,给出它的 IP 单播地址。
- 核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。
三、虚拟专用网VPN和网络地址转换NAT
- 本地地址:仅在机构内部使用的 IP 地址,可以由本机构自行分配
- 全球地址:全球唯一的 IP 地址,必须向互联网的管理机构申请
- 问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题
- 解决:RFC 191指明了一些专用地址 (private address)。专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发
- 三个专用IP地址块:
10.0.0.0
~10.255.255.255
172.16.0.0
~172.31.255.255.255
192.168.0.0
~192.168.255.255
- 专用网:采用这样的专用 IP 地址的互连网络
1. 虚拟专用网VPN
2. 网络地址转换NAT
实现在专用网上使用专用地址的主机与互联网上的主机通信
- 装有 NAT 软件的路由器叫作 NAT路由器,它至少有一个有效的外部全球IP地址。
- 所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接
- 内部主机 A 用本地地址 IPA 和互联网上主机 B 通信所发送的数据报必须经过 NAT 路由器。
- NAT 路由器将数据报的源地址 IPA 转换成全球地址 IPG,并把转换结果记录到NAT地址转换表中,目的地址 IPB 保持不变,然后发送到互联网。
- NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 IPB 而目的地址是 IPG。
- 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPA,转发给最终的内部主机 A。
四、多协议标记交换MPLS(自行了解)
-
“流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量 ↩︎
Q.E.D.