① 路由算法
路由算法是网络层软件的一部分。子网提供数据报服务,每个包都要做路由选择;子网提供虚电路服务,只需在建立连接时做一次路由选择
正确性,简单性,健壮性(鲁棒性,网络出现意外情况时候的解决问题的能力。例如突然某个路由器停电了,使得周边的路由器都没法正常工作,如果出现这样的问题说明路由器的健壮性不够),稳定性(常规使用是否稳定,数据量增多的时候能否正常工作),公平性(网络资源的使用是否公平,避免有些节点出现特别繁忙的状态,而有些节点总是处于很闲的状态),最优性
• 按转发方式和数据副本数量划分
1.全路路由(广播路由)算法:如洪泛算法,按照所有路径广播转发(中间转发节点以及目标节点都会送到很多重复数据。不需要路由表和路由控制功能)
2.多路路由算法:向所有接近目的节点的路径转发(中间转发节点以及目标节点都会送到很多重复数据。)
3.单路路由算法:如距离矢量算法,向目的节点沿着唯一的路径转发(中间的转发节点只转发一份数据即可)
• 按健壮性和简单性划分
1.非自适应算法(静态路由算法):不能根据网络流量和拓扑结构的变化更新路由表,使用静态路由表。需要人为的更改和设定。特点是简单、开销小、灵活性差。典型算法为基于流量的路由算法等
2.自适应算法(动态路由算法):可根据网络流量(网络承载的数据量)和拓扑结构的变化更新路由表。特点是开销大、健壮性和灵活性好。典型算法为距离向量路由算法、链路状态路由算法等
☆可以静态路由和动态路由结合起来使用,此时静态路由的优先级别较高
测量(获取)有关路由选择的网络度量参数(选择最优,比如是要求传播距离最短,还是要求传输时延短等)。如何测量?选取哪些网络参数?
将路由信息传送到适当的网络节点。传送给谁?如何传送?传送什么信息?
计算和更新路由表。更新路由表的算法
根据新路由表执行分组的转发
如果路由器J在路由器I到K的最优路由上,那么从J到K的最优路由一定落在同一路由上
从所有的源节点到一个给定的目的节点的最优路由的集合形成了一个以目的节点为根的树,称为汇集树;路由算法的目的是找出并使用汇集树
基本思想:构建子网的拓扑图,图中的每个节点代表一个路由器,每条弧代表一条通信线路。为了选择两个路由器间的路由,算法需要在图中找出节点间的最短路径
节点数量;地理距离;传输延迟;距离、信道带宽等参数的加权函数
网络规模增大带来的问题:路由器中的路由表增大;路由器为选择路由而占用的内存、CPU时间和网络带宽增大
分层路由:分而治之的思想;根据需要,将路由器分成区域、聚类、区和组;Fig.6-6,路由表由17项减为7项
分层路由带来的问题:路由表中的路由不一定是最优路由
☆分层路由功能大部分时候性能是比较好的,可以选择最优路径,但是有时也会选择到非最优路径。比如上图中如果想从1A到5C,应该是1A→1B→2A→2B→2D→5C是比较优的选择,但是按照1A的分层路由表显示,从区域1到区域5出口线路为1C,因此选择的路线为1A→1C→3B→4A→5A→5B→5C,这时就相对绕远了
DVR - Distance Vector Routing
动态路由算法,也称Bellman - Ford路由算法或Ford - Fulkerson算法,最初用于ARPANET(Internet的前身),被RIP协议所采用
每个路由器维护一张路由表,表中给出了到每个目的地的已知最佳距离和线路,并通过与相邻路由器交换距离信息来更新表;每隔一段时间,路由器向所有邻居节点发送它到每个目的节点的距离表,同时它也接收每个邻居节点发来的距离表;邻居节点X发来的表中,X到路由器I的距离为Xi,本路由器到X的距离为m,则路由器经过X到i的距离为Xi + m。根据不同邻居发来的信息,计算Xi + m,并取最小值,更新本路由器的路由表
图1:
此时路由A把它的路由表发给路由B,B会综合从A得来的路由表来更新自己的矢量表↓
根据初始A矢量表和B矢量表得知B到A为6,B到C为1,B到D没有;两个表都有到E的距离,直接从B到E为8;如果B经由A再到E就要计算A到B的距离加上A到E的距离即可,即6+1=7
图2:
B把路由表发给C之后↓
从C的初始矢量表可得知C到B为1,C到D为2,C无法直接到A,但是通过B的路由表得知B到A为6,再加上C到B的距离1,得出C到A距离为7,同理可得到E距离为7+1=8
图3:
C把路由表发给D之后↓
图4:
D把路由表发给E之后↓
J的相邻节点为4个,分别为A,I,H,K,因此可以选择的路线也为4种
现在要求J的最新路由表。以J到E为例,J到A为8,A到E为14,和为22;J到I为10,I到E为7,和为17;J到H为12,H到E为30,和为42;J到K为6,K到E为22,和为28。从而得出,经由I的时候得到的和17最小,因此在新生成的J到E的位置记录17
无限计算问题:对好消息反应迅速,对坏消息反应迟钝
比如从E到A,E刚开始连通的时候是不知道如何才能到A的,只有通过B与A交互,C与B交互这样最终E通过与D交互才知道如何能到A,这就是好消息。可能需要花些时间,但是结果都是无论目的节点是哪里总会找到路径
坏消息例子:A,B,C之间通信。B到A的距离为1(A,1),C到A的距离为2(B(经B),2)。各个节点都会有一个刷新周期,到了这个周期的时候每个节点会把自己的路由信息发给其相邻节点。例如A路由断开连接,这个时候B到A的线路断开。也就是B到A的距离为无穷大了(A,∞)。如果在B把这个信息反馈给C之前,C先把路由信息告诉B了,那么B收到的信息就为(C,3)。因为A已经不存在,而B从C处得知通过C有路径可以到达A,这时B的路由表就变成(C,3),同样的这时B再告诉C,C就会变成(B,4),就会这样无穷计算下去。如果一开始是B先把信息发给C就不会发生这样的问题
• 触发式更新:节点不等到刷新周期的到来,只要有突发情况马上就会把情况通知相邻路由
• 水平分割:因为一开始C是从B得知经过B可以到达A的,所以用了这种方法之后,C就不会再向B发送如何到A,而只等着B给C发如何到A了。这样就不会有无穷计算问题
• 定义一个最大值:坏消息例子当中,括号里后面的数会一直循环增长下去,如果把这个数字设置一个最大值,那么当循环到这个最大值的时候双方就不会再就怎么到A的信息进行交互了,就不会发生无穷计算的情况
• 挂起计数器:坏消息例子当中,B收到了C的路由最新信息(C,3)的时候这个不会马上生效刷新,(A,∞)会保留两个周期,在这两个周期里面,B肯定有机会给C发送(A,∞),
而因为C没有通往A的路径,所以当C到刷新周期的时候给B发的就为(B,∞)。B前后收到的信息不一致,但是第二次收到的信息和B发给C的信息是一致的,所以B就会认为第一次收到的(C,3)是无效的。但是如果C真的有了一条通往A的线路,这时两次发的信息一定是一致的,那么B就会相信C的信息,从而把(A,∞)刷新成C给B的信息
❉距离向量路由算法只适用于小规模网络,每个节点不清楚整个网络的拓扑结构
发现邻居节点,并学习它们的网络地址,测量到每个邻居节点的延迟或开销,将所有学习到的内容封装成一个链路状态包(包以发送方的标识符开头,后面是序号、年龄和一个邻居节点列表;链路状态包定期创建或发生重大事件时创建)。将链路状态包广播发送给所有其他路由器【洪泛方式:状态包包含一个序号,每次发送新包时加1。路由器记录信息对(源路由器,序号),当一个链路状态包到达时,若是新的则分发,若是重复的则丢弃,若序号比路由记录中的最大序号小则认为过时而丢弃】。计算到每个其他路由器的最短路径
☆链路状态路由算法适用于大规模网络。每个节点都会了解其他节点的局部拓扑,因此就会了解整个网络的拓扑结构,这时当前节点就能找到到目的节点的最优路由
• 使用32位序号。
因为序号是循环使用的,如果位数很少,比如只是1~7,那么7不一定比1大,1有可能是下一轮的第一个数。而32位的时候因为数字特别庞大,不会出现这样问题
• 增加年龄域,每秒钟年龄减1,为零则丢弃
比如A发给B (C,4),由于差错,本来是(C,5)的下一个包,变成了(C,1000)。这之后来的(C,6),(C,7)。。。都没有(C,1000)大,因此包会被丢弃。但其实后面到的包都是新的。为了避免这样的问题发生,(C,1000)里的1000就会在每一秒减1,直到年龄比新到的包小,接下来就可以正常接包了。不过这之前到的包都会被丢弃,这也是没有办法的事
• 链路状态包到达后,延迟一段时间,并与其它已到达的来自同一路由器的链路状态包比较序号,丢弃重复包,保留新包
• 链路状态包需要应答
为了保证数据传输的可靠性
② 路由器算法必须具备
路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。必须具备以下几个设计目标:
——(1)最优化:指路由算法选择最佳路径的能力。
——(2)简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。
——(3)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。
——(4)快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。
——(5)灵活性:路由算法可以快速、准确地适应各种网络环境。例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。
③ 我的路由器连接不上网络了应该怎么设置
原因及解决办法:
1、路由器插口连接错误
用户第一步应该检查插口是否连接错误,WAN接口是路由器网络接入插口,通常连接光猫与网线,LAN接口连接的电脑,可以任意选择一个LAN接口与电脑相连接。
(3)路由器算法不能适应新网络环境扩展阅读
连通不同的网络
从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。
对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。因此,使用路由器转发和过滤数据的速度往往要比只查看数据包物理地址的交换机慢。但是,对于那些结构复杂的网络,使用路由器可以提高网络的整体效率。路由器的另外一个明显优势就是可以自动过滤网络广播。总体上说,在网络中添加路由器的整个安装过程要比即插即用的交换机复杂很多。
信息传输
有的路由器仅支持单一协议,但大部分路由器可以支持多种协议的传输,即多协议路由器。由于每一种协议都有自己的规则,要在一个路由器中完成多种协议的算法,势必会降低路由器的性能。路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。
由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据--路径表(Routing Table),供路由选择时使用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路径表可以是由系统管理员固定设置好的。
静态路由表:由系统管理员事先设置好固定的路径表称之为静态(static)路径表。
动态路由表:动态(Dynamic)路径表是路由器根据网络系统的运行情况而自动调整的路径表。
④ 路由算法的设计目标
路由算法通常具有下列设计目标的一个或多个:优化、简单、低耗、健壮、稳定、快速聚合、灵活性。
(1)最优化:指路由算法选择最佳路径的能力。根据metric的值和权值来计算。
(2)简洁性:算法设计必须简洁。路由协议在网络中必须高效地提供其功能,尽量减少软件和应用的开销。这在当实现路由算法的软件必须运行在物理资源有限的计算机上时尤其重要。
(3)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。
(4)快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。
(5)灵活性:路由算法要求可以快速、准确地适应各种网络环境。例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。
⑤ 路由器设置显示网络异常怎么办呀
1、首先用网线连接光纤猫与路由器,网线的一头插到光纤猫的“网口”孔,网线的另一头插到路由器的Wlan接口。
⑥ 路由技术的算法分类
路由选择算法就是路由选择的方法或策略。
按照路由选择算法能否随网络的拓扑结构或者通信量自适应地进行调整变化进行分类,路由选择算法可以分为静态路由选择算法和动态路由选择算法。 静态路由选择算法就是非自适应路由选择算法,这是一种不测量、不利用网络状态信息,仅仅按照某种固定规律进行决策得简单得路由选择算法。静态路由选择算法得特点是简单和开销小,但是不能适应网络状态的变化。静态路由选择算法主要包括扩散法和固定路由表法。静态路由是依靠手工输入的信息来配置路由表的方法。
静态路由具有以下几个优点:减小了路由器的日常开销。在小型互联网上很容易配置。可以控制路由选择的更新。但是,静态路由在网络变化频繁出现的环境中并不会很好的工作。在大型的和经常变动的互联网,配置静态路由是不现实。 动态路由选择算法就是自适应路由选择算法,是依靠当前网络的状态信息进行决策,从而使路由选择结果在一定程度上适应网络拓扑结构和通信量的变化。
动态路由选择算法的特点是能较好的适应网络状态的变化,但是实现起来较为复杂,开销也比较大。动态路由选择算法一般采用路由表法,主要包括分布式路由选择算法和集中式路由选择算法。分布式路由选择算法是每一个节点通过定期得与相邻节点交换路由选择得状态信息来修改各自的路由表,这样使整个网络的路由选择经常处于一种动态变化的状况。集中式路由选择算法是网络中设置一个节点,专门收集各个节点定期发送得状态信息,然后由该节点根据网络状态信息,动态的计算出每一个节点的路由表,再将新的路由表发送给各个节点。
⑦ 非自适应路由选择算法有哪些
根据路由算法对网络变化的适应能力,主要分为两种类型: 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
⑧ internet中的路由算法的应用和发展
路由算法可以根据多个特性来加以区分。首先,算法设计者的特定目标影响了该路由协议的操作;其次,存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;最后,路由算法使用多种metric,影响到最佳路径的计算。
路由算法通常具有下列设计目标的一个或多个:
优化
简单、低耗
健壮、稳定
快速聚合
灵活性
优化指路由算法选择最佳路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。
路由算法也可以设计得尽量简单。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销。当实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。
路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。
此外,路由算法必须能快速聚合,聚合是所有路由器对最佳路径达成一致的过程。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使最佳路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由算法可能会产生路由环或网路中断。
各路由算法的区别点包括:
静态与动态
单路径与多路径
平坦与分层
主机智能与路由器智能
域内与域间
链接状态与距离向量
(1)静态与动态
静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射。这些映射自身并不改变,除非网管去改动。使用静态路由的算法较容易设计,在网络通信可预测及简单的网络中工作得很好。
由于静态路由系统不能对网络改变做出反映,通常被认为不适用于现在的大型、易变的网络。九十年代主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变。如果信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变。
动态路由算法可以在适当的地方以静态路由作为补充。例如,最后可选路由(router of last resort),作为所有不可路由分组的去路,保证了所有的数据至少有方法处理。
(2)单路径与多路径
一些复杂的路由协议支持到同一目的的多条路径。与单路径算法不同,这些多路径算法允许数据在多条线路上复用。多路径算法的优点很明显:它们可以提供更好的吞吐量和可靠性。
(3)平坦与分层
一些路由协议在平坦的空间里运作,其它的则有路由的层次。在平坦的路由系统中,每个路由器与其它所有路由器是对等的;在分层次的路由系统中,一些路由器构成了路由主干,数据从非主干路由器流向主干路由器,然后在主干上传输直到它们到达目标所在区域,在这里,它们从最后的主干路由器通过一个或多个非主干路由器到达终点。
路由系统通常设计有逻辑节点组,称为域、自治系统或区间。在分层的系统中,一些路由器可以与其它域中的路由器通信,其它的则只能与域内的路由器通信。在很大的网络中,可能还存在其它级别,最高级的路由器构成了路由主干。
分层路由的主要优点是它模拟了多数公司的结构,从而能很好地支持其通信。多数的网络通信发生在小组中(域)。因为域内路由器只需要知道本域内的其它路由器,它们的路由算法可以简化,根据所使用的路由算法,路由更新的通信量可以相应地减少。
(4)主机智能与路由器智能
一些路由算法假定源结点来决定整个路径,这通常称为源路由。在源路由系统中,路由器只作为存贮转发设备,无意识地把分组发向下一跳。其它路由算法假定主机对路径一无所知,在这些算法中,路由器基于自己的计算决定通过网络的路径。前一种系统中,主机具有决定路由的智能,后者则为路由器具有此能力。
主机智能和路由器智能的折衷实际是最佳路由与额外开销的平衡。主机智能系统通常能选择更佳的路径,因为它们在发送数据前探索了所有可能的路径,然后基于特定系统对“优化”的定义来选择最佳路径。然而确定所有路径的行为通常需要很多的探索通信量和很长的时间。
(5)域内与域间
一些路由算法只在域内工作,其它的则既在域内也在域间工作。这两种算法的本质是不同的。其遵循的理由是优化的域内路由算法没有必要也成为优化的域间路由算法。
(6)链接状态与距离向量
链接状态算法(也叫做短路径优先算法)把路由信息散布到网络的每个节点,不过每个路由器只发送路由表中描述其自己链接状态的部分。距离向量算法(也叫做Bellman-Ford算法)中每个路由器发送路由表的全部或部分,但只发给其邻居。也就是说,链接状态算法到处发送较少的更新信息,而距离向量算法只向相邻的路由器发送较多的更新信息。
由于链接状态算法聚合得较快,它们相对于距离算法产生路由环的倾向较小。在另一方面,链接状态算法需要更多的CPU和内存资源,因此链接状态算法的实现和支持较昂贵。虽然有差异,这两种算法类型在多数环境中都可以工作得很好。
3、路由的metric
路由表中含有由交换软件用以选择最佳路径的信息。但是路由表是怎样建立的呢?它们包含信息的本质是什么?路由算法怎样根据这些信息决定哪条路径更好呢?
路由算法使用了许多不同的metric以确定最佳路径。复杂的路由算法可以基于多个metric选择路由,并把它们结合成一个复合的metric。常用的metric如下:
路径长度
可靠性
延迟
带宽
负载
通信代价
路径长度是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。
可靠性,在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以metric值。
路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的metric。
http://tech.ddvip.com/2007-10/119152495935811.html
这里面有解释。。恩
⑨ 路由器的原理
路由器的概念及基本构成
路由器是一种用于网络互连的计算机设备,它工作在 OSI 参考模型的第三层
(网络层),为不同的网络之间报文寻径并存储转发。
作为路由器,必须具备:
Ⅰ 两个或两个以上的接口:用于连接不同的网络。
Ⅱ 协议至少实现到网络层:只有理解网络层协议才能与网络层通讯。
Ⅲ 至少支持两种以上的子网协议:异种子网互联。
Ⅳ 具有存储、转发、寻径功能 :实现速率匹配与路由寻径。
Ⅴ 一组路由协议:包括域内路由协议、域间路由协议。
路由器的作用
Ⅰ 异种网络互连:主要是具有异种子网协议的网络互连。
Ⅱ 子网协议转换:不同子网间包括局域网和广域网间协议转换。
Ⅲ 路由(寻径):路由表建立、刷新、查找。
Ⅳ 速率适配:不同接口具有不同的速率,路由器可以利用自己 缓存及流控协议适配。
Ⅴ 隔离网络:防止广播风暴,网络安全(防火墙)。
Ⅵ 报文分片与重组:接口的 MTU 不同,超过接口的 MTU 的报文会被分片,到达目的地的报文会被重组。
Ⅶ备份、流量流控:主备线路的切换及复杂的流量控制。
路由器工作原理
路由器中时刻维持着一张路由表,所有报文的发送和转发都通过查找路由表。从相应端口发送。这张路由表可以是静态配置的,也可以是动态路由协议产生的。物理层从路由器的一个端口收到一个报文,上送到数据链路层。数据链路层去掉链路层封装,根据报文的协议域上送到网络层。网络层首先看报文是否是送给本机的,若是,去掉网络层封装,送给上层。若不是,则根据报文的目的地址查找路由表,若找到路由,将报文送给相应端口的数据链路层,数据链路层封装后,发送报文。若找不到路由,报文丢弃。
电子产品世界
路由器工作原理
手机与无线通信 作者:何富和 时间:2015-05-27来源:电子产品世界
导读:说起路由器,大家对它一定非常熟悉吧,上网都靠他,但它是靠什么原理工作的呢,它的工作流程是怎样呢?今天小编带大家了解一下路由器的工作原理。
路由器的概念及基本构成
路由器是一种用于网络互连的计算机设备,它工作在 OSI 参考模型的第三层
(网络层),为不同的网络之间报文寻径并存储转发。
作为路由器,必须具备:
Ⅰ 两个或两个以上的接口:用于连接不同的网络。
Ⅱ 协议至少实现到网络层:只有理解网络层协议才能与网络层通讯。
Ⅲ 至少支持两种以上的子网协议:异种子网互联。
Ⅳ 具有存储、转发、寻径功能 :实现速率匹配与路由寻径。
Ⅴ 一组路由协议:包括域内路由协议、域间路由协议。
路由器的作用
Ⅰ 异种网络互连:主要是具有异种子网协议的网络互连。
Ⅱ 子网协议转换:不同子网间包括局域网和广域网间协议转换。
Ⅲ 路由(寻径):路由表建立、刷新、查找。
Ⅳ 速率适配:不同接口具有不同的速率,路由器可以利用自己 缓存及流控协议适配。
Ⅴ 隔离网络:防止广播风暴,网络安全(防火墙)。
Ⅵ 报文分片与重组:接口的 MTU 不同,超过接口的 MTU 的报文会被分片,到达目的地的报文会被重组。
Ⅶ备份、流量流控:主备线路的切换及复杂的流量控制。
路由器工作原理
路由器中时刻维持着一张路由表,所有报文的发送和转发都通过查找路由表。从相应端口发送。这张路由表可以是静态配置的,也可以是动态路由协议产生的。物理层从路由器的一个端口收到一个报文,上送到数据链路层。数据链路层去掉链路层封装,根据报文的协议域上送到网络层。网络层首先看报文是否是送给本机的,若是,去掉网络层封装,送给上层。若不是,则根据报文的目的地址查找路由表,若找到路由,将报文送给相应端口的数据链路层,数据链路层封装后,发送报文。若找不到路由,报文丢弃。
子网寻径及路由
标准的寻径表表目是一个二维组(信宿网络地址,下一驿站地址),其中不携带子网信息,不能满足子网寻径。引入子网编址以后,子网寻径表的每一表目中加入子网模,于是子网寻径表表目变为三维组:子网模、信宿网络地址、下一驿站地址。
路由算法、路由协议、寻径
路由器依据路由表来为报文寻径,路由表由路由协议建立和维护。路由协议的设计则是依据某种路由算法。
选径是否是最佳:
以什么参数来衡量路由,如时延、距离、中间网关数等。
简洁性:路由算法应设计的尽可能简洁。
强壮性:路由算法必须具有鲁棒性,应经得起各种网络环境的考验。
快速收敛性:即所有路由器就最优路径达成一致的过程路由算法如果收敛的慢,就会引起路径循环或网络消耗。
灵活性、弹性:路由算法能否适应网络环境的各种变化,例如网络带宽、路由器的缓存、网络时延等发生变化,路由算法能否根据这些变化做出调整。路由表包含的信息用来交换路由信息和选择最佳路由路由表是路由器的核心,其中的路由信息来源有两种:一种是手动添加的静态路由,另外一种是路由器运行过程中由动态路由协议学习而得来。路由算法使用了许多不同的权决定最佳路由。
通常采用的权如下:
Ⅰ 路径距离:指所经过的每条链路的权值之和,有的路由协议指节点数目;
Ⅱ 可靠性:指网络链路是否容易出故障;
Ⅲ 时延:指网络链路造成的网络延时;
Ⅳ 带宽:指链路传输信息流容量的能力;
Ⅴ 承载量:指网络资源如路由器的繁忙程度;
路由器与相关网络设备的比较
Hubs(中继器):对应 7 层模型的物理层,它的作用是放大电信号。主要用于连接具有相同物理层的 LAN。Hubs 还将以太网的总线结构变成星状结构。Bridges(Switches):是一种在数据链路层实现互连的存储转发设备,广泛用于局域网的扩展。Bridges 从一个网段接收完整的数据帧,进行必要的比较和验证,然后决定是丢弃还是发送给另外一个网段。Bridges 具有隔离网段的作用。在网络上适当地使用 Bridges 可以调整网络负载,提高传输性能。
Router(路由器):与 Bridges 相比,路由器实现网络互连是发生在网络层,它实现了相对复杂的功能:路由选择、多路重发、错误检测等。路由器的异构网互连能力、阻塞控制能力和网段的隔离能力要强于 Bridges。路由器可以阻止网络风暴、支持多协议、提供多种接口。
⑩ 宽带装了路由后不能联网
路由是把信息从源穿过网络传递到目的地的行为,在路上,至少遇到一个中间节点。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考协议的第二层(链接层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功,这一时间延迟的主要原因是七十年代的网络很简单,后来大型的网络才较为普遍。
二、路由的组成
路由包含两个基本的动作:确定最佳路径和通过网络传输信息。在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。
1、路径选择
metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。
路由算法根据许多信息来填充路由表。目的/下一跳地址对告知路由器到达该目的最佳方式是把分组发送给代表“下一跳”的路由器,当路由器收到一个分组,它就检查其目标地址,尝试将此地址与其“下一跳”相联系。下表为一个目的/下一跳路由表的例子。
表5-1 目的/下一跳对应表决定数据的最佳路径
http://www.linkwan.com/gb/routertech/netsys/images/route1.gif
路由表还可以包括其它信息。路由表比较metric以确定最佳路径,这些metric根据所用的路由算法而不同,下面将介绍常见的metric。路由器彼此通信,通过交换路由信息维护其路由表,路由更新信息通常包含全部或部分路由表,通过分析来自其它路由器的路由更新信息,该路由器可以建立网络拓扑细图。路由器间发送的另一个信息例子是链接状态广播信息,它通知其它路由器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器可以确定最佳路径。
2、交换
交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。
路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变,如下图所示。
http://www.linkwan.com/gb/routertech/netsys/images/route2.gif
上面描述了源系统与目的系统间的交换,ISO定义了用于描述此过程的分层的术语。在该术语中,没有转发分组能力的网络设备称为端系统(ES--end system),有此能力的称为中介系统(IS--intermediate system)。IS又进一步分成可在路由域内通信的域内IS(intradomain IS)和既可在路由域内有可在域间通信的域间IS(interdomain IS)。路由域通常被认为是统一管理下的一部分网络,遵守特定的一组管理规则,也称为自治系统(autonomous system)。在某些协议中,路由域可以分为路由区间,但是域内路由协议仍可用于在区间内和区间之间交换数据。
三、路由算法
路由算法可以根据多个特性来加以区分。首先,算法设计者的特定目标影响了该路由协议的操作;其次,存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;最后,路由算法使用多种metric,影响到最佳路径的计算。下面的章节分析了这些路由算法的特性。
1、设计目标
路由算法通常具有下列设计目标的一个或多个:
优化
简单、低耗
健壮、稳定
快速聚合
灵活性
优化指路由算法选择最佳路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。
路由算法也可以设计得尽量简单。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销。当实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。
路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。
此外,路由算法必须能快速聚合,聚合是所有路由器对最佳路径达成一致的过程。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使最佳路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由算法可能会产生路由环或网路中断。
在下图中的路由环中,某分组在时间t1到达路由器1,路由器1已经更新并知道到达目的的最佳路径是以路由器2为下一跳,于是就把该分组转发给路由器2。但是路由器2还没有更新,它认为最佳的下一跳是路由器1,于是把该分组发回给路由器1,结果分组在两个路由器间来回传递直到路由器2收到路由更新信息或分组超过了生存期。
http://www.linkwan.com/gb/routertech/netsys/images/route3.gif
路由算法还应该是灵活的,即它们应该迅速、准确地适应各种网络环境。例如,假定某网段断掉了,当知道问题后,很多路由算法对通常使用该网段的路径将迅速选择次佳的路径。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟。
2、算法类型
各路由算法的区别点包括:
静态与动态
单路径与多路径
平坦与分层
主机智能与路由器智能
域内与域间
链接状态与距离向量
(1)静态与动态
静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射。这些映射自身并不改变,除非网管去改动。使用静态路由的算法较容易设计,在网络通信可预测及简单的网络中工作得很好。
由于静态路由系统不能对网络改变做出反映,通常被认为不适用于现在的大型、易变的网络。九十年代主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变。如果信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变。
动态路由算法可以在适当的地方以静态路由作为补充。例如,最后可选路由(router of last resort),作为所有不可路由分组的去路,保证了所有的数据至少有方法处理。
(2)单路径与多路径
一些复杂的路由协议支持到同一目的的多条路径。与单路径算法不同,这些多路径算法允许数据在多条线路上复用。多路径算法的优点很明显:它们可以提供更好的吞吐量和可靠性。
(3)平坦与分层
一些路由协议在平坦的空间里运作,其它的则有路由的层次。在平坦的路由系统中,每个路由器与其它所有路由器是对等的;在分层次的路由系统中,一些路由器构成了路由主干,数据从非主干路由器流向主干路由器,然后在主干上传输直到它们到达目标所在区域,在这里,它们从最后的主干路由器通过一个或多个非主干路由器到达终点。
路由系统通常设计有逻辑节点组,称为域、自治系统或区间。在分层的系统中,一些路由器可以与其它域中的路由器通信,其它的则只能与域内的路由器通信。在很大的网络中,可能还存在其它级别,最高级的路由器构成了路由主干。
分层路由的主要优点是它模拟了多数公司的结构,从而能很好地支持其通信。多数的网络通信发生在小组中(域)。因为域内路由器只需要知道本域内的其它路由器,它们的路由算法可以简化,根据所使用的路由算法,路由更新的通信量可以相应地减少。
(4)主机智能与路由器智能
一些路由算法假定源结点来决定整个路径,这通常称为源路由。在源路由系统中,路由器只作为存贮转发设备,无意识地把分组发向下一跳。其它路由算法假定主机对路径一无所知,在这些算法中,路由器基于自己的计算决定通过网络的路径。前一种系统中,主机具有决定路由的智能,后者则为路由器具有此能力。
主机智能和路由器智能的折衷实际是最佳路由与额外开销的平衡。主机智能系统通常能选择更佳的路径,因为它们在发送数据前探索了所有可能的路径,然后基于特定系统对“优化”的定义来选择最佳路径。然而确定所有路径的行为通常需要很多的探索通信量和很长的时间。
(5)域内与域间
一些路由算法只在域内工作,其它的则既在域内也在域间工作。这两种算法的本质是不同的。其遵循的理由是优化的域内路由算法没有必要也成为优化的域间路由算法。
(6)链接状态与距离向量
链接状态算法(也叫做短路径优先算法)把路由信息散布到网络的每个节点,不过每个路由器只发送路由表中描述其自己链接状态的部分。距离向量算法(也叫做Bellman-Ford算法)中每个路由器发送路由表的全部或部分,但只发给其邻居。也就是说,链接状态算法到处发送较少的更新信息,而距离向量算法只向相邻的路由器发送较多的更新信息。
由于链接状态算法聚合得较快,它们相对于距离算法产生路由环的倾向较小。在另一方面,链接状态算法需要更多的CPU和内存资源,因此链接状态算法的实现和支持较昂贵。虽然有差异,这两种算法类型在多数环境中都可以工作得很好。
3、路由的metric
路由表中含有由交换软件用以选择最佳路径的信息。但是路由表是怎样建立的呢?它们包含信息的本质是什么?路由算法怎样根据这些信息决定哪条路径更好呢?
路由算法使用了许多不同的metric以确定最佳路径。复杂的路由算法可以基于多个metric选择路由,并把它们结合成一个复合的metric。常用的metric如下:
路径长度
可靠性
延迟
带宽
负载
通信代价
路径长度是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。
可靠性,在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以metric值。
路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的metric。
带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。
负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。
通信代价是另一种重要的metric,尤其是有一些公司可能关系运作费用甚于性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。
路由器的工作原理是什么?
路由器利用网络寻址功能使路由器能够在网络中确定一条最佳的路径 IP 地址的网络部
分确定分组的目标网络,并通过 IP地址的主机部分和设备的 MAC 地址确定到目标节点的连接
路由器的某一个接口接收到一个数据包时,会查看包中的目标网络地址以判断该包的目的地址在当前
的路由表中是否存在(即路由器是否知道到达目标网络的路径),如果发现包的目标地址与本路由器的某
个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连
网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去如果路
由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口
的情况下会给用户返回目标地址不可达的 ICMP 信息
路由器包含了什么功能?
路由器包含了路由选择和交换的功能
路由器接口通常一个数据分组从一条数据链路传送到另一条数据链路
路由选择功能:为传送分组,路由器会使用地址的网络部分进行路由选择以确定一条最佳路径
路由交换功能:使路由器有能力接收分组并进行转发
所以路由是跨越
路由器在工作中要经历哪几个过程?
路由发现:学习路由的过程,动态路由通常由路由器自己完成,静态路由需要手工配置
路由转发:路由学习之后会照学习更新的路由表进行数据转发
路由维护:路由器通过定期与网络中其他路由器进行通信来了解网络拓扑变化以便更新路由表
路由器记录了接口所直连的网络 ID,称为直连路由,路由器可以自动学习到直连路由而不需要配置
路由器所识别的逻辑地址的协议必须被路由器所支持
路由有哪几种类型?各种路由的特点是什么?
路由分为静态路由
静态路由是由管理员在路由器进行手工配置的固定的路由
静态路由允许对路由的行为进行精确的控制减少了网络流量单向以及配置简单静态路由通常情
况下优先级最高,因为其管理距离最短
静态路由的配置方法:
Router(config)#ip route network [mask] {address | interface} [distance] [permantet]
目标网络 掩码 到达目标网络的下一个路由器地址或本地接口
默认路由是静态路由的一种,是指当路由表中与包的目标地址之间没有匹配的表项时路由器能够作出
的选择
Router(config)#ip route 0.0.0.0 0.0.0.0 下一个路由器的接口地址
Router(config)#ip classless
其中 0.0.0.0 0.0.0.0 代表将发往任何网络的包都转发到下一个路由器接口地址
Ip classless 指路由器接收到不能转发的包的时候会将其匹配给默认路由
并且返回目标地址不可达的 ICMP的消息
动态路由是网络中的路由器之间根据实时网络拓扑变化,相互通信传递路由信息,利用收到的路由信
息通过路由选择协议计算,更新路由表的过程
动态路由减少了管理任务
常见的动态路由包括距离矢量路由选择协议和链路状态路由选择协议