高性能路由器硬件的关键技术研究( 三 )


第3类,粘滞数据是由完整数据包和内部通信包头残缺的数据包组成,如图8和图9所示 。首先,要将如图8所示数据段中收到的残缺的这部分包头保存起来,然后收取下一次数据如图9所示 。再从收取的数据中,截取可以与上次残缺包头组成完整的内部通信包头的一段报文,形成所需要的内部通信包头 。当然,该段数据有可能并不是内部通信包头,这可以从分隔符是否正确等内部通信封装格式来判定 。假如发生这种情况,就要将指针以字节为单位,顺次向后滑动,直到找到真正的内部通信包头为止 。然后根据包头中的信息,取出相应长度的应用程序数据交送给应用程序接收者 。
解决了上述分析的2大不足之后,内部通信模块中实现的TCP传输,在保证数据传输的良好的可靠性和流控性之外,还具备了一定的实时性能和防止数据包粘滞的功能 。
3 结 语
本文研究了硬件抽象层在高性能IPv6路由器实现中的要害技术,主要分析了虚拟驱动的动态加载模式、基于分隔符的TCP实时传输方法、基于地址映射的内核态与用户态间的阻塞式数据交换机制 。通过上述要害技术的研究,使硬件抽象层得以实时、高效地运行,并且已稳定运行于高性能IPv6路由器中 。

推荐阅读