目录
5.地址解析协议 ARP(Address Resolution Protocol)
能否使用 Traceroute探测网络拓扑结构?如能,试简述其原理。(21年真题,P150)
(1)自治系统 AS (Autonomous System)
3.内部网关协议——路由信息协议 RIP (Routing Information Protocol)
4.内部网关协议——开放最短路径优先 OSPF(Open Shortest Path First)
5.外部网关协议 BGP(Border Gateway Protocol)
②背专用地址范围!!!!!!!!!!!!!!!——RFC 1918 指明的专用地址 (private address)
③内联网 intranet 和外联网 extranet(都是基于 TCP/IP 协议)
8.网络地址转换 NAT (Network Address Translation)
数据链路层是一个路由器内用mac地址找目的主机,网络层是路由器间找下一跳用ip地址
- 面向连接的通信方式
- 建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。
- 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。
1.虚电路服务

虚电路是逻辑连接
- 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
- 请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
2.数据报服务
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
- 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
- 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

3.虚电路服务与数据报服务的对比

二.虚拟互连网络-IP网
1.网络通信问题
- 不同的寻址方案
- 不同的最大分组长度
- 不同的网络接入机制
- 不同的超时控制
- 不同的差错恢复方法
- 不同的状态报告方法
- 不同的路由选择技术
- 不同的用户接入控制
- 不同的服务(面向连接服务和无连接服务)
- 不同的管理与控制方式
2.中间设备
网络互相连接起来要使用一些中间设备
- 中间设备又称为中间系统或中继(relay)系统。
- 物理层中继系统:转发器(repeater)。
- 数据链路层中继系统:网桥或桥接器(bridge),以及交换机。
- 网络层中继系统:路由器(router)。
网桥和路由器的混合物:桥路器(brouter)。- 网络层以上的中继系统:网关(gateway)。
3.网络互连使用路由器
- 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。而路由器连接不同网络。
网关由于比较复杂,目前使用得较少。互联网都是指用路由器进行互连的网络。由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关


三.分类的 IP 地址
1. IP 地址及其表示方法
- 我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。(MAC是48位)
- IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for AssignedNames and Numbers)进行分配
2.IP 地址的编址方法
- 分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。
- 子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。
- 构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
3.分类 IP 地址

(1)IP 地址中的网络号字段和主机号字段
不同类32位的IP地址有不同长度的 网络号,主机号
A类地址:开头第1位为“0”就是A类地址。剩下第1位为1的网络地址让B,C,D,E分。有2^7-2=126个网络(A类网络号全0和全1不使用),主机号有2^24-2个(所有主机号全0和全1不使用)。0111 1111=127,这个网络号用于本地回环;0000 0000表示“本网络”。
B类地址:前2位为“10”。有2^14-1个网络(B,C类网络号全0不使用,全1用),主机号有2^16-2个主机号。
C类地址:前3位为“110”。有2^21-1个网络,主机号有2^8-2个主机号。
D类地址:前四位为“1110”
E类地址:前四位为“1111”
网络号短主机号长:网络大主机多。

(2)点分十进制记法

(3)常用的三类IP 地址


(4)IP 地址的一些重要特点
- 第一,IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。
- 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
- 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。
- 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。

分配也可以不分配IP地址。如分配了IP地址,则这一段连线就构成了一种只包含
一段线路的特殊“网络”(如图中的NI, N2和N;)。之所以叫作“网络”,是因为
它有IP地址。 这种网络仅需两个IP地址,因此这里就使用了 /31地址块。 这种地
址块专门为点对点链路的两端使用[RFC 3021], 主机号(只有1位)可以是0或1。
但 为了节省IP地址资源, 对于点对点链路构成的特殊“网络”,现在也常常不分配
IP地址。通常把这样的特殊网络叫作 无编号网络(unnumbered network)或 匿名网络
(anonymous network)[COME06]。
4.IP 地址与硬件地址


5.地址解析协议 ARP(Address Resolution Protocol)
已经知道一个机器的IP地址,需要找其对应的MAC地址
(1)ARP 高速缓存的作用


