第四章:网络层
- 虚电路服务和数据报服务的对比
- 分类的 ip 地址
- 我们把整个互联网看成为一个单一的、抽象的网络。
- ip 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。
- ip 地址现在由互联网名字和数字分配机构 icann (internet corporation for assigned names and numbers)进行分配。
ip 地址的编址方法:
- 分类的 ip 地址。最基本的编址方法,在 1981 年就通过了相应的标准协议。
- 子网的划分。对最基本的编址方法的改进,其标准[rfc 950]在 1985 年通过。
- 构成超网。比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
分类 ip 地址:
- 将 ip 地址划分为若干个固定类。
- 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id, 它标志该主机(或路由器)。
- 主机号在它前面的网络号所指明的网络范围内必须是唯一的。
- 由此可见,一个 ip 地址在整个互联网范围内是唯一的。
- 这种两级的 ip 地址结构如下:
各类 ip 地址的网络号字段和主机号字段:
点分十进制记法:
ip 地址的指派范围 :
一般不使用的特殊的 ip 地址:
ip 地址的一些重要特点:
(1)ip 地址是一种分等级的地址结构。分两个等级的好处是:
- 第一,ip 地址管理机构在分配 ip 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 ip 地址的管理。
- 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
如,路由器重要知道net-id 128.167.1.0,去往任何一个 128.167.1.*的 ip都知道怎么走了。
(2)实际上 ip 地址是标志一个主机(或路由器)和一条链路的接口。
- 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 ip 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。
- 由于一个路由器至少应当连接到两个网络(这样它才能将 ip 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 ip 地址。
- (3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。(4)所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
3.ip 地址与硬件地址
- 硬件地址(或物理地址)是数据链路层和物理层使用的地址。
- ip 地址是网络层和以上各层使用的地址,是一种逻辑地址(称 ip 地址是逻辑地址是因为 ip 地址是用软件实现的)。
- 在 ip 层抽象的互联网上只能看到 ip 数据报。图中的 ip1 ip2 表示从源地址ip1 到目的地址 ip2 。两个路由器的 ip 地址并不出现在 ip 数据报的首部中。
- 路由器只根据目的站的 ip 地址的网络号进行路由选择。
- 在具体的物理网络的链路层只能看见 mac 帧而看不见 ip 数据报。
- ip 层抽象的互联网屏蔽了下层很复杂的细节。在抽象的网络层上讨论问题,就能够使用统一的、抽象的 ip 地址研究主机和主机或主机和路由器之间的通信 。
4. 地址解析协议 arp
- ip 地址(网络层地址)
- mac 地址(数据链路层地址)
arp 协议:完成主机或路由器 ip 地址到mac 地址的映射。解决下一跳走哪的问题
arp 协议使用过程:
- 当主机 a 欲向本局域网上的某个主机 b 发送 ip 数据报时,就先在其 arp 高速缓存中查看有无主机 b 的 ip 地址。
- 如有,就可查出其对应的硬件地址,再将此硬件地址写入 mac 帧,然后通过局域网将该 mac 帧发往此硬件地址。
- 如没有,则用目的mac 地址为 ff-ff-ff-ff-ff-ff 的帧封装并广播 arp 请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个 arp 响应分组,源主机收到后将此映射写入 arp 高速缓存(10-20min 更新一次)。
- 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
- 每一个主机或路由器都设有一个 arp 高速缓存 (arp cache),里面有所在的局域网上的各主机和路由器的 ip 地址到硬件地址的映射表。
- arp 请求分组:包含发送方硬件地址 / 发送方 ip 地址 / 目标方硬件地址(未知时填 0) / 目标方 ip 地址。
- 本地广播 arp 请求(路由器不转发 arp 请求)。
- arp 响应分组:包含发送方硬件地址 / 发送方 ip 地址 / 目标方硬件地址 / 目标方 ip 地址。
- arp 分组封装在物理网络的帧中传输。
- arp 高速缓存的作用:
- 存放最近获得的 ip 地址到 mac 地址的绑定,以减少 arp 广播的数量。
5. ip 数据报的格式
- 一个 ip 数据报由首部和数据两部分组成。
- 首部的前一部分是固定长度,共 20 字节,是所有 ip 数据报必须具有的。
- 在首部的固定部分的后面是一些可选字段,其长度是可变的。
【例 4-1】 ip 数据报分片:
- 一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。
- 由于 mtu 的限制,因此每个数据报片的数据部分长度不能超过 1400 字节。
- 于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。
- 原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。
6. ip 层转发分组的流程
- 假设:有四个 a 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。
- 可以想象,若按目的主机号来制作路由表,每一个路由表就有 4 万个项目, 即 4 万行(每一行对应于一台主机),则所得出的路由表就会过于庞大。
- 但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目(每一行对应于一个网络),这样就可使路由表大大简化。
必须强调指出:
- ip 数据报的首部中没有地方可以用来指明“下一跳路由器的 ip 地址”。
- 当路由器收到待转发的数据报,不是将下一跳路由器的 ip 地址填入 ip 数据报,而是送交下层的网络接口软件。
- 网络接口软件使用 arp 负责将下一跳路由器的 ip 地址转换成硬件地址,并将此硬件地址放在链路层的 mac 帧的首部,然后根据这个硬件地址找到下一跳路由器。
路由器分组转发算法:
- 从数据报的首部提取目的主机的 ip 地址 d ,得出目的网络地址为 n。
- 若网络 n 与此路由器直接相连,则把数据报直接交付目的主机 d;否则是间接交付,执行 (3)。
- 若路由表中有目的地址为 d 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)。
- 若路由表中有到达网络 n 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)。
- 报告转发分组出错。
7. 划分子网
- 子网掩码
- 是否可以运用 32 位的ip 地址,来划分net-id, subnet-id 和 host-id?
- 从一个 ip 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
- 使用子网掩码 (subnet mask) 可以找出 ip 地址中的子网部分。
规则:
- 子网掩码长度 32 位
- 子网掩码左边部分的一连串 1,对应于网络号和子网号
- 子网掩码右边部分的一连串 0,对应于主机号
2.划分子网
- 划分子网只是把 ip 地址的主机号 host-id 这部分进行再划分,而不改变 ip地址原来的网络号 net-id。
子网划分方法:
- 有固定长度子网和变长子网两种子网划分方法。
- 在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。
- 虽然根据已成为互联网标准协议的 rfc 950 文档,子网号不能为全1 或全0,但随着无分类域间路由选择 cidr 的广泛使用,现在全 1 和全 0 的子网号也可以使用了,但一定要谨慎使用,确认你的路由器所用的路由选择软件是否支持全 0 或全 1 的子网号这种较新的用法。
3.使用子网时分组的转发
- 在不划分子网的两级 ip 地址下,从 ip 地址得出网络地址是个很简单的事。
- 但在划分子网的情况下,从 ip 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
- 因此分组转发的算法也必须做相应的改动。
在划分子网情况下路由器转发分组的算法:
- 从收到的分组的首部提取目的 ip 地址 d。
- 先用各网络的子网掩码和 d 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
- 若路由表中有目的地址为 d 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行 (4)。
- 对路由表中的每一行,将子网掩码和 d 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)。
- 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行 (6)。
- 报告转发分组出错。
8. 无分类域间路由 cidr
- cidr 消除了传统的 a 类、b 类和 c 类地址以及划分子网的概念,因而可以更加有效地分配 ipv4 的地址空间。(如何理解?)
- cidr 使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。(让net-id 长度也可变)
- ip 地址从三级编址(使用子网掩码)又回到了两级编址。
- cidr 使用“斜线记法”(slash notation),它又称为 cidr 记法,即在 ip 地址后面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如:220.78.168.0/24
cidr 地址块:
- cidr 把网络前缀都相同的连续的 ip 地址组成“cidr 地址块”。
- 128.14.32.0/20 表示的地址块共有 212个host-id(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。
(1) 这个地址块的起始地址是 128.14.32.0。
(2) 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。
(3) 128.14.32.0/20 地址块的最小地址:128.14.32.0
(4) 128.14.32.0/20 地址块的最大地址:128.14.47.255
(5) 全 0 和全 1 的主机号地址一般不使用。
路由聚合 (route aggregation) :
- 一个 cidr 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
- 路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
- 路由聚合也称为构成超网 (supernetting)。
- cidr 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。
- 对于 /20 地址块,它的掩码是 20 个连续的 1。斜线记法中的数字就是掩码中 1 的个数。
最长前缀匹配:
- 使用 cidr 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
- 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)。
- 网络前缀越长,其地址块就越小,因而路由就越具体 (more specific) 。
- 最长前缀匹配又称为最长匹配或最佳匹配。
9. 网际控制报文协议(icmp)
- 为了更有效地转发 ip 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 icmp (internet control message protocol)。
- icmp 是互联网的标准协议。
- icmp 允许主机或路由器报告差错情况和提供有关异常情况的报告。
- 但 icmp 不是高层协议(看起来好像是高层协议,因为 icmp 报文是装在 ip 数据报中,作为其中的数据部分),而是 ip 层的协议。
icmp 报文的格式 :
- icmp 报文的种类
- icmp 报文的种类有两种,即 icmp 差错报告报文和 icmp 询问报文。
- icmp 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 icmp 的类型有关。
icmp 差错报告报文共有 4 种:
不应发送 icmp 差错报告报文的几种情况:
- 对 icmp 差错报告报文不再发送 icmp 差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送 icmp 差错报告报文。
- 对具有多播(组播)地址的数据报都不发送 icmp 差错报告报文。
- 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 icmp 差错报告报文。
icmp 询问报文有两类
2.icmp 的应用举例
(1)ping (packet internet groper)
- ping 用来测试两个主机之间的连通性。
- ping 使用了 icmp 回送请求与回送回答报文。
- ping 是应用层直接使用网络层 icmp 的例子,它没有通过运输层的 tcp 或udp。
(2)traceroute 的应用举例
- 在 windows 操作系统中这个命令是 tracert。
- 用来跟踪一个分组从源点到终点的路径。
- 它利用 ip 数据报中的 ttl 字段和 icmp 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
10. 路由选择协议
- 静态和动态路由选择
- 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时, 就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就 是外部网关协议 egp。
- 在外部网关协议中目前使用最多的是 bgp-4。
2.内部网关协议 igp
- 在一个自治系统内部使用的路由选择协议。
- 目前这类路由选择协议使用得最多,如 rip 和 ospf 协议。
- (1)rip 协议:
- rip 是一种分布式的、基于距离向量的路由选择协议。
- rip 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
- “距离”的定义:
- 从一个路由器到直接连接的网络的距离定义为 1。
- 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
- rip 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
- rip 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
- rip 允许一条路径最多只能包含 15 个路由器。
- “距离”的最大值为 16 时即相当于不可达。可见 rip 只适用于小型互联网。
- rip 不能在两个网络之间同时使用多条路由。rip 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
- rip 协议的三个特点:
- 和谁交换——仅和相邻路由器交换信息。
- 交换什么——交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
- 交换频率——按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
①路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为 1)。它的路由表是空的。
② 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
③ 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。即“收敛“。
④ rip 协议的收敛 (convergence) 过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
- rip 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
- “坏消息传播得慢”,使更新过程的收敛时间过长。
(2)ospf 协议:
- 开放最短路径优先 ospf (open shortest path first)是为克服 rip 的缺点在 1989 年开发出来的。
- ospf 的原理很简单,但实现起来却较复杂。
- ospf 协议的基本特点:
- “开放”表明 ospf 协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了 dijkstra 提出的最短路径算法 spf
- 采用分布式的链路状态协议 (link state protocol)。
- 注意:ospf 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
- 三个要点:
- 和谁交换——向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。最终整个区域内所有路由器都得到了这个信息的一个副本。
- 交换什么——发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”
(metric) /代价――费用、距离、时延、带宽等)。
- 交换频率——只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息(克服坏消息传的慢)。
- 链路状态数据库 (link-state database) :
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)
ospf 的区域 (area)- 为了使 ospf 能够用于规模很大的网络,ospf 将一个自治系统再划分为若干个更小的范围,叫做区域。
- 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
- 区域也不能太大,在一个区域内的路由器最好不超过 200 个。
- l 划分区域
- 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
- ospf 使用层次结构的区域划分。在上层的区域叫做主干区域 (backbone area)。
- 主干区域的标识符规定为 0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
- ospf 直接用 ip 数据报传送
- ospf 不用 udp 而是直接用 ip 数据报传送。
- ospf 构成的数据报很短。这样做可减少路由信息的通信量。
- 数据报很短的另一好处是可以不必将长的数据报分片传送。
- ospf 分组
- 类型 1,问候 (hello) 分组。
- 类型 2,数据库描述 (database description) 分组。
- 类型 3,链路状态请求 (link state request) 分组。
- 类型 4,链路状态更新 (link state update) 分组,用洪泛法对全网更新链路状态。
- 类型 5,链路状态确认 (link state acknowledgment)分组。
- ospf 的其他特点
- ospf 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
- ospf 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于100 ms。
- 每个路由器发现它的邻居结点【hello 问候分组】,并了解邻居节点的网络地址。
- 设置到它的每个邻居的成本度量 metric。
- 构造【dd 数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
- 如果 dd 分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的, 则发送【lsr 链路状态请求分组】请求自己没有的和比自己更新的信息。
- 收到邻站的 lsr 分组后,发送【lsu 链路状态更新分组】进行更新。
- 更新完毕后,邻站返回一个【lsack 链路状态确认分组】进行确认。只要一个路由器的链路状态发生变化:
- 泛洪发送【lsu 链路状态更新分组】进行更新。
- 更新完毕后,其他站返回一个【lsack 链路状态确认分组】进行确认
- 使用 dijkstra 根据自己的链路状态数据库构造到其他节点间的最短路径。
3.外部网关协议 egp
- bgp 是不同自治系统的路由器之间交换路由信息的协议。
- bgp 较新版本是 2006 年 1 月发表的 bgp-4(bgp 第 4 个版本),即
rfc 4271 ~ 4278。
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ bgp
- 可以将 bgp-4 简写为 bgp。
bgp 发言人:- 一般说来,两个 bgp 发言人都是通过一个共享网络连接在一起的,而 bgp发言人” (bgp speaker) 。
- 发言人往往就是 bgp 边界路由器,但也可以不是 bgp 边界路由器。
- bgp 协议的特点
- 和谁交换——相邻 bgp 发言人之间互相交换信息。bgp 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
- 交换什么——交换发言人的路由表。bgp 支持 cidr,因此 bgp 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 交换频率——在 bgp 刚刚运行时,bgp 的邻站是交换整个的 bgp 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
- bgp 交换路由信息
- bgp 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列
as。
- 当 bgp 发言人互相交换了网络可达性的信息后,各 bgp 发言人就根据所采用的策略从收到的路由信息中找出到达各 as 的较好路由。
- 打开 (open) 报文,用来与相邻的另一个 bgp 发言人建立关系。
- 更新 (update) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
- 保活 (keepalive) 报文,用来确认打开报文和周期性地证实邻站关系。
4.通知 (notification) 报文,用来发送检测到的差错。
4.路由器的构成
- 路由器是互联网中的关键设备。
- 路由器的主要作用是:
- 连通不同的网络。
- 选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。
- “转发”(forwarding) 就是路由器根据转发表将用户的 ip 数据报从合适的端口转发出去。
- “路由选择”(routing) 则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
- 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
- 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。
11. ipv6
ipv6 和 ipv4 的对比:
- ipv6 将地址从 32 位(4b)扩大到 128 位(16b),更大的地址空间。
- ipv6 将ipv4 的校验和字段彻底移除,以减少每跳的处理时间。
- ipv6 将ipv4 的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
- ipv6 支持即插即用(即自动配置),不需要 dhcp 协议。
- ipv6 首部长度必须是 8b 的整数倍,ipv4 首部是 4b 的整数倍。
- ipv6 只能在主机处分片,ipv4 可以在路由器和主机处分片。
- icmpv6:附加报文类型“分组过大”。
- ipv6 支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
- ipv6 取消了协议字段,改成下一个首部字段。
- ipv6 取消了总长度字段,改用有效载荷长度字段。11.ipv6 取消了服务类型字段。
ipv6 地址表示形式:
ipv6 基本地址类型
ipv6 向ipv4 过渡的策略
隧道技术:
- 在 ipv6 数据报要进入 ipv4 网络时,把 ipv6 数据报封装成为 ipv4 数据报,整个的
ipv6 数据报变成了 ipv4 数据报的数据部分。
- 当 ipv4 数据报离开 ipv4 网络中的隧道时,再把数据部分(即原来的 ipv6 数据报)交给主机的 ipv6 协议栈。
12. ip多播
- 在互联网上进行多播就叫做 ip 多播。
- 互联网范围的多播要靠路由器来实现。
- 能够运行多播协议的路由器称为多播路由器 (multicast router)。
- 多播路由器也可以转发普通的单播 ip 数据报。
- 从 1992 年起,在互联网上开始试验虚拟的多播主干网 mbone (multicast backbone on the internet)。
13. 虚拟专用网 vpn
本地地址与全球地址
- 本地地址——仅在机构内部使用的 ip 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
- 全球地址——全球唯一的 ip 地址,必须向互联网的管理机构申请。
- 问题:在内部使用的本地地址就有可能和互联网中某个 ip 地址重合,这样就会出现地址的二义性问题。
- 解决:rfc 1918 指明了一些专用地址 (private address)。专用地址只能用作本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
rfc 1918 指明的专用 ip 地址
专用网
- 采用这样的专用 ip 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。
- 因为这些专用地址仅在本机构内部使用。专用 ip 地址也叫做可重用地址 (reusable address)。
虚拟专用网 vpn
- 利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 vpn (virtual private network)。
- “专用网”是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。
- “虚拟”表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而vpn 只是在效果上和真正的专用网一样。
虚拟专用网 vpn 构建
- 如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。
- 一个机构要构建自己的 vpn 就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 vpn 系统都知道其他场所的地址。
用隧道技术实现虚拟专用网
远程接入vpn
- 远程接入 vpn (remote access vpn)可以满足外部流动员工访问公司网络的需求。
- 在外地工作的员工拨号接入互联网,而驻留在员工 pc 机中的 vpn 软件可在员工的 pc 机和公司的主机之间建立 vpn 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。
内联网 intranet 和外联网 extranet
- 它们都是基于 tcp/ip 协议的。
- 由部门 a 和 b 的内部网络所构成的虚拟专用网 vpn 又称为内联网 (intranet), 表示部门 a 和 b 都是在同一个机构的内部。
- 一个机构和某些外部机构共同建立的虚拟专用网 vpn 又称为外联网 (extranet)。