本技术方案涉及一种多协议兼容的集成会话管理技术及相应设备。该技术通过建立原协议与目标协议的会话映射表和存储目标协议包头信息,实现对会话的有效管理。
背景技术
协议转换一般发生在两种不同协议互连互通的场景,它一般由专用的协议转换模块或者可编程处理器完成。应用层数据交互一般以会话为单位,一个会话可能包含几KB、MB、GB不等大小的负载数据。由于每一种协议的报文可承载的负载长度有限,因此一个会话在发送过程中需要在网卡上拆成多个报文,并通过相应协议的交换网络进行传输,接收端将接收的每一个报文的负载收集起来,组成一个会话,最后交付给应用层。
一个会话有对应的标识进行区分,这些标识会体现在会话的每一个报文头部中,并且报文头部还会有会话的起始、中间和结束等标识,指示报文在整个会话的位置,接收端通过这些指示将接收到报文进行重组和恢复会话,因此每一个报文除了负载不一样,报文头也不一样。如图1所示的以太网UDP报文格式,每一个UDP会话的标识一般由DMAC、SMAC、原IP地址、目标IP地址、原端口号、目的端口号等组成,它们唯一区别一个会话,具有相同标识的报文属于同一个会话,不同标识的就属于不同会话。
如果发送端和接收端的协议类型不一样,那么就需要在中间进行协议转换,协议转换一般以报文为单位,但是不能破坏整体会话的完整性,即原协议会话的所有报文转换成目标协议的报文应该也是一个完整的会话。比如以太网协议向光纤通道(FiberChannel,FC)协议转换时,以太网协议应用层一般使用UDP或者TCP等会话,而FC协议应用层有FC-AE-ASM或者FC-AE-1553等会话,因此协议转换需要进行会话管理,主要目的是实现原-目标协议会话映射,以及保存每个会话的现场参数。如图2所示的协议转换示意图,它一般分为四个单元,输入原协议报文,经过原协议报文解析单元,提取报文的负载存储在存储器中,同时提取原协议报文的会话标识,输出给原-目标协议会话映射单元,原-目标协议会话映射单元根据原协议会话标识映射出目标协议的报文头信息,输出给目标协议报文组装单元,目标协议报文组装单元根据目标协议类型和报文头相关信息,从原协议报文负载存储中读取负载数据,和报文头一起组装成完整的目标协议报文,然后输出。由于不同协议报文所能承载负载大小不一样,目标协议报文组装单元可能需要将原协议的负载进行拆分,然后组装成多个报文发送出去,组装过程中可能需要修改报文头中一些信息,待组装完成之后更新到会话管理单元中,供会话的下个报文进行映射和转换使用。
传统的会话管理一般放在目标协议报文组装单元中,在目标协议封装结束之后,对报文头中需要修改的信息进行单独存储,保存转换现场参数,而不需要修改的单元直接使用查表得到的目标协议报文头。这种方式对于一对一固定协议的转换硬件使用效率较高。但是,对于支持多协议互转的软件定义协议转换应用,若仍采用上述会话管理方式,由于不同协议需要保存的参数不一样,导致需要针对不同协议进行单独设置和管理,造成存储的浪费和管理的不方便。
实现思路