一种基于IP选项的IP数据包处理方法与系统与流程

文档序号:22750726发布日期:2020-10-31 09:44阅读:79来源:国知局
本发明涉及网络通信和网络安全领域,具体涉及一种基于ip选项的ip数据包处理方法及系统。
背景技术
::随着信息技术的发展和网络应用的普及,虚拟机、虚拟化网络得到了广泛应用。在通信终端上,经常会有多连接、高速通信的需求,有时根据应用的实际需要会配置多个虚拟机以提高网络通信效率,虚拟机基于主机网卡的物理基础,实现各通信参与方之间的网络通信。在通信连接数量较多、通信数据量较大、通信速度要求较高时,通信终端对ip数据报文的处理速度会成为通信的瓶颈。现有技术中,虚拟机的网络通信常常通过虚拟交换机模式实现。虚拟交换机连接虚拟网卡和物理网卡,通过物理主机上的物理网卡作为上行链路与外界网络进行连接,将虚拟机上的数据报文从物理网卡转发出去,并从物理网卡上接收报文转发给对应的虚拟网卡。常用的虚拟交换机如openflow虚拟交换机,通常采用sram和dram等地址寻址存储器存储openflow流表,流表查找的效率对虚拟交换机的速度有极大的影响。openflow虚拟交换机采用元组空间搜索法(tss),虚拟交换机依据其匹配字段组成的流标识符,逐个探测掩码,即将流标识符与对应的掩码进行与运算,然后在对应的流表中查找匹配流表项,通过流表项可得到ip数据包的处理策略,进而实现数据包的转发处理。元组空间搜索法一般将元组信息进行哈希处理,用哈希运算结果构建哈希表,实现元组信息与流表信息之间的对应关系。哈希表由于其良好的散列性能且易于硬件实现,成为高速匹配处理时的主要手段,但是哈希冲突往往难以避免,而要解决哈希冲突的问题,又需要很高的额外时间和空间开销,严重影响到哈希表匹配性能。全硬件匹配引擎内容寻址存储器件tcam以其较高的匹配性能在高速报文处理领域得到广泛应用,然而tcam这种高性能并行匹配机制带来了高能耗与散热的问题,同时tcam的成本也非常高,可以达到sram的30倍。技术实现要素:本发明的目的是针对通信终端高速报文处理的需求,提供一种基于ip选项的ip数据包处理方法及系统,可以低成本、高速度地处理ip数据包,以极低的代价提高通信终端报文处理的速度。为了实现上述目的,本发明第一方面提供一种基于ip选项的ip数据包处理方法,包括以下步骤:建立ip数据包处理策略表;通信连接成功后,将本次连接中对于ip数据包的处理方式作为表项内容存储入所述ip数据包处理策略表,并记录对应表项的索引号;在发送ip数据包时,把所述索引号作为自定义ip选项参数放入所述ip数据包首部的选项区域;接收到应答ip数据包后,提取所述应答ip数据包首部的选项区域中的索引号,再通过所述索引号获得所述ip数据包处理策略表的表项内容;其中,所述应答ip数据包首部的选项区域中的内容为所述自定义ip选项的内容复制;根据所述表项内容中记载的本次连接中对于ip数据包的处理方式,对所述应答ip数据包进行相应处理。基于上述,建立索引表,用于存储和管理每个ip数据包处理策略表项的索引号,所述索引号与所述ip数据包处理策略表项的首地址一一对应;通信连接成功后,通过所述索引表的首指针获取一个空的ip数据包处理策略表项的索引号,在所述索引号对应的ip数据包处理策略表项地址存储ip数据包处理策略,并将所述索引表的首指针指向下一个待分配的ip数据包处理策略表项的索引号。基于上述,所述索引表为固定长度,每个索引表项的第一个参数为所述索引表项对应的ip数据包处理策略表项的索引号,第二个参数为链接的下一个ip数据包处理策略表项的索引号;所述索引表的首指针指向第一个索引表项,尾指针指向最后一个索引表项。基于上述,建立通信连接后,通信双方通过vpn隧道通信模式协商ip数据包的处理方式。基于上述,所述的对于ip数据包的处理方式,包括以下处理方式中的一项或多项:直接解析ip数据包读取和使用数据;使用己方存储的密钥对ip数据包的数据加密后,再发送;使用己方存储的密钥对ip数据包的数据解密后,再读取/使用明文数据;对数据包进行检测,在检测结果为正确或错误时,分别按照对应的ip数据包处理策略表中记录的相应处理方式进行处理。本发明第二方面提供一种基于ip选项的ip数据包处理系统,包括:策略表存储管理单元,用于建立ip数据包处理策略表;用于通信连接成功后,将本次连接中对于ip数据包的处理方式作为表项内容存储入所述ip数据包处理策略表,并记录对应表项的索引号;还用于在发送ip数据包时,把所述索引号作为自定义ip选项参数放入所述ip数据包首部的选项区域;ip数据包处理单元,用于在接收到应答ip数据包后,提取所述应答ip数据包首部的选项区域中的索引号,通过所述索引号获得所述ip数据包处理策略表的表项内容;其中,所述应答ip数据包首部的选项区域中的内容为所述自定义ip选项的内容复制;再根据所述表项内容中记载的本次连接中对于ip数据包的处理方式,对所述应答ip数据包进行相应处理。基于上述,该基于ip选项的ip数据包处理系统还包括:索引表存储管理单元,用于建立索引表,所述索引表用于存储和管理每个ip数据包处理策略表项的索引号,所述索引号与所述ip数据包处理策略表项的首地址一一对应;还用于在通信连接成功后,通过所述索引表的首指针获取一个空的ip数据包处理策略表项的索引号,在所述索引号对应的ip数据包处理策略表项地址存储ip数据包处理策略,并将所述索引表的首指针指向下一个待分配的ip数据包处理策略表项的索引号。基于上述,所述索引表为固定长度,每个索引表项的第一个参数为所述索引表项对应的ip数据包处理策略表项的索引号,第二个参数为链接的下一个ip数据包处理策略表项的索引号;所述索引表的首指针指向第一个索引表项,尾指针指向最后一个索引表项。本发明第三方面提供一种通信终端,包括存储器、处理器、以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于ip选项的ip数据包处理方法的步骤。本发明第四方面提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现所述的基于ip选项的ip数据包处理方法的步骤。本发明的技术方案中,通信终端通过ip数据包处理策略表存储对每一次通信的ip数据包处理方式,使用ip数据包首部的选项区域承载ip数据包处理策略表项索引号信息,从而收到ip数据包时可以直接根据ip选项中的ip数据包处理策略表项索引号信息,读取相应的ip数据包处理策略表项,获得对收到的ip数据包的处理方式,对ip数据包进行相应处理。本发明相对现有技术具有突出的实质性特点和显著的进步,具体地说:1、本发明技术方案与常用的虚拟交换机流表查找方式相比,收到ip数据包时可以直接根据ip选项中的ip数据包处理策略表项的索引号信息,读取相应的ip数据包处理策略表项内容,获得对收到的ip数据包的处理方式,对ip数据包进行相应处理,复杂度大大降低,可以达到高速处理ip数据包的目标,也不需要额外的硬件资源,代价很低。2、本发明技术方案使用索引表存储和管理待分配的ip数据包处理策略表项的索引号,可以方便灵活地管理ip数据包处理策略表项,从而简单、快捷地对多个通信连接进行服务与管理。3、本发明技术方案可以与虚拟交换机配合使用,也可以不通过虚拟交换机,使用本发明技术方案直接方便快速地处理ip数据包。附图说明图1是本发明的基于ip选项的ip数据包处理方法中,初始化后的ip数据包处理策略表和索引表的示意图。具体实施方式实施例1本实施例提供了一种基于ip选项的ip数据包处理方法,所述方法包括以下步骤:建立ip数据包处理策略表;通信连接成功后,将本次连接中对于ip数据包的处理方式作为表项内容存储入所述ip数据包处理策略表,并记录对应表项的索引号;在发送ip数据包时,把所述索引号作为自定义ip选项参数放入所述ip数据包首部的选项区域;接收到应答ip数据包后,提取所述应答ip数据包首部的选项区域中的索引号,再通过所述索引号获得所述ip数据包处理策略表的表项内容;其中,所述应答ip数据包首部的选项区域中的内容为所述自定义ip选项的内容复制;根据所述表项内容中记载的本次连接中对于ip数据包的处理方式,对所述应答ip数据包进行相应处理。本实施例中,ip选项指的是ip数据包首部的选项字段或者选项区域。本实施例中,通信双方可以在通信协商的时候,对于ip选项的处理方式进行协商约定。通信双方可以构建vpn隧道通信模式,在vpn隧道通信模式下更可以保证具有自定义ip选项的ip数据包在通信过程中畅通无阻。本实施例方案在具体实现时,还有建立索引表,用于存储和管理每个ip数据包处理策略表项的索引号,所述索引号与所述ip数据包处理策略表项的首地址一一对应;通信连接成功后,通过所述索引表的首指针获取一个空的ip数据包处理策略表项的索引号,在所述索引号对应的ip数据包处理策略表项地址存储ip数据包处理策略,并将所述索引表的首指针指向下一个待分配的ip数据包处理策略表项的索引号。本实施例中,所述索引表为固定长度,每个索引表项的第一个参数为所述索引表项对应的ip数据包处理策略表项索引号,第二个参数为链接的下一个ip数据包处理策略表项索引号;所述索引表的首指针指向第一个存储有待分配索引号的索引表项,尾指针指向最后一个存储有待分配索引号的索引表项。具体的,索引表可以用与如下代码所示类似的方式进行定义:定义索引表的数据结构:typedefstruct_ip_data_table{uint16block_number;//索引表中的索引号从0到n-1,//与ip数据处理策略表项的首地址一一对应uint16next_block_number;//该索引号链接的下一个可用索引号,//若为最后一个索引号或者该索引号已占用则为0xffff}ip_data_table;定义表空间:uint32table[n];定义表头指针:void*ip_data_table_head;ip_data_table_head=&table[0];定义表尾指针:void*ip_data_table_tail;ip_data_table_tail=&table[n-1];初始化时,当block_number=m,则next_block_number=m+1;当block_number=n-1时,next_block_number=0xffff。其中ip数据包处理策略表项的个数,以及ip数据包处理策略索引表的最大长度都为n。初始化后的ip数据包处理策略表和索引表如图1所示。需要使用待分配ip数据包处理策略表项存储块时,通过索引表首指针获取待分配存储块对应的索引号,并将对应的索引号从索引表中删除,即将索引表首指针指向next_block_number所指示的索引表项,且令next_block_number=0xffff。假设第x个ip数据处理策略表项存储块被占用,则第x个索引表项数据组织为:ip_data_table_head=&table[next_block_number],block_number保持不变,next_block_number=0xffff。若第y块ip数据处理策略表项存储块被释放,则ip_data_table_tail指示的索引表项数据为:block_number保持不变,next_block_number=y,ip_data_table_tail=&table[y]。占用一个索引表项的过程为:从ip_data_table_head中获取索引号block_number,ip_data_table_head指向next_block_number所指示的索引表项,将原来指向的索引表项的next_block_number值设置为0xffff。通过索引号block_number即可获取ip数据包处理策略表项的首地址。释放用一个索引表项的过程为:由ip数据包处理策略表项存储块首地址得到该表项所对应的索引表中的索引号block_numbe’,ip_data_table_tail原来指示的索引表项数据的block_number保持不变,next_block_number=该表项所对应的索引表中的索引号block_numbe’,然后将ip_data_table_tail指针指向该表项所对应的索引表项,即该表项所对应的索引号block_number’。索引表中管理的是待分配的ip数据包处理策略表的存储空间。建立通信连接时,根据索引表的首指针指向的索引号,占用该索引号,以及占用对应的ip数据包处理策略表项存储块来存储本次通信连接中的ip数据包处理策略;同时把索引表首指针指向下一未被占用的索引表项,这样索引表中待分配的索引号就不再有该项被占用的索引表项。当此次通信结束时,可以释放该ip数据处理策略表项存储块,把对应的索引号加入到索引表尾部,成为待分配的索引号。即对应的ip数据处理策略表项存储块也成为待分配的存储块。使用本实施例的ip数据包处理方法,每个通信方可以同时建立多个通信连接,例如各自使用多个虚拟机,或者使用多个应用,每个虚拟机或者每个应用建立不同的通信连接。本实施例中,所述的对于ip数据包的处理方式,包括以下处理方式中的一项或多项:直接解析ip数据包读取和使用数据;使用己方存储的密钥对ip数据包的数据加密后,再发送给对方;使用己方存储的密钥对ip数据包的数据解密后,再读取/使用明文数据;对数据包进行检测,在检测结果为正确或错误时,分别按照对应的ip数据包处理策略中记录的相应处理方法进行处理;本实施例在具体实现的时候,所述的ip数据处理策略表的表项内容还包括选用的密码算法、加解密运算模式、会话密钥的生成方式、主密钥、ip数据包头数据组织格式、数据包检测模式与相关处理方法中的一项或多项,以实现对ip数据包的处理。实施例2基于与上述方法同样的发明构思,本实施例中提供了一种基于ip选项的ip数据包处理系统,包括:策略表存储管理单元,用于建立ip数据包处理策略表;用于通信连接成功后,将本次连接中对于ip数据包的处理方式作为表项内容存储入所述ip数据包处理策略表,并记录对应表项的索引号;还用于在发送ip数据包时,把所述索引号作为自定义ip选项参数放入所述ip数据包首部的选项区域;ip数据包处理单元,用于在接收到应答ip数据包后,提取所述应答ip数据包首部的选项区域中的索引号,通过所述索引号获得所述ip数据包处理策略表的表项内容;其中,所述应答ip数据包首部的选项区域中的内容为所述自定义ip选项的内容复制;再根据所述表项内容中记载的本次连接中对于ip数据包的处理方式,对所述应答ip数据包进行相应处理。本实施例中,该基于ip选项的ip数据包处理系统还包括:索引表存储管理单元,用于建立索引表,所述索引表用于存储和管理每个ip数据包处理策略表项的索引号,所述索引号与所述ip数据包处理策略表项的首地址一一对应;还用于在通信连接成功后,通过所述索引表的首指针获取一个空的ip数据包处理策略表项的索引号,在所述索引号对应的ip数据包处理策略表项地址存储ip数据包处理策略,并将所述索引表的首指针指向下一个待分配的ip数据包处理策略表项的索引号。本实施例中,所述索引表为固定长度,每个索引表项的第一个参数为所述索引表项对应的ip数据包处理策略表项的索引号,第二个参数为链接的下一个ip数据包处理策略表项的索引号;所述索引表的首指针指向第一个索引表项,尾指针指向最后一个索引表项。实施例3本实施例提供一种通信终端,包括存储器、处理器、以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于ip选项的ip数据包处理方法的步骤。在通信终端上可配置多个虚拟机,虚拟机可利用主机网卡进行网络通信。基于ip选项的ip数据包处理方法,能够大大提高通信终端对ip数据报文的处理速度,在多个虚拟机同时进行网络通信时也可以保证通信质量。实施例4本实施例提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现所述的基于ip选项的ip数据包处理方法的步骤。以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1