CN112019568B - 一种报文转发方法、设备和通信方法、*** - Google Patents

一种报文转发方法、设备和通信方法、*** Download PDF

Info

Publication number
CN112019568B
CN112019568B CN202011114306.1A CN202011114306A CN112019568B CN 112019568 B CN112019568 B CN 112019568B CN 202011114306 A CN202011114306 A CN 202011114306A CN 112019568 B CN112019568 B CN 112019568B
Authority
CN
China
Prior art keywords
kcp
message
information
connection
new
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
Application number
CN202011114306.1A
Other languages
English (en)
Other versions
CN112019568A (zh
Inventor
李建安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Taiyi Xingchen Information Technology Co ltd
Original Assignee
Beijing Taiyi Xingchen Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Taiyi Xingchen Information Technology Co ltd filed Critical Beijing Taiyi Xingchen Information Technology Co ltd
Priority to CN202011114306.1A priority Critical patent/CN112019568B/zh
Publication of CN112019568A publication Critical patent/CN112019568A/zh
Application granted granted Critical
Publication of CN112019568B publication Critical patent/CN112019568B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文公开了一种报文转发方法、设备和通信方法、***。其中,所述报文转发方法,包括,接收来自源设备的待发送给目标设备的IP报文;根据所述IP报文和KCP映射关系,确定对应的KCP实例信息;根据所述KCP实例信息封装所述IP报文,得到KCP报文;将所述KCP报文通过安全数据隧道发送。还公开了一种报文转发方法,包括,对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据;所述KCP数据为IP报文;根据所述KCP数据确定目标设备,发送所述IP报文给所述目标设备。

Description

一种报文转发方法、设备和通信方法、***
技术领域
本公开涉及但不限于网络通信领域,特别是涉及到基于KCP协议的报文转发方法、设备和通信方法、***。
背景技术
现在的网络传输都是采用TCP/IP协议。采用TCP进行传输时,TCP本身具有重传确认机制,可以保证数据的完整性,但是其繁琐的重传确认机制无法改善网络环境;尤其是网络环境存在丢包、延时,这种复杂的机制,会导致通信质量进一步下降。UDP没有确认机制,如果网络环境中出现丢包,本身保证不了数据的正确性。
KCP是一个快速可靠协议(A Fast and Reliable ARQ Protocol),通过一定带宽为代价,可以达到最大三倍的加速效果。它的特点主要为:
1)快速重传并确认。缩短了超时重传的时间,更快的重传确认频率,提高了传输速度。而TCP有快速重传算法,TCP包被跳过3次之后才会进行重传。
2)选择重传。发生丢包时,TCP会全部重传未确认的报文;而KCP是选择性重传,只重传真正丢失的报文。
3)KCP协议并不负责底层协议的收发,需要使用者自己定义下层数据包的发送方式。一般使用时,类似于套接字处理方法,送入KCP的是整个应用数据,使用UDP作为其传输协议。
目前,对KCP协议在整个网络中的位置如图1所示。可以看到,相关技术方案中,要利用KCP协议在上述方面的优点,需要更改UDP之上的应用或基础通信设施。现存网络中存在大量现有***,很显然这种改造是复杂而工作量巨大的。为了充分利用KCP协议机制的优点,同时兼容大量现有应用或***,则需要提出新的解决方案。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本公开实施例提供了一种报文转发方法、设备和通信方法、***。能够极大地减小对现有应用或***的改造,充分利用了KCP协议机制的通信优势和安全隧道技术,提高了应用之间数据传输的速度和可靠性。
本公开实施例提供一种报文转发方法,包括,
接收来自源设备的待发送给目标设备的IP报文;
根据所述IP报文和KCP映射关系,确定对应的KCP实例信息;
根据所述KCP实例信息封装所述IP报文,得到KCP报文;
将所述KCP报文通过安全数据隧道发送。
一些示例性实施例中,所述安全数据隧道包括:IP sec VPN隧道;
所述将所述KCP报文通过安全数据隧道发送,包括:
根据IPsec协议,将所述KCP报文增加新IP头,得到IPsec报文,通过所述IP secVPN隧道发送所述IPsec报文。
一些示例性实施例中,所述根据所述IP报文和KCP映射关系,确定对应的KCP实例信息,包括:
根据所述IP报文的五元组,查找所述KCP映射关系,确定所述IP报文对应的KCP实例信息;其中,所述KCP实例信息包括:KCP标识;
所述根据所述KCP实例信息封装所述IP报文,得到KCP报文,包括:
根据所述KCP标识,给所述IP报文增加KCP头,得到所述KCP报文。
一些示例性实施例中,所述KCP映射关系包括:IP连接信息表和KCP实例信息表;
所述根据所述IP报文的五元组,查找所述KCP映射关系,确定所述IP报文对应的KCP实例信息,包括:
根据所述IP报文的五元组,查找所述IP连接信息表确定所述IP报文对应的IP连接信息,根据所述IP连接信息查找所述KCP实例信息表确定所对应的KCP实例信息。
一些示例性实施例中,所述根据所述IP报文的五元组,查找所述IP连接信息表确定所述IP报文对应的IP连接信息,根据所述IP连接信息查找所述KCP实例信息表确定所对应的KCP实例信息,包括:
根据所述IP报文的五元组查找所述IP连接信息表,当查找到对应的IP连接信息时,根据所述IP连接信息中的IP连接标识查找所述KCP实例信息表,确定对应的KCP实例信息;
当未查找到对应的IP连接信息时,生成新的IP连接标识和新的KCP标识,将所述IP报文的五元组和所述新的IP连接标识作为新的IP连接信息加入所述IP连接信息表,将所述新的IP连接标识和所述新的KCP标识作为新的KCP实例信息加入所述KCP实例信息表。
本公开实施例还提供一种报文转发方法,包括,
对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据;所述KCP数据为IP报文;
根据所述KCP数据确定目标设备,发送所述IP报文给所述目标设备。
一些示例性实施例中,所述安全数据隧道包括:IP sec VPN隧道;
所述对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据,包括:
根据IPsec协议解封装接收到的IPsec报文,得到KCP报文;
根据KCP协议解封装所述KCP报文,得到所述KCP数据。
一些示例性实施例中,所述方法还包括:
对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP报文头;
根据所述KCP报文头和KCP映射关系,确定对应的KCP实例信息;其中,所述KCP实例信息包括:KCP标识和IP连接标识;所述KCP映射关系包括:IP连接信息表和KCP实例信息表;
其中,所述根据所述KCP报文头和所述KCP映射关系,确定对应的KCP实例信息,包括:
根据所述KCP报文头中的KCP标识,查找所述KCP实例信息表确定所对应的KCP实例信息,当查找到对应的KCP实例信息时,则确定查找到的为所述对应的KCP实例信息;
当未查找到对应的KCP实例信息时,生成新的KCP实例信息加入所述KCP实例信息表;其中,所述新的KCP实例信息的KCP标识为所述KCP报文头中的KCP标识。
一些示例性实施例中,所述方法还包括,根据所述IP报文的五元组查找所述IP连接信息表,当未查找到对应的IP连接信息时,生成新的IP连接标识,将所述新的IP报文的五元组、所述新的IP连接标识和所述KCP报文头中的KCP标识作为新的IP连接信息加入所述IP连接信息表;
当未查找到对应的IP连接信息时,还根据所述KCP报文头中的KCP标识查找所述KCP实例信息表确定所对应的KCP实例信息,当查找到对应的KCP实例信息时,根据所述新的IP连接标识更新查找到的KCP实例信息的IP连接标识;当未查找到对应的KCP实例信息时,将所述新的IP连接标识和所述KCP报文头中的KCP标识作为新的KCP实例信息加入所述KCP实例信息表。
本公开实施例还提供一种通信方法,包括:
源设备发送报文;
对于源设备发送的报文按照上述一种报文转发方法进行发送;
接收报文;
按照上述一种报文转发方法将所接收的报文发送给目标设备。
本公开实施例还提供一种电子设备,包括存储器和处理器,所述存储器中存储有用于进行数据包发送或用于进行数据包接收的计算机程序,所述处理器被设置为读取并运行所述用于进行数据包发送的计算机程序以执行上述任一种报文转发方法。
本公开实施例还提供一种通信***,包括源设备和目标设备;还包括,第一转发设备和第二转发设备;
所述第一转发设备为上述任一种电子设备;第二转发设备为上述任一种电子设备;
所述第一转发设备设置为,接收来自所述源设备的报文,处理后通过公网发送给所述第二转发设备;
所述第二转发设备设置为,接收来自所述第一转发设备的报文,处理后发送给所述目标设备。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
图1为相关领域中网络协议层次示意图;
图2为本公开实施例中一种通信方法所应用的网络结构示意图;
图3为本公开实施例中一种通信方法的流程图;
图4为本公开实施例中一种转发设备的报文结构示意图;
图5为本公开实施例中另一种转发设备的报文结构示意图;
图6为本公开实施例中一种转发设备的报文处理流程图;
图7为本公开实施例中另一种转发设备的报文处理流程图;
图8为本公开实施例中一种KCP映射关系表示例;
图9为本公开另一实施例中一种报文转发方法的流程图;
图10为本公开另一实施例中一种报文转发方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
下述步骤编号不限定特定的执行顺序,根据具体实施例部分步骤能够调整其执行顺序。
公开实施例提供的方法适用于双边网络,如图2所示,在公网上的双边网络,可以让两个私有网络进行通信。一般是采用两台对称部署的双边设备(转发设备),采用安全数据隧道技术来完成IP层的通信,例如IPsec VPN作为隧道来完成通信。两个网络间,建立专门的IPsec隧道,将原始的IP数据进行加密为IPsec报文,新IPsec报文的源IP和目的IP分别为两台设备上的公网IP。这样通过IPsecVPN进行通信,既可以保证连接的安全性,又可以解决公网间的NAT穿透,以及防火墙等中间设备的准入问题。
一些示例性实施例中,也可以采用其他安全隧道技术方案,例如:GRE隧道等等。
KCP是一个快速可靠协议,用来解决在网络拥堵的情况下速度慢的问题。通过增大网络传输速率,相应的牺牲一部分带宽,提升网络加速效果。但是KCP协议本身没有规定下层传输协议,一般是用UDP作为下层传输协议,这种处理方法类似于套接字。
实施例一
本公开实施例提供一种数据通信方法,该方法应用的***网络结构如图2所示。所述***中包括双边设备1、2,也称为第一转发设备和第二转发设备,或者网关1、网关2,使用公网IP地址,通过公网对外联网通信。
根据KCP协议机制,源设备和目标设备之间的每一条网络连接都关联一个KCP实例,每个KCP实例具有惟一的KCP标识。设备间通信时,同一网络连接的KCP标识必须保证相同,且唯一。
本公开实施例提供一种数据通信方法,其通信过程如图3所示,包括:
网关1收到IP报文,所述IP报文经过KCP封装、IPsec加密,最终发送出去的为IPsec报文。
网关2收到IPsec报文,根据IPsec协议,进行解封装(包括ipsec解密)、KCP解封装,得到IP报文,这个报文的内容与网关1收到的是一致的。发送出去的就是IP报文。
网关1和网关2,同一连接对应的KCP唯一标识是相同的,就能够正常的进行KCP封装、解封装。
其中,网关1(第一转发设备)的处理流程如图4所示,包括:
网关1(第一转发设备)收到IP报文时,从报文中解析出完整的IP报文,即IP包,包括了原始的IP头和IP数据。将IP包,送入KCP发送队列,这时候会在IP包加上KCP头,生成一个KCP报文。KCP报文通过IPsecVPN隧道发送的时候,通过IPsec加密,生成新的IPsec报文,将该IPsec报文发送给对端设备。其中,新的IPsec报文头中,源地址为网关1的地址(公网IP地址),目标地址为网关2的地址(公网IP地址)。本领域技术人员可以知晓,网关1、2的地址与该IPsec安全隧道关联,隧道建立时已完成相关配置,IPsec隧道的其他实现细节不属于本公开所限定或保护的范围。
其中,根据KCP协议,KCP头大小为24字节,会记录当前KCP数据的标识、序列号、时间戳等信息。其中较关键的就是4字节的标识,用来唯一标记一条连接。两台设备使用同一连接通信,就需要保证发送的KCP报文中该标识相同,这样根据KCP协议机制,才能有效进行确认、重传等基本的KCP协议处理。
其中,网关2(第二转发设备)的处理流程如图5所示,包括:
网关2(第二转发设备)收到IPsec报文,根据IPsec协议机制进行解密\解封装,得到KCP报文。KCP报文解封装并去除KCP头后,得到了IP报文,该IP报文与图4中网关1接收到的IP报文一致,包含了原始的IP头和IP数据。根据得到的IP报文中的目标设备地址,将所述IP报文发送给所述目标设备。
根据KCP协议机制,网关1、2要正常利用KCP协议机制的关键是,需要保证同一条连接的KCP标识唯一。一些示例性实施例中,维护了两张表,这两张表的表项是互相关联的,内容如图8所示。
连接表conn_list(IP连接信息表)的表项为conn_node,用来存储该连接的基本信息,包括了IP报文的五元组、kcp_node的指针。该表的查找key为IP报文的五元组。
KCP实例表(KCP实例信息表)kcp_list的表项为kcp_node,用来存储KCP协议相关的信息,包括了KCP唯一标识id、KCP实例、conn_node的指针。该表查找的key为KCP唯一标识id。
两个表项conn_node和kcp_node是一一对应的。
一些示例性实施例中,网关1(第一转发设备)转发报文的方法,如图6所示,包括:
步骤601,收到IP报文之后,提取IP五元组;
步骤602,根据IP报文的五元组查找conn_list表,如果查到表项conn_node,则执行步骤610,根据对应关系,获取到KCP实例;没有查到,则执行步骤620,创建conn_node和kcp_node表项,并将二者关联。这里需要注意的是,kcp_id需要保证唯一。
步骤630,得到KCP实例后,用它将IP报文(包括IP头、IP数据)封装成KCP报文,送入到KCP发送队列。
步骤640,KCP发送定时器负责将KCP队列的数据取出。该定时器精度要求能与设备报文收发一致。
步骤641,取出的KCP报文,根据IPsec协议,经过IPsec加密后,封装成新的IPsec报文发送出去。新IPsec报文的目的IP地址为对端设备(网关2)的IP地址。
一些示例性实施例中,网关2(第二转发设备)转发报文的方法,如图7所示,包括:
步骤701,收到IPsec报文后,进行IPsec报文解密\解封装,得到KCP报文;从KCP报文头中解析KCP的唯一标识id,得到KCP标识id;
步骤702,根据所述KCP标识查找kcp_list表;如果找到,则执行步骤710,未找到,执行步骤720;
步骤710,根据KCP标识对应的kcp_node表项,确定对应的KCP实例;
步骤720,创建一个以KCP标识为key的kcp_node表项(kcp_list表中)。
步骤711,使用KCP实例,将KCP报文进行解封装,得到KCP数据,即IP报文。该IP报文与图6步骤601中的IP报文相同。
步骤712,根据IP报文的五元组,查找conn_list表,如果查到对应的conn_node表项,则执行步骤730;没有查到,则执行步骤740;
步骤730,将所述IP报文转发至目的地址;
步骤740,创建新的conn_node表项(conn_list表中),并将其与kcp_list表中对应的kcp_node表项关联。
其中,步骤630或711中使用KCP实例,即根据KCP协议规范,KCP实例进行KCP报文封装或解封装,记录发送序号、确认号、超时重传等等的信息,并执行相关接收确认或重传功能。本公开的实施例方案只体现了与数据报文封装解封装的方面,其他方面根据相关技术方案实现即可,不限定具体的实现方式,KCP实例的其他协议功能不属于本申请方案所限定或保护的范围。
本公开实施例提供的通信方法中,靠近源设备端的第一转发设备,对收到的IP报文数据进行KCP封装,封装后的数据送入KCP发送队列;
通过定时器驱动,定时将KCP队列的KCP报文进行IPsec加密/封装,并通过IPsecVPN隧道,发送到目标设备端的第二转发设备;
第二转发设备,收到IPsec报文后,进行IPsec解密/解封装,还原出封装的KCP报文。根据唯一的KCP标识,再进一步还原出IP报文,即上述第一转发设备接收到的原始IP报文;
第二转发设备将所述IP报文转发至目标设备。
可以看到,KCP报文封装的是整个IP报文。这样,KCP解封装出来的数据,就是一个完整的IP报文,与原始IP报文完全是相同的。这样就不会存在重新生成IP头、TCP头的过程,就没有计算头域校验和的过程,节省了性能开销。
KCP报文与IPSec进行结合。二者互相补充,如果将KCP报文直接构造(封装)新的IP报文发送,存在IP头的构造问题,需要考虑这个新的IP包在网络传输遇到的各种问题,像防火墙、NAT一类的问题。IPsec是通用的IP协议,可以正常穿过防火墙、NAT处理。而KCP协议机制可以提供IPsec所没有的加速功能。
KCP与连接进行关联。一般网络设备都是基于连接进行管理的,每个报文都要先与连接进行关联,再处理其他业务。而本发明的IPsec解密\解封装得到的是KCP报文,这时候是得不到IP五元组,所以此时无法先与连接进行关联。本公开实施例的方案提出的KCP与连接关联的处理方法,通过先查找KCP实例,就可以同步找到对应的连接。
KCP定时器的精度要求必须高。本发明的定时器,与报文收发的精度一致,这样可以保证收到的报文及时发送,不会影响到用户体验。即,以较高的时间间隔触发KCP定时器,从KCP队列中取出KCP报文通过安全隧道发送出去,最大限度地减少KCP报文进入KCP队列所引起的传输延时。
本领域技术人员能够知晓,现有技术方案中,KCP协议机制在UDP之上实现相关协议功能;本方案上是把KCP协议机制放到了IP层,通过新增的网关设备,对IP报文进行了KCP封装并实现相关协议功能,使得IP层之上的已有应用或***无须改造升级,即可充分利用KCP协议机制的优点,提高通信效率和可靠性。
一些示例性实施例中,也可以采用其他安全隧道协议代替IPsec隧道。例如,采用GRE隧道,则相应地,对应调整步骤641,将取出的KCP报文,根据GRE协议进行封装,封装为新的GRE报文发送出去,新GRE报文的目的IP地址为对端设备(网关2)的IP地址;步骤701调整为,进行GRE报文的解封装,得到KCP报文。
依此类推,本领域技术人员可以知晓,采用其他安全隧道方案实现本公开实施例所记载的数据通信方案,利用安全隧道方案实现数据报文在公网上的传输。
实施例二
本公开实施例提供一种报文转发方法,如图9所示,包括,
步骤901,接收来自源设备的待发送给目标设备的IP报文;
步骤902,根据所述IP报文和KCP映射关系,确定对应的KCP实例信息;
步骤903,根据所述KCP实例信息封装所述IP报文,得到KCP报文;
步骤904,将所述KCP报文通过安全数据隧道发送。
一些示例性实施例中,所述安全数据隧道包括:IP sec VPN隧道;
所述将所述KCP报文通过安全数据隧道发送,包括:
根据IPsec协议,将所述KCP报文增加新IP头,得到IPsec报文,通过所述IP secVPN隧道发送所述IPsec报文。
一些示例性实施例中,所述根据所述IP报文和KCP映射关系,确定对应的KCP实例信息,包括:
根据所述IP报文的五元组,查找所述KCP映射关系,确定所述IP报文对应的KCP实例信息;其中,所述KCP实例信息包括:KCP标识;
所述根据所述KCP实例信息封装所述IP报文,得到KCP报文,包括:
根据所述KCP标识,给所述IP报文增加KCP头,得到所述KCP报文。
一些示例性实施例中,所述KCP映射关系包括:IP连接信息表和KCP实例信息表;
所述根据所述IP报文的五元组,查找所述KCP映射关系,确定所述IP报文对应的KCP实例信息,包括:
根据所述IP报文的五元组,查找所述IP连接信息表确定所述IP报文对应的IP连接信息,根据所述IP连接信息查找所述KCP实例信息表确定所对应的KCP实例信息。
一些示例性实施例中,所述根据所述IP报文的五元组,查找所述IP连接信息表确定所述IP报文对应的IP连接信息,根据所述IP连接信息查找所述KCP实例信息表确定所对应的KCP实例信息,包括:
根据所述IP报文的五元组查找所述IP连接信息表,当查找到对应的IP连接信息时,根据所述IP连接信息中的IP连接标识查找所述KCP实例信息表,确定对应的KCP实例信息;
当未查找到对应的IP连接信息时,生成新的IP连接标识和新的KCP标识,将所述IP报文的五元组和所述新的IP连接标识作为新的IP连接信息加入所述IP连接信息表,将所述新的IP连接标识和所述新的KCP标识作为新的KCP实例信息加入所述KCP实例信息表。
一些示例性实施例中,所述安全隧道包括:GRE隧道;
所述将所述KCP报文通过安全数据隧道发送,包括:
根据GRE协议,将所述KCP报文增加新IP头,得到GRE报文,通过所述GRE隧道发送所述GRE报文。
一些示例性实施例中,本领域技术技术人员还可采用其他安全隧道方案实施所述KCP报文在公网的安全传输。
实施例三
本公开实施例提供一种报文转发方法,如图10所示,包括,
步骤101,对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据;所述KCP数据为IP报文;
步骤102,根据所述KCP数据确定目标设备,发送所述IP报文给所述目标设备。
一些示例性实施例中,所述安全数据隧道包括:IP sec VPN隧道;
所述对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据,包括:
根据IPsec协议解封装接收到的IPsec报文,得到KCP报文;
根据KCP协议解封装所述KCP报文,得到所述KCP数据。
一些示例性实施例中,所述方法还包括:
对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP报文头;
根据所述KCP报文头和KCP映射关系,确定对应的KCP实例信息;其中,所述KCP实例信息包括:KCP标识和IP连接标识;所述KCP映射关系包括:IP连接信息表和KCP实例信息表;
其中,所述根据所述KCP报文头和所述KCP映射关系,确定对应的KCP实例信息,包括:
根据所述KCP报文头中的KCP标识,查找所述KCP实例信息表确定所对应的KCP实例信息,当查找到对应的KCP实例信息时,则确定查找到的为所述对应的KCP实例信息;
当未查找到对应的KCP实例信息时,生成新的KCP实例信息加入所述KCP实例信息表;其中,所述新的KCP实例信息的KCP标识为所述KCP报文头中的KCP标识。
一些示例性实施例中,所述方法还包括,根据所述IP报文的五元组查找所述IP连接信息表,当未查找到对应的IP连接信息时,生成新的IP连接标识,将所述新的IP报文的五元组、所述新的IP连接标识和所述KCP报文头中的KCP标识作为新的IP连接信息加入所述IP连接信息表;
当未查找到对应的IP连接信息时,还根据所述KCP报文头中的KCP标识查找所述KCP实例信息表确定所对应的KCP实例信息,当查找到对应的KCP实例信息时,根据所述新的IP连接标识更新查找到的KCP实例信息的IP连接标识;当未查找到对应的KCP实例信息时,将所述新的IP连接标识和所述KCP报文头中的KCP标识作为新的KCP实例信息加入所述KCP实例信息表。
一些示例性实施例中,所述安全隧道包括:GRE隧道;
所述对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据,包括:
根据GRE协议解封装接收到的GRE报文,得到KCP报文;
根据KCP协议解封装所述KCP报文,得到所述KCP数据。
一些示例性实施例中,本领域技术技术人员还可采用其他安全隧道方案实施所述KCP报文在公网的安全传输。
实施例四
本公开实施例提供一种通信方法,包括:
步骤111,源设备发送报文;
步骤112,第一转发设备接收报文,根据实施例一或二所述的方法处理并转发处理后的报文;
步骤113,第二转发设备接收来自第一转发设备的报文;
步骤114,第二转发设备根据实施例一或三所述的方法处理并转发处理后的报文发送给目标设备。
实施例五
本公开实施例还提供一种通信方法,包括:
步骤121,源设备发送报文;
步骤122,对于源设备发送的报文按照实施例一或二所述的方法进行发送;
步骤123,接收报文;
步骤124,按照实施例一或三的方法将所接收的报文发送给目标设备。
实施例六
本公开实施例还提供一种报文转发装置,包括,
接收模块131,设置为接收来自源设备的待发送给目标设备的IP报文;
KCP封装模块132,设置为根据所述IP报文和KCP映射关系,确定对应的KCP实例信息;根据所述KCP实例信息封装所述IP报文,得到KCP报文;
发送模块133,设置为将所述KCP报文通过安全数据隧道发送。
一些示例性实施例中,所述接收模块131还设置为,对于通过安全数据隧道所接收到的报文,根据KCP协议进行解封装,得到KCP数据;所述KCP数据为IP报文;
所述发送模块133还设置为,根据所述KCP数据确定目标设备,发送所述IP报文给所述目标设备。
实施例七
本公开实施例还提供一种电子设备,包括存储器和处理器,所述存储器中存储有用于进行数据包发送或用于进行数据包接收的计算机程序,所述处理器被设置为读取并运行所述用于进行数据包发送的计算机程序以执行上述实施例一或二中任一所述的报文转发方法。
实施例八
本公开实施例还提供一种电子设备,包括存储器和处理器,所述存储器中存储有用于进行数据包发送或用于进行数据包接收的计算机程序,所述处理器被设置为读取并运行所述用于进行数据包发送的计算机程序以执行上述实施例一或三中任一所述的报文转发方法。
实施例九
本公开实施例还提供一种通信***,包括源设备和目标设备;还包括,第一转发设备和第二转发设备;
所述第一转发设备为实施例七所述的电子设备;第二转发设备为实施例八所述的电子设备;
所述第一转发设备设置为,接收来自所述源设备的报文,处理后通过公网发送给所述第二转发设备;
所述第二转发设备设置为,接收来自所述第一转发设备的报文,处理后发送给所述目标设备。
实施例十
本公开实施例还提供一种通信***,包括源设备和目标设备;还包括,第一转发装置和第二转发装置;
所述第一转发设备为实施例六所述的装置;第二转发设备为实施例六所述的装置;
所述第一转发装置设置为,接收来自所述源设备的报文,处理后通过公网发送给所述第二转发装置;
所述第二转发装置设置为,接收来自所述第一转发装置的报文,处理后发送给所述目标设备。
与现有技术相比,本发明的优点在于:
1.部署简单。在对称网络部署中,完全不用改变网络环境,植入本发明的装置,就可以有很好的加速效果。
2.采用IPsec报文或其他安全隧道报文传输,不会被中间设备丢弃。
3. 不会影响原来的性能。处理的对象为IP报文,不会对报文内部进行任何修改,该报文传输过程中一直是完整的。所以即便是没有丢包、延时的环境,也没有性能衰减。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于 RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (12)

