当前位置: 首页 > news >正文

网络知识点之-路由

路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。

  • 中文名:路由
  • 外文名:routing
  • 概念:工程术语
  • 特点:高效简单

概念

1、路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。

路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功。究其主要原因是七十年代的网络普遍很简单,发展到后来大型的网络才较为普遍。

2、工程术语。指道路情况,包括道路宽度、深度、方向等信息。

作用

路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。不同类型的网络,其传送的数据单元——包(Packet)的格式和大小是不同的。就像公路运输是以汽车为单位装载货物,而铁路运输是以车皮为单位装载货物一样,从汽车运输改为铁路运输,必须把货物从汽车上放到火车车皮上,网络中的数据也是如此。数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。路由器就有这种能力。

实际上,我们所说的“互联网”,就是指各种路由器将各种不同的网络类型互相连接起来。

工作原理

路由器是第三层网络设备。集线器工作在第一层(即物理层),没有智能处理能力,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,不关心其他端口连接的计算机是否接收这些数据。交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它而言,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP 信息。

路由工作包含两个基本的动作:

1、确定最佳路径

2、通过网络传输信息

在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂,

路径选择

metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。

路由算法根据许多信息来填充路由表。目的/下一跳地址对告知路由器到达该目的最佳方式是把分组发送给代表“下一跳”的路由器,当路由器收到一个分组,它就检查其目标地址,尝试将此地址与其“下一跳”相联系。下表为一个目的/下一跳路由表的例子。路由表还可以包括其它信息。路由表比较metric以确定最佳路径,这些metric根据所用的路由算法而不同。路由器彼此通信,通过交换路由信息维护其路由表,路由更新信息通常包含全部或部分路由表,通过分析来自其它路由器的路由更新信息,该路由器可以建立网络拓扑图。路由器间发送的另一个信息是链接状态广播信息,它通知其它路由器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器可以确定最佳路径。

交换算法

交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。

路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变。

ISO定义了用于描述此过程的分层的术语。在该术语中,没有转发分组能力的网络设备称为端系统(ES--end system),有此能力的称为中介系统(IS--intermediate system)。IS又进一步分成可在路由域内通信的域内IS(intradomain IS)和既可在路由域内又可在域间通信的域间IS(interdomain IS)。路由域通常被认为是统一管理下的一部分网络,遵守特定的一组管理规则,也称为自治系统(autonomous system)。在某些协议中,域内路由协议仍可用于在区间内和区间之间交换数据。

度量标准

路由算法使用了许多不同的度量标准以确定最佳路径。复杂的路由算法可以基于多个度量标准选择路由,并把它们结合成一个复合的度量标准。常用的度量标准如下:

路径长度

路径长度是最常用的路由度量标准。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路径长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。

可靠性

在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以度量标准值。

延迟

指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的度量标准。

带宽

带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。

负载

负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。

通信代价

通信代价是另一种重要的度量标准,尤其是有一些公司可能关系运作费用甚于性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。

设计目标

路由算法可以根据多个特性来加以区分。首先,算法设计者的特定目标影响了该路由协议的操作;其次,存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;最后,路由算法使用多种metric,影响到最佳路径的计算。下面分析下这些路由算法的特性。

路由算法通常具有下列设计目标的一个或多个:

优化

指路由算法选择最佳路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。

高效简单

它也可以设计得尽量简单。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销。当实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。

稳定

路由算法必须稳定,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。

快速聚合

聚合是所有路由器对最佳路径达成一致的过程。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使最佳路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由算法可能会产生路由环或网路中断。

在下图中的路由环中,某分组在时间t1到达路由器1,路由器1已经更新并知道到达目的的最佳路径是以路由器2为下一跳,于是就把该分组转发给路由器2。但是路由器2还没有更新,它认为最佳的下一跳是路由器1,于是把该分组发回给路由器1,结果分组在两个路由器间来回传递直到路由器2收到路由更新信息或分组超过了生存期。0dd2822067574a3cb4dcf8b73656a5c8.gif

