论文部分内容阅读
路由器作为信息沟通的“桥梁”,自互联网诞生起一直发挥着基础性的作用。随着互联网日新月异的发展,传统路由器的设计逐渐无法满足网络运营商和用户的需求。一方面,为了保持链路的可达性,传统路由器通常以24/7的方式持续工作,消耗巨大的电能。如何设计支持省电的路由器成为亟待解决的问题。另一方面,尽管互联网上的应用日益丰富,传统路由器因遵循“核心简单、边缘复杂”的设计原则,无法为不同应用提供定制的服务。如何使路由器能够根据流量承载的应用作针对性的包转发也成为当下的研究热点。针对路由器的这两个发展趋势,我们对路由器线卡的体系结构进行了深入的研究。论文的主要研究成果如下:1.提出了路由器线卡快速启动的设计方案。目前学术界提出的核心路由器省电方案均假设路由器线卡可以在零时间切换工作状态,然而本文在真实路由器上的测量结果显示,核心路由器线卡需要花费五分钟甚至更长时间完成启动。为了使学术界的省电方案可以“无缝”的运用到现役路由器上,本文提出了线卡快速启动的方案。具体而言,本文给出了路由表项优先下载的策略,并利用动态规划求得满足最长前缀匹配约束的最优路由表项下载次序。在路由器线卡原型系统上的实验结果显示,基于我们的设计,线卡的启动时间可以从40.8s缩短到127ms。2.设计并实现了基于FPGA的高速应用层协议识别系统。有别于基于多核通用处理器的软件系统,本文基于FPGA搭建了面向高速骨干网的硬件应用层协议识别系统。本文利用骨干网流量传输层的时间局部性特性,设计了基于两级存储的硬件结构;利用DRAM存储器的突发特性,设计了基于固定桶长的哈希表作为流表数据结构;为了减少流老化操作对DRAM的带宽消耗,提出了惰性老化机制;为了屏蔽底层细节,设计了设备无关抽象层和流水线命令处理单元。实验结果表明,该系统可以达到70Mpps的吞吐率,满足OC-768骨干网的性能要求。3.研究了高速网络中可容纳100M规模并发流的流表数据结构。有效解决哈希冲突是提高流表性能的关键。基于多哈希的方法可以较好解决哈希冲突,但当并发流数目很高时,会造成巨大的片上缓存开销。为此,本文提出了对存储器带宽贪婪的哈希方法,只为一部分哈希表项按需分配片上缓存,在保证性能的前提下,大大降低片上缓存开销。实验表明,该方法可以在16GB的DRAM中容纳100M并发流,并保证片上缓存开销不超过16MB,同时达到122Mpps的吞吐率。