网络层的功能
互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。也就是说,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器比较简单,而且价格低廉。如果主机中的进程之间的通信需要是可靠的,那么可以由更高层的传输层来负责。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今日的规模,充分证明了当初采用这种设计思想的正确性。
- 异构网络互联
要在全球范围内把数以百万计的网络互联起来,并且能够互相通信,是–项非常复杂的任务,此时需要解决许多问题,比如不同的寻址方案、不同的网络接入机制、不同的差错处理方法、不同的路由选择机制等。用户的需求是多样的,没有一种单一的网络能适应所有用户的需求。网络层所要完成的任务之一就是使这些异构的网络实现互联。
所谓网络互联,是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统或中继系统。
根据所在的层次,中继系统分为以下4种:
- 1)物理层中继系统:中继器,集线器(Hub)。
- 2)数据链路层中继系统:网桥或交换机。
- 3)网络层中继系统:路由器。
- 4)网络层以上的中继系统:网关。
使用物理层或数据链路层的中继系统时,只是把一个网络扩大了,而从网络层的角度看,它仍然是同一个网络,一般并不称为网络互联。因此网络互联通常是指用路由器进行网络互联和路由选择。路由器是一台专用计算机,用于在互联网中进行路由选择。
注意:由于历史原因,许多有关TCP/IP的文献也把网络层的路由器称为网关.
TCP/IP体系在网络互联上采用的做法是在网络层(即P层)采用标准化协议,但相互连接的网络可以是异构的。图表示用许多计算机网络通过一些路由器进行互联。由于参加互联的计算机网络都使用相同的网际协议(Internet Protocol,IP),因此可以把互联后的计算机网络视为如图所示的一个虚拟IP网络。
- 路由与转发
路由器主要完成两个功能:–是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。
- 1)路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
- 2)分组转发。指路由器根据转发表将用户的P数据报从合适的端口转发出去。
路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。
- 拥塞控制
在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。
例如,某个路由器所在链路的带宽为R B/s,如果IP分组只从它的某个端口进入,那么其速率为
r
i
n
B
/
s
r_{in} B/s
rinB/s。当
r
i
n
=
R
r_{in}=R
rin=R时,可能看起来是件“好事”,因为链路带宽被充分利用。但是,如图所示,当分组到达路由器的速率接近R时,平均时延急剧增加,并且会有大盘的分组被丢弃(路由器端口的缓冲区是有限的),整个网络的吞吐量会骤降,源与目的地之间的平均时延也会变得近乎无穷大。
判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系:如果随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,那么网络就可能已进入“轻度拥塞”状态;如果网络的吞吐量随着网络负载的增大而下降,那么网络就可能已进入拥塞状态;如果网络的负载继续增大,而网络的吞吐量下降到零,那么网络就可能已进入死锁状态。
为避免拥塞现象的出现,要采用能防止拥塞的一系列方法对子网进行拥塞控制。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免由于拥塞而出现分组的丢失,以及严重拥塞而产生网络死锁的现象。
拥塞控制的作用是确保子网能够承载所达到的流量,这是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等。单一地增加资源并不能解决拥塞
流量控制和拥塞控制的区别:
- 流量控制往往是指在发送端和接收端之间的点对点通信量的控制。流量控制所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。
- 拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。
拥塞控制的方法有两种:
- 1)开环控制。在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产
生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。 - 2)闭环控制。事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测
哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。
IPv4
IPv4分组
IPv4即现在普遍使用的IP(版本4)。P定义数据传送的基本单元——IP分组及其确切的数据格式。IP 也包括一套规则,指明分组如何处理、错误怎样控制。特别是IP还包含非可靠投递的思想,以及与此关联的分组路由选择的思想。
- IPv4分组的格式
一个IP分组由首部和数据部分组成。首部前一部分的长度固定,共20B,是所有P分组必须具有的。在首部固定部分的后面是–些可选字段,其长度可变,用来提供错误检测及安全等机制。
IP数据报格式
IP数据报分片
IPv4地址与NAT
IPv4地址
IP地址分类
网络地址转换NAT
子网划分与子网掩码、CIDR
子网划分与子网掩码
背景问题
子网划分
子网掩码
注:主机号对应的掩码是全0
72
(
十
进
制
)
=
01001000
(
二
进
制
)
72(十进制)=01001000(二进制)
72(十进制)=01001000(二进制)
192
(
十
进
制
)
=
11000000
(
二
进
制
)
192(十进制)=11000000(二进制)
192(十进制)=11000000(二进制)
01001000
(
二
进
制
)
∨
11000000
(
二
进
制
)
=
01000000
(
二
进
制
)
=
64
(
十
进
制
)
01001000(二进制)∨11000000(二进制)=01000000(二进制)=64(十进制)
01001000(二进制)∨11000000(二进制)=01000000(二进制)=64(十进制)
故
网
络
地
址
为
141.14.64.0
故网络地址为141.14.64.0
故网络地址为141.14.64.0
72
(
十
进
制
)
=
01001000
(
二
进
制
)
72(十进制)=01001000(二进制)
72(十进制)=01001000(二进制)
224
(
十
进
制
)
=
11100000
(
二
进
制
)
224(十进制)=11100000(二进制)
224(十进制)=11100000(二进制)
01001000
(
二
进
制
)
∨
11100000
(
二
进
制
)
=
01000000
(
二
进
制
)
=
64
(
十
进
制
)
01001000(二进制)∨11100000(二进制)=01000000(二进制)=64(十进制)
01001000(二进制)∨11100000(二进制)=01000000(二进制)=64(十进制)
故
网
络
地
址
为
141.14.64.0
故网络地址为141.14.64.0
故网络地址为141.14.64.0
使用子网时分组的转发
无分类编址CIDR
背景问题
- B类地址很快将分配完毕!
- 路由表中的项目急剧增长!
CIDR思想
构成超网
最长前缀匹配
网
络
掩
码
的
后
两
个
字
节
网络掩码的后两个字节
网络掩码的后两个字节
11111100.00000000
11111100.00000000
11111100.00000000
目
的
地
址
的
后
两
个
字
节
目的地址的后两个字节
目的地址的后两个字节
01000111.10000010
01000111.10000010
01000111.10000010
11111100.00000000
∨
01000111.10000010
11111100.00000000∨01000111.10000010
11111100.00000000∨01000111.10000010
=
01000100.00000000
=
68.0
=01000100. 00000000=68.0
=01000100.00000000=68.0
故
网
络
地
址
为
206.0.68.0
/
22
故网络地址为206.0.68.0/22
故网络地址为206.0.68.0/22
网
络
掩
码
的
后
两
个
字
节
网络掩码的后两个字节
网络掩码的后两个字节
11111111.10000000
11111111.10000000
11111111.10000000
目
的
地
址
的
后
两
个
字
节
目的地址的后两个字节
目的地址的后两个字节
01000111.10000010
01000111.10000010
01000111.10000010
11111111.10000000
∨
01000111.10000010
11111111.10000000∨ 01000111.10000010
11111111.10000000∨01000111.10000010
=
01000111.10000000
=
71.128
=01000111. 10000000=71.128
=01000111.10000000=71.128
故
网
络
地
址
为
206.0.71.128
/
25
故网络地址为206.0.71.128/25
故网络地址为206.0.71.128/25
ARP、DHCP与ICMP
IP地址与硬件地址
IP地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址〈如MAC地址),它是平面式的。在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据报分组中的P地址。
由于路由器的隔离,IP网络中无法通过广播方式依靠MAC地址来完成跨网络的寻址,因此在P网络的网络层只使用P地址来完成寻址。寻址时,每个路由器依据其路由表(依靠静态路由或动态路由协议生成〉选择到目标网络(即主机号全为0的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而IP分组通过多次路由转发到达目标网络后,改为在目标LAN中通过数据链路层的 MAC地址以广播方式寻址。这样可以提高路由选择的效率。
- 1)在P层抽象的互联网上只能看到P数据报。
- 2)虽然在P数据报首部中有完整的源P地址和目的P地址,但路由器只根据目的P地址的网络号进行路由选择。
- 3)在局域网的数据链路层,只能看见MAC帧。而通过路由器转发P分组时,此P分组在每个网络中都被路由器解封装和重新封装。因此P数据报在被路由器转发时,其数据链路层封装所使用的MAC地址是不断改变的。这也决定了无法使用MAC地址跨网络通信。
- 4)尽管互联在-起的网络的硬件地址体系各不相同,但P层抽象的互联网却屏蔽了下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机与主机或路由器之间的通信。
注意:路由器由于互联多个网络,因此它不仅有多个P地址,也有多个硬件地址。
地址解析协议ARP(Address Resolution Protocol)
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议(Address ResolutionProtocol,ARP)。每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。使用ARP来动态维护此ARP表。
ARP工作在网络层,其工作原理如下:主机A欲向本局域网上的某台主机B发送P数据报时,先在其ARP高速缓存中查看有无主机B的P地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。如果没有,那么就通过使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,使同一个局域网里的所有主机收到ARP请求。主机B收到该ARP请求后,向主机A发出响应ARP分组,分组中包含主机B的P与MAC地址的映射关系,主机A在收到后将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧。ARP由于“看到了”iP地址,所以它工作在网络层,而NAT路由器由于“看到了”端口,所以它工作在传输层。对于某个协议工作在哪个层次,读者应该能通过协议的工作原理进行猜测。
注意:ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,剩下的工作就由下一个网络来做,尽管ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。
★ \bigstar ★ARP的4种典型情况总结如下:
- 1)发送方是主机时,要把IP数据报发送到本网络上的另一台主机。这时用ARP找到目的主机的硬件地址。
- 2)发送方是主机时,要把IP数据报发送到另一个网络上的一台主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。
- 3)发送方是路由器时,要把IP数据报转发到本网络上的一台主机。这时用ARP找到目的主机的硬件地址。
- 4)发送方是路由器时,要把P数据报转发到另一个网络上的一台主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由找到的这个路由器完成。
从IP地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP就会自动地将这个IP地址解析为数据链路层所需要的硬件地址。
主 机 A → R 1 → R 1 → R 1 → R 1 → R 1 → 主 机 B , 走 了 6 步 , 故 用 了 6 次 A R P 协 议 主机A\to R1\to R1\to R1\to R1\to R1\to 主机B,走了6步,故用了6次ARP协议 主机A→R1→R1→R1→R1→R1→主机B,走了6步,故用了6次ARP协议
动态主机配置协议DHCP(Dynamic Host Configuration Protocol)
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)常用于给主机动态地分配地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。DHCP是应用层协议,它是基于UDP的。
DHCP的工作原理如下:使用客户/服务器方式。需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文。但只有 DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到。则返回找到的信息。若找不到,则从服务器的IP地址池中取–个地址分配给该计算机。DHCP服务器的回答报文称为提供报文。
DHCP服务器聚合DHCP客户端的交换过程如下:
- 1)DHCP客户机广播“DHCP发现”消息,试图找到网络中的DHCP服务器,以便从DHCP服务器获得一个P地址。
- 2)DHCP服务器收到“DHCP发现”消息后,向网络中广播“DHCP提供”消息,其中包括提供DHCP客户机的P地址和相关配置信息。
- 3)DHCP客户机收到“DHCP提供”消息,如果接收 DHCP服务器所提供的相关参数,那么通过广播“DHCP请求”消息向DHCP服务器请求提供P地址。
- 4)DHCP服务器广播“DHCP确认”消息,将P地址分配给DHCP客户机。
DHCP允许网络上配置多台DHCP服务器,当DHCP 客户机发出 DHCP请求时,有可能收到多个应答消息。这时,DHCP客户机只会挑选其中的一个,通常挑选最先到达的。
DHCP服务器分配给DHCP客户的P地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的P地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可在自己发送的报文中提出对租用期的要求。
DHCP是应用层协议,因为它是通过客户/服务器方式工作的,DHCP客户端向DHCP服务器请求服务。读者在后面的学习中会了解到,应用层协议有两种工作方式:客户/服务器方式和P2P方式,而其他层次的协议是没有这两种工作方式的。
DHCP 的客户端和服务器端需要通过广播方式来进行交互,原因是在 DHCP执行初期,客户端不知道服务器端的P地址,而在执行中间,客户端并未被分配P地址,从而导致两者之间的通信必须采用广播的方式。采用UDP而不采用TCP的原因也很明显:TCP需要建立连接,如果连对方的P地址都不知道,那么更不可能通过双方的套接字建立连接。
网际控制报文协议ICMP(Internet Control Message Protocol)
为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet ControlMessage Protocol,ICMP)来让主机或路由器报告差错和异常情况。ICMP报文作为P层数据报的数据,加上数据报的首部,组成P数据报发送出去。ICMP是IP层协议。
ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下5种类型:
- 1)终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
- 2)源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
- 3)时间超过。当路由器收到生存时间(TTL)为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
- 4)参数问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
- 5)改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)
不应发送ICMP差错报告报文的几种情况如下:
- 1)对ICMP差错报告报文不再发送ICMP差错报告报文。
- 2)对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
- 3)对具有组播地址的数据报都不发送ICMP差错报告报文。
- 4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
ICMP询问报文有4种类型:回送请求和回答报文、时间戳请求和回答报文、掩码地址请求和回答报文、路由器询问和通告报文,最常用的是前两类。
ICMP的两个常见应用是分组网间探测PING(用来测试两台主机之间的连通性)和Traceroute(UNIX中的名字,在Windows中是Tracert,可以用来跟踪分组经过的路由)。其中 PING使用了ICMP回送请求和回答报文,Traceroute (Tracert〉使用了ICMP时间超过报文。
注意:PING工作在应用层,它直接使用网络层的ICMP,而未使用传输层的TCP或 UDP,Traceroute/Tracert 工作在网络层。
IPv6
背景问题
IPv6数据报格式
IPv6和IPv4比较
IPv6地址表示形式
IPv6基本地址类型
1)单播。单播就是传统的点对点通信。
2)多播。多播是一点对多点的通信,.分组被交付到一组计算机的每台计算机。
3)任播。这是Pv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交
付其中的一台计算机,通常是距离最近的一台计算机。
lPv6向IPv4过渡的策略
IPv6扩展了IPv4地址的分级概念,它使用以下3个等级:第一级(顶级)指明全球都知道的公共拓扑:第二级(场点级)指明单个场点:第三级指明单个网络接口。IPv6地址采用多级体系主要是为了使路由器能够更快地查找路由。
IPv4向IPv6过渡只能采用逐步演进的办法,同时还必须使新安装的IPv6系统能够向后兼容。IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。
IPv4向IPv6过渡可以采用双协议栈和隧道技术两种策略:
- 双协议栈技术是指在一台设备上同时装有IPv4和 IPv6协议栈,那么这台设备既能和IPv4网络通信,又能和IPv6网络通信。
- 如果这台设备是一个路由器,那么在路由器的不同接口上分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络;
- 如果这台设备是一台计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。
- 隧道技术是将整个IPv6数据报封装到IPv4数据报的数据部分,使得IPv6数据报可以在IPv4网络的隧道中传输。
路由算法
静态路由与动态路由
路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可以分为如下两大类。
- 静态路由算法(又称非自适应路由算法)。指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。它不能及时适应网络状态的变化,对于简单的小型网络,可以采用静态路由。
- 动态路由算法(又称自适应路由算法)。指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
静态路由算法的特点是简便和开销较小,在拓扑变化不大的小网络中运行效果很好。动态路由算法能改善网络的性能并有助于流量控制;但算法复杂,会增加网络的负担,有时因对动态变化的反应太快而引起振荡,或反应太慢而影响网络路由的一致性,因此要仔细设计动态路由算法,以发挥其优势。
常用的动态路由算法可分为两类:距离-向量路由算法和链路状态路由算法。
距离-向量路由算法
在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:
- 每条路径的目的地(另一结点)。·
- 路径的代价(也称距离)。
注意:这里的距离是一个抽象的概念,如RIP就将距离定义为“跳数”。跳数指从源端口到达目的端口所经过的路由器个数,每经过一一个路由器,跳数加1。
在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:
- 1)被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的
路由。 - 2)发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由。
距离-向量路由算法的实质是,迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短(最小代价)通路。它要求每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点。显然,更新报文的大小与通信子网的结点个数成正比,大的通信子网将导致很大的更新报文。
由于更新报文发给直接邻接的结点,所以所有结点都将参加路由选择信息交换。基于这些原因,在通信子网上传送的路由选择信息的数盘很容易变得非常大。
最常见的距离-向量路由算法是RIP算法,它采用“跳数”作为距离的度量。
链路状态路由算法
链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务。
- 第一,主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络。
- 第二,定期地将链路状态传播给所有其他结点(或称路由结点)。
典型的链路状态算法是OSPF算法。
在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送给网上的所有其他结点,而不是仅送给那些直接相连的结点。每个结点都用这种方式从网上所有其他的结点接收包含直接链路状态的路由选择信息。
每当链路状态报文到达时,路由结点便使用这些状态信息去更新自己的网络拓扑和状态“视野图",一旦链路状态发生变化,结点就对更新的网络图利用Dijkstra最短路径算法重新计算路由,从单一的源出发计算到达所有目的结点的最短路径。
链路状态路由算法主要有三个特征:
- 1)向本自治系统中所有路由器发送信息,这里使用的方法是泛洪法,即路由器通过所有端口向所有相邻的路由器发送信息。而每个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器)。
- 2)发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。所谓“链路状态”,是指说明本路由器与哪些路由器相邻及该链路的“度量”。对于OSPF算法,链路状态的“度量”主要用来表示费用、距离、时延、带宽等。
- 3)只有当链路状态发生变化时,路由器才向所有路由器发送此信息。
由于一个路由器的链路状态只涉及相邻路由器的连通状态,而与整个互联网的规模并无直接关系,因此链路状态路由算法可以用于大型的或路由信息变化聚敛的互联网环境。
链路状态路由算法的主要优点是,每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算:链路状态报文不加改变地传播,因此采用该算法易于查找故障。
当一个结点从所有其他结点接收到报文时,它可以在本地立即计算正确的通路,保证一步汇聚。最后,由于链路状态报文仅运载来自单个结点关于直接链路的信息,其大小与网络中的路由结点数目无关,因此链路状态算法比距离-向量算法有更好的规模可伸展性。
距离-向量路由算法与链路状态路由算法的比较:在距离-向址路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供从自己到网络中所有其他结点的最低费用估计。在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。相较之下,距离-向量路由算法有可能遇到路由环路等问题。
层次路由
当网络规模扩大时,路由器的路由表成比例地增大。这不仅会消耗越来越多的路由器缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。
因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统中包含很多局域网)每个自治系统有权自主地决定本系统内应采用何种路由选择协议。如果两个自治系统需要通信,那么就需要一种在两个自治系统之间的协议来屏蔽这些差异。据此,因特网把路由选择协议划分为两大类:
- 1)一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP)也称域内路由选择,具体的协议有RIP和OSPF等。
- 2)自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称域间路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP。
使用层次路由时,OSPF将一个自治系统再划分为若干区域(Area),每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。
采用分层次划分区域的方法虽然会使交换信息的种类增多,但也会使OSPF 协议更加复杂。但这样做却能使每个区域内部交换路由信息的通信量大大减小,因而使OSPF 协议能够用于规模很大的自治系统中。
路由协议
自治系统
自治系统(Autonomous System,AS):单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由。
一个自治系统内的所有网络都由一个行政单位(如一家公司、一所大学、一个政府部门等)管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。
域内路由与域间路由
自治系统内部的路由选择称为域内路由选择,自治系统之间的路由选择称为域间路由选择。因特网有两大类路由选择协议。
路由信息协议(RIP)
RIP(Routing Information Protocol,路由信息协议)是使用最久的协议之一。RIP是一种分布式的基于距离向量的路由选择协议,RIP协议是施乐公司20世纪80年代推出的,主要适用于小规模的网络环境。RIP协议主要用于一个AS(自治系统)内的路由信息的传递,每30s发送一次路由信息更新。RIP是应用层协议,使用UDP传送数据。
距离向量算法
练习
RIP协议的报文格式
RIP特点
当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。(RIP协议好消息传得快,坏消息传得慢)
开放最短路径优先(OSPF)协议
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
链路状态路由算法
OSPF区域
OPSF分组
OSPF特点
边界网关协议(BGP)
边界网关协议(Border Gateway Protocol,BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
BGP协议交换信息的过程
BGP协议报文格式
BGP协议特点
BGP-4的四种报文
RIP、OSPF、BGP比较
IP组播
IP数据报的三种传输方式
组播的概念
IP组播地址
硬件组播
IGMP与组播路由算法
网际组管理(IGMP)协议
IGMP工作的两个阶段
组播路由选择协议
组播路由选择协议目的是找出以源主机为根节点的组播转发树。
移动IP
移动IP的概念
移动IP通信过程
网络层设备
路由器的组成和功能
输入端口对线路上收到的分组的处理
输出端口将交换结构传送来的分组发送到线路
路由表与路由转发
三层设备的区别
参考文献
[1] 谢希仁. 计算机网络. 7版. 北京:电子工业出版社,2017
[2] 王道论坛. 2022计算机网络考研复习指导. 北京:电子工业出版社,2021