路由环

灵活

即它们应该迅速、准确地适应各种网络环境。例如,假定某网段断掉了,当知道问题后,很多路由算法对通常使用该网段的路径将迅速选择次佳的路径。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟。

算法类型

各类路由算法可根据不同的依据进行不同的分类。

静态算法与动态算法

静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射。这些映射自身并不改变,除非网管去改动。使用静态路由的算法较容易设计,在网络通信可预测及简单的网络中工作得很好。

由于静态路由系统不能对网络改变做出反映,通常被认为不适用于的大型、易变的网络。九十年代主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变。如果信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变。

动态路由算法可以在适当的地方以静态路由作为补充。例如,最后可选路由(router of last resort),作为所有不可路由分组的去路,保证了所有的数据至少有方法处理。

单路径算法与多路径算法

一些复杂的路由协议支持到同一目的的多条路径。与单路径算法不同,这些多路径算法允许数据在多条线路上复用。多路径算法的优点很明显:它们可以提供更好的吞吐量和可靠性。

平坦与分层

一些路由协议在平坦的空间里运作,其它的则有路由的层次。在平坦的路由系统中,每个路由器与其它所有路由器是对等的;在分层次的路由系统中,一些路由器构成了路由主干,数据从非主干路由器流向主干路由器,然后在主干上传输直到它们到达目标所在区域,在这里,它们从最后的主干路由器通过一个或多个非主干路由器到达终点。

路由系统通常设计有逻辑节点组,称为域、自治系统或区间。在分层的系统中,一些路由器可以与其它域中的路由器通信,其它的则只能与域内的路由器通信。在很大的网络中,可能还存在其它级别,最高级的路由器构成了路由主干。

分层路由的主要优点是它模拟了多数公司的结构,从而能很好地支持其通信。多数的网络通信发生在小组中(域)。因为域内路由器只需要知道本域内的其它路由器,它们的路由算法可以简化,根据所使用的路由算法,路由更新的通信量可以相应地减少。

主机智能与路由器智能

一些路由算法假定源结点来决定整个路径,这通常称为源路由。在源路由系统中,路由器只作为存贮转发设备,无意识地把分组发向下一跳。其它路由算法假定主机对路径一无所知,在这些算法中,路由器基于自己的计算决定通过网络的路径。前一种系统中,主机具有决定路由的智能,后者则为路由器具有此能力。

主机智能和路由器智能的折衷实际是最佳路由与额外开销的平衡。主机智能系统通常能选择更佳的路径,因为它们在发送数据前探索了所有可能的路径,然后基于特定系统对“优化”的定义来选择最佳路径。然而确定所有路径的行为通常需要很多的探索通信量和很长的时间。

域内与域间

一些路由算法只在域内工作,其它的则既在域内也在域间工作。这两种算法的本质是不同的。其遵循的理由是优化的域内路由算法没有必要也成为优化的域间路由算法。

链接状态与距离向量

链接状态算法(也叫做短路径优先算法)把路由信息散布到网络的每个节点,不过每个路由器只发送路由表中描述其自己链接状态的部分。距离向量算法(也叫做Bellman-Ford算法)中每个路由器发送路由表的全部或部分,但只发给其邻居。也就是说,链接状态算法到处发送较少的更新信息,而距离向量算法只向相邻的路由器发送较多的更新信息。

由于链接状态算法聚合得较快,它们相对于距离算法产生路由环的倾向较小。在另一方面,链接状态算法需要更多的CPU和内存资源,因此链接状态算法的实现和支持较昂贵。虽然有差异,这两种算法类型在多数环境中都可以工作得很好。

路由类型

路由分为静态路由(static routing)和动态路由(dynamic routing)和直连路由三种类型。

特点

静态路由的特点

