一种协议转换方法、网关设备及存储介质与流程

文档序号:13299288阅读:215来源:国知局
一种协议转换方法、网关设备及存储介质与流程

本发明涉及通信技术领域,尤其涉及一种协议转换方法、网关设备及存储介质。



背景技术:

以太网工业协议(ethernetindustryprotocol,ethernet/ip)是适合工业环境应用的协议体系,ethernet/ip协议因其稳定、可靠等特性在工业和军事领域得到广泛应用。

图1为现有技术中ethernet/ip协议的体系结构示意图。如图1所示,ethernet/ip协议的体系结构包括:物理层、数据链路层、网络层、传输层、会话层、表达层、应用层;其中,ethernet/ip协议的体系结构中的物理层、数据链路层、网络层、传输层与传输控制协议/因特网互联协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)的体系结构中的物理层、数据链路层、网络层、传输层相同;但是tcp/ip协议的体系结构中没有会话层和表达层,而且ethernet/ip协议的体系结构中的应用层与tcp/ip协议的体系结构中的应用层也不同;其中,ethernet/ip协议中的会话层、表达层和应用层可统称为控制与信息协议(controlandinformationprotocol,cip)规范层。

图2为现有技术中遵循tcp/ip协议的通信方法的实现流程示意图。如图2所示,第一终端和第二终端均遵循tcp/ip协议进行通信。具体地,第一终端先将用户数据通过应用层、运输层、网络层、数据链路层的封装形成tcp/ip报文,然后在物理层通过传输介质发送至第二终端。

图3为现有技术中遵循ethernet/ip协议的通信方法的实现流程示意图。如图3所示,第一终端和第二端均遵循ethernet/ip协议进行通信。具体地,第一终端先将用户数据通过cip协议规范层、运输层、网络层、数据链路层的封装形成ethernet/ip报文,然后在物理层通过传输介质发送至第二终端。

在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:

在现有技术中,当第一终端和第二终端遵循不同的协议时,通常采用人工方式将第一终端发送的ethernet/ip报文转换为tcp/ip报文后发送至第二终端;或者,采用人工方式将第一终端发送的tcp/ip报文转换为ethernet/ip报文后发送至第二终端。在现有技术中无法自动地将ethernet/ip报文转换为tcp/ip报文;也无法自动地将tcp/ip报文转换为ethernet/ip报文。因此,遵循不同协议的第一终端和第二终端不能直接通信。



技术实现要素:

本发明实施例提供了一种协议转换方法、网关设备及存储介质,网关设备不仅可以自动地将ethernet/ip报文转换为tcp/ip报文,还可以自动地将tcp/ip报文转换为ethernet/ip报文,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的。

第一方面,本发明实施例提供了一种协议转换方法,所述方法包括:

网关设备接收第一终端发送的源以太网工业协议ethernet/ip报文或者源传输控制协议/因特网互联协议tcp/ip报文;其中,所述源ethernet/ip报文遵循ethernet/ip协议;所述源tcp/ip报文遵循tcp/ip协议;

所述网关设备将所述源ethernet/ip报文转换为目标tcp/ip报文;或者,所述网关设备将所述源tcp/ip报文转换为目标ethernet/ip报文;其中,所述目标tcp/ip报文遵循所述tcp/ip协议;所述目标ethernet/ip报文遵循所述ethernet/ip协议;

所述网关设备将所述目标tcp/ip报文或者所述目标ethernet/ip报文发送至第二终端。

在上述实施例中,所述网关设备将所述源ethernet/ip报文转换为目标tcp/ip报文,包括:

所述网关设备根据预先确定的ethernet/ip报文格式在所述源ethernet/ip报文中提取出源ethernet/ip控制数据和源ethernet/ip用户数据;其中,所述源ethernet/ip控制数据至少包括:第一通信标识;

所述网关设备判断所述源ethernet/ip控制数据是否满足预选设置的转换条件;

当所述源ethernet/ip控制数据满足所述转换条件时,所述网关设备根据预先确定的tcp/ip报文格式确定所述源ethernet/ip用户数据对应的目标tcp/ip控制数据;

所述网关设备将所述源ethernet/ip用户数据和所述目标tcp/ip控制数据封装在所述目标tcp/ip报文中。

在上述实施例中,所述网关设备判断所述源ethernet/ip控制数据是否满足预选设置的转换条件,包括:

所述网关设备判断所述第一通信标识与预先确定的第一目标通信标识是否相同;所述第一目标通信标识用于所述第一终端向所述第二终端发送数据报文;

当所述第一通信标识与所述第一目标通信标识相同时,所述网关设备判定所述源ethernet/ip控制数据满足所述转换条件。

在上述实施例中,所述网关设备将所述源tcp/ip报文转换为目标ethernet/ip报文,包括:

所述网关设备根据所述tcp/ip报文格式在所述源tcp/ip报文中提取出源tcp/ip用户数据;

所述网关设备根据所述ethernet/ip报文格式确定所述源tcp/ip用户数据对应的目标ethernet/ip控制数据;

