CN110798540B - 一种数据交互方法及装置 - Google Patents
一种数据交互方法及装置 Download PDFInfo
- Publication number
- CN110798540B CN110798540B CN201910996095.XA CN201910996095A CN110798540B CN 110798540 B CN110798540 B CN 110798540B CN 201910996095 A CN201910996095 A CN 201910996095A CN 110798540 B CN110798540 B CN 110798540B
- Authority
- CN
- China
- Prior art keywords
- address
- message
- data
- port number
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/251—Translation of Internet protocol [IP] addresses between different IP versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明实施例提供了一种数据交互方法和装置,应用于交互端,上述方法包括:接收第一设备发送的报文,上述报文携带的源IP地址为第一设备的IP地址,上述报文携带的目的IP地址为交互端用于与第一设备交互的第一IP地址;根据报文携带的源IP地址,确定交互端用于与第二设备交互的第二IP地址,并获得第二设备的IP地址,上述第二IP地址与第二设备的IP地址为地址类型相同的地址、且与第一IP地址为地址类型不同的地址;将报文携带的源IP地址更改为第二IP地址,并将报文携带的目的IP地址更改为第二设备的IP地址;向第二设备发送更改地址后的报文。应用本发明实施例提供的方案进行数据交互,能够提高数据交互的效率。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据交互方法及装置。
背景技术
当前存在IPv4(Internet Protocol version 4,互联网通信协议第四版)和IPv6(Internet Protocol version 6,互联网通信协议第六版)两种互联网通信协议。实际应用中一些电子设备基于IPv4实现网络通信,一些电子设备基于IPv6实现网络通信。但当两个电子设备采用不同的互联网通信协议时,无法直接进行数据交互。
为了解决上述问题,现有技术中,通常借助配置有IPv4协议栈和IPv6协议栈的双协议栈设备,实现上述两个电子设备之间的数据交互。在上述两个电子设备分别为客户端和服务器时,若客户端基于IPv6通信协议实现网络通信、服务器基于IPv4通信协议实现网络通信,客户端首先向双协议栈设备发送IPv6报文,双协议栈设备可以基于IPv6协议栈对IPv6报文进行解析,获取IPv6报文中的应用层数据。然后,双协议栈设备可以基于IPv4协议栈将所获取的应用层数据作为IPv4报文的应用层数据,重新生成除了应用层以外其他层的数据,例如:传输层、网络层、数据链路层、物理层等的数据,进而生成IPv4报文。最后,双协议栈设备将IPv4报文发送至服务器。这样,能够使得采用两种不同通信协议的电子设备进行数据交互。
然而,由于是重新生成除了应用层以外其他层的数据,生成数据消耗的时间较长,从而导致进行数据交互时效率较低。
发明内容
本发明实施例的目的在于提供一种数据交互方法及装置,以提高数据交互的效率。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种数据交互方法,应用于交互端,所述方法包括:
接收第一设备发送的报文,其中,所述报文携带的源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地址更改模块,用于将所述源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为本发明实施例提供的一种数据交互场景的示意图;
图2为本发明实施例提供的一种数据交互方法的流程示意图;
图3为本发明实施例提供的一种数据交互装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
由于现有技术中基于IPv4和IPv6两种不同通信协议的电子设备进行数据交互时效率低,为解决这一技术问题,本发明实施例提供了一种基于IPv4和IPv6两种不同通信协议的电子设备进行数据交互方法及装置。
本发明的一个实施例中,提供了一种数据交互方法,应用于交互端,该方法包括:
接收第一设备发送的报文,其中,报文携带的源IP地址为:第一设备的IP地址,报文携带的目的IP地址为:交互端用于与第一设备交互的第一IP地址,第一IP地址与第一设备的IP地址为互联网通信协议类型相同的地址;
根据报文携带的源IP地址,确定交互端用于与第二设备交互的第二IP地址,并获得第二设备的IP地址,其中,第二IP地址与第二设备的IP地址为互联网通信协议类型相同的地址、且与第一IP地址为互联网通信协议类型不同的地址;
将报文携带的源IP地址更改为第二IP地址,并将报文携带的目的IP地址更改为第二设备的IP地址;
向第二设备发送更改地址后的报文。
由于上述第二IP地址为交互端用于与第二设备交互的IP地址,且第二IP地址与第二设备的IP地址为互联网通信协议类型相同的地址,因此根据更改的地址,交互端能够向第二设备发送报文。相较于现有技术,并未重新生成报文,而是对接收到的报文携带的源IP地址和目的IP地址进行更改,因此,提高了数据交互的效率。
下面通过具体实施例对本发明实施例提供的数据交互方法及装置进行详细说明。
参见图1,图1为本发明实施例提供的一种数据交互场景的示意图。图1中左侧设备为平板电脑,平板电脑基于IPv6通信协议进行网络通信的,右侧设备为服务器,服务器基于IPv4通信协议进行网络通信。中间设备为交互端,交互端可以与分布式集群系统中多台服务器进行通信连接,也可以与一台服务器进行通信连接。由于平板电脑和服务器采用不同的互联网通信协议时是无法直接进行数据交互的,为解决这一问题,本发明实施例提供的方案中,通过交互端使得平板电脑和服务器能够进行数据交互。
假设,平板电脑的IP地址为IP1,交互端用于与平板电脑进行交互的IP地址为IP2,交互端用于与服务器进行交互的IP地址为IP3,交互端与分布式集群系统中3台服务器进行数据交互,其中这3台服务器的IP地址分别为IP4、IP5、IP6。
具体的,交互端上可以预先记录有多个IP地址以及各个IP地址对应的地址类型,例如:交互端上可以预先记录有IP2、IP3、IP4、IP5、IP6,且IP2对应的地址类型为IPv6类型,IP3、IP4、IP5、IP6对应的地址类型为IPv4类型。当平板电脑要向服务器发送请求报文时,由于平板电脑与服务器之间无法进行数据交互,因此平板电脑要生成源IP地址为IP1、目的IP地址为IP2的请求报文,交互端接收到请求报文后,可以获得请求报文中的源IP地址为IP1、目的IP地址为IP2,交互端可以根据IP地址对应的地址类型,确定IP1对应的IP地址为IP3,并根据负载均衡调度算法,确定平板电脑要发送请求报文到的服务器,假设所确定的服务器的IP地址为IP4,那么可以确定IP2对应的IP地址为IP4。将请求报文中的IP1和IP2分别更改为IP3和IP4。交互端将更改地址后的请求报文向IP4对应的服务器发送。
交互端在向服务器发送更改地址后的请求报文过程后,保存IP1与IP3之间的对应关系、IP2与IP4之间的对应关系。服务器接收到请求报文后,生成源IP地址为IP4、目的IP地址为IP3的响应报文,向交互端发送上述响应报文。交互端获得响应报文携带的源IP地址为IP4、目的IP地址为IP3,交互端根据上述IP地址的对应关系,可以确定IP4对应的上述IP2,并确定IP3对应的上述IP1。交互端将响应报文的IP4和IP3分别更改为IP2和IP1。交互端将更改地址后的响应报文向IP1对应的平板电脑发送。
参见图2,图2为本发明实施例提供的一种数据交互方法的流程示意图,该方法应用于交互端,上述交互方法包括如下步骤:
S201:接收第一设备发送的报文。
上述第一设备是上述两个电子设备中的任一电子设备。具体的,在上述两个电子设备为客户端与服务器进行交互的场景中的电子设备时,上述第一设备可以为客户端,还可以为服务器。当第一设备为客户端时,第一设备发送的报文可以为请求报文;当第一设备为服务器时,第一设备发送的报文可以为响应报文。
上述报文包括源IP地址和目的IP地址。
上述报文携带的源IP地址为:上述第一设备的IP地址。例如:当报文为请求报文时,上述第一设备为客户端,这时源IP地址为客户端的IP地址;当报文为响应报文时,上述第一设备为服务器,这时源IP地址为服务器的IP地址。
上述报文携带的目的IP地址为:交互端用于与上述第一设备交互的第一IP地址。例如:当报文为请求报文时,上述第一设备可以为客户端,这时目的IP地址为交互端用于与客户端进行交互的IP地址;当报文为响应报文时,上述第一设备可以为服务器,这时目的IP地址为交互端用于与服务器进行交互的IP地址。
其中,上述第一IP地址与上述第一设备的IP地址为互联网通信协议类型相同的地址。上述第一IP地址可以是预先配置的,选取交互端上未被占用的网络接口,对所选取的网络接口的IP地址进行配置,使得网络接口的IP地址与第一设备的IP地址为互联网通信协议类型相同的地址。例如:当第一设备的IP地址为IPv6地址时,所选取的网络接口的IP地址设置为IPv6地址;当第一设备的IP地址为IPv4地址时,所选取的网络接口的IP地址设置为IPv4地址。
S202:根据源IP地址,确定交互端用于与第二设备交互的第二IP地址,并获得第二设备的IP地址。
上述第二IP地址与上述第二设备的IP地址为互联网通信协议类型相同的地址、且与上述第一IP地址为互联网通信协议类型不同的地址。例如:上述第二IP地址与上述第二设备的IP地址可以为IPv6地址,上述第一IP地址可以为IPv4地址。
上述第二IP地址可以是预先配置的,选取交互端上未被占用的网络接口,对所选取的网络接口的IP地址进行配置,使得网络接口的IP地址与第二设备的IP地址为互联网通信协议类型相同的地址。例如:当第二设备的IP地址为IPv6地址时,所选取的网络接口的IP地址设置为IPv6地址;当第二设备的IP地址为IPv4地址时,所选取的网络接口的IP地址设置为IPv4地址。
具体根据源IP地址,确定交互端用于与第二设备交互的第二IP地址,并获得第二设备的IP地址可以参见后续实施例,在此不再详述。
S203:将源IP地址更改为第二IP地址,并将目的IP地址更改为第二设备的IP地址。
S204:向第二设备发送更改地址后的报文。
上述第二设备是上述两个电子设备中的任一电子设备。具体的,在上述两个电子设备为客户端与服务器进行交互的场景中的电子设备时,上述第二设备可以为客户端,还可以为服务器。
由以上可见,应用本发明实施例提供的方案进行数据交互时,交互端确定第一设备发送的报文携带的源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地址,上述第二数据包括:上述第二设备的IP地址和第二IP地址。
这样,交互端中存储有第一数据与第二数据之间的对应关系后,若交互端接收到第二设备发送的上述请求报文的响应报文,可以便捷、高效的确定出第一设备的信息,从而使得第二设备发送响应报文能够发送到上述第一设备。
具体的,上述对应关系可以有多种情况下:
第一种情况:上述对应关系为:第一数据与第二数据之间的直接对应关系。
具体的,上述直接对应关系可以是第一数据中各个数据与第二数据中各个数据之间的对应关系。例如:上述直接对应关系中包括:
第一数据中第一设备的IP地址与第二数据中第二IP地址之间的对应关系;
第一数据中第一IP地址与第二数据中第二设备的IP地址之间的对应关系。
上述直接对应关系还可以是完整的第一数据与完整的第二数据之间的对应关系。例如:上述直接对应关系为(第一设备的IP地址,第一IP地址)与(第二地址,第二设备的IP地址)之间的对应关系。
第二种情况:上述对应关系为:第一数据与第二数据之间的间接对应关系。
具体的,可以按照预设的算法对第一数据和第二数据进行变换,获得第一结果和第二结果,上述间接对应关系为上述第一结果与第二结果之间的对应关系。例如,上述预设的算法可以为哈希算法,上述第一结果为对第一数据进行哈希变换得到的第一哈希值,上述第二结果为对第二数据进行哈希变换得到的第二哈希值。这样,上述间接对应关系为第一哈希值与第二哈希值之间的对应关系。
在前述描述的基础上,本发明的一个实施例中,在上述报文为响应报文的情况下,由于交互端存储了第一数据与第二数据之间的对应关系,且第一数据包括第一设备的IP地址和第一IP地址,第二数据包括第二设备的IP地址和第二IP地址,所以,可以根据报文携带的源IP地址,也就是第一设备的IP地址,以及上述对应关系,确定交互端用于与第二设备交互的第二IP地址,并根据报文携带的目的IP地址,也就是,交互端用于与第一设备交互的第一IP地址,以及上述对应关系,确定第二设备的IP地址。
当上述对应关系为S102中的第一种情况时,也就是上述直接对应关系。可以根据上述直接对应关系确定出交互端用于与第二设备交互的第二IP地址、第二设备的IP地址。
当上述对应关系为S102中的第二种情况时,也就是上述间接对应关系。可以先根据上述响应报文中包括的第一设备的IP地址和第一IP地址,按照上述预设的算法,计算包括第一设备的IP地址和第一IP地址的第一数据的第一结果,然后依据上述间接对应关系,获得第一结果对应的第二结果,并根据第二结果获得上述第二IP地址和第二设备的IP地址。
具体的,根据第二结果获得第二IP地址和第二设备的IP地址时,可以采用上述预设的算法的反向算法对第二结果进行变换,然后从变换结果中获得上述第二IP地址以及第二设备的IP地址。
当然,也可以预先存储第二结果对应的第二IP地址和第二设备的IP地址,这样在获得上述第二结果后可以直接得到第二IP地址和第二设备的IP地址。
本发明的一个实施例中,上述第一数据和第二数据除包含前述数据外,还可以包含其他数据。
例如,上述第一数据还可以包括第一设备的端口号、第一端口和第一设备所采用的通信协议,也就是,第一数据为一五元组数据。
上述第二数据还可以包括第二设备的端口号、第二端口和第二设备所采用的通信协议,也就是,第二数据为一五元组数据。
这种情况下,上述对应关系也可以是由本实施例中所提及的包含其他数据的第一数据和第二数据,按照上述第一种情况和第二种情况确定的对应关系。
本发明的一个实施例中,在S102之前,还可以包括步骤A1-A2。
步骤A1:从报文的起始位置开始确定网络层数据。
具体的,根据TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议),报文内的数据可以分为数据链路层数据、网络层数据、传输层数据等,上述各层数据按照预设规则进行排列。为了确定网络层数据,可以通过偏移报文指针的方式,将上述指针指向网络层数据,从而可以确定网络层数据。
步骤A2:在上述网络层数据中确定上述报文携带的源IP地址和目的IP地址。
由于网络层数据中包含源IP地址和目的IP地址,因此可以在网络层数据中确定上述报文携带的源IP地址和目的IP地址。
由以上可见,由于基于不同通信协议的IP地址的长度不同,应用本实施例从报文的起始位置确定网络层数据,而不是直接重新生成网络层数据,这样能够避免报文出现断层或者冗余等情况。
本发明的一个实施例中,在上述S104之前还可以包括以下步骤B1-B3:
步骤B1:判断报文的类型是否为表示报文数据中包含端口号的类型;若为是,确定交互端用于与第二设备交互的第二端口号,并获得第二设备的端口号。
由于TCP(Transmission Control Protocol,传输控制协议)、UDP(User DatagramProtocol,用户数据报协议)等报文中有指定的源端口号和目的端口号,因此需要确定交互端用于与第二设备交互的第二端口号,并获得第二设备的端口号。
具体的,判断报文类型是否为表示报文数据中包含端口号的类型可以通过报文首部表征报文类型的标识来判断;还可以根据传输报文的协议来判断,例如:当基于TCP或者UDP进行传输时,所传输的报文的报文类型为包含端口号的类型。
具体的,可以从报文的起始位置开始确定传输层数据,在传输层数据中确定报文携带的源端口号和目的端口号。
在确定交互端用于与第二设备交互的第二端口号时,可以在确定交互端用于与第二设备交互的第二IP地址后,将第二IP地址对应的第二设备上一个空闲端口号作为第二端口号。
其中,上述第二端口号为第二设备上多个端口号中未使用的端口号。
在获得第二设备的端口号时,可以在确定第二设备后,获得第二设备上空闲端口号作为第二设备的端口号,还可以根据预先存储的端口号转换规则,其中,上述端口号转换规则中包括各个端口号之间的转换关系。例如:第二设备的端口号与交互端的第一端口号之间的转换关系。其中,上述交互端的第一端口号是交互端用于与第一设备进行数据交互的端口号。
步骤B2:将报文携带的源端口号更改为第二端口号,并将报文携带的目的端口号更改为第二设备的端口号。
步骤B3:向所第二设备发送更改端口号后的报文。
本实施例提供的方案中,当报文的类型为表示报文数据中包含端口号的类型,可以将报文发送至更改端口号后的报文中携带的端口号对应第二设备上。
下面以一个完整数据交互过程对本发明实施例进行具体解释:
假设,客户端基于IPv6通信协议进行网络通信,集群系统中有三台服务器,每台服务器基于IPv4通信协议进行网络通信。客户端的IP地址为IP1,交互端用于与客户端进行交互的IP地址为IP2,交互端用于与服务器进行交互的IP地址为IP3,3台服务器的IP地址分别为IP4、IP5、IP6。客户端的端口号为A,交互端用于与客户端进行交互的端口号为B,IP3对应的交互端上空闲端口号为C,IP4对应的服务器的端口号为D、IP5对应的服务器的端口号为E、IP6对应的服务器的端口号为F。
当客户端基于TCP协议发送请求报文时,交互端可以偏移报文指针,将指针指向网络层,获取请求报文携带的源IP地址和目的IP地址。由于该请求报文是客户端向交互端发送的,那么请求报文携带的源IP地址为IP1,请求报文携带的目的IP地址为IP2。交互端根据IP1对应的地址类型,确定交互端上与IP1对应的地址类型不同的地址,为IP3,并根据负载均衡调度算法,确定请求报文发送的服务器,假设所确定的服务器的IP地址为IP4,那么可以确定IP2对应上述IP4。将请求报文中的IP1和IP2分别更改为IP3和IP4。由于请求报文是TCP报文,包含源端口号和目的端口号,继续偏移报文指针,将指针指向传输层,获取请求报文携带的源端口号和目的端口号,上述请求报文携带的源端口号为A,请求报文携带的目的端口号为B。由于IP3对应的交互端上空闲端口号为C,可以确定A对应的C,并根据所确定的服务器上端口号为D,可以确定B对应的D。将请求报文中携带的A和B分别更改为C和D。交互端将更改端口号和地址的请求报文向服务器发送。
当服务器接收到请求报文时,会发送针对请求报文生成的响应报文。交互端接收到响应报文后,可以偏移报文指针,将指针指向网络层,获取响应报文携带的源IP地址和目的IP地址。由于该响应报文是服务器发送至交互端的,那么源IP地址可以为IP4,目的IP地址为IP3。根据交互端上存储的IP地址对应关系,可以确定IP4对应的上述IP2,并确定IP3对应的上述IP1。将响应报文的IP4和IP3分别更改为IP2和IP1。由于响应报文是TCP报文,包含源端口号和目的端口号,继续偏移报文指针,将指针指向传输层,获取响应报文携带的源端口号和目的端口号,上述源端口号为D,目的端口号为C。根据交互端上存储的端口号转换规则,可以确定D对应的B,并确定C对应A。将响应报文携带的D和C分别更改为B和A。交互端将更改端口号和地址的响应报文向客户端发送。
与上述数据交互方法相对应,本发明实施例还提供了一种数据交互装置。
参见图3,图3为本发明实施例提供的一种数据交互装置的结构示意图,应用于交互端,上述装置包括:
报文接收模块301,用于接收第一设备发送的报文,其中,报文携带的源IP地址为:第一设备的IP地址,报文携带的目的IP地址为:交互端用于与第一设备交互的第一IP地址,第一IP地址与第一设备的IP地址为互联网通信协议类型相同类型的地址。
IP地址确定模块302,用于根据源IP地址,确定交互端用于与第二设备交互的第二IP地址,并获得第二设备的IP地址,其中,第二IP地址与第二设备的IP地址为互联网通信协议类型相同的地址、且与第一IP地址为互联网通信协议类型不同的地址。
IP地址更改模块303,用于将源IP地址更改为第二IP地址,并将目的IP地址更改为第二设备的IP地址。
第一报文发送模块304,用于向第二设备发送更改地址后的报文。
由以上可见,应用本发明实施例提供的方案进行数据交互时,交互端确定第一设备发送的报文携带的源IP地址所对应的第二IP地址、报文携带的目的IP地址所对应的第二设备的IP地址后,将源IP地址和目的IP地址分别更改为所确定的IP地址,并向第二设备发送更改地址后的报文。由于上述第二IP地址为交互端用于与第二设备交互的IP地址,且第二IP地址与第二设备的IP地址为互联网通信协议类型相同的IP地址,因此根据更改的地址,交互端能够向第二设备发送报文。相较于现有技术,并未重新生成报文,而是对接收到的报文携带的源IP地址和目的IP地址进行更改,因此,提高了数据交互的效率。
本发明的一个实施例中,在上述第一报文发送模块304之前,还包括:
报文类型判断模块,用于判断报文的类型是否为表示报文数据中包含端口号的类型;若为是,触发端口号确定模块。
端口号确定模块,用于确定交互端用于与第二设备交互的第二端口号,并获得第二设备的端口号。
端口号更改模块,用于将报文携带的源端口号更改为第二端口号,并将报文携带的目的端口号更改为第二设备的端口号。
第二报文发送模块,用于向第二设备发送更改端口号后的报文。
应用本发明实施例,当报文的类型为表示报文数据中包含端口号的类型,可以将报文发送至更改端口号后的报文中端口号对应第二设备上。
本发明的一个实施例中,在上述报文为请求报文的情况下,上述装置还包括:
对应关系存储模块,用于存储第一数据与第二数据之间的对应关系,其中,第一数据包括:第一设备的IP地址和第一IP地址,第二数据包括:第二设备的IP地址和第二IP地址。
这样,应用本实施例提供的方案,通过交互端存储的第一数据与第二数据之间的对应关系,可以使得服务器针对请求报文生成的响应报文能够发送到对应的客户端上。
本发明的一个实施例中,在上述报文为响应报文的情况下,上述IP地址确定模块302,具体用于:
根据源IP地址以及对应关系,确定交互端用于与第二设备交互的第二IP地址,并根据目的IP地址以及对应关系,确定第二设备的IP地址。
这样,应用本实施例能够使得服务器针对请求报文生成的响应报文向对应的客户端发送。
本发明的一个实施例中,在上述IP地址确定模块302之前,还包括:
数据确定模块,用于从报文的起始位置开始确定网络层数据;
地址确定模块,用于在网络层数据中确定报文携带的源IP地址和目的IP地址。
由以上可见,由于基于不同通信协议的IP地址的长度不同,应用本实施例从报文的起始位置确定网络层数据,而不是重新生成网络层数据,这样能够避免报文出现断层或者冗余等情况。
与上述数据交互方法相对应,本发明实施例还提供了一种电子设备。
参见图4,图4为本发明实施例提供的一种电子设备的结构示意图,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现本发明实施例提供的数据交互方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例提供的数据交互方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行时实现本发明实施例提供的数据交互方法。
由以上可见,应用上述实施例提供的电子设备、执行上述机器可读存储介质中存储的计算机程序,交互端确定第一设备发送的报文携带的源IP地址所对应的第二IP地址、报文携带的目的IP地址所对应的第二设备的IP地址后,将源IP地址和目的IP地址分别更改为所确定的IP地址,并向第二设备发送更改地址后的报文。由于上述第二IP地址为交互端用于与第二设备交互的IP地址,且第二IP地址与第二设备的IP地址为互联网通信协议类型相同的IP地址,因此根据更改的地址,交互端能够向第二设备发送报文。相较于现有技术,并未重新生成报文,而是对接收到的报文携带的源IP地址和目的IP地址进行更改,因此,提高了数据交互的效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (7)
1.一种数据交互方法,应用于交互端,其特征在于,所述方法包括:
接收第一设备发送的报文,其中,所述报文携带的源IP地址为:所述第一设备的IP地址,所述报文携带的目的IP地址为:所述交互端用于与所述第一设备交互的第一IP地址,所述第一IP地址与所述第一设备的IP地址为互联网通信协议类型相同的地址;
根据所述源IP地址,确定所述交互端用于与第二设备交互的第二IP地址,并获得所述第二设备的IP地址,其中,所述第二IP地址与所述第二设备的IP地址为互联网通信协议类型相同的地址、且与所述第一IP地址为互联网通信协议类型不同的地址;
将所述源IP地址更改为所述第二IP地址,并将所述目的IP地址更改为所述第二设备的IP地址;
向所述第二设备发送更改地址后的报文;
在所述向所述第二设备发送更改地址后的报文之前,还包括:
判断所述报文的类型是否为表示报文数据中包含端口号的类型;
若为是,确定所述交互端用于与所述第二设备交互的第二端口号,并获得所述第二设备的端口号;
将所述报文携带的源端口号更改为所述第二端口号,并将所述报文携带的目的端口号更改为所述第二设备的端口号;
向所述第二设备发送更改端口号后的报文;
在所述根据所述源IP地址,确定所述交互端用于与第二设备交互的第二IP地址,并获得所述第二设备的IP地址之前,还包括:
从所述报文的起始位置开始确定网络层数据;
在所述网络层数据中确定所述报文携带的源IP地址和目的IP地址。
2.根据权利要求1所述的方法,其特征在于,在所述报文为请求报文的情况下,所述方法还包括:
存储第一数据与第二数据之间的对应关系,其中,所述第一数据包括:所述第一设备的IP地址和第一IP地址,所述第二数据包括:所述第二设备的IP地址和第二IP地址。
3.根据权利要求2所述的方法,其特征在于,在所述报文为响应报文的情况下,所述根据所述源IP地址,确定所述交互端用于与第二设备交互的第二IP地址,并获得所述第二设备的IP地址,包括:
根据所述源IP地址以及所述对应关系,确定所述交互端用于与第二设备交互的第二IP地址,并根据所述目的IP地址以及所述对应关系,确定所述第二设备的IP地址。
4.一种数据交互装置,应用于交互端,其特征在于,所述装置包括:
报文接收模块,用于接收第一设备发送的报文,其中,所述报文携带的源IP地址为:所述第一设备的IP地址,所述报文携带的目的IP地址为:所述交互端用于与所述第一设备交互的第一IP地址,所述第一IP地址与所述第一设备的IP地址为互联网通信协议类型相同的地址;
IP地址确定模块,用于根据所述源IP地址,确定所述交互端用于与第二设备交互的第二IP地址,并获得所述第二设备的IP地址,其中,所述第二IP地址与所述第二设备的IP地址为互联网通信协议类型相同的地址、且与所述第一IP地址为互联网通信协议类型不同的地址;
IP地址更改模块,用于将所述源IP地址更改为所述第二IP地址,并将所述目的IP地址更改为所述第二设备的IP地址;
第一报文发送模块,用于向所述第二设备发送更改地址后的报文;
在所述报文发送模块之前,还包括:
报文类型判断模块,用于判断所述报文的类型是否为表示报文数据中包含端口号的类型;若为是,触发端口号确定模块;
所述端口号确定模块,用于确定所述交互端用于与所述第二设备交互的第二端口号,并获得所述第二设备的端口号;
端口号更改模块,用于将所述报文携带的源端口号更改为所述第二端口号,并将所述报文携带的目的端口号更改为所述第二设备的端口号;
第二报文发送模块,用于向所述第二设备发送更改端口号后的报文;
在所述IP地址确定模块之前,还包括:
数据确定模块,用于从所述报文的起始位置开始确定网络层数据;
地址确定模块,用于在所述网络层数据中确定所述报文携带的源IP地址和目的IP地址。
5.根据权利要求4所述的装置,其特征在于,在所述报文为请求报文的情况下,所述装置还包括:
对应关系存储模块,用于存储第一数据与第二数据之间的对应关系,其中,所述第一数据包括:所述第一设备的IP地址和第一IP地址,所述第二数据包括:所述第二设备的IP地址和第二IP地址。
6.根据权利要求5所述的装置,其特征在于,在所述报文为响应报文的情况下,所述IP地址确定模块,具体用于:
根据所述源IP地址以及所述对应关系,确定所述交互端用于与第二设备交互的第二IP地址,并根据所述目的IP地址以及所述对应关系,确定所述第二设备的IP地址。
7.一种电子设备,作为交互端,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996095.XA CN110798540B (zh) | 2019-10-18 | 2019-10-18 | 一种数据交互方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996095.XA CN110798540B (zh) | 2019-10-18 | 2019-10-18 | 一种数据交互方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798540A CN110798540A (zh) | 2020-02-14 |
CN110798540B true CN110798540B (zh) | 2023-01-20 |
Family
ID=69440425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910996095.XA Active CN110798540B (zh) | 2019-10-18 | 2019-10-18 | 一种数据交互方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798540B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227408A (zh) * | 2008-02-02 | 2008-07-23 | 中兴通讯股份有限公司 | IPv4内部私有网络访问IPv6网络的方法及路由器 |
CN102148773A (zh) * | 2010-02-08 | 2011-08-10 | 中国联合网络通信集团有限公司 | 一种IPv6协议和IPv4协议转换的方法及系统 |
WO2012120510A2 (en) * | 2011-03-10 | 2012-09-13 | Elta Systems Ltd | Cellular communication system utilizing upgraded moving relays and methods useful in conjunction therewith |
EP3422676A1 (en) * | 2017-06-27 | 2019-01-02 | Thomson Licensing | Method and device for forwarding a data packet |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100518378C (zh) * | 2007-03-05 | 2009-07-22 | 中山大学 | 一种实现移动节点从IPv6网络切换到IPv4网络的通信方法 |
CN102394947B (zh) * | 2011-10-31 | 2014-01-22 | 福建星网锐捷网络有限公司 | IPv4与IPv6的地址翻译方法、装置、系统及ALG设备 |
EP2961110A4 (en) * | 2014-03-19 | 2016-05-25 | Huawei Device Co Ltd | METHOD, APPARATUS AND SERVER FOR PACKET TRANSMISSION |
CN105227687B (zh) * | 2014-06-20 | 2019-05-03 | 中国电信股份有限公司 | IPv4用户访问IPv6资源的通信方法与系统 |
-
2019
- 2019-10-18 CN CN201910996095.XA patent/CN110798540B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227408A (zh) * | 2008-02-02 | 2008-07-23 | 中兴通讯股份有限公司 | IPv4内部私有网络访问IPv6网络的方法及路由器 |
CN102148773A (zh) * | 2010-02-08 | 2011-08-10 | 中国联合网络通信集团有限公司 | 一种IPv6协议和IPv4协议转换的方法及系统 |
WO2012120510A2 (en) * | 2011-03-10 | 2012-09-13 | Elta Systems Ltd | Cellular communication system utilizing upgraded moving relays and methods useful in conjunction therewith |
EP3422676A1 (en) * | 2017-06-27 | 2019-01-02 | Thomson Licensing | Method and device for forwarding a data packet |
Also Published As
Publication number | Publication date |
---|---|
CN110798540A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460460B (zh) | 任务访问方法、装置、代理服务器及机器可读存储介质 | |
CN110324434B (zh) | 域名解析的方法、客户端、服务器和电子设备 | |
CN103780715B (zh) | 域名解析实现方法、客户端和云服务器 | |
KR20140009931A (ko) | 컨텐츠 이름 기반의 컨텐츠 중심 네트워크에서 컨텐츠 및 실시간 스트리밍 컨텐츠 제공을 위한 컨텐츠 요청자 및 컨텐츠 제공자의 통신 방법 | |
CN111064804B (zh) | 网络访问方法和装置 | |
US8949952B2 (en) | Multi-stack subscriber sign on | |
CN112929241B (zh) | 一种网络测试方法及装置 | |
JP2017102914A (ja) | コンテンツ指向型ネットワークにおける明示的なコンテンツ削除コマンド | |
US20170171147A1 (en) | Method and electronic device for implementing domain name system | |
CN107124483A (zh) | 域名解析方法及服务器 | |
CN103685213A (zh) | 一种减少针对dns的攻击的装置、系统和方法 | |
CN113259479A (zh) | 一种数据处理方法以及设备 | |
US9882868B1 (en) | Domain name system network traffic management | |
CN105592083A (zh) | 终端利用令牌访问服务器的方法和装置 | |
CN113179295B (zh) | 报文处理方法及装置 | |
CN108183926B (zh) | 一种数据包处理方法和装置 | |
CN110798540B (zh) | 一种数据交互方法及装置 | |
RU2008121872A (ru) | Ближайший узел для соединений распределенных служб | |
CN114301872B (zh) | 基于域名的访问方法及装置、电子设备、存储介质 | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
US20170295135A1 (en) | Network communication system and network-traversal method | |
CN113347084A (zh) | 一种报文转发方法及装置 | |
KR20200065887A (ko) | 인터레스트 패킷의 고속 포워딩 방법 및 장치 | |
CN116600031B (zh) | 报文处理方法、装置、设备及存储介质 | |
CN114422970B (zh) | 短信溯源方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |