基于Linux的边界网关协议的实现及其并行化改造

来源 :电子科技大学 | 被引量 : 3次 | 上传用户:simetl1235
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
BGP协议作为当前网络环境中事实上的边界网关协议的标准,其效率影响着整个网络。当今网络规模的爆炸式增长给处于网络核心节点的路由器提出了巨大的挑战,因此提高BGP协议的执行效率,对于满足当今以及未来网络的增长需求有着十分重要的意义。BGP协议经过了二十几年的发展,基于串行模型的优化改造难以获得理想的效果,性能提升的空间非常有限,必须突破传统的模型,探寻新的设计思路才可能获得更好的性能。半导体技术的发展使得多核CPU成为当今计算平台的主流,多核技术的不断发展对于上述问题的解决带来了新的机遇。多核计算平台中多个CPU核集中在一个芯片中,并且使用共享的方案来访问内存等资源,这样的设计使得线程之间通信的延迟和开销明显小于多处理器平台。因此,挖掘BGP协议的并行性,采用多线程的并行程序设计方案来充分使用多核平台带来的优势,可以使得BGP协议的执行效率获得一定的提升。本文深入分析了RFC1771所描述的BGP协议,设计并实现了基于Linux操作系统的单线程串行版本的BGP协议。本BGP系统使用Linux所提供的NETLINK套接字与内核进行通信,从而达到访问修改内核路由表的目的。为了突破Linux在一个进程中仅支持一个定时器的限制,本系统设计实现了定时器队列来管理多个定时器,同时,本系统采用读取配置文件的方式来对BGP进行配置。在完成了串行BGP之后,本文首先对该协议从任务并行的角度,采用流水线模型对其并行性进行分析,其次分析了基于线程池模型的数据并行方法的可行性,最后通过分析确定了基于邻居对等体连接的报文级数据并行方法对BGP协议进行并行化改造,并基于串行版本的BGP实现了并行的BGP协议。本文采用虚拟机来模拟多网卡主机,搭建BGP系统的测试环境。通过测试,验证了本文所设计的BGP系统的功能正确性。最后测试并验证了并行BGP系统的性能提升,在本文的测试环境下,最优的加速比为1.55。
其他文献
作为面向对象技术的标准语言,UML具有界面友好、易于表达、功能强大且普遍适用的特征,但是UML不是形式化的建模语言,缺乏精确的语义描述,因此难以在UML模型设计的早期阶段对模型
随着计算机网络技术的发展,网络日益深入人类社会各方面,网络安全日趋重要.人们对网络安全的认识不断加深.以防火墙为代表的传统的网络安全手段已经不能满足要求,动态防护的
随着计算机的普及,CAD软件在很多行业得到广泛的应用,尤其是建筑和机械行业。对这些行业而言,已有的CAD图档不仅是设计责任认定的重要依据,还是企业的知识财富和技术积累;已有的CA
随着Internet和信息技术的迅猛发展,给现代企业带来了一种新的挑战。那就是面对越来越多的各种类型的信息、资料、文件和档案,如何有效的保护和利用它们并为企业提高生产力和竞
以IEEE 802.11协议为代表的无线接入网络为Internet和Intranet的接入提供了价廉物美的解决方案,当前得到了迅猛的发展.由于无线链路具有的共享介质、低带宽、高延迟和高误码
随着计算机技术和网络通信技术的不断进步,网络教育也得到了蓬蓬勃勃的发展。网络教育具有跨越时空的特点,它为更多的人提供了学习的机会,逐渐走进了人们的生活。网络学习环境(
网络技术和信息数字化的快速发展对存储服务器提出了新的要求。存储服务器主要用于存储用户数据和响应网络请求,其性能主要由磁盘I/O和网络传输控制决定。磁盘I/O性能可以通
现在越来越多的应用和组件创建和部署在J2EE架构的应用服务平台上,为了满足大规模应用开发和企业级管理、监控和配置的需要,Java Management Extensions(JMX)作为J2EE应用和
近年来,数据以大容量,连续的流的形式出现在应用程序中引起了人们极大的关注,这些应用程序包括金融市场监控、网络监控、移动对象跟踪、资产跟踪、入侵检测和生态系统监测等,由于
目前,电子邮件系统已经是互联网上最为流行,也是最为常用的一种应用.伴随着互联网技术的日见成熟,越来越多的网站已经不再拘泥于为用户提供单一的、静态的服务,人们对于多种