所述网关设备将所述源tcp/ip用户数据和所述目标ethernet/ip控制数据封装在所述目标ethernet/ip报文中。

在上述实施例中,所述网关设备将所述源tcp/ip用户数据和所述目标ethernet/ip控制数据封装在所述目标ethernet/ip报文中,包括:

所述网关设备根据所述ethernet/ip报文格式将所述源tcp/ip用户数据封装到所述目标ethernet/ip报文的数据字段中;

所述网关设备根据所述ethernet/ip报文格式将所述源tcp/ip用户数据封装到所述目标ethernet/ip报文中由第二通信标识确定的数据字段中;其中,所述目标ethernet/ip控制数据至少包括:预先确定的第二通信标识,所述第二通信标识用于所述第二终端接收所述网关设备发送的数据报文;

所述网关设备根据所述ethernet/ip报文格式将所述目标ethernet/ip控制数据封装到所述目标ethernet/ip报文的控制字段中。

第二方面,本发明实施例提供了一种网关设备,所述网关设备包括:接收单元、转换单元和发送单元;其中,

所述接收单元,用于接收第一终端发送的源ethernet/ip报文或者tcp/ip报文;其中,所述源ethernet/ip报文遵循ethernet/ip协议;所述源tcp/ip报文遵循tcp/ip协议;

所述转换单元,用于将所述源ethernet/ip报文转换为目标tcp/ip报文;或者,将所述源tcp/ip报文转换为目标ethernet/ip报文;其中,所述目标tcp/ip报文遵循所述tcp/ip协议;所述目标ethernet/ip报文遵循所述ethernet/ip协议;

所述发送单元,用于将所述目标tcp/ip报文或者所述目标ethernet/ip报文发送至第二终端。

在上述实施例中,所述转换单元包括:提取子单元、判断子单元和封装子单元;其中,

所述提取子单元,用于根据预先确定的ethernet/ip报文格式在所述源ethernet/ip报文中提取出源ethernet/ip控制数据和源ethernet/ip用户数据;其中,所述源ethernet/ip控制数据至少包括:第一通信标识;

所述判断子单元,用于判断所述源ethernet/ip控制数据是否满足预选设置的转换条件;

所述封装子单元,用于当所述源ethernet/ip控制数据满足所述转换条件时,根据预先确定的tcp/ip报文格式确定所述源ethernet/ip用户数据对应的目标tcp/ip控制数据;将所述源ethernet/ip用户数据和所述目标tcp/ip控制数据封装在所述目标tcp/ip报文中。

在上述实施例中,所述判断子单元,具体用于判断所述第一通信标识与预先确定的第一目标通信标识是否相同;当所述第一通信标识与所述第一目标通信标识相同时,判定所述源ethernet/ip控制数据满足所述转换条件,所述第一目标通信标识用于所述第一终端向所述第二终端发送数据报文。

在上述实施例中,所述提取子单元,还用于根据所述tcp/ip报文格式在所述源tcp/ip报文中提取出源tcp/ip用户数据;

所述封装子单元,还用于根据所述ethernet/ip报文格式确定所述源tcp/ip用户数据对应的目标ethernet/ip控制数据;将所述源tcp/ip用户数据和所述目标ethernet/ip控制数据封装在所述目标ethernet/ip报文中。

在上述实施例中,所述封装子单元,具体用于根据所述ethernet/ip报文格式将所述源tcp/ip用户数据封装到所述目标ethernet/ip报文中由第二通信标识确定的数据字段中;根据所述ethernet/ip报文格式将所述目标ethernet/ip控制数据封装到所述目标ethernet/ip报文的控制字段中;其中,所述目标ethernet/ip控制数据至少包括:预先确定的第二通信标识,所述第二通信标识用于所述第二终端接收所述网关设备发送的数据报文。

第三方面,本发明实施例提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面任一所述的方法。

第四方面,本发明实施例还提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面任一所述的方法。

本发明实施例提出了一种协议转换方法、网关设备及存储介质,网关设备先接收第一终端发送的源ethernet/ip报文或者源tcp/ip报文;其中,源ethernet/ip报文遵循ethernet/ip协议;源tcp/ip报文遵循tcp/ip协议;然后网关设备将源ethernet/ip报文转换为目标tcp/ip报文;或者,网关设备将源tcp/ip报文转换为目标ethernet/ip报文;其中,目标tcp/ip报文遵循tcp/ip协议;目标ethernet/ip报文遵循ethernet/ip协议;最后网关设备将目标tcp/ip报文或者目标ethernet/ip报文发送至第二终端。也就是说,在本发明实施例提出的技术方案中,网关设备可以自动地将第一终端发送的源ethernet/ip报文转换为目标tcp/ip报文发送给第二终端;网关设备也可以自动地将第一终端发送的源tcp/ip报文转换为目标ethernet/ip报文发送给第二终端。而在现有的协议转换方法中,通常采用人工方式将第一终端发送的ethernet/ip报文转换为tcp/ip报文后发送至第二终端;或者,采用人工方式将第一终端发送的tcp/ip报文转换为ethernet/ip报文后发送至第二终端。因此,和现有技术相比,本发明实施例提出的协议转换方法、网关设备及存储介质,网关设备不仅可以自动地将ethernet/ip报文转换为tcp/ip报文,还可以自动地将tcp/ip报文转换为ethernet/ip报文,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。