(1)使用 ARP 的四种典型情况
- 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
- 不同网络主机的ARP例子,下图为例:主机H1发送给H2的IP数据报。首先需要通过与主机H1连接在同一个局域网上的路由器R1 来转发,因此主机H1通过转发表知道路由器R1的IP地址。于是H1使用ARP把路由器R1的IP地址IP3解析为MAC地址MAC3,然后把IP数据报传送到路由器R1。以后,R1从转发表知道应把IP数据报转发到路由器R2,再使用ARP解析出R2的MAC地址MACs,把IP数据报转发到路由器R2。路由器R2用同样方法解析出目的主机H2的MAC地址MAC2,使IP数据报最终交付主机H2。
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成
(2)什么我们不直接使用硬件地址进行通信?
- 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
- 连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
6.IP 数据报的格式
- 一个 IP 数据报由首部和数据两部分组成。
- 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
- 在首部的固定部分的后面是一些可选字段,其长度是可变的。
每行32bit=4字节
- 第1行:4Byte,4Byte,8Byte,16Byte
- 第2行:16Byte,3Byte,13Byte
- 第3行:8Byte,8Byte,16Byte
- 第4行:32Byte
- 第5行:32Byte
目的地址-占32位,4字节。接收IP数据报的主机的IP地址。

(1)片偏移 Offset
例子:
分片后,原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值。片偏移以 8 个字节为偏移单位。三个片距离首部的距离为:0字节,1400字节,2800字节。则片偏移分别填入0/8=0,1400/8=175,2800/8=350。


(2)生存时间,协议,首部检验和



反码算术运算求和 举例:



IP 头部及其校验举例:
IP 数据报的字节分布格式如下,按字节划分依次填入数据即可。

7.IP 层转发分组的流程
- 有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。
- 可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。
- 但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4个项目。这样就可使路由表大大简化。
分组转发算法:谢希仁p144最上面四条。
(1)查找路由表
- 根据目的网络地址就能确定下一跳路由器,这样做的结果是:
- IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付。

(2)特定主机路由
- 路由:路由表中每一行“目的主机所在的网络”对应“下一跳地址”的体现转发方式的信息,称为路由
- 特定主机路由是为特定的目的主机指明一个路由。(即:正常的一行都是网络到网络,特定主机路由这一行是主机到主机)
- 采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
(3)默认路由(default route)
默认路由:表上找不到的目的网络一律选择默认路由传输数据,默认路由为0.0.0.0/0,任何ip地址和全0按位与都是全0,都会匹配。
- 路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
- 这种转发方式在一个网络只有很少的对外连接时是很有用的。
- 默认路由在主机发送 IP 数据报时往往更能显示出它的好处。
- 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。

(4)分组转发算法
四.划分子网和构造超网
- 从两级 IP 地址到三级 IP 地址
- 在 ARPANET 的早期,IP 地址的设计确实不够合理。
- IP 地址空间的利用率有时很低。
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
- 两级的 IP 地址不够灵活。
1.三级的 IP 地址
- 从 1985 年起在 IP 地址中又增加了一个“子网号字段” ,使两级的 IP 地址变成为三级的 IP 地址。
- 这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。
- 当没有划分子网时,IP 地址是两级结构。
- 划分子网后 IP 地址就变成了三级结构。
- 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。
2.划分子网的基本思路
- 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
- 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。


- 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
- 然后此路由器在收到 IP 数据报后,再按目的网络号net-id 和子网号 subnet-id 找到目的子网。
- 最后就将 IP 数据报直接交付目的主机。

3.子网掩码
- 子网掩码类似于一个框,把框放在IP地址上框起来的就是网络号+子网号=网络地址,后面没框起来的就是主机号。IP地址和子网掩码进行“相与”可得子网网络地址,框内子网掩码全为1,&1不变得出网络地址;框外子网掩码为全0,&0=0即主机号部分全变0。则可以很直观看出子网网络地址。
- 从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分,也不知道子网号几位。
- 使用子网掩码(subnet mask)可以找出IP 地址中的子网部分。
(1)IP 地址的各字段和子网掩码
按位与&:全为1才是1,有0则是0。1&1=1,1&0=0,0&1=0,0&0=0。
IP地址和子网掩码进行“相与”可得子网网络地址,&1就不变,&0=0。则主机号和子网号位置&后都不变,主机号部分全变0,则可以很直观看出子网网络地址。