1.一种报文转发方法,其特征在于,包括,
接收来自源设备的待发送给目标设备的IP报文;
根据所述IP报文和KCP映射关系,确定对应的KCP实例信息,所述KCP实例信息包括:KCP标识;
根据所述KCP实例信息封装所述IP报文,得到KCP报文,包括:根据所述KCP标识,给所述IP报文增加KCP头,得到所述KCP报文;
将所述KCP报文通过安全数据隧道发送。
2.根据权利要求1所述的方法,其特征在于,
所述安全数据隧道包括:IP sec VPN隧道;
所述将所述KCP报文通过安全数据隧道发送,包括:
根据IPsec协议,将所述KCP报文增加新IP头,得到IPsec报文,通过所述IP sec VPN隧道发送所述IPsec报文。
3.根据权利要求1或2所述的方法,其特征在于,
所述根据所述IP报文和KCP映射关系,确定对应的KCP实例信息,包括:
根据所述IP报文的五元组,查找所述KCP映射关系,确定所述IP报文对应的KCP实例信息。
4.根据权利要求3所述的方法,其特征在于,
所述KCP映射关系包括:IP连接信息表和KCP实例信息表;
所述根据所述IP报文的五元组,查找所述KCP映射关系,确定所述IP报文对应的KCP实例信息,包括:
根据所述IP报文的五元组,查找所述IP连接信息表确定所述IP报文对应的IP连接信息,根据所述IP连接信息查找所述KCP实例信息表确定所对应的KCP实例信息。
5.根据权利要求4所述的方法,其特征在于,
所述根据所述IP报文的五元组,查找所述IP连接信息表确定所述IP报文对应的IP连接信息,根据所述IP连接信息查找所述KCP实例信息表确定所对应的KCP实例信息,包括:
根据所述IP报文的五元组查找所述IP连接信息表,当查找到对应的IP连接信息时,根据所述IP连接信息中的IP连接标识查找所述KCP实例信息表,确定对应的KCP实例信息;
当未查找到对应的IP连接信息时,生成新的IP连接标识和新的KCP标识,将所述IP报文的五元组和所述新的IP连接标识作为新的IP连接信息加入所述IP连接信息表,将所述新的IP连接标识和所述新的KCP标识作为新的KCP实例信息加入所述KCP实例信息表。
6.一种报文转发方法,其特征在于,包括,
对于通过安全数据隧道所接收到的报文,根据IPsec协议进行解封装,得到KCP报文,根据KCP协议解封装KCP报文,得到KCP报文头,从KCP报文头中解析KCP的标识,根据KCP的标识确定对应的KCP实例,使用KCP实例将KCP报文进行解封装,得到KCP数据;所述KCP数据为IP报文;
根据所述KCP数据确定目标设备,发送所述IP报文给所述目标设备,
所述安全数据隧道包括:IP sec VPN隧道。
7.根据权利要求6所述的方法,其特征在于,
所述方法还包括:
根据所述KCP报文头和KCP映射关系,确定对应的KCP实例信息;其中,所述KCP实例信息包括:KCP标识和IP连接标识;所述KCP映射关系包括:IP连接信息表和KCP实例信息表;
其中,所述根据所述KCP报文头和所述KCP映射关系,确定对应的KCP实例信息,包括:
根据所述KCP报文头中的KCP标识,查找所述KCP实例信息表确定所对应的KCP实例信息,当查找到对应的KCP实例信息时,则确定查找到的为所述对应的KCP实例信息;
当未查找到对应的KCP实例信息时,生成新的KCP实例信息加入所述KCP实例信息表;其中,所述新的KCP实例信息的KCP标识为所述KCP报文头中的KCP标识。
8.根据权利要求7所述的方法,其特征在于,
所述方法还包括,根据所述IP报文的五元组查找所述IP连接信息表,当未查找到对应的IP连接信息时,生成新的IP连接标识,将所述新的IP报文的五元组、所述新的IP连接标识和所述KCP报文头中的KCP标识作为新的IP连接信息加入所述IP连接信息表;
当未查找到对应的IP连接信息时,还根据所述KCP报文头中的KCP标识查找所述KCP实例信息表确定所对应的KCP实例信息,当查找到对应的KCP实例信息时,根据所述新的IP连接标识更新查找到的KCP实例信息的IP连接标识;当未查找到对应的KCP实例信息时,将所述新的IP连接标识和所述KCP报文头中的KCP标识作为新的KCP实例信息加入所述KCP实例信息表。
9.一种通信方法,其特征在于,包括:
源设备发送报文;
对于源设备发送的报文按照权利要求1-5中任一项所述的方法进行发送;
接收报文;
按照权利要求6-8任一项的方法将所接收的报文发送给目标设备。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有用于进行数据包发送或用于进行数据包接收的计算机程序,所述处理器被设置为读取并运行所述用于进行数据包发送的计算机程序以执行所述权利要求1至5任一项中所述的方法。
11.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有用于进行数据包发送或用于进行数据包接收的计算机程序,所述处理器被设置为读取并运行所述用于进行数据包发送的计算机程序以执行所述权利要求6至8任一项中所述的方法。
12.一种通信***,包括源设备和目标设备;其特征在于,还包括,第一转发设备和第二转发设备;
所述第一转发设备为权利要求10所述的电子设备;第二转发设备为权利要求11所述的电子设备;
所述第一转发设备设置为,接收来自所述源设备的报文,处理后通过公网发送给所述第二转发设备;
所述第二转发设备设置为,接收来自所述第一转发设备的报文,处理后发送给所述目标设备。
CN202011114306.1A 2020-10-19 2020-10-19 一种报文转发方法、设备和通信方法、*** Active CN112019568B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011114306.1A CN112019568B (zh) 2020-10-19 2020-10-19 一种报文转发方法、设备和通信方法、***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011114306.1A CN112019568B (zh) 2020-10-19 2020-10-19 一种报文转发方法、设备和通信方法、***