附图说明

图1为现有技术中ethernet/ip协议的体系结构示意图;

图2为现有技术中遵循tcp/ip协议的通信方法的实现流程示意图;

图3为现有技术中遵循ethernet/ip协议的通信方法的实现流程示意图;

图4为本发明实施例中协议转换方法的实现流程示意图;

图5为现有技术中ethernet/ip报文的组成结构示意图;

图6为现有技术中tcp/ip报文的组成结构示意图;

图7为本发明实施例中源ethernet/ip报文转换为目标tcp/ip报文的实现方法流程示意图;

图8为现有技术中ethernet/ip协议和tcp/ip协议中tcp首部的组成结构示意图;

图9为现有技术中ethernet/ip协议和tcp/ip协议中ip首部的组成结构示意图;

图10为现有技术中ethernet/ip协议和tcp/ip协议中ethernet首部的组成结构示意图;

图11为本发明实施例中源tcp/ip报文转换为目标ethernet/ip报文的实现方法流程示意图;

图12为本发明实施例中遵循不同协议的通信方法的实现流程示意图;

图13为本发明实施例中协议转换系统的组成结构示意图;

图14为本发明实施例中网关设备的第一组成结构示意图;

图15为本发明实施例中网关设备的第二组成结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。例如,第一终端和第二终端中的“第一”和“第二”用来区分两个不同的终端,第一通信标识和第二通信标识中的“第一”和“第二”用来区分两个不同的通信标识。

本发明实施例提供的协议转换方法,网关设备可以自动地将第一终端发送的源ethernet/ip报文转换为目标tcp/ip报文发送至第二终端;或者,网关设备还可以自动地将第一终端发送的源tcp/ip报文转换成目标ethernet/ip报文发送至第二终端,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的。

图4为本发明实施例中协议转换方法的实现流程示意图。如图4所示,协议转换方法可以包括以下步骤:

步骤401、网关设备接收第一终端发送的源ethernet/ip报文或者源tcp/ip报文;其中,源ethernet/ip报文遵循ethernet/ip协议;源tcp/ip报文遵循tcp/ip协议。

在本发明具体实施例中,第一终端具体可理解为两终端互通信时的发送终端;第二终端具体可理解为两终端互通信时的接收终端。具体地,当第一终端为遵循ethernet/ip协议的终端设备时,第一终端将遵循ethernet/ip协议生成源ethernet/ip报文,在本步骤中,网关设备可以接收第一终端发送的源ethernet/ip报文;当第一终端为遵循tcp/ip协议的终端设备时,第一终端将遵循tcp/ip协议生成源tcp/ip报文,在本步骤中,网关设备可以接收第一终端发送的源tcp/ip报文。

图5为现有技术中ethernet/ip报文的组成结构示意图。如图5所示,假设第一终端遵循ethernet/ip协议,第一终端生成源ethernet/ip报文的方法可以包括以下步骤:1)、第一终端先确定需要发送的用户数据,并在ethernet/ip协议的应用层基于cip协议规范形成符合cip报文格式的cip数据包,其中,cip数据包可以由报文标识(messageidentification,mid)、用户数据以及校验和3部分组成;mid可看作通信标识,校验和用于校验cip数据包;2)、第一终端在ethernet/ip协议的运输层上基于运输层协议的报文格式将cip数据包进一步封装,其中,常见的运输层协议可以包括:tcp协议和用户数据报协议(userdatagramprotocol,udp)。图5以运输层的tcp协议为例,第一终端可以在cip数据包之前添加tcp协议的tcp首部封装形成tcp数据帧;3)、第一终端在ethernet/ip协议的网络层上基于网络层协议将tcp数据帧将进一步封装,其中常见的网络层协议可以包括:ip协议,第一终端可以在tcp数据帧之前添加ip协议的ip首部封装形成ip数据帧;4)、第一终端在ethernet/ip协议的数据链路层上对所形成的ip数据帧基于ethernet协议进一步封装,即:第一终端可以在ip数据帧之前添加ethernet首部封装形成ethernet数据帧;5)、第一终端最终将源ethernet/ip报文在ethernet/ip协议的物理层通过传输介质发送。

由此可知,现有技术中的ethernet/ip报文可以包括:控制数据和用户数据;其中,ethernet/ip报文中的控制数据封装在ethernet/ip报文格式的控制字段中;ethernet/ip报文中的用户数据封装在ethernet/ip报文格式的数据字段中。具体地,ethernet/ip报文中的控制数据可以由ethernet首部、ip首部、tcp首部以及cip数据包中的mid组成。