静态路由是由管理员在路由器进行手工配置的固定的路由

静态路由允许对路由的行为进行精确的控制,减少了网络流量单向以及配置简单,静态路由通常情况下优先级最高,因为其管理距离最短 。静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。

动态路由的特点

动态路由是网络中的路由器之间根据实时网络拓扑变化,相互通信传递路由信息,利用收到的路由信息通过路由选择协议计算,更新路由表的过程 。

动态路由减少了管理任务

配置

静态路由的配置

进去全局配置模式,定义目标网络号,目标网络的子网掩码和下一跳地址或接口

Router(config)#ip route {nexthop-address|exit-interface} [distance]

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的消息

动态路由的配置

常见动态路由分为距离矢量路由协议(DistanceVector Routing Protocol)和链路状态路由协议(Link-State Routing Protocol)。

动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。

距离矢量路由协议包括RIP,EIGRP,IGRP

链路状态路由协议包括OSPF,ISIS

RIP

RIP是Internet中常用的路由协议,路由器根据距离选择路由,路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。

RIP 有两个不同的版本,RIPv1和RIPv2. RIPv1。

RIPv1和RIPv2. RIPv1 的主要区别:

1.RIPv1是有类路由协议,RIPv2是无类路由协议

2.RIPv1不能支持VLSM,RIPv2可以支持VLSM

3.RIPv1没有认证的功能,RIPv2可以支持认证,并且有明文和MD5两种认证

4.RIPv1没有手工汇总的功能,RIPv2可以在关闭自动汇总的前提下,进行手工汇总

5.RIPv1是广播更新,RIPv2是组播更新,

6.RIPv1对路由没有标记的功能,RIPv2可以对路由打标记(tag),用于过滤和做策略

7.RIPv1发送的updata最多可以携带25条路由条目,RIPv2在有认证的情况下最多只能携带24条路由

8.RIPv1发送的updata包里面没有next-hop属性,RIPv2有next-hop属性,可以用与路由更新的重定

RIPv1的配置

Router(config)#routerrip

Router(config-router)#network xxxx.xxxx.xxxx.xxxx

RIPv2的配置

Router(config)#router rip

Router(config-router)#version2

Router(config-router)#no auto-summary

RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。

EIGRP

EIGRP是思科私有的,他是高级距离矢量路由协议,使用DUAL算法。EIGRP是建立邻居关系最快的路由协议

EIGRP的5个Metric值:带宽(Bandwidth),负载(Load),延迟(Delay),可靠性(Reliability),MTU

配置:

Router(config)#router eigrp XX

Router(config-router)#noauto-summary

OSPF

OSPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用OSPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。

配置:

Router(config)#router ospf XX

Router(config-router)#router-idX.X.X.X

Router(config-router)#networkXXXX.XXXX.XXXX.XXXXarea X

OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。

静态路由和动态路由有各自的特点和适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个分组在路由器中进行寻径时,路由器首先查找静态路由,如果查到则根据相应的静态路由转发分组;否则再查找动态路由。

路由器的某一个接口接收到一个数据包时,会查看包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP 信息。

路由协定与可被绕送协定

路由协定与可被绕送协定常会令人混淆

可被绕送协定

任何一个提供足够的网络层位址资讯让封包可被从一个装置转送到另一个,而不需要知道来源到目的地的整条路径的网络通讯协定。“可被绕送协定”定义了封包的格式与封包字段的使用方式。封包通常从一个终端系统被递送到另一个。IP是一个可被绕送协定,而以太网路是一个不可被绕送协定的例子。

路由协定

在网络间交换路由资讯,让路由器可动态建立路由表的通讯协定。传统的IP路由十分简单,因为它使用下一个节点路由方法,也就是路由器只需要考虑将封包送到哪一个“下一个节点”,而不需考虑到目的地的整条路径。

虽然动态路由可能非常复杂,但它使得互联网十分有弹性,且让互联网的规模自从采用IP以后成长了超过八个数量级。