Publications (2)

Publication Number Publication Date
CN112019568A CN112019568A (zh) 2020-12-01
CN112019568B true CN112019568B (zh) 2021-02-02

Family

ID=73528129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011114306.1A Active CN112019568B (zh) 2020-10-19 2020-10-19 一种报文转发方法、设备和通信方法、***

Country Status (1)

Country Link
CN (1) CN112019568B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115955517B (zh) * 2023-03-10 2023-07-28 北京太一星晨信息技术有限公司 一种报文处理方法、***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101798873B1 (ko) * 2013-12-06 2017-12-12 엘지전자 주식회사 방송 신호 송수신 장치 및 방법
CN107682260B (zh) * 2017-10-23 2018-10-19 深圳智多豚物联技术有限公司 一种多路径快速可靠网络通讯方法
CN108848090B (zh) * 2018-06-15 2020-12-15 京信通信***(中国)有限公司 基于ipsec的报文转发方法、网关设备及***
CN110049059A (zh) * 2019-04-26 2019-07-23 深圳市网心科技有限公司 一种外网设备与内网设备间通信方法及相关装置
CN110401645B (zh) * 2019-07-15 2021-11-19 珠海市杰理科技股份有限公司 数据穿透传输方法、装置、***、客户端和存储介质
CN111103834A (zh) * 2019-12-25 2020-05-05 北京航天云路有限公司 一种基于kcp协议降低工控设备远程控制延迟的方法