图6为现有技术中tcp/ip报文的组成结构示意图。如图6所示,假设第一终端遵循tcp/ip协议,第一终端生成源tcp/ip报文的过程,与第一终端遵循ethernet/ip协议生成源ethernet/ip报文的区别在于:第一终端在tcp/ip协议的应用层上封装用户数据时所采用的应用层协议不同。具体地,在tcp/ip协议体系结构中,常见的应用层协议包括:域名系统(domainnamesystem,dns)、文件传输协议(filetransferprotocol,ftp)、远程终端协议telnet、超文本传送协议(hypertexttransferprotocol,http)、简单邮件传输协议(simplemailtransferprotocol,smtp)、邮局协议版本3(postofficeprotocol-version3,pop3)以及简单网络管理协议(simplenetworkmanagementprotocol,snmp)。具体地,第一终端生成源tcp/ip报文的方法可以包括以下步骤:1)、第一终端先确定当前所运行应用程序具备的特点,根据应用程序的特点确定发送用户数据所对应的应用层协议,例如,第一终端上当前运行的应用程序为邮件客户端时,第一终端基于该邮件客户端发送的邮件相当于用户数据,此时应用层上应当采用的应用层协议为smtp;2)、第一终端在tcp/ip协议的应用层上形成包含应用层协议首部以及用户数据的应用层报文,其中,该应用层协议首部相当于应用层报文的控制字段,可用于声明应用层所采用协议的协议类型;3)、第一终端在tcp/ip协议的传输层、网络层以及数据链路层上均采用与上述形成源ethernet/ip报文的相同方式进行层层封装,最终第一终端在数据链路层上形成ethernet数据帧,该ethernet数据帧相当于第一终端遵循tcp/ip协议形成的源tcp/ip报文;4)、第一终端最终将tcp/ip报文在tcp/ip协议的物理层通过传输介质发送。

由此可知,现有技术中的tcp/ip报文也可以包括:控制数据和用户数据;其中,tcp/ip报文中的控制数据封装在tcp/ip报文格式的控制字段中;tcp/ip报文中的用户数据封装在tcp/ip报文格式的数据字段中。具体地,tcp/ip报文中的控制数据可以由ethernet首部、ip首部、tcp首部以及所采用应用层协议的应用层协议首部组成。

步骤402、网关设备将源ethernet/ip报文转换为目标tcp/ip报文;或者,网关设备将源tcp/ip报文转换为目标ethernet/ip报文;其中,目标tcp/ip报文遵循tcp/ip协议;目标ethernet/ip报文遵循ethernet/ip协议。

在本发明的具体实施例中,网关设备在接收到第一终端发送的源ethernet/ip报文或者源tcp/ip报文之后,网关设备可以将接收到的源ethernet/ip报文转换为目标tcp/ip报文,或者,网关设备还可以将源tcp/ip报文转换为目标ethernet/ip报文;其中,目标tcp/ip报文遵循tcp/ip协议;目标ethernet/ip报文遵循ethernet/ip协议。

在本发明的具体实施例中,源ethernet/ip报文到目标tcp/ip报文的转换过程可看作:网关设备对源ethernet/ip报文中的源ethernet/ip用户数据进行提取,并将提取后的ethernet/ip用户数据作为目标tcp/ip报文中的目标tcp/ip用户数据,然后在目标tcp/ip用户数据之前添加预先确定的tcp/ip控制数据,由此形成目标tcp/ip报文。同样地,源tcp/ip报文到目标ethernet/ip报文的转换过程可看作:网关设备对源tcp/ip报文中的源tcp/ip用户数据进行提取,并将提取后的tcp/ip用户数据作为目标ethernet/ip报文中的目标ethernet/ip用户数据,然后在目标ethernet/ip用户数据之前添加预先确定的ethernet/ip控制数据,由此形成目标ethernet/ip报文。

图7为本发明实施例中源ethernet/ip报文转换为目标tcp/ip报文的实现方法流程示意图。如图7所示,网关设备将源ethernet/ip报文转换为目标tcp/ip报文的方法可以包括以下步骤:

步骤701、网关设备根据预先确定的ethernet/ip报文格式在源ethernet/ip报文中提取出源ethernet/ip控制数据和源ethernet/ip用户数据;其中,源ethernet/ip控制数据至少包括:第一通信标识。

现有技术中的ethernet/ip报文可以包括:控制数据和用户数据;其中,ethernet/ip报文中的控制数据封装在ethernet/ip报文格式的控制字段中;ethernet/ip报文中的用户数据封装在ethernet/ip报文格式的数据字段中。因此,在本发明的具体实施例中,网关设备可以根据预先确定的ethernet/ip报文格式在源ethernet/ip报文中提取出源ethernet/ip控制数据和源ethernet/ip用户数据。具体地,源ethernet/ip控制数据可以由ethernet首部(占用14字节)、ip首部(占用20字节)、tcp首部(占用20字节)以及cip数据包中的通信标识(占用1字节)组成。

步骤702、网关设备判断源ethernet/ip控制数据是否满足预选设置的转换条件;若是,执行步骤703;否则,执行步骤705。

在本发明的具体实施例中,网关设备可以判断源ethernet/ip控制数据是否满足预选设置的转换条件。具体地,网关设备可以判断源ethernet/ip控制数据中的第一通信标识与预先确定的第一目标通信标识是否相同;具体地,第一通信标识可以是源ethernet/ip报文中封装cip数据包的通信标识,该第一通信标识具体可理解为网关设备在源ethernet/ip报文中获取到的一个接收标识,网关设备可以通过该接收标识判定第一终端发送的源ethernet/ip报文中的控制数据是否符合预设的转换条件。

