路由器工作原理_第1页
路由器工作原理_第2页
路由器工作原理_第3页
路由器工作原理_第4页
路由器工作原理_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

路由器工作原理1.1 路由器工作原理 概述路由器的主要作用是转发数据包,将每一个IP数据包由一个端口转发到另一个端口。转发行为既可以由硬件完成,也可以由软件完成,显然硬件转发的速度要快于软件转发的速度,无论那种转发都根据“转发表”或“路由表”来进行,该表指明了到某一目的地址的数据包将从路由器的某个端口发送出去,并且指定了下一个接收路由器的地址。每一个IP数据包都携带一个目的 IP地址,沿途的各个路由器根据该地址到表中寻找对应的路由,如果没有合适的路由,路由器将丢弃该数据包,并向发送改包的主机送一个通知,表明要去的目的地址“不可达”。路由表如何形成是路由器软件系统的核心内容,动态路由协议就是用来收集路由信息,为路由表的创建提供原始素材。简单来讲,当路由器加电后经过人工适当配置后,如指定端口IP地址等,路由器已经能够识别它的各个接口卡上的所有已经启动并且经过配置的端口所连接的网络,路由器就有了最初的路由表,这时各个端口所连的网络就可以互通了。如何将最初的路由表告知其他路由器,这就是动态路由协议的任务了。路由器将自身的路由信息通过路由协议所规定的数据格式发送出去,接收到该信息的路由器如果也运行了相同的路由协议,就可以将改信息加以保存,根据规则对收到的信息加工处理,这样它的路由表得到扩充与丰富,再将变化后的路由表发送给其他路由器,经过一段时间,所有的路由器都得到了关于整个网络的路由信息,该过程也称为路由收敛。当网络拓扑结构发生变化时,路由信息要重新进行收敛。动态路由协议有许多种,它们的适用范围与特性各不相同, ZXR10支持常用的几种路由协议:路由信息协议( RIPv2)、开放最短路径优先( OSPFv2)、边界网关协议( BGPv4)。这几种路由协议同时运行时,各自收集到路由信息按照优先权顺序安装到路由表中,只有优先权最高的路由信息起到转发作用,其他的做为备份,当最高优先权的路由信息失效时,次优先权的路由信息得以启用。为进一步理解路由器的工作原理,需要了解

TCP/IP

协议栈的背景知识,以下几节对此作简要介绍。 网络模型与协议TCP/IP 协议栈是一组不同层次上的多个协议的组合。通常, TCP/IP被认为是一个四层协议的体系结构,它是国际标准化组织( ISO)的开放系统互联( OSI)七层参考模型的简化,两者的结构图 2-3所示:图2-3

网络模型每一层的功能如下:1) 应用层:负责处理各种应用程序的细节,常见的通用的应用程序有:Telnet 远程登录FTP文件传输协议SMTP简单邮件传送协议SNMP简单网络管理协议2) 传输层:为两台主机上的程序提供端到端的通信,该层有两种协议: TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的通信连接,有着复杂的控制机制。UDP是比较简单的协议,不保证数据包的可靠传输,任何必须的可靠性必须由上层程序来提供。两个传输协议将应用程序的数据加上自身格式的首部字段后交给下一层进行处理。UDP首部各字段如图 2-4所示:图2-4UDP首部TCP首部各字段如图 2-5所示:图2-4TCP首部一台主机可以运行多个应用程序,那么有多个 TCP和UDP连接同时存在,这里源端口号在区分各个连接时起到了作用,一般而言,源端口号是随机分配的,目的端口号是通过知名端口来识别的,这样服务器接收到该数据包时根据数据包中的目的端口号就可以知道对应的服务类型,如 FTP服务器的TCP端口号为21,Telnet 服务器的TCP端口号为23,TFTP(简单文件传输协议)服务器的端口号为 69,RIP路由信息协议的 UDP端口号为 520。详尽的知名端口号的分配可参考 RFC1700文件。TCP

连接是并发进行的,应用程序通过

TCB传输控制块来对应进程的,