(2)默认子网掩码

(3)子网掩码是一个重要属性
- 子网掩码是一个网络或一个子网的重要属性。
- 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
- 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
子网掩码例题1:

子网掩码例题2:

不同子网掩码下的相同网络号是不一样的:
(4)使用子网掩码的分组转发过程
- 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
- 但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
- 因此分组转发的算法也必须做相应的改动。
- 子网掩码放在路由器中而不在ip数据报中,路由器中每行一个网络地址匹配一个子网掩码。
使用子网掩码的分组转发例题:
(b) IP地址的第4字节是二进制: 128.30.33. 1000 1010
(c)先看第一行子网掩码255.255.255.128:255.255.255.1000 0000
(d) IP地址与子网掩码逐位相与:128.30.33. 1000 0000
(e)网络地址(点分十进制表示):128.30.33.128

(5)无分类编址 CIDR
- 1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网 掩 码 。 使 用 变长子网掩码VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。
- 在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-DomainRouting)。读音“sider”
- CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
- CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
- IP 地址从三级编址(使用子网掩码)又回到了两级编址。

- 128.14.32.0/20 表示的地址块共有 2^12个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是32-20=12 位)。
- ☆☆☆☆☆128.14.32.0,比特位是 8位.8位.3位 5位.8位,第三字节:32→0010 0000,即网络地址为:128.14.32.0。
- (这个地址块的起始地址是 128.14.32.0。
- 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块” 。
- 128.14.32.0/20 可称为网络前缀或地址块,简称前缀,同时也是这个地址块中主机号为全0的地址。
- 128.14.32.0/20 地址块的最小地址:128.14.32.0
- 128.14.32.0/20 地址块的最大地址:128.14.47.255
- 全 0 和全 1 的主机号地址一般不使用。
- 最后的0一般可以省略 )
计算一个子网分多少主机号的公式:


4.最长前缀匹配
- 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
- 应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)。
- 网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。
- 最长前缀匹配又称为最长匹配或最佳匹配。

五.网际控制报文协议 ICMP
- 为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
- ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
- ICMP 不是高层协议,而是 IP 层的协议。
- ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
1.ICMP 报文的格式(不用背)

2.ICMP 报文的种类
- ICMP 报文的种类有两种,即 ICMP 差错报告报文 和 ICMP 询问报文。
- ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
(1)ICMP 差错报告报文共有 5 种:始 终超参路
(2)ICMP 差错报告报文的数据字段的内容