当第一通信标识与第一目标通信标识相同时,网关设备可以判定源ethernet/ip控制数据满足预先设置的转换条件,执行步骤703;当第一通信标识与第一目标通信标识不相同时,网关设备可以判定源ethernet/ip控制数据不满足预先设置的转换条件,执行步骤705。

需要说明的是,ethernet/ip协议与tcp/ip的不同之处在于,ethernet/ip协议通过cip协议规范封装用户数据形成cip数据包,因此,遵循ethernet/ip协议的终端设备在通信时就需要遵循cip协议规范的通信准则。具体地,cip是一个面向连接的协议,即:遵循ethernet/ip协议的第一终端在向遵循tcp/ip协议的第二终端发送数据之前,第一终端与网关设备需要与网关设备建立通信连接,获取网关设备的连接标识符(connectionid),这里称为第一目标通信标识,用于第一终端向第二终端发送数据报文,这里数据报文为除用于连接以外的报文。第一终端可以使用该连接标识符作为第一通信标识生成ethernet/ip报文,网关设备接收到第一终端发送的源ethernet/ip后,可以判断ethernet/ip协议报文中携带的连接标识符即第一通信标识与预先确定的连接标识符即第一目标通信标识是否相同,当该连接标识符与预先确定的连接标识符相同时,网关设备可以判定源ethernet/ip控制数据满足转换条件,此时网关设备才可以确定源ethernet/ip用户数据封装在目标tcp/ip报文中;当该连接标识符与预先确定的连接标识符不相同时,网关设备可以判定源ethernet/ip控制数据不满足转换条件,此时网关设备则不会将源ethernet/ip用户数据封装在目标tcp/ip报文中。

具体地,第一终端与网关设备协商第一目标通信标识的方法可以包括以下步骤:1)、第一终端先以广播形式向网络中各个终端发送一个未连接报文,其中,未连接报文对应的报文格式可以包括:目的ip地址、内部数据描述以及源ip地址;2)、各个终端可以判断该未连接报文中的目标ip地址与自身的ip地址是否匹配;3)、当该未连接报文中的目标ip地址与自身的ip地址是否匹配时,将形成一个包括连接标识符的未连接报文并以广播形式发出;4)、第一终端接收到该未连接报文后,可以获取其中的连接标识符。由此第一终端可以与网关设备协商确定第一目标通信标识。

步骤703、网关设备根据预先确定的tcp/ip报文格式确定源ethernet/ip用户数据对应的目标tcp/ip控制数据。

在本发明的具体实施例中,现有技术中的tcp/ip报文可以包括:控制数据和用户数据;其中,tcp/ip报文中的控制数据封装在tcp/ip报文格式的控制字段中;tcp/ip报文中的用户数据封装在tcp/ip报文格式的数据字段中。因此,在本发明的具体实施例中,网关设备可以根据预先确定的tcp/ip报文格式确定源ethernet/ip用户数据对应的目标tcp/ip控制数据。具体地,tcp/ip报文中的控制数据可以包括:应用层当前所采用应用层协议的应用层协议首部、运输层所采用运输层协议的协议首部,如tcp首部或udp首部、网络层所采用ip协议的ip首部以及数据链路层所采用ethernet协议的ethernet首部。

具体地,对于tcp/ip报文中的控制数据的应用层协议首部而言,可以预先确定应用层上应当采用的应用层协议,并由此基于该应用层协议对应的报文格式形成应用层报文,在应用层报文的应用层协议首部中声明所采用应用层协议的协议类型;对于tcp/ip报文格式中的控制数据的运输层协议首部而言,可以预先确定运输层上采用tcp协议还是udp协议。以采用tcp协议为例,可以基于tcp首部的具体格式,预先确定tcp首部所占用20字节中的信息值;对于tcp/ip报文格式中的控制数据的ip首部而言,同样可以基于ip首部的具体格式,预先确定ip首部所占用20字节中的信息值;对于tcp/ip报文格式中控制数据的ethernet首部而言,也可以基于ethernet首部的具体格式,预先确定ethernet首部所占用14字节中的信息值。也就是说,上述tcp首部、ip首部以及ethernet首部均存在各自的首部格式。

图8为现有技术中ethernet/ip协议和tcp/ip协议中tcp首部的组成结构示意图。如图8所示,tcp首部可以包括:16比特位(2字节)的源端口号、16比特位(2字节)的目的端口号、32比特位(4字节)的序号、32比特位(4字节)的确认序号、4比特位的首部长度、6比特位的保留区域、6比特位的控制位(具体包括:urg、ack、psh、syn以及fin六个控制位)、16比特位(2字节)的窗口大小、16比特位(2字节)的校验和以及16比特位的紧急指针。