依照路由器与其他自治系统的关系,有许多种类的路由协定:

Ad hoc网络路由协定

常见于没有或有一点点基础的网络。参见Ad hoc路由协定列表以获得提议中的协定。

内部闸道协定(IGPs)

在单一的自治系统中交换路由资讯。常见的范例包括:

IGRP(Interior Gateway Routing Protocol)

EIGRP(Enhanced Interior Gateway Routing Protocol)

OSPF(Open Shortest Path First)

RIP(Routing Information Protocol)

IS-IS(Intermediate System to Intermediate System)

外部闸道协定(EGPs)

在不同的自治系统中交换路由资讯。EGP包括:

EGP(原本用来连接互联网骨干的外部闸道协定,已不再使用)

BGP(Border Gateway Protocol:大约从1995年开始使用的版本,BGPv4)

路由器分级

接入

接入路由器是指将局域网用户接入到广域网中的路由器设备。只要有互联网的地方,就会有路由器。如果你通过局域网共享线路上网,就一定会使用路由器。

企业级

企业级路由器用于连接大型企业内成千上万的计算机。与接入路由器相比,企业级路由器支持的网络协议多、速度快,要处理各种局域网类型,支持多种协议,包括IP、IPX和Vine,还要支持防火墙、包过滤以及大量的管理和安全策略以及VLAN(虚拟局域网)。

骨干级

互联网由几十个骨干网构成,每个骨干网服务几千个小网络,骨干级路由器实现企业级网络的互联。对它的要求是速度和可靠性,而价格则处于次要地位。硬件可靠性可以采用电话交换网中使用的技术,如热备份、双电源、双数据通路等来获得。这些技术对所有骨干路由器来说是必须的。

骨干网上的路由器终端系统通常是不能直接访问的,它们连接长距离骨干网上的ISP和企业网络。互联网的快速发展给骨干网、企业网和接入网都带来了不小的挑战。

软路由和硬路由

软路由是指利用台式机或服务器配合软件形成路由解决方案,主要靠软件的设置,达成路由器的功能;而硬路由则是以特用的硬设备,包括处理器、电源供应、嵌入式软件,提供设定的路由器功能。

一般情况下,软路由通常就是计算机了,硬件路由根据不同的标准可以做不同的分类,比如从性能上可以分为高、中、低端,从结构上分为固定配置和模块化等等。

软路由的好处有很多,如使用便宜的台式机,配合免费的Linux软件,软路由弹性较大,而且台式机处理器性能强大,所以处理效能不错,也较容易扩充。但对应地也要求技术人员许掌握更多的例如设置方法、参数设计等专业知识,同时设定也比较复杂,而且需技术人员具备一定应变技术能力。同时台式机的硬件配置如果选择不好或不合理,而且担任路由器的功能如果长期工作,故障的机率将很高。用一台台式机搭建,成本并不低,但是如果要使用服务器,成本则更高,技术人员学习的过程亦较为烦琐。

硬路由的做法为配置专用机,像PC机一样,硬路由器包括电源、内部总线、主存、闪存、处理器和操作系统等,专为路由功能而设计,成本较低。路由器中的软件都是深嵌入到硬件中,包括对各种器件驱动的优化,不同体系cpu的不同优化策略等等,这个软件不是应用软件,而是系统软件,和硬件不能分开的。

由于架构设计考虑了长时间运作,所以稳定性有更高保证,再加上重要的功能大部份都已在内置系统设计中完成,所以人工管理设定的功夫非常少,可节省技术或网络管理人员的时间。但相对的,如果某一款硬件规格不强大,扩充性不宽,因此将有可能无法满足需求,尤其是需要加进持别功能时,如果厂商没有提供,那么技术或网络管理人员也无法解决。

基本概念