(3)不应发送 ICMP 差错报告报文的几种情况
-
对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。例如:若 ICMP 差错报告报文丢失,则不用再发送 针对丢失的这个ICMP报文 的ICMP 差错报告报文。(因为当错误未解决时,会重复发送ICMP报文,直到错误被解决则停止发送)
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。一个报文分几片,其中出问题的分片发送ICMP报告后发送方会重新发,所以这个分片后面的几个再出错也不用管了。
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
- 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
(4)ICMP 询问报文有两种
- 回送请求和回答报文(例如PING):ICMP 回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这
种询问报文用来测试目的站是否可达以及了解其有关状态。 - 时间戳请求和回答报文(例如Traceroute):在ICMP 时间戳请求报文发出后,就能够收到对方响应的ICMP 时间戳回答报文。利用在报文中记录的时间戳(如报文的发送时间和接收时间),发送方很容易计算出当前网络的往返时延。
- PING 用来测试两个主机之间的连通性。
- PING 使用了 ICMP 回送请求与回送回答报文。
- PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
traceroute:p149
在 Windows 操作系统中这个命令是 tracert.
用来跟踪一个分组从源点到终点的路径
它利用IP 数据报中的 TTL字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
能否使用 Traceroute探测网络拓扑结构?如能,试简述其原理。(21年真题,P150)
答:能使用 Traceroute探测网络拓扑,基于ICMP的差错报告报文功能。
工作原理:向目的主机发送一连串的数据报(封装的是上层无法交付的UDP数据报),第一个数据报P1的TTL设置为1,则到达第一个路由器后数据报的 TTL会被-1,-1后TTL变为0则被路由器丢弃且返回ICMP时间超过差错报文(有路由器P地址,时延);然后下一个数据报P2 TTL设置为2,P2先到达第一个路由器,收下后把 TTL 减1再转发给第二个路由器 ,第二个路由器收到后TTL减1, TTL 变为零就丢弃该数据报,并向源主机发送一个ICMP 时间超过差错报告报文。随后发送第三个数据报……依次类推,直到最后一个数据报到达目的主机,由于数据报无法交付,则丢弃且返回终点不可达差错报告报文。
六.因特网的路由选择协议
路由选择协议:每个路由器和其他路由器交换路由信息,例如:路由器A给B发送路由信息,就是告诉B:我(A)可以到达的路由器,即告诉B路径信息。最后让每个路由器知道整个系统内的其他每个路由器怎么走到。
1.有关路由选择协议的几个基本概念
(1) 理想的路由算法
- 算法必须是正确的和完整的。
- 算法在计算上应简单。
- 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
- 算法应具有稳定性。
- 算法应是公平的。
- 算法应是最佳的。
(2)关于“最佳路由”
(3)从路由算法的自适应性考虑
- 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
- 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
2. 分层次的路由选择协议
- 因特网采用分层次的路由选择协议。
- 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,许多单位不愿意外界了解自处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。
- 自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上
(1)自治系统 AS (Autonomous System)
3.内部网关协议——路由信息协议 RIP (Routing Information Protocol)
(1)工作原理
- 记忆:本路由器和相连路由器传递自己的路由表信息。
- 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
- RIP 是一种基于距离向量的分布式路由选择协议。RIP协议和OSPF协议都是分布式路由选择协议:每一个路由器都要不断地和其他一些路由器交换路由信息。
- RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
(2)“距离”的定义
- 从一路由器到直接连接的网络的距离定义为 1。
- 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1,即边的数量。
- RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
- 这里的“距离”实际上指的是最短距离
- RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短” 。
- RIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网,因为路由表每个节点要记下到本网络所有节点的路径,路由表大小受网络大小影响。
- RIP 不能在两个网络之间同时使用多条路由。
- RIP 选择一个具有最少路由器的路由(即最短路由)(路由就是路由表中的一行信息),哪怕还存在另一条高速(低时延)但路由器较多的路由
(3)RIP 协议的三个要点
- 相邻路由器:仅和相邻路由器交换信息。
- 全部信息:交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
- 固定30秒:按固定的时间间隔交换路由信息,例如,每隔 30 秒
RIP可以收敛,并且过程也较快。“收敛”就是在自治系统中所有的节点都得到正确的路由选择信息的过程。
(4)路由表的更新:距离向量算法
- ①相同下一跳,传递的路由表新的路径信息不管大小就更新旧路径信息,没有路径信息就添加。
- ②不同下一跳时,接收到新路径信息相同或更大则不更新;新路径更小则更新
例如:
N2:当C把自己的路由表给B时,B检查N2的新路径信息,新旧路径下一跳都是C,新路径距离是4+1=5,而旧路径距离是2,由于下一跳相同都是C,所以无论大小都更新新路径:N2 5 C。
N3:B检查N3的新路径信息,因为没有此网络路由信息,则直接加上:N3 9 C。
N6:B检查N6的新路径信息,新路径下一跳是C,旧路径下一跳是F,新路径距离是4+1=5,而旧路径距离是8,由于下一跳不同,比较大小,新距离小,则更新为新路径:N6 5 C。
N8:B检查N8的新路径信息,新路径下一跳是C,旧路径下一跳是E,新路径距离是3+1=4,而旧路径距离也是4,由于下一跳不同,比较大小,距离相同,则不更新路径。
N9:B检查N9的新路径信息,新路径下一跳是C,旧路径下一跳是F,新路径距离是5+1=6,而旧路径距离是4,由于下一跳不同,比较大小,旧距离短,则不更新路径。
距离向量算法书上话随便看看:
(
(5)RIP 协议的优缺点
- 坏消息传的慢:RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此网络不可达的信息传送到所有的路由器。
- RIP 协议最大的优点就是实现简单,开销较小。
- RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
坏消息传的慢解释:
-
R1 说: “我到网 1 的距离是 16 (表示无法到达),是直接交付。 ”
-
但 R2 在收到 R1 的更新报文之前,还发送原来的报文,因为这时 R2 并不知道 R1 出了故障。
-
R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说: “我到网 1 的距离是 3,下一跳经过 R2 ” 。然后将此更新信息发送给 R2。
- R2 以后又更新自己的路由表为“1, 4, R1 ” ,表明“我到网 1 距离是 4,下一跳经过 R1 ” 。
- 这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的。
4.内部网关协议——开放最短路径优先 OSPF(Open Shortest Path First)
(1)OSPF 协议的基本特点
- “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
- OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先” 。
- 是分布式的链路状态协议。
(2)OSPF的三个要点
- 所有路由器:向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
- 发送相邻关系信息:发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。(
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)) - 更新:只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
- OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。
(3)OSPF 的区域(area)
- 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域,要求区域内每个路由器知道组内任何成员如何到达。(因为路由表大小不受网络大小影响,每个节点都只记录自己所连节点,所以适用于大网络)
- 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
- 区域也不能太大,在一个区域内的路由器最好不超过 200 个。
划分区域好处
- 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
- 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
- OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
(4)OSPF 直接用 IP 数据报传送
(首部不用记)不同类型的OSPF分组数据部分加上OSPF分组首部,在封装上IP数据报首部成为IP数据报传送。即:OSPF→IP
对比比较:而RIP→UDP(运输层)→IP(网络层)
BGP→TCP(运输层)→IP(网络层)
(5)OSPF 的其他特点
- OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
- 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
- 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
- 支持可变长度的子网划分和无分类编址 CIDR。
- 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
- OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
- OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。
(6)OSPF 的五种分组类型
- 类型1,问候分组(Hello)。
- 类型2,数据库描述(Database Description)分组。
- 类型3,链路状态请求(Link State Request)分组。
- 类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
- 类型5,链路状态确认(Link State Acknowledgment)分组。
OSPF的基本操作:
(7)OSPF 使用的是可靠的洪泛法
R发送方发信息,洪水般蔓延发送路由信息(为了更新规则),最后收到后再给发送方回复ACK报文
5.外部网关协议 BGP(Border Gateway Protocol)
(1)BGP 使用的环境却不同
(2)BGP 发言人 (BGP speaker)
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。
- 一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
相当于每个班(AS)的班长(BGP发言人)

