首页 理论教育 路由器软件功能追求-操作系统实现之路

路由器软件功能追求-操作系统实现之路

时间:2023-10-21 理论教育 版权反馈
【摘要】:直接在路由器本地,通过一条符合RS-232标准的串口线缆连接路由器的COM接口,对路由器进行维护。根据上面的描述,路由器的软件功能至少应该包含下列部分。COM接口响应服务器功能,用于完成通过COM接口进行维护的用户对话。对于上述每个功能,我们创建一个任务(线程)与之对应,这样整个路由器的软件部分就由6个任务组成,如图1-9所示。图1-9 一个简单的路由器软件架构

路由器软件功能追求-操作系统实现之路

在这种硬件架构下,对IP报文的转发过程如下。

(1)路由器的一个接口卡接收到一个IP报文(封装在特定的链路层帧之内),接口卡缓存该报文,并向CPU发起一个中断请求。

(2)CPU响应中断请求,在中断处理程序中,把接口卡接收到的报文(报文缓存在接口卡的本地缓冲区内)复制到内存中。

(3)这时候,有两种处理方式:一种是直接在中断服务程序中提取IP报文头信息(比如目的IP地址),然后查找路由表,从另外一个接口转发报文(或丢弃),再从中断处理程序中返回。另一种方式是,系统中有一个IP转发任务在运行,中断处理程序仅仅是把接收的IP报文挂到转发任务的发送队列中,然后直接从中断处理程序中返回。这两种方式各有优缺点,我们的实例采用后者实现。

(4)IP转发任务检查发送队列,发现有一个报文等待转发,于是根据IP报文的目的地址,查找路由表,查找到一个出接口后,调用出接口卡的驱动程序提供的发送功能函数,完成IP报文的发送。

上述操作全部完成之后,IP报文转发过程结束。

除了IP转发任务(实际上是一个线程)之外,还需要对路由器进行维护,对路由器的维护有两种典型的方式。

(1)通过Telnet,从远程的一台计算机上登录到路由器,然后通过命令行界面,对路由器进行维护。

(2)直接在路由器本地,通过一条符合RS-232标准的串口线缆连接路由器的COM接口,对路由器进行维护。

当然,若路由器应用在电信、大型企业等环境中,则还需要支持SNMP(简单网络管理协议)等管理协议,以便通过网管中心进行维护。在我们的实例中,仅考虑通过Telnet和串口进行维护的情况。

根据上面的描述,路由器的软件功能至少应该包含下列部分。(www.xing528.com)

(1)IP转发功能,完成IP报文的转发。

(2)Telnet服务器功能,用于接收远程发起的连接请求,完成远程维护工作。

(3)COM接口响应服务器功能,用于完成通过COM接口进行维护的用户对话。

(4)路由协议功能,用于完成路由表的维护,一般情况下,根据作用的范围不同,路由协议又可进一步分为内部网关协议(IGP)和外部网关协议(EGP),其中OSPF是一个比较典型的内部网关协议,BGP(Version 4)是最典型的外部网关协议,在我们的实例中,这两种协议都做了考虑。

(5)TCP/UDP协议栈,这个协议栈用于路由器本身。

对于上述每个功能,我们创建一个任务(线程)与之对应,这样整个路由器的软件部分就由6个任务组成,如图1-9所示。

图中,路由表是一个核心的数据结构,被多个任务所应用,比如IP转发任务需要通过路由表来决定转发方向,而路由协议任务(OSPF/BGP)则需要根据网络变化情况,实时更新路由表,等等。这样路由表就是一个共享的数据结构,在实现的时候,为了确保数据的一致性,需要采用任务同步机制进行保护。

978-7-111-41444-5-Chapter01-20.jpg

图1-9 一个简单的路由器软件架构

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