TCB是由源、目的端口和源、目的主机IP地址这四个参数组成的,具有唯一性。而UDP连接是单进程进行的,多个连接需排队顺序处理,也用源、目的IP地址和端口来标识各个连接。网络层:有时也称为互联网层,处理分组数据在网络中的活动,如路由选择等。由于该层应用了包含逻辑地址的IP数据包来传输数据,完全独立于底层的各种各样的硬件类型和技术,使得应用TCP/IP协议栈的网络完全实现互联互通,最终形成了规模庞大的遍布全球的因特网。但该层提供的是不可靠的服务,只是尽最大努力将分组数据从源端传送到目的端,可靠性完全由上层协议来保证。该层协议包括 IP协议(网际协议)、 ICMP协议(网际控制报文协议)、 IGMP(网际组管理协议)。其中 IP数据包的首部格式如图 2-5所示:图2-5IP 首部这里的协议标识可用来区分封装在 IP包中的其它协议类型,如协议标识为6表示封装的是 TCP数据包,协议标识为 17表示封装的是 UDP数据包,协议标识为89表示封装的是 OSPF数据包,协议标识为 1表示封装的是 ICMP数据包,协议标识为 2表示封装的是 IGMP数据包。TTL (time-to-live )生存时间字段设置了数据包可以经过的最多路由器数,目的是防止数据包在网络上的无限循环。该值由源主机设置(通常为 32或64),一旦经过一个路由器,路由器就将它减 1,当某路由器检查该值为 1且目的地址不在本路由器直联的网络上时,该数据包就被丢弃,并发送 ICMP报文通知源主机。当 TTL值改变后,首部检验和也要改变。一般路由器在转发 IP数据包时,仅仅改变这两个字段。首部检验和的计算过程是:先将该字段置为 0,然后对首部中每个 16bit 进行二进制反码求和,将结果存在检验和字段中。当路由器收到一份 IP数据包后,同样对首部中每个16比特进行二进制反码求和,如果结果为 FF才表示IP数据包正确。出错的数据包将被丢弃,但不发送 ICMP报文,上层协议可以检测到出错并对该数据包重传。首部长度指的是首部占 32比特(双字)的数目,包括任选项。普通 IP数据包是没有选择项的,因此该字段的值为5。路由器收到IP包后对此字段要做检查,带选项的IP数据包在转发前要做特殊处理。版本字段为4,这表示这种 IP首部格式是 IPV4的格式,IPV4是当前Internet 所使用的IP版本,其实也是第一个版本,下一代的版本为 IPV6。链路层:也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和网络接口硬件。该层将IP数据包按照链路协议定义的格式进行封装,并按照硬件接口的编码方式形成合适的基带信号发送到传输介质上。如常见的以太网( EthernetII )协议的封装格式为:两字节的协议类型字段区分了封装的协议类型: 0800表示封装的是 IP数据包,0806表示封装的是 ARP地址解析协议数据包。封装好的数据帧协议在线路空闲时(用 CSMA/CD载波侦听多路存取/碰撞检测的方法来检测)按照曼彻斯特编码将数据变成电平发送到线路上。线速路由器中常用的另一种链路层协议为PPP点到点协议,IP数据包被封装成PPP数据帧,PPP数据帧再映射进同步数字序列SDH中去透明传输,路由器上这样的接口常称为POS接口(PackeroverSDH)。PPP帧格式为:协议字段为0021时表示数据部分为IP数据包,C021表示数据部分为LCP链路控制协议,8021为NCP网络控制协议,C023为PAP密码验证,C223为CHAP质询握手验证协议。详细信息可参考RFC1661RFC、RFC1662文档。 编址和路由选择地址有网络层地址和链路层地址,它们的作用各不相同。整个网络中的寻址是根据网络层的地址进行的,因为网络层地址有不依赖于硬件的独立性,有利于统一规划与编排,它的“分层”设计将地址分为网络部分与主机部分,这更加有利于路由的构建和选择。传输链路上数据包的识别是根据链路层地址进行的,链路层的地址编排依赖于传输链路的技术本身,不同的链路协议采用不同的编址方式,如以太网的链路层地址为48位编码的唯一地址,PPP链路层地址用统一的FF表示,帧中继网络的链路层地址用连接标识符表示,ATM网络用PVC永久虚电路、SVC交换虚电路来标识。IP 协议栈中的网络层地址就是指常见的 IP地址,分为 A、B、C、D、E五类,常用的为前三类,D类地址为网络组播地址, E类地址保留。IP地址有两部分组成,一部分为网络号,一部分为主机号,两者的确定是由子网掩码来决定的。子网掩码与 IP地址一样也是32bit 长度,并且两者是一一对应的,子网掩码中数字为“ 1”所对应的 IP地址中的部分为网络号,为“0”所对应的部分为主机号。子网掩码中数字“ 1”和“0”都是连续的,不允许间插,且数字“1”在前,数字“0”在后。常规 IP地址分类结构如下:这种地址划分方法的初衷是为路由协议的设计提供便利,只从 IP地址的首部特征位就可以判定子网掩码了。随着互联网的急剧膨胀,地址短缺的问题愈来愈突出,因为这种分类方法使得地址空间无法得到最大限度的利用。目前出现的无类域间路由( CIDR)技术淡化了IP地址的类的概念,多种路由协议在路由条目更新中都带有子网掩码,无需利用IP地址的首部特征位去判定子网掩码了,这在一定程度上缓解了目前 IP地址短缺的问题,但最终的解决方案是应用下一代的 IPV6编址方法,其地址长度为 128位。关于IP地址的规定:

用于没有

IP

地址的主机启动时使用,通过

RARP、BOOTTP、DHCP来获得地址。在路由表中该地址还用作缺省路由。 用于广播的目的地址,不能作源地址。 称为环回地址,即使不知道主机的实际 IP地址,也可用该地址代表“本机”。仅主机部分全1表示广播到特定的网络。5) 合法的主机

IP

地址其网络部分或主机部分都不能全

0或全

1。主机通信只能在具有相同网络号的 IP地址之间进行,不同网络号的主机之间的通信必须经过路由器进行转发,这是包含 IP协议栈的各类操作系统所共同遵守的。路由器的多个端口连接到多个 IP网络上,一般而言,不同的端口对应不同的 IP子网,每个端口的IP地址的网络号必须与所连接的 IP子网的网络号相同。当应用程序需要与其它主机连接时,操作系统判断目的主机的IP地址是否与本主机在同一个子网上,如果在同一子网上则寻找目的主机的MAC地址,然后封装成链路层帧格式发送出去。如果不在同一子网上且配置了缺省网关,系统将数据转发给与之相连的路由器上。路由器收到数据包后将检测数据包的目的地址,并用它与路由表中条目进行“最长匹配”。如果匹配成功,则路由器将数据包从与目的地址匹配的本地接口转发出去。如果在路由表中没有目的地址的入口,并且也没有缺省路由,那么数据包将被丢失。可见,路由查找的过程就是“最长匹配”的过程,如何实现该过程完全由路由表的数据结构决定。直观上来讲,理解了子网划分的技术,可以“看出”哪个表项是“最长匹配”。举例来讲,路由表有这样几个目的网络(斜杠后的数字为子网掩码长度): , , , , , ,那么到IP地址为 主机的路由将选中 这一表项。其实,该网络地址的主机范围为 ,唯一包含了目的主机的 IP地址。但是,路由查找软件是没有这样的“判断”的,假设路由表中没有这一项,软件查找的结果就是为最长匹配了,显然这是错误的,因为该网络地址的主机范围为,不包括。 路由表的建立、维护、构成路由表由静态路由表项和动态路由表项组成,静态路由入口由网络管理者手工配置的静态路由组成,动态路由入口由路由协议如 RIP、OSPF、BGP交换的路由表信息组成。一般而言,在同一个路由域中所有路由器的各个路由协议都有一个“收敛”convergence)状态或过程。当所有路由器达到一个稳定、准确、一致的网络拓扑状态时,就会获得“收敛”状态。也许该状态是短暂的,网络拓扑的变化会使路由器重新进行“收敛”。路由器如何获得收敛状态是由它们的配置和路由协议所绝定的。RIP 只维护一张表:路由表,它们定期与相邻路由器交换全部路由表,如果一个路由被宣布为不可达,则该路由被标记为“possibledown”,并被置为抑制状态。过一定时间若仍未从原来的源端重新学习,该路由将被清除。OSPF、BGP除了维护一张路由表外,还维护另外的两张表:相邻路由器表和拓扑表或路径表。相邻路由器通过 HELLO数据包来建立和维护相邻路由器表。一旦正确建立了邻居关系后,彼此交换路由表信息,此过程建立了拓扑数据库。根据拓扑数据库,OSPF实现最短路径优先算法,并将结果放在主路由表中。理解路由表的各个构成项的功能对了解路由器的路由过程非常重要。一般路由表有以下七项:路由信息的起源目的地址管理距离度量值下一跳计时本地接口 路由器的组成结构路由器主要由以下几个部分组成:输入 /输出接口部分、包转发或交换结构部分switchingfablic)、路由计算或处理部分。输入/输出部分实现数据链路层的封装和解封装,并按一定的路由查询算法,根据输入数据包的目的IP地址查找到转发的输出端口,该功能可用专用集成电路(ASIC)实现纯硬件查找和数据包的拆包与打包处理,也可以由专用的网络处理器实现微码转发。普通路由器中该部分的功能完全由路由器的中央处理器来执行,制约了数据包的转发速率(每秒几千到几万个数据包)。高端路由器中普遍实现了分布式硬件处理,接口部分有强大的CPU处理器和大容量的高速缓存,使接口数据速率达到 10Gbps,满足了高速骨干网络的传输要求。路由器的转发机制对路由器的性能影响很大,常见的转发方式有:进程转发、快速转发、优化转发、分布式快速转发。进程转发将数据包从接口缓存拷贝到处理器的缓存中进行处理,先查看路由表再查看 ARP表,重新封装数据包后将数据包拷贝到接口缓存中准备传送出去,两次查表和拷贝数据极大的占用 CPU的处理时间,所以这是最慢的交换方式,只在低档路由器中使用。快速交换将两次查表的结果作了缓存,也无需拷贝数据,所以CPU的处理数据包的时间缩短了。优化交换在快速交换的基础上略作改进,将缓存表的数据结构作了改变,用深度为 4的256叉树代替了深度为 32的2叉数或哈希表( hash),CPU的查找时间进一步缩短。这两种转发方式在中高档路由器中普遍加以应用。在骨干路由器中由于路由表条目的成倍增加,路由表或 ARP表的任何变化都会引起大部分路由缓冲失效,以前的交换方式都不再适用,最新的交换方式是分布式快速交换,它在每个接口处理板上构建一个镜像( mirror)路由表和 MAC地址表相结合的转发表,这仍是深度为 4的叉表,但每个节点的数据部分是指向另一个称为邻接表的指针,这种结构使得转发表完全由路由表和ARP表来同步更新,本身也不再需要一个老化进程,克服了其它交换方式需要不断对缓存表进行老化的缺陷。交换结构最常见的有总线型、共享内存型、Cross-bar。总线型结构最简单,但在调度共享数据传输通道上必须花费一定的开销,而且总线带宽制约了交换容量的扩张,在中档路由器用使用这种结构。共享内存结构中,用存储器来缓冲数据包,数据的交换是通过指针调用实现的,它受限于内存的访问速度和存储器的管理效率,在早期的中低档路由器中普遍应用。Cross-bar结构相当于多条并行工作的总线,对流经它的数据不断进行开关切换,可见开关速度决定了交换容量,随着各种高速器件的不断涌现,这种结构的交换容量普遍达到几十Gbps以上,成为目前高端路由器和交换机的首选交换结构。路由处理部分主要是运行动态路由协议。接收和发送路由信息,计算出路由表,为数据包的转发提供依据。各种档次的路由器的路由表条目的大小存在很大差异,从几千条到几百万条不等,因此高端路由器的路由表的构造对路由查找速度影响很大,其路由表的数据结构常采用二叉数的形式,查找与更新的速度都比较快。一般而言,路由器对一个数据包的交换要经过一系列的复杂处理,主要有以下几个方面:压缩和解压缩加密和解密用输入

/输出访问列表进行报文过滤输入速率限制进行网络地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论