软路由通常使用普通计算机充当,使用通用的操作系统,如linux或windows,因此路由设置事实上是windows或 linux的设置,或者是对计算机的配置。PC 可以是很旧的 486 或是再高级的 PC / 服务器。软件与硬件是独立分开的;而硬件路由器,大多是基于嵌入式系统架构,以自行开发或是现成的嵌入式操作系统如Vxworks,Montavista,uClinux 等等为操作系统,再配合系统厂商自行开发的路由软件,软件与硬件是互相配合的。硬件路由器采用专门的操作系统,因此采用超级终端(计算机)通过 console实现对路由器的管理。对硬件路由器的管理通常采用专用命令行、图形界面或网管软件实现。

硬件架构

软件路由器的硬件架构是通用的,适用各种不同的应用软件安装使用,不是只为路由器而设计;而硬件路由器的硬件架构是专为路由器而设计的,有些 CPU 更是为网络应用而开发。

硬件组装

软件路由器使用者可能必须自行组装硬件,一般的 PC 可能没有网络卡 (例如很旧的 486) 或是只有一张网络卡,使用者必须自行安装额外的网络卡,以满足路由的功能。硬件可能会有兼容性的问题,使用者必须自行解决;而硬件路由器使用者无须自行组装硬件,硬件的搭配设计已由系统厂商完成,并经过严格的测试,不会有不兼容的情况。

软件安装

软件路由器使用者必须自行安装软件,有些软件是免费的,有些是要付权利金;而硬件路由器使用者则无须自行安装软件,软件是内含在产品的闪存里的。

软件维护

软件路由器提供免费的软件通常是非商业化的开放程序代码,一般是由一些散落各地的专家因为兴趣来参与开发与修改。功能的完整性与除错无法保证;硬件路由器的软件功能则是由推出产品的系统厂商自行开发,一致性高。功能的增加以及除错是由来系统厂商维护,使用者只需做软件升级,升级软件的取得有确实的管道,售后服务有保障。

搭配性

软件路由器软件必须迁就现成的硬件 (如 PC ) 以及现成的操作系统 (如 Windows 以及 Linux) ,硬件与操作系统都不是为专为网络/路由功能而设计的。稳体性无法一概而论,使用者必须付出相对的成本、时间、精力、与金钱;而硬件路由器的软件与硬件,采用嵌入式操作系统并互相搭配,所以整体设计精简而有效率,不但稳定,而且架设容易,产品成本加上使用者付出的成本也相对较低。

使用接口

软件路由器中,不同的软件有不同的方式,有些是窗口画面,有些是命令行 (command line) 的指令。不一定容易理解。有些需要很专业的知识;而硬件路由器多以 Web GUI 的方式来做设定,强调 user friendly,依据特定的功能做出简单而且容易理解的设定方式。

等级区别

软件路由器没有区别,效能依据试用者选择的 PC 以及软件而定。所以不一定能适用各种不同的网络/路由应用。越高级的应用环境需要越专业的知识才能应付自如;硬件路由器则会为不同等级的网络/路由应用,开发不同等级的路由器,达到较好的性价比。

工作环境

软件路由器只能工作于以太网络,实现局域网之间的互联。硬件路由器拥有丰富的接口类型,因此适用于各种类型的网络,既可应用于局域网的互联,也可用于广域网和Internet互联。另外,两者的效率也不同,软路由可应用于小型的\通讯效率不高的网络,硬件路由可应用于大中小型、通讯效率较高的网络。

应用

总的来说,不同的产品适合不同的客户群。从很多产品发展的角度来看,软件的方式适用于较有技术能力的网管,而一般的网管希望将精力发挥在其它更有价值的地方,则多采用硬路由。由于计算机的限制,软路由只能使用以太网卡,因此基本上局限于以太网络之间的连接,以太网络之间只有在划分多个网段时,才会使用软路由的连接。