Also Published As

Publication number Publication date
CN112019568A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
US20180288179A1 (en) Proxy for serving internet-of-things (iot) devices
US7434045B1 (en) Method and apparatus for indexing an inbound security association database
KR20070026331A (ko) 패킷이 필터링되어 있는 것 이외의 네트워크 프로토콜레이어에서 가상 사설망을 형성하기 위해 보안 통신 링크를설정하기 위한 시스템, 장치 및 방법
CN107770072B (zh) 一种发送和接收报文的方法和设备
US20140294018A1 (en) Protocol for layer two multiple network links tunnelling
CN109412927B (zh) 一种多vpn数据传输方法、装置及网络设备
US11418951B2 (en) Method for identifying encrypted data stream, device, storage medium and system
EP4057576A1 (en) Packet encapsulating method and apparatus, and packet decapsulating method and apparatus
CN114024741A (zh) 请求处理方法、装置、流量代理端、设备及可读存储介质
CN112019568B (zh) 一种报文转发方法、设备和通信方法、***
CN104184646A (zh) Vpn网络数据交互方法和***及其网络数据交互设备
JP2008252393A (ja) 通信端末装置、配信装置、エラー通知方法およびエラー通知プログラム
US9419891B2 (en) Virtual private network communication system, routing device and method thereof
US11522979B2 (en) Transmission control protocol (TCP) acknowledgement (ACK) packet suppression
CN112600802B (zh) 一种SRv6加密报文、SRv6报文的加解密方法及装置
CN116527405B (zh) 一种srv6报文加密传输方法、装置及电子设备
EP3893435B1 (en) Method and apparatus for processing ioam information
CN111917621A (zh) 通信设备的网管服务器与网元的通信方法及***
CN112242943B (zh) IPSec隧道建立方法及装置、分支设备、中心端设备
WO2021208088A1 (en) Method and apparatus for security communication
CN113890824A (zh) 网络加速方法、装置、网关设备及计算机可读存储介质
US8627061B1 (en) Method and system for employing a fixed IP address based encryption device in a dynamic IP address based network
CN114978643B (zh) 一种通信方法、网络设备及存储介质
CN116471345B (zh) 一种数据通信方法、装置、设备及介质
KR100522090B1 (ko) IPv6 계층에서의 패킷 보호 방법

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