IPv4和IPv6互通方法和系统的制作方法

文档序号:7809334阅读:352来源:国知局
IPv4和IPv6互通方法和系统的制作方法
【专利摘要】本发明公开了一种IPv4和IPv6互通方法和系统,所述方法包括步骤:获取待转换数据报文,将待转换数据报文转换成二维数组形成预处理数据包,并将所述预处理数据包写入待转换共享内存中;从待转换共享内存中读取预处理数据包,并通过GPU将预处理数据包并行转换为目标数据格式形成转换数据包,将该转换数据包写入转换结果共享内存中;从转换结果共享内存中读取转换数据包,并将所述转换数据包转换为网络数据帧格式形成目标数据报文。将IPv4/IPv6转换计算交由GPU处理,能够加快转换效率减少网络拥塞,提升网络服务质量,并能够所占用的系统资源,减少对高速网络处理器的性能要求,减少系统的配置成本。
【专利说明】I Pv4和I Pv6互通方法和系统 【【技术领域】】
[0001] 本发明涉及网络传输技术,特别是涉及一种IPv4和IPv6互通方法和系统。 【【背景技术】】
[0002] 随着互联网的进一步发展和普及,尤其是移动互联网、物联网等应用快速发展, IPv4(Internet Protocol version4,互联网协议第四版)地址空间不足的问题日益凸显, 地址资源枯竭的问题严重地制约了我国及其他国家互联网的应用和发展。IPv6 (Internet Protocol versione,互联网协议第六版)作为下一代网络的基础以其鲜明的技术优势得到 了广泛的认可,目前许多国家都在积极推进包括IPv6网络在内的下一代互联网技术和应 用。由于当前因特网中数量庞大的IPv4设备和用户,现行的IPv4网络不可能在短时间内 全部升级为IPv6网络,IPv4和IPv6网络将长期共存。IPv4和IPv6互通网关作为IPv4/ IPv6过渡技术的重要应用之一,有效解决了过渡环境下网络的IPv4/IPv6互连互通问题。
[0003] 当前IPv4和IPv6互通网关采用高速网络处理器和高性能通用计算平台组成的硬 件平台,在高速网络处理器上实现大吞吐量的IPv4和IPv6网络数据的收发,在高性能通用 计算平台上运行IPv4和IPv6的互通协议以及应用网关、网络管理等功能的软件,从而组成 IPv4和IPv6互通网关。
[0004] 由于所述互通协议具有大量的计算过程,所以需要耗费大量的计算资源,而且当 今互联网接入设备众多以及大量诸如语音、视频等大流量业务,使得网络数据流量急剧增 长,导致IPv4和IPv6互通网关需要进行大量的转换计算,而通用高速网络处理器采用的是 串行计算方式,处理能力有限,使得同时链接的会话数受到限制,容易造成网络拥塞,导致 网络服务质量降低。同时,为了尽可能支持更多IPv4和IPv6互通转换连接数和提高服务 质量,一般需采用高性能的CPU(Central Processing Unit,中央处理器),并增加更多的计 算硬件板卡资源,导致IPv4和IPv6互通系统配置成本增高。 【
【发明内容】