如果网络大到要划分子网,那么软路由的效率显然是无法满足网络间的高速通讯的。而在价格方面,软路由就是一台计算机的价格,而硬件路由的价格则根据性能的不同而有较大的差别。说实话,如果仅仅是实现NAT转换,那么计算机的效率要比硬件路由器要高。

结合多方面的考虑,购买者就必须充分了解自身的网络环境和投资计划,来考虑如何选择路由器。例如,网吧对路由器的需求就有着以下几个共同点:数据处理能力要够强,上网高速畅通,大数据流量下不掉线、不停顿;具有高度的稳定性和可靠性,能长时间不间断稳定工作;要有很强的兼容性,要能适应不同运营商的不同接入服务;易安装、易配置、易管理、易使用,用户界面友好易懂;在保证性能的前提下,要有一个合理的价格,具有优异的性能价格比。因此对一个有一定规模的网吧来说,他们更倾向于使用硬路由,使用硬件路由器则带来更大的优势,如成型设备,一次调试不用维护,没有零部件维护的麻烦;专业厂家技术支持,专业软件免费升级;可以实现线路备份、负载均衡、策略路由等很多符合网吧的应用;多数产品采用网络专用CPU解决网络路由的复杂问题;专业的技术跟踪可以解决不断出现的网络应用中出现的新问题,全部免费解决等等。

 

以上便是本期全部内容,希望看到这的小伙伴们点个赞加关注,谢谢!🙏🙏🙏

相关文章:

网络知识点之-路由

路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTa…...

input 框如何移动光标,设置光标位置?

获取 input 光标位置 const inputDom document.getElementById("input") const selectionStart inputDom.selectionStart设置 input 光标 inputDom.focus() // focus() 异步,所以加了 setTimeout setTimeout(() > {const nextSelection selection…...

linux内核系统调用学习5:SYSCALL_DEFINE<0-6>

系统调用最大参数是6,由下面这个宏定义,位于文件include\linux\syscalls.h #define SYSCALL_DEFINE_MAXARGS 6 SYSCALL_DEFINE0(fork) fork:系统调用名。 SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr) set_tid_address&#x…...

maven镜像仓库配置(多镜像自动切换)

大家在使用IDEA的时候会遇到这样的一个问题&#xff0c;就是在下载源代码和资源文档的时候&#xff0c;有些镜像仓库里面没有源代码和资源文档&#xff0c;然后会导致下载失败。 这时候就需要多个镜像仓库的地址了。 附上我自己的配置文件&#xff1a; <mirrors><!--…...

ChatGPT在智能监控和安防系统中的应用如何?

ChatGPT在智能监控和安防系统中有着广泛的应用潜力。智能监控和安防系统是利用人工智能和计算机视觉技术来实现对环境的实时监控和安全保障的系统。ChatGPT作为一种通用的预训练语言模型&#xff0c;可以在智能监控和安防系统中发挥以下作用&#xff1a; 1. **智能视频监控**&…...

【Spring Boot Admin】介绍以及使用

介绍 概述 Spring Boot Admin是一个监控工具&#xff0c;旨在以一种漂亮且易于访问的方式可视化Spring Boot Actuators提供的信息。 主要功能点 显示应用程序的监控状态应用程序上下线监控查看 JVM&#xff0c;线程信息可视化的查看日志以及下载日志文件动态切换日志级别Http…...

本地私有仓库部署、docker--harbor私有仓库部署和管理

部署本地私有仓库 拉取镜像 修改daemon.json配置文件 重启docker服务 创建容器 为镜像打标签 上传镜像 查看私有仓库 其他主机拉取私有仓库镜像 Docker--harbor私有仓库 &#xff08;1&#xff09;什么是Harbor Harbor 是 VMware 公司开源的企业级 Docker Registry 项目…...

java根据模板导出word

java根据模板导出word 日常开发中&#xff0c;常常会遇到各种各样的表格进行导出&#xff0c;比较好的办法就是提前弄好word模版&#xff0c;再通过遍历的方式进行导出文档 1、制作word模版 模版编写 内容替换 目标下面模版进行多页展示 将word转换成xml 将xml格式化 再将x…...

spring学习笔记十四

注解开发Bean总结 功能 xml配置注解定义Bean bean标签 id属性class属性 Component ControllerServiceRepositorComponentScan 设置依赖注入 setter注入(set方法) 引用类型/简单类型构造器注入 引用类型和简单类型自动装配 Autowired QualifierValue 配置第三方Bean be…...

【springmvc部分功能源码仿写第一步】实现java对目录下所有文件的遍历

废话不多说&#xff0c;直接上源码&#xff01; public class MiniSpring {public static void main(String[] args) {String path "D:\\ideaProject\\thread";File file new File(path);List<String> list new ArrayList<>();System.out.println(fi…...

SpringBoot中接口幂等性实现方案-自定义注解+Redis+拦截器实现防止订单重复提交

场景 SpringBootRedis自定义注解实现接口防刷(限制不同接口单位时间内最大请求次数)&#xff1a; SpringBootRedis自定义注解实现接口防刷(限制不同接口单位时间内最大请求次数)_redis防刷_霸道流氓气质的博客-CSDN博客 以下接口幂等性的实现方式与上面博客类似&#xff0c;…...

论文解读|用于从RGB-D数据进行3D物体检测的Frustum PointNets

原创 | 文 BFT机器人 01 摘要 论文研究了室内和室外场景中基于RGBD数据的3D目标检测。论文的方法不仅仅依赖于3D方案&#xff0c;而是利用成熟的2D对象检测器和先进的3D深度学习进行对象定位&#xff0c;即使是小对象也能实现高效率和高召回。 直接在原始点云中学习&#xff0…...

3ds Max图文教程: 使用动态工具Mass FX 创建风铃动画

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 简单的场景设置 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我将向您展示风铃背后的动态 通过简单的场景设置进行模拟。一旦你有了这个想法&#xff0c;你就可以应用这个 技术到复杂的风铃结构。 基…...

抖音矩阵系统源码开发搭建部署分享

一、 功能开发设计 &#xff08;1&#xff09;数据概览&#xff1a;账号&#xff0c;视频top10数据统计 &#xff08;2&#xff09;AI视频创意&#xff1a;原创视频批量剪辑&#xff0c;阶乘算法&#xff0c;去重原理 &#xff08;3&#xff09;同城拓客&#xff1a;线下门店…...

Grafana图形web监控的安装与配置

目录 一、安装并配置 二、Web访问 三、Grafana启用zabbix插件 四、Grafana添加zabbix数据源 五、创建仪表盘 创建监控项完成保存仪表盘 六、查看创建的仪表盘 七、在现有的dashboard&#xff08;仪表盘&#xff09;中添加图形 八、查看最终dashborad&#xff08;仪表盘&#x…...

【机器学习】了解 AUC - ROC 曲线

一、说明 在机器学习中&#xff0c;性能测量是一项基本任务。因此&#xff0c;当涉及到分类问题时&#xff0c;我们可以依靠AUC - ROC曲线。当我们需要检查或可视化多类分类问题的性能时&#xff0c;我们使用AUC&#xff08;曲线下面积&#xff09;ROC&#xff08;接收器工作特…...

Docker 容器生命周期:创建、启动、暂停与停止----从创建到停止多角度分析

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…...

C++STL库中的vector

文章目录 vector的介绍及使用 vector深度剖析及模拟实现 动态二维数组理解 一、vector的介绍及使用 1.vector的介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进…...

PHP 药店管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 药品管理系统 是一套完善的web设计系统,系统采用smarty框架进行开发设计&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 药店管理系统mysql数据库web结构apache计 下载地址…...

【多选框、表格全选】element el-checkbox、el-table