(3)BGP 交换路由信息
- 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。(两个AS自治系统之间沟通还是需要可靠服务的,好比班长代表一个班的形象,和其他班长发言不能老是出错)
- 使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
- 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。
对比比较:OSPF→IP
而RIP→UDP(运输层)→IP(网络层)
BGP→TCP(运输层)→IP(网络层)
(4)AS 的连通图举例
- BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS(即路径向量)。
- 当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。

(5)BGP 发言人交换路径向量
自治系统 AS2 的 BGP 发言人通知主干网和其他网络的 BGP 发言人: “要到达网络 N1 , N2 , N3 和 N4 可经过 AS2。 ”


(6)BGP 协议的特点
- BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
- 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
- BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
- 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
(7)BGP-4 共使用4种报文
- (1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
- (2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由,即:更新或撤销路由信息。
- (3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系,即:检查邻居还是不是你的邻居。
- (4) 通知(NOTIFICATION)报文,用来发送检测到的差错。
(8)iBGP,eBGP
外部边界网关协议iBGP(Internal Border Gateway Protocol)
内部边界网关协议eBGP(External Border Gateway Protocol)
(9)BGP的路由选择
6.对比RIP,OSPF,BGP
(1)定义区分
RIP:内部网关协议——路由信息协议 RIP (Routing Information Protocol),自治系统AS内路由器交换路由信息的协议1,(自治系统AS内告诉每个路由器其他路由器怎么走的协议)
OSPF:内部网关协议——开放最短路径优先 OSPF(Open Shortest Path First),也是自治系统AS内告诉每个路由器其他路由器怎么走的协议2
BGP:外部网关协议 BGP(Border Gateway Protocol),不同自治系统的路由器之间交换路由信息的协议,BGP发言人来交换路由信息。
(2)封装关系
OSPF→IP
而RIP→UDP(运输层)→IP(网络层)
BGP→TCP(运输层)→IP(网络层)
(3)连接关系信息
RIP:基于距离向量
OSPF:基于连接关系信息
BGP:路径向量
7.典型的路由器的结构
(1)“转发”和“路由选择”的区别
路由选择:领导制定的规则。转发:工人根据路由选择进行转发。即分组转发遵循路由选择协议制定的规则。
- “转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
- “路由选择”(routing)则是按照分布式算法(RIP,OSPF,BGP),根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
- 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
- 在讨论路由选择的原理时,往往不区分转发表和路由表的区别。
(2)输入端口对线路上收到的分组的处理
(3)分组丢弃
- 若路由器处理分组的速率赶不上分组进入队列的速率,则会溢出,即队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
- 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
(4)交换结构
线速
- 通过存储器
- 通过总线
- 通过互连网络
六.IP 多播
1.概念
2.IP 多播的一些特点
3.D 类 IP 地址与以太网多播地址的映射关系
01005E
七.网际组管理协议 IGMP和多播路由选择协议
1.IP多播需要两种协议
2.IGMP 的本地使用范围
- IGMP 并非在因特网范围内对所有多播组成员进行管理的协议。
- IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。即:会长不用亲自知道成员是谁,每个班班长知道就行
- IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组,即班长对人数增减做记录
3.多播路由选择协议比单播路由选择协议复杂得多
- 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化),即:只管自己社成员,不管其他人。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
- (不用看)
多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。
4.IGMP 是整个网际协议 IP的一个组成部分
- 和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成IP 数据报——封装),但它也向 IP 提供服务。
- 因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。
5.IGMP 可分为两个阶段
- 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器
- 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。(因为加入多播)
- 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
- 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
6.多播路由选择协议
- 多播路由选择协议尚未标准化。
- 一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
- 多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
- 在多播转发树上的路由器不会收到重复的多播数据报。
- 对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树(意思是不同根节点的树不一样,子树单拆出来也不一样)。
7.转发多播数据报使用的方法
(1)洪泛与剪除
RPB 的要点
- 路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。
- 若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。
- 如果存在几条同样长度的最短路径,那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的IP 地址最小。
(2)隧道技术(tunneling)
多播数据报通过不支持多播的网络时加上单播首部变成单播IP数据报穿过,后再去掉头部变成多播数据报。
①用隧道技术实现虚拟专用网
本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
部门A是内网,内网中也用IP地址,
②背专用地址范围!!!!!!!!!!!!!!!——RFC 1918 指明的专用地址 (private address)
- 10.0.0.0/8,10.0.0.0 到 10.255.255.255
- 172.16.0.0/12 ,172.16.0.0 到 172.31.255.255
- 192.168.0.0/16,192.168.0.0 到 192.168.255.255
- 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。
- 专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
③内联网 intranet 和外联网 extranet(都是基于 TCP/IP 协议)
④远程接入VPN (remote access VPN)
- 有的公司可能没有分布在不同场所的部门,但有很多流动员工在外地工作。公司需要和他们保持联系,远程接入 VPN 可满足这种需求。
- 在外地工作的员工拨号接入因特网,而驻留在员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。
8.网络地址转换 NAT (Network Address Translation)
- 网络地址转换 NAT 方法于1994年提出。
- 需要在专用网连接到因特网的路由器上安装NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址IPG。
- 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
网络地址转换的过程
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
举例:
- 下图X向Y传输数据,NAT 路由器R1将数据报的源地址 IPx 转换成全球地址 IPg,但目的地址 IPy 保持不变,然后发送到因特网。
- NAT 路由器R1收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
- 根据 NAT 转换表,NAT 路由器R1将目的地址 IPg转换为 IPx,转发给最终的内部主机 X。