图9为现有技术中ethernet/ip协议和tcp/ip协议中ip首部的组成结构示意图。如图9所示,ip首部可以包括:4比特位的版本号、4比特位的首部长度、8比特位(1字节)的服务类型、16比特位(2字节)的总长度、16比特位(2字节)的标识、3比特位的标志、13比特位的片偏移、8比特位(1字节)的生存时间、8比特位(1字节)的协议、16比特位(2字节)的首部校验和、32比特位(4字节)的源ip地址以及32比特位(4字节)的目的ip地址。

图10为现有技术中ethernet/ip协议和tcp/ip协议中ethernet首部的组成结构示意图。如图10所示,ethernet首部可以包括:6字节的目的介质访问控制地址、6字节的源介质访问控制地址以及2字节的网络层协议类型。本实施例可以预先确定ethernet首部中各位置的信息描述。同时可以知道的是,图6所提供的ethernet数据帧中还包括了ethernet尾部,该ethernet尾部具体为4字节的帧校验序列。

步骤704、网关设备将源ethernet/ip用户数据和目标tcp/ip控制数据封装在目标tcp/ip报文中。

在本发明具体实施例中,网关设备在根据预先确定的tcp/ip报文格式确定源ethernet/ip用户数据对应的目标tcp/ip控制数据之后,网关设备可以按照tcp/ip报文格式将源ethernet/ip用户数据和目标tcp/ip控制数据封装在目标tcp/ip报文中。具体地,网关设备可以根据tcp/ip报文格式将源ethernet/ip用户数据封装到目标tcp/ip报文的数据字段中;网关设备可以根据tcp/ip报文格式将目标tcp/ip控制数据封装到所述目标tcp/ip报文的控制字段中。

步骤705、网关设备结束协议转换流程。

在本发明的具体实施例中,当源ethernet/ip控制数据不满足预选设置的转换条件时,网关设备可以结束协议转换流程。具体地,当第一通信标识与第一目标通信标识不相同时,网关设备可以结束协议转换流程。

根据上述的描述可知,通过上述的步骤701~705,网关设备可以将第一终端发送的源ethernet/ip报文转换为目标tcp/ip报文发送至第二终端,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的。

图11为本发明实施例中源tcp/ip报文转换为目标ethernet/ip报文的实现方法流程示意图。如图11所示,网关设备将源tcp/ip报文转换为目标ethernet/ip报文的方法可以包括以下步骤:

步骤1101、网关设备根据tcp/ip报文格式在源tcp/ip报文中提取出源tcp/ip用户数据。

在本发明具体实施例中,现有技术中的tcp/ip报文可以包括:控制数据和用户数据;其中,tcp/ip报文中的控制数据封装在tcp/ip报文格式的控制字段中;tcp/ip报文中的用户数据封装在ethernet/ip报文格式的数据字段中。因此,在本发明的具体实施例中,网关设备可以根据预先确定的tcp/ip报文格式在源tcp/ip报文中提取出源ethernet/ip用户数据。具体地,源tcp/ip控制数据可以由ethernet首部(占用14字节)、ip首部(占用20字节)、tcp首部(占用20字节)以及所采用应用层协议的应用层协议首部组成。

步骤1102、网关设备根据ethernet/ip报文格式确定源tcp/ip用户数据对应的目标ethernet/ip控制数据。

在本发明具体实施例中,目标ethernet/ip控制数据可以包括:应用层当前所对应cip数据包中的通信标识、运输层所采用运输层协议的协议首部,网络层所采用ip协议的ip首部以及数据链路层所采用ethernet协议的ethernet首部。

具体地,对于目标ethernet/ip控制数据中cip数据包的通信标识而言,网关设备可以预先与第二终端协商确定;对于目标ethernet/ip控制数据中的运输层协议首部(tcp首部或者udp首部)、ip首部以及ethernet首部而言,其首部格式与tcp/ip报文格式中对应的首部格式相同。因此,网关设备可以基于各首部的首部格式,预先确定目标ethernet/ip控制数据中运输层协议首部(可能是tcp首部或udp首部)、ip首部以及ethernet首部应当填充的信息值。

步骤1103、网关设备将源tcp/ip用户数据和目标ethernet/ip控制数据封装在目标ethernet/ip报文中。

在本发明具体实施例中,网关设备在根据ethernet/ip报文格式确定源tcp/ip用户数据对应的目标ethernet/ip控制数据之后,网关设备可以将源tcp/ip用户数据和目标ethernet/ip控制数据封装在目标ethernet/ip报文中。具体地,网关设备可以根据ethernet/ip报文格式将源tcp/ip用户数据封装到目标ethernet/ip报文中由第二通信标识确定的数据字段中;其中,目标ethernet/ip控制数据至少包括:预先确定的第二通信标识;网关设备根据ethernet/ip报文格式将目标ethernet/ip控制数据封装到目标ethernet/ip报文的控制字段中。

具体地,在本发明具体实施例中,第二通信标识可以是目标ethernet/ip控制数据中cip数据包的通信标识。具体地,网关设备可以与第二终端协商确定该第二通信标识,或者网关设备与第一终端协商确定,第二通信标识用于第二终端接收网关设备发送的数据报文,这里的数据报文为除用于连接以外的报文。

同样地,在本发明的具体实施例中,遵循tcp/ip协议的第二终端向遵循ethernet/ip协议的第一终端发送数据报文之前,一种方式是,由网络设备先与第二终端建立通信连接,网关设备与第二终端建立通信连接的方法上述实施例中描述的第一终端与网关设备建立通信连接的方法相同;另一种方式是,由网络设备先与第一终端建立通信连接,确定用于遵循tcp/ip协议的第二终端向遵循ethernet/ip协议的第一终端发送数据报文的连接标识符即第二通信标识。

根据上述的描述可知,通过上述的步骤1101~1103,网关设备可以将第一终端发送的源tcp/ip报文转换为目标ethernet/ip报文发送至第二终端,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的。

网关设备可以根据ethernet/ip报文格式将源tcp/ip用户数据封装到目标ethernet/ip报文中由第二通信标识确定的数据字段中具体实施方式是,网关设备根据每个连接标识符即第二通信标识会实例化一个对象,该对象会提供一个缓冲区。将tcp/ip报文中用户数据放到该缓冲区,并通过ethernet/ip协议将数据发出去。若是网关设备连接多个ethernet/ip设备和多个tcp/ip设备的情况,tcp/ip报文中数据分别放到每个第二通信标识所确定的实例化对象中,最终被每个由第二通信标识确定的实例化对象发出。

步骤403、网关设备将目标tcp/ip报文或者目标ethernet/ip报文发送至第二终端。

在本发明具体实施例中,网关设备可以将目标tcp/ip报文或者目标ethernet/ip报文发送至第二终端。具体地,当网关设备向第二终端发送目标tcp/ip报文时,表示第二终端为遵循tcp/ip协议的终端设备;当网关设备向第二终端发送目标ethernet/ip报文时,表示第二终端为遵循ethernet/ip协议的终端设备。

图12为本发明实施例中遵循不同协议的通信方法的实现流程示意图。如图12所示,假设第一终端遵循ethernet/ip协议,第二终端遵循tcp/ip协议;当第一终端和第二终端进行通信时,第一终端将用户数据通过cip协议规范层、运输层、网络层、数据链路层的封装生成源ethernet/ip报文后发送网关设备,网关设备可以将源ethernet/ip报文转换为目标tcp/ip报文,网关设备可以将目标tcp/ip报文发送给第二终端。

图13为本发明实施例中协议转换系统的组成结构示意图。如图13所示,协议转换系统可以包括:第一终端1、第一终端2、…、第一终端n;网关设备;第二终端1、第二终端2、…、第二终端m;其中,n和m均为大于等于1的自然数。在本发明的具体实施例中,第一终端1、第一终端2、…、第一终端n可以是遵循ethernet/ip协议的终端设备,也可以是遵循tcp/ip协议的终端设备;同样地,第二终端1、第二终端2、…、第二终端m可以是遵循ethernet/ip协议的终端设备,也可以是遵循tcp/ip协议的终端设备。

上述系统中的任何一个第一终端通过网关设备向任何一个第二终端发送数据报文之前,第一终端与网关设备建立连接,协商确定用于第一终端向第二终端发送数据报文的第一目标通信标识。第一终端向第二终端发送ethernet/ip报文时,在ethernet/ip报文中携带协商确定的通信标识,网关设备接收到ethernet/ip报文时,判断该ethernet/ip报文中通信标识与事先协商的是否相同,具体地判断本地是否保存有该通信标识。

上述系统中的任何一个第二终端通过网关设备向任何一个第一终端发送数据报文之前,可以由第二终端与网关设备建立连接,也可以由网关设备与第一终端建立连接,协商确定用于第一终端接收第二终端发送的数据报文的第二通信标识。网关设备接收到第二终端向第一终端发送的tcp/ip报文时,根据tcp/ip报文中目的地址、本地保存的目的地址与第二通信标识之间的对应关系,确定用于第一终端接收第二终端发送的数据报文的第二通信标识,然后根据确定的第二通信标识,所述源tcp/ip用户数据封装到所述目标ethernet/ip报文中由第二通信标识确定的数据字段中。

本发明具体实施例提出的协议转换方法,网关设备先接收第一终端发送的源ethernet/ip报文或者源tcp/ip报文;其中,源ethernet/ip报文遵循ethernet/ip协议;源tcp/ip报文遵循tcp/ip协议;然后网关设备将源ethernet/ip报文转换为目标tcp/ip报文;或者,网关设备将源tcp/ip报文转换为目标ethernet/ip报文;其中,目标tcp/ip报文遵循tcp/ip协议;目标ethernet/ip报文遵循ethernet/ip协议;最后网关设备将目标tcp/ip报文或者目标ethernet/ip报文发送至第二终端。也就是说,在本发明实施例提出的技术方案中,网关设备可以自动地将第一终端发送的源ethernet/ip报文转换为目标tcp/ip报文发送给第二终端;网关设备也可以自动地将第一终端发送的源tcp/ip报文转换为目标ethernet/ip报文发送给第二终端。而在现有的协议转换方法中,通常采用人工方式将第一终端发送的ethernet/ip报文转换为tcp/ip报文后发送至第二终端;或者,采用人工方式将第一终端发送的tcp/ip报文转换为ethernet/ip报文后发送至第二终端。因此,和现有技术相比,本发明实施例提出的协议转换方法,网关设备不仅可以自动地将ethernet/ip报文转换为tcp/ip报文,还可以自动地将tcp/ip报文转换为ethernet/ip报文,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。

