目录
- 路由算法
- IPv4(这个必考)
- IPv6
- 路由协议(必考)
-
- 域内路由与域间路由
- [路由信息协议(Routing Information Protocol,RIP)](#路由信息协议(Routing Information Protocol,RIP))
- 开放最短路径优先(OSPF)协议
- 边界网关协议(BGP)
- IP组播
- 移动IP
- 网络层设备
路由算法
静态路由与动态路由
距离-向量算法
链路状态路由算法
层次路由
IPv4(这个必考)
IPv4分组
IPv4地址与NAT
子网划分与子网掩码、CIDR
ARP、DHCP与ICMP
地址解析协议ARP
- ARP协议用来完成IP地址到MAC地址的映射。
- ARP工作在网络层,工作原理如下:
- A欲向B发送IP数据报,先在其ARP高速缓存中查看有无主机B的IP地址。有则将此硬件地址写入MAC帧,然后通过局域网将MAC帧发往此硬件地址。没有则通过使用目的地址为FF-FF-FF-FF-FF-FF的MAC帧来封装并广播ARP请求分组,使用同一个局域网里的所有主机都收到此ARP请求。主机B收到该ARP请求后向A发送一个ARP响应分组(单播发送),分组中包含主机B的IP与MAC地址的映射关系,主机A收到ARP响应分组就将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧。ARP由于"看到了"IP地址所以它工作在网络层,而NAT路由器由于"看到了"端口,所以它工作在传输层。
- ARP用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的网络。
- 从IP地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络的另一个已知IP地址的主机或路由器进行通信,ARP就会自动地将这个IP地址解析为数据链路层所需要的硬件地址。
动态主机配置协议DHCP
- 用于给主机动态地分配IP地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手动参与。DHCP是应用层协议,它是基于UDP的。
- DHCP的工作原理是客户/服务器模式。需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才可以回复此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文称为提供报文。
- DHCP服务器和DHCP客户端的交换过程如下:
- DHCP客户机广播"DHCP发现"消息,试图找到DHCP服务器
- 收到后广播DHCP提供
- 收到DHCP提供后接受IP地址,广播DHCP请求
- DHCP广播确认
IPv6
IPv6特点
路由协议(必考)
自治系统:单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由。
域内路由与域间路由
- 内部网关协议(Interior Gateway Protocol,IGP)
内部网关协议即在一个自治系统内部使用的路由选择协议,它与互联网中其他自治系统使用什么路由选择协议无关。目前这类路由选择协议使用得最多,如RIP和OSPF。 - 外部网关协议(External Gateway Protocol,EGP)
若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时(两个自治系统可能使用不同的IGP),就需要使用一种协议将路由选择信息传递到另一个自治系统中。如BGP-4。
路由信息协议(Routing Information Protocol,RIP)
RIP是一种分布式的基于距离向量的路由选择协议。
- 网络中每个路由器都要维护从它自身到其他每个目的网络的距离记录(距离向量)。
- 距离也称跳数(Hop Count),规定从一个路由器到直接连接的距离为1,每经过一个路由器距离加1。
- RIP认为好的路由就是通过的路由器的数量少,即优先选择跳数少的路径。
- RIP允许一条路径最多只能包含15个路由器。因此距离等于16时,表示网络不可达。可见RIP只适用于小型互联网。距离向量可能会出现环路的情况,规定路径上最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。
- RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)。
- 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同。但在新的RIP2中,支持变长子网掩码和CIDR。
RIP的特点:
- 仅和相邻路由器交换信息。
- 路由器交换的信息是当前路由器知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,如每隔30秒。通过每隔30秒的RIP广播,相邻两个路由器互相将自己的路由表发给对方。
- RIP是应用层协议,它使用UDP传送数据。RIP选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。因为它是根据最少跳数进行路由选择的。
距离向量算法:
每个路由器表项都有三个关键数据:<目的网络N,距离d,下一跳路由器地址X>。对于每个相邻路由器发送过来的RIP报文执行如下步骤:
- 对地址为X的相邻路由器发送来的RIP报文,先修改此报文中的所有项目:把"下一跳"的地址都改为X并把"距离"都加1。
- 对修改后的RIP报文的每个项目,执行如下步骤:
①当原来的路由表中没有网络N时,把该项目添加到路由表中。
②当原来的路由表中有网络N时,且下一跳路由器地址是X,用收到的新的项目替换原路由表中的旧项目。
③当原来的路由表中有目的网络N时,且下一跳路由器地址不是X时,如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原项目,否则什么也不做。 - 如果180秒(RIP默认超时时间为180秒)还没收到相邻路由器更新路由表,那么把此相邻路由表记为不可达路由器,即把距离设置为16。
RIP的缺点如下:
- RIP限制了网络的规模,它能使用的最大距离为15。
- 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。
- 网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称"坏消息传得慢",使更新过程的收敛时间长。
开放最短路径优先(OSPF)协议
-
和RIP相比有以下4点主要区别:
- OSPF向本自治系统中的所有路由发送消息,这里使用的是洪泛法,RIP只向自己相邻的几个路由器发送消息。
- 发送的消息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。"路由状态"说明本路由器和那些路由器相邻及该链路的"度量"(或代价)。而在RIP中,发送的信息是本路由器所知道的全部信息,即整个路由表。
- 只有当前链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛快,不会出现RIP"坏消息传的慢"的问题。而在RIP中不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息。
- OSPF协议是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89),而RIP是应用层协议,它在传输层使用UDP。
-
除了以上的区别外,OSPF还有以下特点:
- OSPF对不同的链路可以根据IP分组的不同服务类型而设置不同的代价。因此OSPF可以对不同的业务计算出不同的路由,十分灵活。
- 如果同一个目的网络有多条代价相同的路径,那么可以将通信量分配给这几条路径。这称为多路径间的负载平衡。
- 所有在OSPF路由器之间交换的分组都具有鉴别能力,因而保证了仅在可信赖的路由器之间交换链路状态信息。
- 支持可变长度的子网划分和无分类编址CIDR。
- 最后所有路由器都能建立一个链路状态数据库,即全网拓扑图。
- OSPF使用Dijkstra最短路径算法计算到各目的网络的最优路径,以此构建自己的路由表。虽然使用Dijkstra算法能计算出完整的最优路径,但路由表中不会存储完整路径,而只存储"下一条"(到了下一跳就知道再下一跳怎么走)。
- 为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,称为区域。划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。这些区域也有层次之分。处在上层的域称为主干区域,负责连通其他下层的区域,并且还连接其他自治域。每一个区域有一个32位的区域识别符(点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过200个。
-
OSPF的五种分组类型
- 问候分组:用来发现和维护邻站的可达性。
- 数据库描述分组:向邻站给出自己的链路状态数据库中所有链路状态项目的摘要信息。
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。
- 链路状态更新分组:用洪泛法对全网更新链路状态。
- 链路状态确认分组:对链路更新分组的确认。
- 通常每隔10秒,每两个相邻路由器要交换一次问候分组,以便知道哪些站可达。在路由器刚开始工作时,OSPF让每个路由器使用数据库描述分组和相邻路由器交换本数据库已有的链路状态摘要信息。然后路由器使用链路状态请求分组,向对方请求发送自己缺少的某些链路状态的详细信息。经过一系列的这种分组交换,就建立了全网同步的链路数据库。
- 在网络运行的过程中,只要一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。其他路由器在更新后,发送链路状态确认分组对更新分组进行确认。
边界网关协议(BGP)
- 是不同自治系统路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网管之间。
- BGP的工作原理:每个自治系统的管理员要选择至少一个路由器作为自治系统的"BGP发言人"。一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。当所有的BGP发言人都相互交换网络可达性信息后,各BGP发言人就可以找出到达各个自治系统的较好路由。
- 每个BGP发言人除了必须运行BGP以外,还必须运行该AS所用的内部网关协议,如OSPF或RIP。
- BGP有四种报文
- 打开报文:用来与相邻的另一个BGP发言人建立关系。
- 更新报文:用来发送某一路由的信息,以及列出要撤销的多条路由。
- 保活报文:用来确认打开报文并周期性地证实邻站关系。369
- 通知报文:用来发送检测到的差错。
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换结点 | 和本结点相邻的路由器 | 网络中所有的路由器 | 和本结点相邻的路由器 |
交换内容 | 当前本路由器知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态 | 首次:整个路由表非首次:有变化的部分 |