域间路由协议的内容有哪些域间路由协议的内容介绍详解
域间路由协议,域间路由协议的内容有哪些?
当前Internet被划分为多个自治系统,自治系统是一个实体,一般是指隶属于一个管理机构的路由器集合。每个自治系统可以制定自己的路由策略。自治系统内部的路由器通过域内路由协议彼此交换路由信息,一般域内路由协议分为距离向量协议和链路状态协议,前者以RIP代表,后者常用的有OSPF、ISIS协议;自治系统边界路由器通过域间路由协议交换路由信息,目前Internet上的域间路由协议事实标准是BGP4协议。
BGP4协议软件的总体设计
如图1所示,作者从功能上把协议软件分为Init,EventGenerator,FSM,MessageParser,RoutingInformationProcessor,ProtocolMessager和IO等7个模块,还有Config和RIB两个数据库。为了提高处理效率,减轻系统负担,整个软件设计为单进程结构,各个模块之间的交互采用函数调用和数据交换的方式。下面简单叙述各个模块的功能。
图1BGP4协议实现总体结构图
Init:对用户配置文件或控制台输入进行分析,从中读取BGP4协议软件运行时所需的各项参数,同时进行语法和语义检查,把正确的参数写入Config数据库中,供其他模块在运行时检索引用;之后初始化全局数据结构(如事件队列、时钟链等),并为某些结构分配空间;最后向FSM发送Start事件,启动FSM模块,进而使整个协议软件开始运行。
EventGenerator:生成事件,从而驱动FSM模块。这些事件包括通过IO模块收到BGP报文以及检测到TCP连接成功或失败,通过检查时钟链得到时钟超时事件。本模块还负责维护事件队列和时钟链,提供对这些数据结构进行操作的函数接口。
FSM:接收模块Init和EventGenerator送来的事件,作为有限状态机的输入,产生状态变迁及相应动作,控制MessageParser模块的运行。本模块还通过IO模块负责TCP连接的建立,同时还通过EventGenerator产生新的事件。
MessageParser:对收到的4种BGP4报文进行正确性检查和分析。如果是UPDATE报文,还要通过调用模块RoutingInformationProcessor更新路由信息数据库RIB,调用模块ProtocolMessager向相邻的内部BGP网关发送协议报文。本模块还在FSM的控制下,周期性地扫描路由器中的全局路由表,向相邻的外部BGP网关广播本地路由表的变化情况。
RoutingInformationProcessor:从MessageParser模块中得到要撤销的和声明为有效的路由,更新路由信息库RIB。为了减小RIB的规模,提高处理效率,这里还对RIB中的路由进行合并和压缩。另外,本模块还提供了对RIB中的数据结构进行操作的所有函数。
ProtocolMessager:对4种BGP报文进行格式化,并调用IO模块将其发出。
IO:直接调用操作系统提供的TCP服务接口,完成TCP连接的建立和释放;接收相邻BGP网关送来的报文,提交给上层模块;接收上层模块发来的格式化为字节流的BGP报文,发送给相应的BGP网关。此外,对这些操作中产生的相应事件,本模块还通过EventGenerator发送给FSM。
Config:存放BGP协议软件运行时所需的各项配置参数。这些参数可能来自配置文件,也可以由用户通过控制台输入。
RIB:存放所有协议软件所产生和要利用的路由信息的数据库。实际上分为3个相互独立的数据结构:AdjRIBsIn存放从其他BGP网关收到的路由信息,LocRIB存放路由器中本地路由表的映射,AdjRIBsOut存放向相邻BGP网关广播过的路由信息。
由于BGP4协议是一个比较复杂的动态路由协议,因此在实现中遇到了许多难点。主要有:如何在连接数比较多的情况下保证系统的效率,如何保证路由信息的及时交换,如何支持可变长地址掩码和如何保证IO的效率等。
BGP4协议软件的实现策略和优化
(1)单进程体系结构
在高性能路由器中要同时运行多个路由协议软件并且要维护很大的路由表。如果BGP4在设计时采用传统的多进程体系结构,那么当连接数比较多时,进程数会很多,势必影响整个路由器系统的效率。为了提高系统效率,BGP4软件设计时没有采用多进程结构,而是采用了单进程结构。这样虽然提高了效率,但是也增加了实现的难度。为了在一个进程中实现本来需要多个进程完成的工作,我们把整个软件设计成事件驱动方式,所有的系统操作和收发帧都通过向软件发送事件来进行。而软件的FSM模块则不停的轮询事件队列,如果有事件则处理,如果没有事件,软件自动休眠2秒,这也是为了提高系统的效率。
(2)基于二叉树的支持可变长掩码的路由表
为了便于路由的查找、更新及合并,同时支持可变长掩码,作者把BGP4协议软件中的3种路由表(AdjRIBsIn,bgpIGP,AdjRIBsOut)都设计为二叉数结构。这3种二叉数的结构和意义都大体相同。每个有效节点表示一条路由,从根到该节点的路径表示此路由可达的目的网络,其中左右子树表示ldquo;0rdquo;或ldquo;1rdquo;,路径长度表示子网掩码的长度。这样可以方便地表示变长掩码的网络,同时还可以大大加快路由表的查找速度,因为无论路由表的规模有多大,最多32次比较就可以找到某路由(通常情况下比较次数要少得多)。此外,路由的插入、删除和合并操作也可以高效地实现。
(3)基于静态数组的时钟队列
时钟链是一个按照超时顺序由近到远排序的时钟链表,各模块启动的时钟都按序插入到此表中。判断是否有时钟超时,只要从链表头节点(最先超时的时钟)开始,把当前时刻与此节点超时时刻比较,小于则说明此时钟已超时,发送超时事件。为了加快处理速度和减轻插入负担,作者把时钟链设计为静态链表的结构。如下所示:
typedefstructtimerItem{
bgpTimetimeoutval;
bgpPeertimes;peer;
intev;
intnext;intlast;
}timerItem;
typedefstructbgpTimerChain{
intavhead;
timerItemtimer〔BGPMAXTIMER〕;
}bgpTimerChain;
每个时钟用一个timerItem结构表示,其中timeoutval记录超时时刻,peer记录此时钟对应哪个网关,ev是超时后要发送的事件,last和next分别指向链表中的前后节点。时钟链结构bgpTimerChain中avhead指向当前未分配时钟构成的空闲链表的头节点。初始时,所有未分配时钟构成一个大的空闲链表。启动时钟时只要把此节点摘下,插入时钟链的相应位置,并返回时钟号。因为时钟在数组timer中的位置不会变化,所以关闭时钟时可以通过时钟号把此节点直接摘下,放入到空闲链表中。
(4)基于单进程体系结构的IO模块设计
BGP4协议建立在TCP层之上,利用TCP协议软件提供的服务接口完成建立连接和发送报文的工作。IO模块便是协议软件中与TCP服务接口进行交互的部分。为了尽量减少系统开销,作者把整个BGP4协议软件设计为单进程结构,这样就加大了IO模块的设计难度。因为通常的设计思路是为每个BGP连接生成一个独立进程,TCP调用采用阻塞模式,调用后等待,直到成功或失败而返回,各进程之间互不影响;但是在单进程结构中,与所有相邻网关的交互都在同一进程内执行,如果仍用阻塞模式,就会由于一个连接的等待而使其他连接的交互挂起,从而使协议失败。因此,所有TCP调用必须立即返回,不管其运行状态如何。之后再定期轮询检查各个连接的当前运行状态,如有变化则通过EventGenerator向FSM发送相应事件。这也是采用事件驱动机制的原因之一。
为了在轮询时检查哪些连接在等待哪些状态,需要设立一些集合以记录等待某状态的连接。这里共有3种集合:
A、等待建连响应的集合。这里记录那些已经发出连接请求,正在等待对方响应的连接号。判断连接是否建立好实际上是通过检测此连接是否可写完成的;
B、等待主动连接的集合。这里记录已经bind成功,正在等待对方发起主动连接请求的连接号。因为利用TCP服务可以监听来自所有地址的连接请求,所以这个集合中实际上只有一个连接号,即bind调用成功后返回的连接号。判断是否有主动连接请求到来是通过检测此连接是否可读(readable)完成的;
C、等待数据到来的集合。这里记录连接已正常建立且进入Established状态,等待接收对方报文的连接号。判断是否有数据到来也是通过检测此连接是否可读完成的。
为了在检查到状态变化时向某状态机发送事件,还需要设置一个连接号到bgpPeer结构指针的映射表。实际上,轮询检查和发送事件是在EventGenerator模块中实现的。下面着重讲一下TCP连接建立和数据发送的实现。
(5)TCP连接的建立
这里采用了与BSDSocket兼容的一系列TCP调用来完成连接的建立。实际上,这里并不等待连接建立的完成,而只是在调用结束后把返回的连接号置入相应的集合中待以后轮询事件时检测。
(6)数据的发送
由于数据发送也采用了无阻塞方式,而且没有设立等待发送完成的连接集合,因此,要在发送过程中累计实际发送的字节数,直到全部发送完为止。通常TCP协议软件在实现时,先把待发送数据拷入系统缓冲区中,然后再逐步发送给远端。因此,提供给用户的数据发送接口不会发生阻塞。这样,采用ldquo;全部发送完为止rdquo;的方式便不会影响协议软件对其他TCP连接的响应。另外,在发送数据的过程中也会检测到TCP连接失败或关闭等事件,这时要通过EventGenerator发送给相应的FSM。
数码知识华为nova5z怎么打开双击亮屏双击亮屏教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道华为nova5……
中秋节的优秀作文范文450字(精选5篇)在我们平凡的日常里,大家都跟作文打过交道吧,写作文可以锻炼我们的独处习惯,让自己的心静下来,思考自己未来的方向。还是对作文一筹莫展吗?下面是小编为大家整理的中秋节的优秀作文范文……
古道探险记作文今天早晨,我睡不着了,在被窝里等待白天的到来。天蒙蒙亮,我就一骨碌从被窝钻出来,以消防员的速度洗脸、刷牙、吃早餐。背上我的登山包,开始今天的南黄古道探险。汽车在蜿蜒的山道……
俄乌背后金融战事这边投下金融核弹,那边翻倍式加息当地时间2月28日,俄乌谈判会场已准备完毕。图IC隔空喊话近一周时间后,俄乌双方坐到了谈判桌前。央视报道称,据白俄罗斯全国电视台当地时间2月28日消息,俄罗斯与乌克……
有福之人(什么才是有福之人?大唐无神论者是如此解释的)有福之人(什么才是有福之人?大唐无神论者是如此解释的)唐中宗在位时,著名风水大师浮图泓因精通堪舆之术,是长安城中权贵的座上客。他最要好的朋友韦安石在刑部担任要职。一……
关于猫的英语作文猫,可爱有趣,很多人都喜欢养来当宠物。那么关于猫的英语作文有哪些呢?下面是品学网小编推荐给大家有关猫的英语作文,供大家参考。描写猫的英语作文篇一Catsareintere……
海螺集团争创一流迈入管理新境界来源:人民网安徽频道原创稿企业兴则国家兴、企业强则国家强。面对日趋激烈的全球竞争,海螺集团心怀国之大者,深入贯彻新发展理念,在服务和融于国家重大战略中扎实推进企业高质量发……
无惧外围风险,茅台大涨3,芯片锂电,热门行业利好消息频出盘中直击指数早盘震荡为主,各大指数涨跌互现。总体上个股涨多跌少,两市超2600只个股上涨。沪深两市半日成交额达6284亿,较上个交易日上午放量198亿。板块方面,猪……
有关倔强作文【篇一:倔强作文】我是个极其倔将的人,这一点是我周围的朋友都公认的。有一次去外面吃饭,正巧将要吃的东西是我最讨厌的,我不想吃便告诉妈妈,妈妈劝我多少吃一点,可我仍就……
12家锂矿资源概念股资料,值得收藏涨停股:1。吉翔股份:公司是一家国内大型钼业企业,拥有焙烧、冶炼、钼化工、钼金属深加工等一体化的生产能力,拥有钼矿采矿权和探矿权,并逐步向钼矿采选发展。公司拟以现金48,……
主力买入前100的个股,净流入排行表一览表(2022。03。左划可查看更多名称现价涨幅主力净流入股东总数散户增减中国铝业6。918。659。03亿49。17万131……
3。2主力卖出前100名的个股,净流出排名一览表查看更多股票简称现价(元)涨跌幅()主力净流出22。03。02散户数量22。03。02流出排名22。03。02宁德时……
征信花了怎么办?作为国内某股份制银行信贷部的信贷经理,给你几点建议!第一、征信有大量的网贷申请记录,百分之百会影响你的征信情况;举例来说:有个朋友问你借钱,你知道他在外面欠了很多钱……
阿里斯顿壁挂炉说明书介绍图解很习惯的一个的动作,每当我们在超市里买回一些商品都会看看它的生产日期,保质期,或者是说明书。你试过买回来的商品没有说明书吗?或者说明书里面说的够详细,导致你不会使用商品啊,我说……
各大品牌不同系列的2g内存价格大全图文导语:21世纪是数字化的时代,电脑已经被广泛普及到了家家户户,然而常见的电脑问题就是的内存损坏了,因此就有必要重新更换,不了解一下内存的价格行情怎么行!今天小编就带来了各大品牌……
滞胀真的来了吗?解决当前问题不必去50年前的美国找答案伴随市场对大宗商品价格和PPI(生产资料价格指数)上涨的担忧,近日滞胀一词也频频出现在国内各类自媒体分析之中。物价快速上涨、经济停滞不前这个二十世纪七十年代出现在西方的经……
excel表格如何计算乘法作为刚学习excel表格的新手们,你们面临的是一个巨大的表格,它包含的只是很多,包含的功能也是强大的。当你所学习的表格制作不再局限于求和求平均数的时候,那么你就开始关注如何求得……
全自动滚筒洗衣机什么牌子好滚筒洗衣机使用方法详解对于洗衣机在我们的生活中是越来越普及了,现在的家庭几乎家家户户都有洗衣机洗衣机是日常生活中减轻家务压力的好帮手。那么全自动滚筒洗衣机哪个牌子好呢?下面就和小编一起来看看滚筒洗衣……
刷屏!比亚迪一员工猝死,生前连续7天夜班!互联网大厂取消99就在新能源车股价大涨、销量不断超预期之际,一则比亚迪员工猝死的消息迅速登上热搜!11月5日,比亚迪第十一事业部一名36岁员工在出租屋猝死,其在西安工作的打卡记录显示,10……
11月19日上市公司发布最新事项公告精选(一)1、冠城大通(600067):公司决定终止推进分拆大通新材至上海证券交易所主板上市申请进程,并撤回相关上市申请文件。2、文峰股份(601010):全资子公司文峰科技拟以现……
好消息!有3种贷款可以一分钱都不用还现代社会网贷、花呗、信用卡已经成为了一种普遍的存在但是每月的还款却让人亚历山大BUT并非所有的债务都是有效的根据法律规定有3种贷款可以……
YY语音长位ID回收标准是什么YY语音对于连续90天内频道积分增长小于1的频道,系统会不定时回收。若想更精确频道回收的时间,请使用频道解散功能,同时还可避免由于频道积分突然增长导致无法被回收的情况。Y……
松下风幕机怎么样松下风幕机参数详细介绍导读:大家经常出入商场超市等场所,尤其是一些大型的场所门口往往是大敞的,但是您进入到里面的时候是没有蚊虫的,最主要的是外面的温度对室内的温度是没有影响的,那么这些是为什么呢您考……
家用纯水过滤器哪个品牌好家用纯水过滤器热门品牌推荐详解据悉,目前的社会环境中环境的污染已经岌岌可危了,人们必须要做好相关的保护措施,想要保证饮用水的安全可以使用净水器这种电器设备,家用纯水过滤器就是具有净化效果的产品。家用纯水过滤……