计算机网络第四章-网络层
计算机学科基础:计算机网络第四章网络层的学习笔记
一.网络层的功能(✠)
1.异构网络互联
- 定义
- 网络互连是指将两个以上的计算机网络,通过一定的方法,用一些中间设备(又称中继系统)相互连接起来,
以构成更大的网络系统。 - 网络互连通常是指用路由器进行网络互连和路由选择
- 互联网在网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
- 网络互连是指将两个以上的计算机网络,通过一定的方法,用一些中间设备(又称中继系统)相互连接起来,
- 中继系统的分类
- 物理层中继系统:转发器,集线器。
- 数据链路层中继系统:网桥或交换机。
- 网络层中继系统:路由器。
- 网络层以上的中继系统:网关
- TCP/IP体系在网络互连上采用的做法是在网络层采用标准化协议,但相互连接的网络可以是异构的
异构是指物理层与数据链路层均不同
2.路由与转发
- 路由选择(确定哪一条路径)
- 按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由
- 根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表
- 分组转发(当一个分组到达时所采取的动作)
- 路由器根据转发表将用户的IP数据报从合适的端口转发出去。
- 路由表是根据路由选择算法得出的,而转发表是从路由表得出的。
在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。
3.SDN的基本概念
- 软件定义网络采用集中式的控制平面和分布式的数据平面,两个平面相互分离,|
控制平面利用控制-数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络 - 通过Openflow协议(也可以通过其他途径)将转发表(在SDN中称为流表)下发给路由器。
路由器的工作很单纯,即收到分组、查找转发表、转发分组。 - SDN提供的编程接口称为北向接口,北向接口提供了一系列丰富的API,
开发者可以在此基础上设计自己的应用,而不必关心底层的硬件细节。 - SDN控制器和转发设备建立双向会话的接口称为南向接口,通过不同的南向接口协议(如Openflow),
SDN控制器就可兼容不同的硬件设备,同时可以在设备中实现上层应用的逻辑。 - SDN控制器集群内部控制器之间的通信接口称为东西向接口,用于增强整个控制平面的可靠性和可拓展性
- SDN的优点:
- 全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发
- 灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置
- 降低成本,控制和数据平面分离后,尤其是在使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低了成本。
- SDN的问题
- 安全风险,集中管理容易受攻击,如果崩溃,整个网络会受到影响。
- 瓶颈问题,原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。
4.拥塞控制
- 在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。此时通信子网的负载增加
导致吞吐量降低 - 流量控制和拥塞控制的区别
- 流量控制往往是指在发送端和接收端之间的点对点通信量的控制。
流量控制所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。 - 拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,
涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。
- 流量控制往往是指在发送端和接收端之间的点对点通信量的控制。
- 拥塞控制的方法
- 开环控制
- 在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法,
一旦整个系统启动并运行,中途就不再需要修改。 - 开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。
所有这些手段的共性是,在做决定时不考虑当前网络的状态。
- 在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法,
- 闭环控制
- 事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,
然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。 - 闭环控制是基于反馈环路的概念,是一种动态的方法。
- 事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,
- 开环控制
二.路由算法
1.静态路由与动态路由
- 静态路由算法(又称非自适应路由算法)
- 由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,
网络管理员需要手工去修改路由表中相关的静态路由信息。 - 它不能及时适应网络状态的变化,对于简单的小型网络,可以采用静态路由。
- 由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,
- 动态路由算法(又称自适应路由算法)
- 路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,
而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果 - 静态路由算法的特点是简便和开销较小,在拓扑变化不大的小网络中运行效果很好。
动态路由算法能改善网络的性能并有助于流量控制 - 但算法复杂,会增加网络的负担,有时因对动态变化的反应太快而引起振荡,或反应太慢而影响网络路由的一致性
- 常用的动态路由算法可分为两类:距离-向量路由算法和链路状态路由算法。
- 路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,
2.距离-向量路由算法
- 在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。
这种路由选择表包含:每条路径的目的地(另一结点)、路径的代价(也称距离) - 所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表
- 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由。
- 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)
此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由
- 距离-向量路由算法的实质
- 迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短(最小代价)通路。
它要求每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点。 - 更新报文的大小与通信子网的结点个数成正比,所有结点都将参加路由选择信息交换
- 最常见的距离-向量路由算法是RIP算法,它采用“跳数”作为距离的度量
- 迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短(最小代价)通路。
- 在距离-向量路由协议中,“好消息传得快,而坏消息传得慢”,
这就导致了当路由信息发生变化时,该变化未能及时地被所有路由器知道,而仍然可能在路由器之间进行传递,这就是“慢收敛”现象。慢收敛是导致发生路由回路的根本原因。
3.链路状态路由算法
- 链路状态路由算法的过程
- 在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送给网上的所有其他结点,
而不是仅送给那些直接相连的结点。每个结点都用这种方式从网上所有其他的结点接收包含直接链路状态的路由选择信息。 - 每当链路状态报文到达时,路由结点便使用这些状态信息去更新自己的网络拓扑和状态“视野图”
- 一旦链路状态发生变化,结点就对更新的网络图利用Dijkstra最短路径算法重新计算路由,从单一的源出发计算到达所有目的结点的最短路径。
- 在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送给网上的所有其他结点,
- 链路状态路由算法的特点
- 每个参与该算法的结点都具有完全的网络拓扑信息并执行下述两项任务
- 主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络。
- 定期地将链路状态传播给所有其他结点(或称路由结点)
- 向本自治系统中所有路由器发送信息,使用洪泛法,即路由器通过所有端口向所有相邻的路由器发送信息;
而每个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器) - 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
- “链路状态”是指说明本路由器与哪些路由器相邻及该链路的“度量”
- 对于OSPF算法,链路状态的“度量”主要用来表示费用、距离、时延、带宽等。
- 只有当链路状态发生变化时,路由器才向所有路由器发送此信息。由于一个路由器的链路状态只涉及相邻路由器的连通状态,而与整个互联网的规模并无直接关系,因此链路状态路由算法可以用于大型的或路由信息变化聚敛的互联网环境。
- 典型的链路状态算法是OSPF算法。
- 每个参与该算法的结点都具有完全的网络拓扑信息并执行下述两项任务
链路状态路由算法的优点
- 每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算
链路状态报文不加改变地传播,因此采用该算法易于查找故障。 - 当一个结点从所有其他结点接收到报文时,它可以在本地立即计算正确的通路,保证一步汇聚。
- 由于链路状态报文仅运载来自单个结点关于直接链路的信息,其大小与网络中的路由结点数目无关,
因此链路状态算法比距离-向量算法有更好的规模可伸展性。
- 每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算
距离-向量路由算法与链路状态路由算法的比较
- 在距离-向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供从自己到网络中所有其他结点的最低费用估计。
- 在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。
相较之下,距离-向量路由算法有可能遇到路由环路等问题。
4.层次路由(✠)
- 路由选择必须按照层次的方式进行,因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统中包含很多局域网)
每个自治系统有权自主地决定本系统内应采用何种路由选择协议。 - 如果两个自治系统需要通信,那么就需要一种在两个自治系统之间的协议来屏蔽这些差异。
- 因特网把路由选择协议划分为两大类
- 一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称域内路由选择,具体的协议有RIP和OSPF等。
- 自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称域间路由选择,
用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP
- 使用层次路由时,OSPF将一个自治系统再划分为若干区域(Area),每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。
- 采用分层次划分区域的方法虽然会使交换信息的种类增多,也会使OSPF协议更加复杂。
但这样做却能使每个区域内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模很大的自治系统中。
三.IPV4(✪)
1.IPV4分组
- IPv4分组的格式
- 一个IP分组由首部和数据部分组成。首部前一部分的长度固定,共20B,是所有IP分组必须具有的。
- 在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。
- 首部中的一些重要字段
- 版本
- 指 IP 协议的版本, 目前广泛使用的版本号为 4
- 首部长度
- 占 4 位,可以表示的最大十进制数是 15 。以 32 位为单位,最大值为${60 \mathrm{B}}{(15 \times 4 \mathrm{B})}$。
最常用的首部长度是${20 \mathrm{B}}$, 此时不使用任何选项(即可选字段)。
- 占 4 位,可以表示的最大十进制数是 15 。以 32 位为单位,最大值为${60 \mathrm{B}}{(15 \times 4 \mathrm{B})}$。
- 总长度
- 占 16 位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为${2^{16}-1=65535 \mathrm{B}}$。
- 以太网帧的最大传送单元 (MTU) 为${1500 \mathrm{B}}$, 因此当一个 IP 数据报封装成帧时,
数据报的总长度 (首部加数据) 一定不能超过下面的数据链路层的 MTU 值。
- 标识
- 占 16 位。它是一个计数器,每产生一个数据报就加 1 , 并赋值给标识字段。但它并不是 “序号” (因为 IP 是无连接服务)
- 当一个数据报的长度超过网络的 MTU 时,必须分片,此时每个数据报片都复制一次标识号, 以便能正确重装成原来的数据报。
- 标志
- 占 3 位。标志字段的最低位为${M F, M F=1}$表示后面还有分片, $MF{=0}$表示最后一个分片
- 标志字段中间的一位是 DF,只有当 DF${=0}$ 时才允许分片。
- 片偏移
- 占 13 位。它指出较长的分组在分片后, 某片在原分组中的相对位置。
- 片偏移以 8 个字节为偏移单位。除最后一个分片外, 每个分片的长度一定是${8 \mathrm{B}}$的整数倍。
- 生存时间 (TTL)
- 占 8 位。数据报在网络中可通过的路由器数的最大值, 标识分组在网络中的寿命, 以确保分组不会永远在网络中循环。
路由器在转发分组前, 先把 TTL 减 1 。 若 TTL 被减为 0 , 则该分组必须丢弃。(一个分组可以经过的最多的跳数)
- 占 8 位。数据报在网络中可通过的路由器数的最大值, 标识分组在网络中的寿命, 以确保分组不会永远在网络中循环。
- 协议
- 占 8 位。指出此分组携带的数据使用何种协议, 即分组的数据部分应上交给哪个协议进行处理, 如 TCP、UDP 等。
- 其中值为 6 表示 TCP, 值为 17 表示 UDP。
- 首部校验和
- 占 16 位。首部校验和只校验分组的首部, 而不校验数据部分。
- 源地址字段:占 4B, 标识发送方的 IP 地址。
- 目的地址字段:占 4B, 标识接收方的 IP 地址。
- 版本
- 注意,在IP数据报首部中有三个关于长度的标记,首部长度、总长度、片偏移,
基本单位分别为4B、1B、8B(需要记住)。题目中经常会出现这几个长度之间的加减运算。 - 图片
- IP数据报分片
- 分片的流程
- 创建一个 IP 数据报时, 源主机为该数据报加上一个标识号。
- 当一个中间路由器需要将一个数据报分片时, 形成的每个数据报 (即片) 都具有原始数据报的标识号。
- 当 IP 数据报的总长度大于链路层 MTU 时, 就需要将 IP 数据报中的数据分装在多个较小的 IP 数据报中, 这些较小的数据报称为片。
- 片在目的主机网络层被重新组装。目的主机使用 IP 首部中的标识、标志和片偏移字段来完成对片的重组。
- 当目的主机收到来自同一发送主机的一批数据报时, 它可以通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。
- 目的主机在对片进行重组时, 使用片偏移字段来确定片应放在原始 IP 数据报的哪个位置。
- 标志位
- IP 首部中的标志位占 3 位, 但只有后 2 位有意义, 分别是 MF 位 (More Fragment) 和 DF 位 (Don’t Fragment)。
- 只有当 $DF{=0}$时,该 IP 数据报才可以被分片。
- $MF$ 则用来告知目的主机该 IP 数据报是否为原始数据报的最后一个片。
- 当${\mathrm{MF}=1}$时, 表示相应的原始数据报还有后续的片
- 当${\mathrm{MF}=0}$时, 表示该数据报是相应原始数据报的最后一个片。
- 分片的例子
- 一个长 4000B 的 IP 数据报 (首部 20B, 数据部分${3980 \mathrm{B}}$) 到达一个路由器, 需要转发到一条 MTU 为${1500 \mathrm{B}}$的链路上
- 原始数据报中的${3980 \mathrm{B}}$数据必须被分配到 3 个独立的片中 (每片也是一个 IP 数据报)。
- 由于偏移值的单位是${8 \mathrm{B}}$, 所以除最后一个片外, 其他所有片中的有效数据载荷都是 8 的倍数。
- $片偏移=(之前分片的总数据-20(分片序数-1)/8$,如第三个分片的偏移量为(3000-202)/ 8
第二个分片的偏移量为:(1500-20)/ 8 - 图片
- 例题
- 此时不仅要满足最大分片数量这个条件,还需要满足片偏移的数据量是8的倍数的条件,以第一个分片为准,其可能的数据量为:800-20=780,780中满足8的倍数的最大数为776,因此第一个分片的最大长度为779。显然779*2<1580,此时第二个分片的MF标志位为1,总长度字段为796
- 此时不仅要满足最大分片数量这个条件,还需要满足片偏移的数据量是8的倍数的条件,以第一个分片为准,其可能的数据量为:800-20=780,780中满足8的倍数的最大数为776,因此第一个分片的最大长度为779。显然779*2<1580,此时第二个分片的MF标志位为1,总长度字段为796
- 分片的流程
2.IPV4地址与NAT
- IPv4地址(32位,由网络号与主机号组成)
- IP地址的分类,注意每一类的前几位是固定的数字
- 常见的三类IP地址的使用范围
- A类地址可用的网络数为$2^{7}-2$,减2的原因是
- 第一,网络号字段全为0的IP地址是保留地址,意思是“本网络”
- 第二,网络号为127的IP地址是环回自检地址。
- 近年来, 由于广泛使用无分类 IP 地址进行路由选择, 这种传统分类的 IP 地址已成为历史。
- 特殊的IP地址
- IP地址的特点
- 每个 IP 地址都由网络号和主机号两部分组成,因此 IP 地址是一种分等级的地址结构。
分等级的好处是:- IP 地址管理机构在分配 IP 地址时只分配网络号, 而主机号则由得到该网络的单位自行分配,方便了 IP 地址的管理
- 路由器仅根据目的主机所连接的网络号转发分组 (而不考虑目标主机号), 从而减小了路由表所占的存储空间。
- IP 地址是标志一台主机 (或路由器) 和一条链路的接口,路由器至少存在两个端口,因此路由器至少有两个IP地址
- 在同一个局域网上的主机或路由器的 IP 地址中的网络号必须是一样的。路由器总是具有两个或两个以上的 IP 地址, 路由器的每个端口都有一个不同网络号的 IP 地址。
- 用转发器或桥接器 (网桥等) 连接的若干 LAN 仍然是同一个网络 (同一个广播域), 因此该 LAN 中所有主机的 IP 地址的网络必须相同, 但主机号必须不同。
- 在 IP 地址中, 所有分配到网络号的网络 (无论是 LAN 还是 WAN) 都是平等的。
- 每个 IP 地址都由网络号和主机号两部分组成,因此 IP 地址是一种分等级的地址结构。
- IP地址的分类,注意每一类的前几位是固定的数字
- 网络地址转换(NAT)
- NAT的概述
- 网络地址转换 (NAT) 是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的 IP 地址。
- 它使得整个专用网只需要一个全球 IP 地址就可以与因特网连通,由于专用网本地 IP 地址是可重用的,所以NAT大大节省了 IP 地址的消耗。同时, 它隐藏了内部网络结构, 从而降低了内部网络受到攻击的风险。
- 在因特网中的所有路由器, 对目的地址是私有地址的数据报一律不进行转发。
这种采用私有 IP 地址的互联网络称为专用互联网或本地互联网。私有 IP 地址也称可重用地址。
- 私有网段(私有IP地址只用于 LAN, 不用于WAN连接)
- ${\mathrm{A}}$类: 1 个${\mathrm{A}}$类网段,即${\mathbf{1 0} .0 .0 .0 \sim \mathbf{1 0} .255 .255 .255}$
- ${B}$类: 16 个${B}$类网段,即${172.16 .0 .0 \sim 172.31 .255 .255}$。
- $C$ 类: 256 个${C}$类网段, 即 $192.168.0.0\sim192.168.255.255$。
- NAT路由器
- 使用 NAT 时需要在专用网连接到因特网的路由器上安装 NAT 软件, NAT 路由器至少有一个有效的外部全球 IP 地址。
使用本地地址的主机和外界通信时, NAT 路由器使用 NAT 转换表进行本地 IP 地址和全球 IP 地址的转换。 - NAT 转换表中存放着 \{本地 IP 地址: 端口 \} 到 \{全球 IP 地址: 端 口${\}}$的映射。
通过这种映射方式, 可让多个私有 IP 地址映射到一个全球 IP 地址。 - 当发送到NAT的分组的IP地址和端口同时在NAT转换表中有对应时才转发,只有没有两个同时对应的,就直接丢弃该分组。
- 普通路由器在转发IP数据报时,不改变其源IP地址和目的IP地址。
而NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或目的IP地址)。 - 普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号
- 图片
- 使用 NAT 时需要在专用网连接到因特网的路由器上安装 NAT 软件, NAT 路由器至少有一个有效的外部全球 IP 地址。
- NAT的概述
3.子网划分与子网掩码、CIDR(♚)
子网划分
- 子网划分的影响
- 将原来较大的网络细分为几个规模较小的网络,减少广播域的大小,减少主机的数量(子网号占据了主机号位)
- 提高IP地址的利用率,并不增加网络的数量
- 子网划分的基本思路如下:
- 子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
- 从主机号借用若干比特作为子网号, 当然主机号也就相应减少了相同的比特。三级IP地址的结构如下
IP 地址={<网络号>,<子网号>,<主机号>}。 - 凡是从其他网络发送给本单位某台主机的 IP 数据报, 仍然是根据 IP 数据报的目的网络号, 先找到连接到本单位网络上的路由器,然后该路由器在收到 IP 数据报后, 按目的网络号和子网号找到目的子网。最后把 IP 数据报直接交付给目的主机。
- 例
- 子网划分的影响
- 子网掩码(定长)
- 网络号的位上均为1,主机号的位上均为0,子网掩码与IP地址逐位相与,就得到子网网络地址
- 现在的因特网标准规定:所有的网络都必须使用子网掩码。如果一个网络未划分子网,那么就采用默认子网掩码。
- A、B、C类地址的默认子网掩码分别为255.0.0.0、255.255.0.0、255.255.255.0
- 同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码
- 路由器的路由表中,所包含信息的主要内容有目的网络地址、子网掩码、下一跳地址。
- 牢记下面这些常用的二进制转换关系,首先根据子网掩码判断主机号,子网号的占位,之后通过IP地址与子网掩码作与运算,求出相应的网络地址
- 无分类编址(CIDR,可变长,构成超网)
- CIDR的概述
- 无分类域间路由选择${\mathrm{CIDR}}$是在变长子网掩码的基础上提出的一种消除传统${\mathrm{A}}$、${\mathrm{B}}$、${\mathrm{C}}$类网络划分,
并且可以在软件的支持下实现超网构造的一种 IP 地址的划分方法。 - CIDR 使用 “网络前缀” 的概念代替子网络的概念, 与传统分类 IP 地址最大的区别就是,网络前缀的位数不是固定的,可以任意选取。CIDR 的记法是:IP::${=\{<}$网络前缀${>,<}$主机号${>\}}$
- CIDR 还使用 “斜线记法” (或称 CIDR 记法), 即 IP 地址/网络前缀所占比特数。其中, 网络前缀所占比特数对应于网络号的部分, 等效于子网掩码中连续 1 的部分
- CIDR 的优点在于网络前缀长度的灵活性。由于上层网络的前缀长度较短,因此相应的路由表的项目较少。
而内部又可采用延长网络前缀的方法来灵活地划分子网
- 无分类域间路由选择${\mathrm{CIDR}}$是在变长子网掩码的基础上提出的一种消除传统${\mathrm{A}}$、${\mathrm{B}}$、${\mathrm{C}}$类网络划分,
- CIDR地址块
- 将网络前缀都相同的连续 IP 地址组成 “CIDR 地址块”。一个 CIDR 地址块可以表示很多地址, 这种地址的聚合称为路由聚合, 或称构成超网。
- CIDR 地址块中的地址数一定是 2 的整数次幂, 实际可指派的地址数通常为${2^{N}-2, N}$表示主机号的位数, 主机号全0代表网络号, 主机号全 1 为广播地址。
- 网络前缀越短, 其地址块所包含的地址数就越多。而在三级结构的 IP 地址中, 划分子网使网络前缀变长。
- 例如
- 路由聚合
- 将两个网络地址取交集可以构成超网,实现路由聚合
- 路由聚合使得路由表中的一个项目可以表示多个原来传统分类地址的路由, 有利于减少路由器之间的信息的交换, 从而提高网络性能。
- 例
- 最长前缀匹配 (最佳匹配)
- 使用 CIDR 时, 路由表中的每个项目由 “网络前缀” 和 “下一跳地址” 组成。
- 使用路由表中的网络地址与IP地址做与运算,如果匹配则待定
- 在查找路由表时可能会得到不止一个匹配结果。此时, 应当从匹配结果中选择具有最长网络前缀的路由, 因为网络前缀越长, 其地址块就越小, 因而路由就越具体。
- CIDR的概述
- 网络层转发分组的过程
- 转发表中两个特殊的路由
- 主机路由
- 对特定目的主机的IP地址专门指明一个路由,以方便网络管理员控制和测试网络。
- 若特定主机的IP地址是a.b.c.d,则转发表中对应项的目的网络是a.b.c.d/32
32表示的子网掩码没有意义,但这个特殊的前缀可以用在转发表中。
- 默认路由
- 用特殊前缀0.0.0.0/0表示默认路由,全0掩码和任何目的地址进行按位与运算,结果必然为全0
必然和转发表中的0.0.0.0/0相匹配 - 只要目的网络是其他网络(不在转发表中),就一律选择默认路由。
与其它表项都不匹配时
- 用特殊前缀0.0.0.0/0表示默认路由,全0掩码和任何目的地址进行按位与运算,结果必然为全0
- 主机路由
- 流程
- 从收到的 IP 分组的首部提取目的主机的 IP 地址${D}$(即目的地址)。
- 若查找到特定主机路由 (目的地址为${D}$), 就按照这条路由的下一跳转发分组
否则从转发表中的下一条 (即按前缀长度的顺序) 开始检查 - 将这一行的子网掩码与目的地址${D}$进行按位与运算。若运算结果与本行的前缀匹配,则查找结束,按照 “下一跳” 指出的进行处理 (或者直接交付本网络上的目的主机, 或通过指定接口发送到下一跳路由器)。否则, 若转发表还有下一行, 则对下一行进行检查
- 若转发表中有一个默认路由, 则把分组传送给默认路由; 否则, 报告转发分组出错。
- 例题
- 此时先从前缀最长的开始检查,子网掩码为22的项与分组目的地址不匹配,之后看子网掩码为11的目的网络,
此时可以匹配,于是从R2转发出去
- 此时先从前缀最长的开始检查,子网掩码为22的项与分组目的地址不匹配,之后看子网掩码为11的目的网络,
- 注意
- 得到下一跳路由器的 IP 地址后, 并不是直接将该地址填入待发送的数据报, 而是将该IP地址转换成 MAC 地址 (通过 ARP)
将此 MAC 地址放到 MAC 帧首部中, 然后根据这个 MAC 地址找到下一跳路由器。 - 在不同网络中传送时, MAC 帧中的源地址和目的地址要发生变化, 但是网桥在转发帧时, 不改变帧的源地址, 请注意区分。
IP数据报头部的源地址与目的地址不发生变化(没有NAT的情况下)
- 得到下一跳路由器的 IP 地址后, 并不是直接将该地址填入待发送的数据报, 而是将该IP地址转换成 MAC 地址 (通过 ARP)
- 转发表中两个特殊的路由
- 相关例题
- 例1:首先B类地址要划分子网的话,还有主机位的16位可以划分,再通过主机数目求得主机位数,之后可以求得相应的子
- 例2:用填充法来划分相应的情况,划分出五种即可
- 例3:此时需要将各个网络可划分的情况列举出来,看是否满足3个子网下刚好契合
- 例4:首先目的地址一定就是web服务器的地址,但是源地址需要将私有地址经过NAT路由器进行转换,
此时根据NAT路由器链路的网段信息(题干中),此时只剩下两个主机位,只有可能是01或10,于是选符合条件的D选项
- 例1:首先B类地址要划分子网的话,还有主机位的16位可以划分,再通过主机数目求得主机位数,之后可以求得相应的子
4.ARP、DHCP与ICMP
IP 地址与硬件地址
- IP 地址是网络层使用的地址, 它是分层次等级的。
- 硬件地址是数据链路层使用的地址 (MAC 地址), 它是平面式的。
- 在 IP 层抽象的互联网上只能看到 IP 数据报,虽然在 IP 数据报首部中有源 IP 地址,但路由器只根据目的 IP 地址进行转发。
- 在局域网的链路层, 只能看见 MAC 帧。IP 数据报被封装在 MAC 帧中, 通过路由器转发 IP 分组时, 会重新封装源硬件地址和目的硬件地址
地址解析协议 (ARP,网络层协议)
- 使用ARP协议来完成IP地址到MAC地址的映射
- 每台主机都设有一个 ARP 高速缓存, 用来存放本局域网上各主机和路由器的 IP 地址到 MAC 地址的映射表, 称 ARP 表。
使用 ARP 来动态维护此 ARP 表。 - ARP的原理(工作在网络层)
- 主机 A 欲向本局域网上的某台主机 B 发送 IP 数据报时, 先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
- 如果有, 就可查出其对应的硬件地址, 再将此硬件地址写入 MAC 帧, 然后通过局域网将该 MAC 帧发往此硬件地址。
- 如果没有, 那么就通过使用目的 MAC 地址为 FFFF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组 (广播发送), 使同一个局域网里的所有主机都收到此 ARP 请求。尽管 ARP 请求分组是广播发送的, 但 ARP 响应分组是普通的单播,即从一个源地址发送到一个目的地址。
- 主机 B 收到该 ARP 请求后, 向主机 A 发出 ARP 响应分组 (单播发送), 分组中包含主机 B 的 IP 与 MAC 地址的映射关系, 主机 A 收到 ARP 响应分组后就将此映射写入 ARP 缓存, 然后按查询到的硬件地址发送 MAC 帧。
- 如果所要找的主机和源主机不在同一个局域网上, 那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址
然后把分组发送给这个路由器, 让这个路由器把分组转发给下一个网络。 剩下的工作就由下一个网络来做 - 例
- 首先主机通过ARP找到局域网内的路由器,再经过路由器之间的4次使用ARP协议到达B所造的路由器,最后此路由器再使用一次ARP协议即可找到主机B,一共进行了6次
- 首先主机通过ARP找到局域网内的路由器,再经过路由器之间的4次使用ARP协议到达B所造的路由器,最后此路由器再使用一次ARP协议即可找到主机B,一共进行了6次
动态主机配置协议 (DHCP,应用层协议)
- 常用于给主机动态地分配 IP 地址, 它提供了即插即用的联网机制
这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与,DHCP 是应用层协议, 它是基于 UDP 的。 - DHCP 的工作原理如下
- 使用客户/服务器(C/S)模式。需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文
本地网络上所有主机都能收到此广播报文, 但只有 DHCP 服务器才回答此广播报文。 - DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。
- 若找不到,则从服务器的 IP 地址池中取一个地址分配给该计算机。DHCP 服务器的回答报文称为提供报文。
- 使用客户/服务器(C/S)模式。需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文
- DHCP的特点
- DHCP 允许网络上配置多台 DHCP 服务器, 当 DHCP 客户机发出 “DHCP 发现” 消息时, 有可能收到多个应答消息。
这时, DHCP 客户机只会挑选其中的一个, 通常挑选最先到达的。 - DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的, 因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址DHCP 称这段时间为租用期。租用期的数值应由 DHCP 服务器自己决定, DHCP 客户也可在自己发送的报文中提出对租用期的要求。
- DHCP 的客户端和服务器端需要通过广播方式来进行交互, 原因是在 DHCP 执行初期, 客户端不知道服务器端的 IP 地址, 而在执行中间,客户端并未被分配 IP 地址, 从而导致两者之间的通信必须采用广播的方式。
- 采用 UDP 而不采用 TCP 的原因也很明显:TCP 需要建立连接, 如果连对方的 IP 地址都不知道, 那么更不可能通过双方的套接字建立连接。
- DHCP 是应用层协议, 因为它是通过客户/服务器模式工作的, DHCP 客户端向 DHCP 服务器请求服务, 而其他层次的协议是没有这两种工作方式的
- DHCP 允许网络上配置多台 DHCP 服务器, 当 DHCP 客户机发出 “DHCP 发现” 消息时, 有可能收到多个应答消息。
- 常用于给主机动态地分配 IP 地址, 它提供了即插即用的联网机制
网际控制报文协议 (ICMP,网络层协议)
为了提高 IP 数据报交付成功的机会, 在网络层使用了网际控制报文协议 (ICMP) 来让主机或路由器报告差错和异常情况。
ICMP 报文作为 IP 层数据报的数据, 加上数据报的首部, 组成 IP 数据报发送出去。
ICMP 报文的种类
ICMP 差错报告报文
- ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。
- 种类
- 终点不可达,当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
- 源点抑制,当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,
使源点知道应当把数据报的发送速率放慢 - 时间超过,当路由器收到生存时间(TTL)为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。
当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。 - 参数问题,当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
- 改变路由(重定向),路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
- 不应发送ICMP差错报告报文的几种情况如下
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
- 对具有组播地址的数据报都不发送ICMP差错报告报文。
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
ICMP询问报文有4种类型:回送请求和回答报文、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文,最常用的是前两类。
ICMP的两个常见应用是分组网间探测PING(用来测试两台主机之间的连通性)和Traceroute
PING使用了ICMP回送请求和回答报文,Traceroute(Tracert)使用了ICMP时间超过报文。
四.IPV6
1.IPv6的主要特点
- IPv6的主要特点
- IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间
- IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
- IPv6支持即插即用(即自动配置),不需要DHCP协议。
- IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
且首部长度固定为40B - IPv6中不允许分片。因此,如果路由器发现到来的数据报太大而不能转发到链路上,
那么丢弃该数据报,并向发送方发送一个指示分组太大的ICMP报文。
- 图片
2.IPv6地址
IPv6数据报的三种类型
- 单播:单播就是传统的点对点通信
- 多播:多播是一点对多点的通信,分组被交付到一组计算机的每台计算机
- 任播:这是IPv6增加的一种类型。
任播的目的站是一组计算机,但数据报在交付时只交付其中的一台计算机,通常是距离最近的一台计算机。
IPv6的地址表示法
- 即把地址中的每4位用一个十六进制数表示,并用冒号分隔每16位,如4BF5:0000:0000:0000:BA5F:039A:000A:2176
- 当16位域的开头有一些0时,可以采用一种缩写表示法,但在域中必须至少有一个数字。
可以把地址缩写为4BF5:0:0:0:BA5F:39A:A:2176 - 当有相继的0值域时,还可以进一步缩写。这些域可以用双冒号缩写,双冒号表示法在一个地址中仅能出现一次,
可以写成4BF5::BA5F:39A:A:2176
五.路由协议(✠)
1.自治系统(AS)
- 单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,
同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由。 - 一个自治系统内的所有网络都由一个行政单位(如一家公司、一所大学、一个政府部门等)管辖,
一个自治系统的所有路由器在本自治系统内都必须是连通的。
2.域内路由与域间路由
- 自治系统内部的路由选择称为域内路由选择,自治系统之间的路由选择称为域间路由选择
- 因特网有两大类路由选择协议
- 内部网关协议(IGP)
- 内部网关协议即在一个自治系统内部使用的路由选择协议,它与互联网中其他自治系统选用什么路由选择协议无关。
目前这类路由选择协议使用得最多,如RIP和OSPF。
- 内部网关协议即在一个自治系统内部使用的路由选择协议,它与互联网中其他自治系统选用什么路由选择协议无关。
- 外部网关协议(EGP)
- 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时(两个自治系统可能使用不同的IGP)
就需要使用一种协议将路由选择信息传递到另一个自治系统,目前使用最多的外部网关协议是BGP4
- 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时(两个自治系统可能使用不同的IGP)
- 内部网关协议(IGP)
3.路由信息协议(RIP ✠)
RIP是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单
RIP是应用层协议,它使用UDP传送数据(端口520)。
RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。因为它是根据最少跳数进行路径选择的。
要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。
RIP的规定
- 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录(因此这是一组距离,称为距离向量)
- 距离也称跳数,规定从一个路由器到直接连接网络的距离(跳数)为1。而每经过一个路由器,距离(跳数)加1
- RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径
- RIP允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时,它表示网络不可达。
RIP只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性 - RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)
RIP的特点(注意与OSPF的特点比较)
- 仅和相邻路由器交换信息。
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,如每隔30秒
- RIP通过距离向量算法来完成路由表的更新。经过若干RIP广播后,所有路由器都最终知道了整个RIP网络的路由表,
称为RIP最终是收敛的。 - 通过RIP收敛后,每个路由器到每个目标网络的路由都是距离最短的(即跳数最少,最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
距离向量算法(✪)
- 每个路由表项目都有三个关键数据:<目的网络N,距离d,下一跳路由器地址X>
对于每个相邻路由器发送过来的RIP报文,执行如下步骤
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目
把“下一跳”字段中的地址都改为X,并把所有“距离”字段的值加1 对修改后的RIP报文中的每个项目,执行如下步骤
- 当原来的路由表中没有目的网络N时,把该项目添加到路由表中
- 当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目
- 当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,
如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原路由表中的项目
否则什么也不做。
如果180秒(RIP默认超时时间为180秒)还没有收到相邻路由器的更新路由表,
那么把此相邻路由器记为不可达路由器,即把距离设置为16(距离为16表示不可达)
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目
例题
例1
例2
RIP的优点:最大的优点是实现简单、开销小、收敛过程较快。
RIP的缺点(✪)
- 限制了网络的规模,它能使用的最大距离为15(16表示不可达)
- 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大
- 网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),
俗称“坏消息传得慢”,使更新过程的收敛时间长 - 理解坏消息传的慢,此时R1还会向R2发送原来链路可到达的信息,因此R2的距离会更新到3
4.开放最短路径优先协议(OSPF)
- OSPF是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP)的一种。
- OSPF是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89)
- 当互联网规模很大时,OSPF要比RIP好得多,而且OSPF协议没有“坏消息传播得慢”的问题。
- OSPF的特点
- OSPF对不同的链路可根据IP分组的不同服务类型(TOS)而设置成不同的代价。
因此,OSPF对于不同类型的业务可计算出不同的路由,十分灵活。 - 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这称为多路径间的负载平衡。
- 所有在OSPF路由器之间交换的分组都具有鉴别功能,因而保证了仅在可信赖的路由器之间交换链路状态信息。
- 支持可变长度的子网划分和无分类编址CDR
- 每个链路状态都带上一个32位的序号,序号越大,状态就越新。
- OSPF对不同的链路可根据IP分组的不同服务类型(TOS)而设置成不同的代价。
- OSPF的基本工作原理
- 各路由器之间频繁地交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库。
这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(称为链路状态数据库的同步)。 - 每个路由器根据这个全网拓扑结构图,使用Dijkstra最短路径算法计算从自己到各目的网络的最优路径,以此构造自己的路由表。
- 此后当链路状态发生变化时,每个路由器重新计算到各目的网络的最优路径,构造新的路由表。
- 各路由器之间频繁地交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库。
- 区域的概念
- 为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干更小的范围,称为区域。
- 划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量。
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。
- 区域也有层次之分。处在上层的域称为主千区域,负责连通其他下层的区域,并且还连接其他自治域。
- 采用分层划分区域的方法使交换信息的种类增多,OSPF协议更加复杂
- OSPF与RIP的4点主要区别
- OSPF向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法。而RIP仅向自己相邻的几个路由器发送信息
- 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
“链路状态”说明本路由器和哪些路由器相邻及该链路的“度量”(或代价)。
而在RIP中,发送的信息是本路由器所知道的全部信息,即整个路由表。 - 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快,
不会出现RIP“坏消息传得慢”的问题。而在RIP中,不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息 - OSPF是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89)
而RIP是应用层协议,它在传输层使用UDP
5.边界网关协议(BGP)
- 边界网关协议(BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。
边界网关协议常用于互联网的网关之间。 - 边界网关协议(BGP)只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非寻找一条最佳路由。
- BGP采用的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大的区别。
- BGP是应用层协议,它是基于TCP的。
6.三种路由协议的区别(✪)
六.IP组播
1.组播的概念
组播的概念
- 为了能够支持像视频点播和视频会议这样的多媒体应用,网络必须实施某种有效的组播机制。
- 当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分
发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点的传输方式
- 组播一定仅应用于UDP,它对将报文同时送往多个接收者的应用来说非常重要。
- 在IPV4中,组播地址在D类地址空间中分配,而IPv6也有一部分地址空间保留给组播组。
- 组播的流程
- 主机使用一个称为IGMP(因特网组管理协议)的协议加入组播组。它们使用该协议通知本地网络上的路由器关于要接收发送给某个组播组的分组的愿望。
通过扩展路由器的路由选择和转发功能,可以在许多路由器互连的支持硬件组播的网络上面实现因特网组播 - 对发送者而言,数据只需发送一次就可发送到所有接收者,大大减轻了网络的负载和发送者的负担。
- 主机组播时仅发送一份数据,只有数据在传送路径出现分岔时才将分组复制后继续转发
组播需要路由器的支持才能实现,能够运行组播协议的路由器称为组播路由器。 - 图片
- 主机使用一个称为IGMP(因特网组管理协议)的协议加入组播组。它们使用该协议通知本地网络上的路由器关于要接收发送给某个组播组的分组的愿望。
2.IP组播地址
- IP组播使用D类地址格式。D类地址的前四位是1110,因此D类地址范围是224.0.0.0~239.255.255.255。
每个D类IP地址标志一个组播组。 组播数据报的特点
- 组播数据报也是“尽最大努力交付”,不提供可靠交付。
- 组播地址只能用于目的地址,而不能用于源地址。
- 对组播数据报不产生ICMP差错报文。因此,若在PING命令后面键入组播地址,将永远不会收到响应。
- 并非所有的D类地址都可作为组播地址。
硬件组播(MAC地址的前六位固定,后六位由IP地址的后23位映射得来)
3.IGMP与组播路由算法
IGMP的概念
- 要使路由器知道组播组成员的信息,需要利用因特网组管理协议(IGMP)。
- IGMP让连接到本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组。
- IGMP并不是在因特网范围内对所有组播组成员进行管理的协议。IGMP不知道IP组播组包含的成员数,也不知道这些成员分布在哪些网络上。
- IGMP的工作原理
- 当某台主机加入新的组播组时,该主机应向组播组的组播地址发送一个IGMP报文,声明自己要成为该组的成员。本地的组播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他组播路由器。
- 本地组播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否仍继续是组的成员。只要对某个组有一台主机响应,那么组播路由器就认为这个组是活跃的。
- 但一个组在经过几次的探询后仍然没有一台主机响应时,则不再将该组的成员关系转发给其他的组播路由器。
- 组播路由选择协议
- 连接到局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,以便把组播数据报用最小代价传送给所有组成员,这就需要使用组播路由选择协议。
- 组播路由选择实际上就是要找出以源主机为根结点的组播转发树,其中每个分组在每条链路上只传送一次(即在组播转发树上的路由器不会收到重复的组播数据报),可以避免路由环路
- 不同的多播组对应于不同的多播转发树:同一个多播组,对不同的源点也会有不同的多播转发树。
- 在许多由路由器互连的支持硬件多点传送的网络上实现因特网组播时,主要有三种路由算法:
- 第一种是基于链路状态的路由选择
- 第二种是基于距离-向量的路由选择
- 第三种可以建立在任何路由器协议之上,因此称为协议无关的组播(PIM)。
七.移动IP
1.移动IP的概念
- 移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,
并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。 - 移动结点:具有永久IP地址的移动设备。
- 归属代理(本地代理):一个移动结点的永久“居所”称为归属网络,
在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理 - 永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
- 外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
- 转交地址(辅地址):可以是外部代理的地址或动态配置的一个地址。
2.移动IP通信过程
八.网络层设备(✪)
1.冲突域和广播域
- 冲突域
- 冲突域是指连接到同一物理介质上的所有结点的集合,这些结点之间存在介质争用的现象。
- 在OSI参考模型中,冲突域被视为第1层概念,像集线器、中继器等简单无脑复制转发信号的第1层设备所连接的结点都属于同一个冲突域,也就是说它们不能划分冲突域。
- 而第2层(网桥、交换机)、第3层(路由器)设备都可以划分冲突域。
- 一个交换机的所有端口属于一个广播域,每个端口属于一个冲突域
- 广播域
- 广播域是指接收同样广播消息的结点集合。也就是说,在该集合中的任何一个结点发送一个广播帧,其他能收到这个帧的结点都被认为是该广播域的一部分。
- 在OSI参考模型中,广播域被视为第2层概念,像第1层(集线器等)、第2层(交换机等)设备所连接的结点都属于同一个
广播域。 - 路由器,作为第3层设备,则可以划分广播域,即可以连接不同的广播域。
- 通常所说的局域网(LAN)特指使用路由器分割的网络,也就是广播域
2.路由器的组成与功能
路由器的概述
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发。
在多个逻辑网络(即多个广播域)互连时必须使用路由器。当源主机要向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。如果源主机和目标主机在同一个网络上,那么直接交付而无须通过路由器。
- 如果源主机和目标主机不在同一个网络上,那么路由器按照转发表(路由表)指出的路由将数据报转发给下一个路由器,这称为间接交付。
- 路由器隔离了广播域。从结构上看,路由器由路由选择和分组转发两部分构成,而从模型的角度看,路由器是网络层设备,它实现了网络模型的下三层,即物理层、数据链路层和网络层。
路由器的组成
- 路由选择部分
- 路由选择部分也称控制部分,其核心构件是路由选择处理机,还包括路由选择协议,路由表
- 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断更新和维护路由表。
- 分组转发部分
- 由三部分组成:交换结构、一组输入端口和一组输出端口。
- 交换结构是路由器的关键部件,它根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去
交换结构本身就是一个网络 - 输入端口在从物理层接收到的比特流中提取出数据链路层帧,进而从帧中提取出网络层数据报
输出端口则执行恰好相反的操作 - 有三种常用的交换方法:通过存储器进行交换、通过总线进行交换和通过互联网络进行交换
- 路由选择部分
路由器的功能
- 路由计算:通过和其他路由器进行基于路由协议的交互,完成路由表的计算。
- 分组转发:处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等
- 当路由器监测到拥塞时,可合理丢弃IP分组,并向发出该IP分组的源主机发送一个源点抑制的ICMP报文。
- 路由器对收到的IP分组首部进行差错检验,丢弃有差错首部的报文,但不保证IP分组不丢失。
路由器和网桥的区别
- 网桥与高层协议无关,而路由器是面向协议的,它依据网络地址进行操作,并进行路径选择、分段、帧格式转换、对数据报的生存时间和流量进行控制等。
- 现今的路由器一般都提供多种协议的支持,包括OSI、TCP/IP、IPX等
3.路由表与路由转发
- 路由表是根据路由选择算法得出的,主要用途是路由选择。
- 标准的路由表有4个项目:目的网络IP地址、子网掩码、下一跳IP地址、接口
可能包含默认路由(0.0.0.0、0.0.0.0) - 图片
- 转发表与路由表的区别
- 转发表是从路由表得出的,其表项和路由表项有直接的对应关系。
- 但转发表的格式和路由表的格式不同,其结构应使查找过程最优化(而路由表则需对网络拓扑变化的计算最优化)
- 转发表中含有一个分组将要发往的目的地址,以及分组的下一跳(即下一步接收者的目的地址,实际为MAC地址)
- 为了减少转发表的重复项目,可以使用一个默认路由代替所有具有相同“下一跳”的项目,并将默认路由设置得比其他项目的优先级低
- 路由表总是用软件来实现的;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。