图14为本发明实施例中网关设备的第一组成结构示意图。如图14所示,所述网关设备包括:接收单元1401、转换单元1402和发送单元1403;其中,

接收单元1401,用于接收第一终端发送的源ethernet/ip报文或者tcp/ip报文;其中,所述源ethernet/ip报文遵循ethernet/ip协议;所述源tcp/ip报文遵循tcp/ip协议;

转换单元1402,用于将所述源ethernet/ip报文转换为目标tcp/ip报文;或者,将所述源tcp/ip报文转换为目标ethernet/ip报文;其中,所述目标tcp/ip报文遵循所述tcp/ip协议;所述目标ethernet/ip报文遵循所述ethernet/ip协议;

发送单元1403,用于将所述目标tcp/ip报文或者所述目标ethernet/ip报文发送至第二终端。

图15为本发明实施例中网关设备的第二组成结构示意图。如图15所示,转换单元1402包括:提取子单元14021、判断子单元14022和封装子单元14023;

所述提取子单元14021,用于根据预先确定的ethernet/ip报文格式在所述源ethernet/ip报文中提取出源ethernet/ip控制数据和源ethernet/ip用户数据;其中,所述源ethernet/ip控制数据至少包括:第一通信标识,所述第一目标通信标识用于所述第一终端向所述第二终端发送数据报文;

所述判断子单元14022,用于判断所述源ethernet/ip控制数据是否满足预选设置的转换条件;

所述封装子单元14023,具体用于根据所述ethernet/ip报文格式将所述源tcp/ip用户数据封装到所述目标ethernet/ip报文中由第二通信标识确定的数据字段中;根据所述ethernet/ip报文格式将所述目标ethernet/ip控制数据封装到所述目标ethernet/ip报文的控制字段中;其中,所述目标ethernet/ip控制数据至少包括:预先确定的第二通信标识,所述第一目标通信标识用于所述第一终端接收所述第二终端发送的数据报文。

进一步地,所述判断子单元14022,具体用于判断所述第一通信标识与预先确定的第一目标通信标识是否相同;当所述第一通信标识与所述第一目标通信标识相同时,判定所述源ethernet/ip控制数据满足所述转换条件。

进一步地,所述提取子单元14021,还用于根据所述tcp/ip报文格式在所述源tcp/ip报文中提取出源tcp/ip用户数据;

所述封装子单元14023,还用于根据所述ethernet/ip报文格式确定所述源tcp/ip用户数据对应的目标ethernet/ip控制数据;将所述源tcp/ip用户数据和所述目标ethernet/ip控制数据封装在所述目标ethernet/ip报文中。

进一步地,所述封装子单元14023,具体用于根据所述ethernet/ip报文格式将所述源tcp/ip用户数据封装到所述目标ethernet/ip报文的数据字段中;根据所述ethernet/ip报文格式将所述目标ethernet/ip控制数据封装到所述目标ethernet/ip报文的控制字段中;其中,所述目标ethernet/ip控制数据至少包括:预先确定的第二通信标识。

本发明实施例提供的网关设备,网关设备先接收第一终端发送的源ethernet/ip报文或者源tcp/ip报文;其中,源ethernet/ip报文遵循ethernet/ip协议;源tcp/ip报文遵循tcp/ip协议;然后网关设备将源ethernet/ip报文转换为目标tcp/ip报文;或者,网关设备将源tcp/ip报文转换为目标ethernet/ip报文;其中,目标tcp/ip报文遵循tcp/ip协议;目标ethernet/ip报文遵循ethernet/ip协议;最后网关设备将目标tcp/ip报文或者目标ethernet/ip报文发送至第二终端。也就是说,在本发明实施例提出的技术方案中,网关设备可以自动地将第一终端发送的源ethernet/ip报文转换为目标tcp/ip报文发送给第二终端;网关设备也可以自动地将第一终端发送的源tcp/ip报文转换为目标ethernet/ip报文发送给第二终端。而在现有的协议转换方法中,通常采用人工方式将第一终端发送的ethernet/ip报文转换为tcp/ip报文后发送至第二终端;或者,采用人工方式将第一终端发送的tcp/ip报文转换为ethernet/ip报文后发送至第二终端。因此,和现有技术相比,本发明实施例提出的网关设备,网关设备不仅可以自动地将ethernet/ip报文转换为tcp/ip报文,还可以自动地将tcp/ip报文转换为ethernet/ip报文,从而能够达到遵循不同协议的第一终端和第二终端直接通信的目的;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。

本发明实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行上述任一实施例所述的方法。

本发明实施例还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一实施例所述的方法。

当然,本发明实施例所提供的包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的认证方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1