话不多说 先看效果&#xff1a; 多选框&#xff1a; 表格全选&#xff1a; <template><div><div class"titleLabel"><div class"lineStyle"></div>统计部门</div><div style"display: flex"><e…...

【Java】微服务负载均衡算法实现

前言 本篇实现一下分布式中负载均衡的实现策略&#xff0c;以及负载均衡算法是如何实现的。 什么是负载均衡&#xff1f; Java负载均衡是指在多台服务器之间分配负载&#xff0c;以提高服务器的性能和可用性。它通过将请求分发到多台服务器来减少单个服务器的压力&#xff0…...

分类、回归常用损失函数

分类&#xff1a; 交叉熵损失函数&#xff08;Cross-entropy loss function&#xff09; KL散度、交叉熵损失函数、nn.CrossEntropyLoss()_HealthScience的博客-CSDN博客 权重交叉熵损失函数&#xff08;Weighted cross-entropy loss function&#xff09; BCEWithLogitsLo…...

SaaS到底是什么,如何做?这份笔记讲明白了

阅读本篇文章&#xff0c;您将可以了解&#xff1a;1、什么是SaaS&#xff1b;2、SaaS的商业模式&#xff1b;3、SaaS的技术架构&#xff1b;4、国内比较好的SaaS平台。 一、什么是SaaS SaaS即软件即服务&#xff08;Software as a Service&#xff09;&#xff0c;是一种通过…...

Python 单继承、多继承、@property、异常、文件操作、线程与进程、进程间通信、TCP框架 7.24

单继承 class luban:def __init__(self, name):self.name nameself.skill "摸鱼飞弹"self.damageLevel 20def attack(self):print("{} 使用了技能{} &#xff0c;给敌方带来了极大的困扰\n""并有{}% 的机会造成一击必杀的效果".format(self.…...

【英杰送书第三期】Spring 解决依赖版本不一致报错 | 文末送书

Yan-英杰的主 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 问题描述 报错信息如下 报错描述 解决方法 总结 【粉丝福利】 【文末送书】 目录&#xff1a; 本书特色&#xff1a; 问题描述 报错信息如下 Description:An attempt…...

ClickHouse修改和删除操作

文章目录 ClickHouse介绍为什么不推荐更新和删除如何实现更新操作如何实现删除操作官方文档 ClickHouse介绍 ClickHouse是由俄罗斯的Yandex公司开发的一款快速、可扩展的列式数据库管理系统。它专门针对OLAP场景设计&#xff0c;在海量数据分析和查询方面具有出色的性能表现&a…...

比selenium体验更好的ui自动化测试工具: cypress介绍

话说 Cypress is a next generation front end testing tool built for the modern web. And Cypress can test anything that runs in a browser.Cypress consists of a free, open source, locally installed Test Runner and a Dashboard Service for recording your tests.…...

Python编译过程和执行原理

hello&#xff0c;这里是Token_w的文章&#xff0c;主要讲解python的基础学习&#xff0c;希望对大家有所帮助 整理不易&#xff0c;感觉还不错的可以点赞收藏评论支持&#xff0c;感谢&#xff01; 目录 一. Python执行原理二. Python内部执行过程2.1 编译过程概述2.2 过程图解…...

opencv 图像距离变换 distanceTransform

图像距离变换&#xff1a;计算图像中每一个非零点距离离自己最近的零点的距离&#xff0c;然后通过二值化0与非0绘制图像。 #include "iostream" #include "opencv2/opencv.hpp" using namespace std; using namespace cv;int main() {Mat img, dst, dst…...

消息队列——rabbitmq的不同工作模式

目录 Work queues 工作队列模式 Pub/Sub 订阅模式 Routing路由模式 Topics通配符模式 工作模式总结 Work queues 工作队列模式 C1和C2属于竞争关系&#xff0c;一个消息只有一个消费者可以取到。 代码部分只需要用两个消费者进程监听同一个队里即可。 两个消费者呈现竞争关…...