[0005] 基于此,有必要针对现有技术中IPv4和IPv6互通网关容易出现网络拥塞的问题, 提供一种IPv4和IPv6互通方法和系统,能通过GPU(Graphic Processing Unit,图形处理 器)快速实现IPv4和IPv6数据快速转换,避免网络拥塞。
[0006] 一种IPv4和IPv6互通方法,包括步骤:
[0007] 获取待转换数据报文,将待转换数据报文转换成二维数组形成预处理数据包,并 将所述预处理数据包写入待转换共享内存中;
[0008] 从待转换共享内存中读取预处理数据包,并通过GPU将预处理数据包并行转换为 目标数据格式形成转换数据包,将该转换数据包写入转换结果共享内存中;
[0009] 从转换结果共享内存中读取转换数据包,并将所述转换数据包转换为网络数据帧 格式形成目标数据报文。
[0010] 相应地,本发明还提供一种IPv4和IPv6互通系统,包括:
[0011] 预处理模块,用于获取待转换数据报文,将待转换数据报文转换成二维数组形成 预处理数据包,并将所述预处理数据包写入待转换共享内存中;
[0012] 第一转换模块,用于从待转换共享内存中读取预处理数据包,并通过GPU将预处 理数据包并行转换为目标数据格式形成转换数据包,将该转换数据包写入转换结果共享内 存中;
[0013] 第二转换模块,用于从转换结果共享内存中读取转换数据包,并将所述转换数据 包转换为网络数据帧格式形成目标数据报文。
[0014] 本发明通过将待转换数据报文进行格式转换为二维数组以形成GPU能够处理的 预处理数据包,然后通过GPU将预处理数据包并行转换为目标数据格式形成转换数据包, 并将该转换数据包写入GPU转换结果共享内存中,最后从GPU转换结果共享内存中读取转 换数据包,并将所述转换数据包转换为网络数据帧格式形成目标数据报文。由于GPU具有 强大的计算能力,因此通过将IPv4/IPv6转换计算交由GPU处理,能够加快转换效率,减少 网络拥塞,提升网络服务质量,并且能够减少IPv4/IPv6转换计算所占用的系统资源,使得 减少对高速网络处理器的性能要求,减少系统的配置成本。 【【专利附图】

【附图说明】】
[0015] 图1为本发明一种IPv4和IPv6互通方法一种实施例的流程图;
[0016] 图2为本发明一种IPv4和IPv6互通系统一种实施例的结构框图。 【【具体实施方式】】
[0017] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进 一步地详细描述。
[0018] 请参阅图1,其是本发明一种IPv4和IPv6互通方法一种实施例的流程图。
[0019] 一种IPv4和IPv6互通方法,包括步骤:
[0020] S101 :获取待转换数据报文,将待转换数据报文转换成二维数组形成预处理数据 包,并将所述预处理数据包写入待转换共享内存中;
[0021] 由于待转换数据报文均为一维数据报文格式,而GPU所能处理的数据格式是定长 的二维数组,所以在获取待转换数据报文之后,需要将待转换数据报文转换成二维数组的 格式以形成GPU能够处理的预处理数据包。为使GPU能够读取预处理数据包,需要将所述 预处理数据包写入待转换共享内存。
[0022] S102 :从待转换共享内存中读取预处理数据包,并通过GPU将预处理数据包并行 转换为目标数据格式形成转换数据包,将该转换数据包写入转换结果共享内存中;
[0023] 通过GPU从待转换共享内存中读取预处理数据包,由于GPU具有并行处理能力,因 此通过GPU -次可读取一个或者至少一个预处理数据包。
[0024] 读取预处理数据包后,通过GPU将所述预处理数据包并行转换为目标数据格式形 成转换数据包。GUP读取预处理数据包后,首先识别所述预处理数据包的网络地址,如果网 络地址是IPv6地址,则其目标格式为IPv4地址所对应的二维数组格式,即将预处理数据包 转换为IPv4地址所对应的二维数组格式。如果网络地址是IPv4地址,则其目标格式为IPv6 地址所对应的二维数据格式,即将预处理数据包转换为IPv6地址所对应的二维数据格式。
[0025] 当GPU完成目标数据格式转换后,将该转换数据包写入转换结果共享内存,使得 (PU能够读取该转换数据包。
[0026] S103:从转换结果共享内存中读取转换数据包,并将所述转换数据包转换为网络 数据帧格式形成目标数据报文。
[0027] 由于发送到网络的数据报文是一维的帧格式,而经过GPU转换而形成的转换数据 包是二维数组的数据格式,因此,从转换结果共享内存中读取转换数据包之后,需要将所述 转换数据包转换为网络数据帧格式形成目标数据报文。
[0028] 本发明通过将待转换数据报文进行格式转换为二维数组以形成GPU能够处理的 预处理数据包,然后通过GPU将预处理数据包并行转换为目标数据格式形成转换数据包, 并将该转换数据包写入GPU转换结果共享内存中,最后从GPU转换结果共享内存中读取转 换数据包,并将所述转换数据包转换为网络数据帧格式形成目标数据报文。由于GPU具有 强大的计算能力,因此通过将IPv4/IPv6转换计算交由GPU处理,能够加快转换效率,减少 网络拥塞,提升网络服务质量,并且能够减少IPv4/IPv6转换计算所占用的系统资源,使得 减少对高速网络处理器的性能要求,减少系统的配置成本。
[0029] 在一个实施例中,上述步骤S102中通过GPU将预处理数据包并行转换为目标数据 格式形成转换数据包的步骤,可具体包括以下步骤:
[0030] S201 :如果预处理数据包的网络地址为IPv4地址,则通过GPU将IPv4地址设定为 私有IPv4地址,从预设的私有IPv4地址池中获取与该私有IPv4地址对应的IPv6地址,并 将预处理数据包中IPv4报文头转换成与所述IPv6地址对应的IPv6报文头;
[0031] 其中,所述私有IPv4地址池至少包括一个私有IPv4地址和IPv6地址的映射关 系。
[0032] 如果预处理数据包的网络地址为IPv4地址,则说明该预处理数据包所对应的待 转换数据报文是由IPv4网络发送给IPv6网络的。此时,先将预处理数据包的网络地址设 定为私有IPv4地址,然后从私有IPv4地址池中查找并获取该私有IPv4地址所对应的IPv6 地址,最后将预处理数据包中IPv4报文头转换成与所述IPv6地址对应的IPv6报文头。
[0033] S202 :如果预处理数据包的网络地址为IPv6地址,则通过GPU从私有IPv4地址池 中获取与该IPv6地址对应的私有IPv4地址,并将预处理数据包中IPv6报文头转换成与所 述私有IPv4对应的IPv4报文头。
[0034] 如果预处理数据包的网络地址为IPv6地址,则说明该预处理数据包所对应的待 转换数据报文是由IPv6网络发送给IPv4网络的。此时,从私有IPv4地址池中查找并获取 该IPv6地址所对应的私有IPv4地址,然后将预处理数据包中IPv6报文头转换成与所述私 有IPv4地址对应的IPv4报文头。其中,该IPv4报文头中的源地址转换成该IPv6地址对 应的私有IPv4地址。
[0035] 根据预处理数据包的网络地址获取私有IPv4地址池中私有IPv4地址与IPv6地 址的映射关系,再通过GPU将IPv4的报文头转换成IPv6报文头或者将IPv6的报文头转换 成IPv4报文头,使得在IPv4与IPv6转换过程当中不必占用公用IPv4地址,减少了公用 IPv4地址的使用。
[0036] 在一个实施例中,上述步骤S101中所述获取待转换数据报文步骤,具体可包括以 下步骤。
[0037] S301 :接收传入的待转换数据报文,并将待转换数据报文保存到接收队列中;
[0038] 通过物理网卡或者网络分发引擎接收传入的待转换数据报文,然后将所述待转换 数据报文保存到接收队列中。
[0039] S302 :从接收队列中读取待转换数据报文。
[0040] 由于执行IPv4/IPv6互通转换过程需要耗费一定的时间,当网络中短时间内有大 量的待转换数据报文需要转换时,由于GPU来不及转换,从而出现丢包现象,使得网络丢包 率升高,使得网络传输质量降低。通过将待转换数据报文保存到接收队列中,然后再从接收 队列中读取待转换数据报文,能够减少丢包现象,保证网络传输质量。
[0041] 在一个实施例中,上述步骤S101中将待转换数据报文转换成二维数组形成预处 理数据包步骤,可具体包括以下步骤:
[0042] S401 :按照预设的字节长度将待转换数据报文进行分割;
[0043] 由于GPU所能处理的数据格式是定长的二维数组,所以所述字节长度为所述二维 数组的行宽,例如,某一 GPU所能处理的数据格式是行宽为16个字节,列高为100个字节的 二维数组,则预设的字节长度则为16个字节。确定了所述字节长度之后,按照该字节长度 将待转换数据报文分割成若干段,例如,某一待转换数据报文长度为158个字节,按照16个 字节对其分割,则可将该待转换数据报文分成10段。
[0044] S402 :将分割后的待转换数据报文按顺序拼接组成二维数组,形成预处理数据包。
[0045] 将分割后的待转换数据报文的每一段,作为二维数组的行,按顺序拼接组成二维 数组以形成预处理数据包。例如,将分割后的待转换数据报文的第一段作为二维数组的第 一行,第二段作为二维数组的第二行,依次类推。
[0046] 通过将待处理数据报文按照预设的字节长度分割,并按照顺序拼接组成二维数组 形成预处理数据包,使得GPU可对预处理数据包能够直接进行IPv4/IPv6转换计算,减轻 GPU的工作负担。
[0047] 请参阅图2,其是本发明一种IPv4和IPv6互通系统一种实施例的结构框图。
[0048] 一种Pv4和IPv6互通网关系统,包括:
[0049] 预处理模块201,用于获取待转换数据报文,将待转换数据报文转换成二维数组形 成预处理数据包,并将所述预处理数据包写入待转换共享内存中;
[0050] 由于待转换数据报文均为一维数据报文格式,而GPU所能处理的数据格式是定长 的二维数组,所以预处理模块201在获取待转换数据报文之后,需要将待转换数据报文转 换成二维数组的格式以形成GPU能够处理的预处理数据包。为使GPU能够读取预处理数据 包,预处理模块201需要将所述预处理数据包写入待转换共享内存。
[0051] 第一转换模块202,用于从待转换共享内存中读取预处理数据包,并通过GPU将预 处理数据包并行转换为目标数据格式形成转换数据包,将该转换数据包写入转换结果共享 内存中;
[0052] 通过GPU从待转换共享内存中读取预处理数据包,由于GPU具有并行处理能力,因 此通过GPU -次可读取一个或者至少一个预处理数据包。
[0053] 读取预处理数据包后,第一转换模块202通过GPU将所述预处理数据包并行转换 为目标数据格式形成转换数据包。第一转换模块202通过GUP读取预处理数据包后,首先 识别所述预处理数据包的网络地址,如果网络地址是IPv6地址,则其目标格式为IPv4地址 所对应的二维数组格式,即第一转换模块202通过GPU将预处理数据包转换为IPv4地址所 对应的二维数组格式。如果网络地址是IPv4地址,则其目标格式为IPv6地址所对应的二 维数据格式,即第一转换模块202通过GPU将预处理数据包转换为IPv6地址所对应的二维 数据格式。
[0054] 当GPU完成目标数据格式转换后,第一转换模块202将该转换数据包写入转换结 果共享内存,使得CPU能够读取该转换数据包。
[0055] 第二转换模块203,用于从转换结果共享内存中读取转换数据包,并将所述转换数 据包转换为网络数据帧格式形成目标数据报文。
[0056] 由于发送到网络的数据报文是一维的帧格式,而经过GPU转换而形成的转换数据 包是二维数组的数据格式,因此,从转换结果共享内存中读取转换数据包之后,需要第二转 换模块203将所述转换数据包转换为网络数据帧格式形成目标数据报文。
[0057] 本发明通过预处理模块201将待转换数据报文进行格式转换为二维数组以形成 能够处理的预处理数据包,然后第一转换模块202通过GPU将预处理数据包并行转换为 目标数据格式形成转换数据包,并将该转换数据包写入GPU转换结果共享内存中,最后第 二转换模块203从GPU转换结果共享内存中读取转换数据包,并将所述转换数据包转换为 网络数据帧格式形成目标数据报文。由于GPU具有强大的计算能力,因此第一转换模块202 通过将IPv4/IPv6转换计算交由GPU处理,能够加快转换效率,减少网络拥塞,提升网络服 务质量,并且能够减少IPv4/IPv6转换计算所占用的系统资源,使得减少对高速网络处理 器的性能要求,减少系统的配置成本。
[0058] 在一个实施例中,上述第一转换模块202,可具体包括以下子模块:
[0059] 第一地址转换模块,用于如果预处理数据包的网络地址为IPv4地址,则通过GPU 将IPv4地址设定为私有IPv4地址,从预设的私有IPv4地址池中获取与该私有IPv4地址 对应的IPv6地址,并将预处理数据包中IPv4报文头转换成与所述IPv6地址对应的IPv6 报文头;
[0060] 其中,所述私有IPv4地址池至少包括一个私有IPv4地址和IPv6地址的映射关 系。
[0061] 如果预处理数据包的网络地址为IPv4地址,则说明该预处理数据包所对应的待 转换数据报文是由IPv4网络发送给IPv6网络的。此时,第一地址转换模块先将预处理数据 包的网络地址设定为私有IPv4地址,然后第一地址转换模块从私有IPv4地址池中查找并 获取该私有IPv4地址所对应的IPv6地址,最后第一地址转换模块将预处理数据包中IPv4 报文头转换成与所述IPv6地址对应的IPv6报文头。
[0062] 第二地址转换模块,用于如果预处理数据包的网络地址为IPv6地址,则通过GPU 从预设的私有IPv4地址池中获取与该IPv6地址对应的私有IPv4地址,并将预处理数据包 中IPv6报文头转换成与所述私有IPv4对应的IPv4报文头。
[0063] 如果预处理数据包的网络地址为IPv6地址,则说明该预处理数据包所对应的待 转换数据报文是由IPv6网络发送给IPv4网络的。此时,第二地址转换模块从私有IPv4地 址池中查找并获取该IPv6地址所对应的私有IPv4地址,然后第二地址转换模块将预处理 数据包中IPv6报文头转换成与所述私有IPv4地址对应的IPv4报文头。其中,该IPv4报 文头中的源地址转换成该IPv6地址对应的私有IPv4地址。
[0064] 根据预处理数据包的网络地址获取私有IPv4地址池中私有IPv4地址与IPv6地 址的映射关系,第一地址转换模块或者第二地址转换模块再通过GPU将IPv4的报文头转换 成IPv6报文头或者将IPv6的报文头转换成IPv4报文头,使得在IPv4与IPv6转换过程当 中不必占用公用IPv4地址,减少了公用IPv4地址的使用。
[0065] 在一个实施例中,上述预处理模块201具体可包括以下子模块。
[0066] 接收模块,用于接收传入的待转换数据报文,并将待转换数据报文保存到接收队 列中;
[0067] 接收模块通过物理网卡或者网络分发引擎接收传入的待转换数据报文,然后接收 模块将所述待转换数据报文保存到接收队列中。
[0068] 读取模块,用于从接收队列中读取待转换数据报文。
[0069] 由于执行IPv4/IPv6互通转换过程需要耗费一定的时间,当网络中短时间内有大 量的待转换数据报文需要转换时,由于GPU来不及转换,从而出现丢包现象,使得网络丢包 率升高,使得网络传输质量降低。通过接收模块将待转换数据报文保存到接收队列中,然后 再通过读取模块从接收队列中读取待转换数据报文,能够减少丢包现象,保证网络传输质 量。
[0070] 在一个实施例中,上述预处理模块201可包括以下子模块:
[0071] 分割模块,用于按照预设的字节长度将待转换数据报文进行分割;
[0072] 由于GPU所能处理的数据格式是定长的二维数组,所以所述字节长度为所述二维 数组的行宽,例如,某一 GPU所能处理的数据格式是行宽为16个字节,列高为100个字节的 二维数组,预设的字节长度则为16个字节。确定了所述字节长度之后,分割模块按照该字 节长度将待转换数据报文分割成若干段,例如,某一待转换数据报文长度为158个字节,分 割模块按照16个字节对其分割,则可将该待转换数据报文分成10段。
[0073] 拼接模块,用于将分割后的待转换数据报文按顺序拼接组成二维数组,形成预处 理数据包。
[0074] 拼接模块将分割后的待转换数据报文的每一段,作为二维数组的行,按顺序拼接 组成二维数组以形成预处理数据包。例如,拼接模块将分割后的待转换数据报文的第一段 作为二维数组的第一行,第二段作为二维数组的第二行,依次类推。
[0075] 通过分割模块将待处理数据报文按照预设的字节长度分割,拼接模块按照顺序拼 接组成二维数组形成预处理数据包,使得GPU可对预处理数据包能够直接进行IPv4/IPv6 转换计算,减轻GPU的工作负担。
[0076] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1. 一种IPv4和IPv6互通方法,其特征在于,包括步骤: 获取待转换数据报文,将待转换数据报文转换成二维数组形成预处理数据包,并将所 述预处理数据包写入待转换共享内存中; 从待转换共享内存中读取预处理数据包,并通过GPU将预处理数据包并行转换为目标 数据格式形成转换数据包,将该转换数据包写入转换结果共享内存中; 从转换结果共享内存中读取转换数据包,并将所述转换数据包转换为网络数据帧格式 形成目标数据报文。
2. 根据权利要求1所述的IPv4和IPv6互通方法,其特征在于,所述通过GPU将预处理 数据包并行转换为目标数据格式形成转换数据包步骤,具体包括: 如果预处理数据包的网络地址为IPv4地址,则通过GPU将IPv4地址设定为私有IPv4 地址,从预设的私有IPv4地址池中获取与该私有IPv4地址对应的IPv6地址,并将预处理 数据包中IPv4报文头转换成与所述IPv6地址对应的IPv6报文头;其中,所述私有IPv4地 址池至少包括一个私有IPv4地址和IPv6地址的映射关系; 如果预处理数据包的网络地址为IPv6地址,则通过GPU从预设的私有IPv4地址池中 获取与该IPv6地址对应的私有IPv4地址,将预处理数据包中IPv6报文头转换成与所述私 有IPv4对应的IPv4报文头。
3. 根据权利要求1所述的IPv4和IPv6互通方法,其特征在于,所述获取待转换数据报 文步骤,具体包括: 接收传入的待转换数据报文,并将待转换数据报文保存到接收队列中; 从接收队列中读取待转换数据报文。
4. 根据权利要求1所述的IPv4和IPv6互通方法,其特征在于,所述将待转换数据报文 转换成二维数组形成预处理数据包步骤,具体包括: 按照预设的字节长度将待转换数据报文进行分割; 将分割后的待转换数据报文按顺序拼接组成二维数组,形成预处理数据包。
5. -种IPv4和IPv6互通系统,其特征在于,包括: 预处理模块,用于获取待转换数据报文,将待转换数据报文转换成二维数组形成预处 理数据包,并将所述预处理数据包写入待转换共享内存中; 第一转换模块,用于从待转换共享内存中读取预处理数据包,并通过GPU将预处理数 据包并行转换为目标数据格式形成转换数据包,将该转换数据包写入转换结果共享内存 中; 第二转换模块,用于从转换结果共享内存中读取转换数据包,并将所述转换数据包转 换为网络数据帧格式形成目标数据报文。
6. 根据权利要求5所述的IPv4和IPv6互通系统,其特征在于,所述第一转换模块具体 包括: 第一地址转换模块,用于如果预处理数据包的网络地址为IPv4地址,则通过GPU将 IPv4地址设定为私有IPv4地址,从预设的私有IPv4地址池中获取与该私有IPv4地址对应 的IPv6地址,并将预处理数据包中IPv4报文头转换成与所述IPv6地址对应的IPv6报文 头;其中,所述私有IPv4地址池至少包括一个私有IPv4地址和IPv6地址的映射关系; 第二地址转换模块,用于如果预处理数据包的网络地址为IPv6地址,则通过GPU从预 设的私有IPv4地址池中获取与该IPv6地址对应的私有IPv4地址,并将预处理数据包中 IPv6报文头转换成与所述私有IPv4对应的IPv4报文头。
7. 根据权利要求5所述的IPv4和IPv6互通系统,其特征在于,所述预处理模块包括: 接收模块,用于接收传入的待转换数据报文,并将待转换数据报文保存到接收队列 中; 读取模块,用于从接收队列中读取待转换数据报文。
8. 根据权利要求5所述的IPv4和IPv6互通系统,其特征在于,所述预处理模块还包 括: 分割模块,用于按照预设的字节长度将待转换数据报文进行分割; 拼接模块,用于将分割后的待转换数据报文按顺序拼接组成二维数组,形成预处理数 据包。
【文档编号】H04L29/12GK104158918SQ201410346025
【公开日】2014年11月19日 申请日期:2014年7月18日 优先权日:2014年7月18日
【发明者】张会锋, 杨峰, 陈康先, 陈文杰 申请人:广州杰赛科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1