CN113014490A - 一种ip报文转发方法及装置 - Google Patents

一种ip报文转发方法及装置 Download PDF

Info

Publication number
CN113014490A
CN113014490A CN202110214217.2A CN202110214217A CN113014490A CN 113014490 A CN113014490 A CN 113014490A CN 202110214217 A CN202110214217 A CN 202110214217A CN 113014490 A CN113014490 A CN 113014490A
Authority
CN
China
Prior art keywords
message
client
address
packet
header
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.)
Pending
Application number
CN202110214217.2A
Other languages
English (en)
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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202110214217.2A priority Critical patent/CN113014490A/zh
Publication of CN113014490A publication Critical patent/CN113014490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种IP报文转发方法及装置,应用于客户端侧网关设备,所述方法包括:接收客户端发送的IP报文;其中,所述IP报文的报文头部包括所述客户端的IP地址和端口信息;获取所述IP报文的报文头部中的所述客户端的IP地址和端口信息,并将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;向与所述客户端对应的服务端转发所述IP报文,以使服务端侧网关设备在接收到所述IP报文时,基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,并将所述IP报文发送至所述服务端。

Description

一种IP报文转发方法及装置
技术领域
本申请涉及网络通信技术领域,尤其涉及一种IP报文转发方法、装置、电子设备及机器可读存储介质。
背景技术
网络中通常可以部署负载均衡设备,用于根据网络中各个设备的负载情况,将任务分摊到多个操作单元上进行,从而提高任务处理的效率。
在实际应用中,服务端可以根据客户端的IP地址或端口信息,统计出对应的客户端的负载情况。客户端向对应的服务端发送的IP报文在网络中传输时,可能流经多个网关设备,也可能经过多次NAT(Network Address Translation,网络地址转换)处理,导致服务端接收到的IP报文的报文头部中携带的源IP地址和源端口号,并不是初始发包的客户端的IP地址或者端口信息,进而服务端也就无法准确地统计出对应的客户端的负载情况。
发明内容
本申请提供一种IP报文转发方法,应用于客户端侧网关设备,所述方法包括:
接收客户端发送的IP报文;其中,所述IP报文的报文头部包括所述客户端的IP地址和端口信息;
获取所述IP报文的报文头部中的所述客户端的IP地址和端口信息,并将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
向与所述客户端对应的服务端转发所述IP报文,以使服务端侧网关设备在接收到所述IP报文时,基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,并将所述IP报文发送至所述服务端。
可选的,所述将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
对获取到的所述客户端的IP地址和端口信息进行加密处理;
将加密后的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部。
可选的,所述将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的TCP OPTION字段。
可选的,在接收客户端发送的IP报文之后,还包括:
获取所述IP报文的报文头部中的版本字段;
确定与所述版本字段对应的所述IP报文的版本类型;其中,所述IP报文的版本类型包括IPv4和IPv6;
所述将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
如果是IPv4报文,则将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的一个TCP OPTION字段;
如果是IPv6报文,则将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的多个TCP OPTION字段。
本申请还提供一种IP报文转发装置,应用于客户端侧网关设备,所述装置包括:
接收单元,用于接收客户端发送的IP报文;其中,所述IP报文的报文头部包括所述客户端的IP地址和端口信息;
填充单元,用于获取所述IP报文的报文头部中的所述客户端的IP地址和端口信息,并将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
转发单元,用于向与所述客户端对应的服务端转发所述IP报文,以使服务端侧网关设备在接收到所述IP报文时,基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,并将所述IP报文发送至所述服务端。
可选的,所述填充单元,具体用于:
对获取到的所述客户端的IP地址和端口信息进行加密处理;
将加密后的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部。
可选的,所述填充单元,具体用于:
将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的TCP OPTION字段。
可选的,所述接收单元,还用于:
获取所述IP报文的报文头部中的版本字段;
确定与所述版本字段对应的所述IP报文的版本类型;其中,所述IP报文的版本类型包括IPv4和IPv6;
所述填充单元,具体用于:
如果是IPv4报文,则将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的一个TCP OPTION字段;
如果是IPv6报文,则将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的多个TCP OPTION字段。
本申请还提供另一种IP报文转发方法,应用于服务端侧网关设备,所述方法包括:
接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
将所述IP报文发送至所述服务端。
可选的,所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,包括由所述客户端侧网关设备加密后的所述客户端的IP地址和端口信息;
所述基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,包括:
对所述IP报文内层的TCP头部中填充的由所述客户端侧网关设备加密后的所述客户端的IP地址和端口信息进行解密处理;
用解密后得到的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
可选的,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的TCP OPTION字段;
所述基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,包括:
基于所述IP报文内层的TCP头部中的TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
可选的,在接收客户端侧网关设备向与客户端对应的服务端转发的IP报文之后,还包括:
获取所述IP报文的报文头部中的版本字段;
确定与所述版本字段对应的所述IP报文的版本类型;其中,所述IP报文的版本类型包括IPv4和IPv6;
所述基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口,包括:
如果是IPv4报文,则基于所述IP报文内层的TCP头部中一个TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
如果是IPv6报文,则基于所述IP报文内层的TCP头部中多个TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
本申请还提供另一种IP报文转发装置,应用于服务端侧网关设备,所述装置包括:
接收单元,用于接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
替换单元,用于基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
发送单元,用于将所述IP报文发送至所述服务端。
可选的,所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,包括由所述客户端侧网关设备加密后的所述客户端的IP地址和端口信息;
所述替换单元,具体用于:
对所述IP报文内层的TCP头部中填充的由所述客户端侧网关设备加密后的所述客户端的IP地址和端口信息进行解密处理;
用解密后得到的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
可选的,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的TCP OPTION字段;
所述替换单元,具体用于:
基于所述IP报文内层的TCP头部中的TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
可选的,所述接收单元,还用于:
获取所述IP报文的报文头部中的版本字段;
确定与所述版本字段对应的所述IP报文的版本类型;其中,所述IP报文的版本类型包括IPv4和IPv6;
所述替换单元,具体用于:
如果是IPv4报文,则基于所述IP报文内层的TCP头部中一个TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
如果是IPv6报文,则基于所述IP报文内层的TCP头部中多个TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,一方面,客户端侧网关设备通过将客户端发送的IP报文的报文头部中的客户端的IP地址和端口信息,填充到所述IP报文内层的TCP头部后,再转发所述IP报文,可以在IP报文内层的TCP头部中携带初始发包的客户端的IP地址和端口信息,从而在客户端发送给服务端的报文经过多次NAT处理的场景中,服务端侧网关设备仍然可以获取到正确的初始发包的客户端的IP地址和端口信息,以使服务端可以实现准确地统计客户端的负载情况。
另一方面,服务端侧网关设备可以基于上述客户端侧网关设备转发的IP报文内层的TCP头部中填充的客户端的IP地址和端口信息,替换IP报文的报文头部中的源IP地址和源端口号,再将替换后的IP报文发送至服务端,以使服务端无需对IP报文进行额外的处理,就可以根据接收到的IP报文的源IP地址和源端口号,直接获得初始发包的客户端的IP地址和端口信息。
附图说明
图1是一示例性的实施例示出的一种IP报文转发的***架构示意图;
图2是一示例性的实施例示出的一种IP报文转发方法的流程图;
图3是一示例性的实施例示出的一种IP报文转发装置的框图;
图4是一示例性的实施例示出的另一种IP报文转发方法的流程图;
图5是一示例性的实施例示出的另一种IP报文转发装置的框图;
图6是一示例性的实施例示出的一种IP报文转发装置所在电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的IP报文转发的相关技术,进行简要说明。
在TCP/IP网络模型中,客户端向服务端发送报文时,用户数据经过传输层时,可以为封装一层TCP头部,形成TCP报文;经过网络层时,可以为TCP报文封装一层IP头部,形成IP报文。其中,IP报文的报文结构请参见
表1。
IP头部 TCP头部 用户数据
表1
如表1所示,服务端接收到客户端发送的IP报文后,可以再逐层解封,进而得到IP头部中携带的信息、TCP头部中携带的信息以及用户数据。
上述IP报文的TCP头部中,通常可以包括源端口号、目的端口号、TCP头部长度和TCP OPTION字段等。TCP头部结构请参见表2所示例。
Figure BDA0002952531140000081
表2
如表2所示,其中,源端口号(Source Port)可以标识客户端发送该报文的端口号,共16bit,可以用于标识0-65535的端口号;TCP头部长度(HLEN,即Header Length),共4bit,可以用于标识该报文的TCP头部中有多少个4字节,表示TCP头部的最大长度为60字节;TCPOPTION字段(TCP OPTIONS)是可变长的可选信息,最大长度为40字节,TCP OPTION字段的数据结构请参见表3所示例。
Kind Length Info
表3
如表3所示,其中,Kind可以用于表示该TCP OPTION字段的类型,共1字节;Length可以用于表示该TCP OPTION字段的总长度,共1字节;Info用于表示TCP OPTION字段的具体信息。用户可以预先配置TCP OPTION字段的总长度,上述TCP OPTION字段的总长度的包括了Kind和Length占据的2字节。
上述IP报文的IP头部中,通常可以包括版本、上层协议和源IP地址等。IP头部结构请参见表4所示例。
Figure BDA0002952531140000091
表4
如表4所示,其中,版本(Version)可以表示该IP报文对应的IP协议的版本号,如IPv4、IPv6、SIP等,共4bit;上层协议(Protocol)可以表示该IP报文的上层协议,共8bit,如TCP协议对应的值为6,UDP协议对应的值为17等;源IP地址(Source IP Address)可以表示客户端发送该报文的IP地址,共32bit。
需要说明的是,在IPv4协议中,源IP地址共32bit,而在IPv6协议中,源IP地址共128bit;关于IPv6报文的IP头部结构,请参见相关技术,在此不做赘述。
请参见图1,图1是一示例性的实施例示出的一种IP报文转发的***架构示意图。
在本说明书中,***架构可以包括客户端101、网关设备102、网络103、网关设备104和服务端105。
其中,客户端101可以向服务端105发送报文,上述报文可以在经过客户端侧的网关设备102和服务端侧的网关设备104转发后,到达服务端105;网络103可以在客户端侧的网关设备102和服务端侧的网关设备104之间提供通信链路的介质,并且上述网络103中可以包括若干NAT设备,即客户端101向服务端105发送的报文可能会经过若干次NAT处理;服务端105可以根据接收到的报文,统计对应的客户端的负载情况。
在实际应用中,客户端101可以是支持网络功能的电子设备,包括但不限于智能手机、平板电脑和台式电脑等等;客户端侧的网关设备102和服务端侧的网关设备104可以包括搭载有负载均衡或防火墙插件的网关设备,也可以包括可以实现负载均衡、入侵防御等功能的交换设备;网络103可以包括各种形式的网络连接;例如,可以是有线通信链路或者无线通信链路;服务端105可以包括一台或多台服务器形成的服务器集群。
需要说明的是,图1中的客户端101以及服务端105,仅仅示例性的分别画出一台设备,客户端101以及服务端105也可以包括多台终端设备或服务器,本说明书不做限制。
在实际应用中,服务端在根据接收到的报文,统计对应的客户端的负载情况时,接收到的报文的头部中携带的源IP地址和源端口号,可能已经不是初始发送该报文的客户端的IP地址和端口号了;因此,服务端可以根据若干NAT设备对客户端发送的报文进行NAT处理时生成的NAT转换表,获取到与接收到的报文的头部中携带的源IP地址和源端口号对应的初始发包的源IP地址和源端口号。
但是,在以上示出的技术方案中,一方面,服务端在接收到经过多次NAT处理的报文后,需要根据NAT转换表,对接收到的报文的头部中携带的源IP地址和源端口号进行解析,才可以获取到初始发包的源IP地址和源端口号,导致服务端负荷增大,甚至无法正常处理其他业务;另一方面,由于客户端和服务端可能不在同一网段中,客户端发送给服务端的报文在网络中传输时,可能会经过多次NAT处理,因此,服务端获取到真实的初始发包的客户端的IP地址和端口信息的难度也会增加,导致服务端统计与IP地址或端口号对应的客户端的负载情况的准确性降低。
有鉴于此,本说明书旨在提出一种客户端侧网关设备将获取到的客户端的IP地址和端口信息填充到IP报文的TCP头部后,再将IP报文转发给对应的服务端的技术方案。
在实现时,客户端侧网关设备接收客户端发送的IP报文;其中,上述IP报文的报文头部包括上述客户端的IP地址和端口信息;
进一步地,客户端侧网关设备获取上述IP报文的报文头部中的上述客户端的IP地址和端口信息,并将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部;
进一步地,客户端侧网关设备向与上述客户端对应的服务端转发上述IP报文,以使服务端侧网关设备在接收到上述IP报文时,基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号,并将上述IP报文发送至上述服务端。
由此可见,在本说明书中的技术方案中,一方面,客户端侧网关设备通过将客户端发送的IP报文的报文头部中的客户端的IP地址和端口信息,填充到上述IP报文内层的TCP头部后,再转发上述IP报文,可以在IP报文内层的TCP头部中携带初始发包的客户端的IP地址和端口信息,从而在客户端发送给服务端的报文经过多次NAT处理的场景中,服务端侧网关设备仍然可以获取到正确的初始发包的客户端的IP地址和端口信息,以使服务端可以实现准确地统计客户端的负载情况。
另一方面,服务端侧网关设备可以基于上述客户端侧网关设备转发的IP报文内层的TCP头部中填充的客户端的IP地址和端口信息,替换IP报文的报文头部中的源IP地址和源端口号,再将替换后的IP报文发送至服务端,以使服务端无需对IP报文进行额外的处理,就可以根据接收到的IP报文的源IP地址和源端口号,直接获得初始发包的客户端的IP地址和端口信息。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图2,图2是一示例性的实施例示出的一种IP报文转发方法的流程图,上述方法应用于客户端侧网关设备,并且上述方法执行以下步骤:
步骤202:接收客户端发送的IP报文;其中,上述IP报文的报文头部包括上述客户端的IP地址和端口信息;
步骤204:获取上述IP报文的报文头部中的上述客户端的IP地址和端口信息,并将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部;
步骤206:向与上述客户端对应的服务端转发上述IP报文,以使服务端侧网关设备在接收到上述IP报文时,基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号,并将上述IP报文发送至上述服务端。
在本说明书中,上述客户端侧网关设备接收客户端发送的IP报文;其中,上述IP报文的报文头部包括上述客户端的IP地址和端口信息。
在实际应用中,上述报文头部至少可以包括IP头部和TCP头部;其中,上述IP头部中可以包括源IP地址,上述TCP头部中可以包括源端口号。上述客户端侧网关设备接收到客户端发送的IP报文后,根据上述IP报文的报文头部中携带的源IP地址,可以获取上述客户端的IP地址;根据上述IP报文的报文头部中携带的源端口号,可以获取上述客户端的端口信息。
例如,客户端侧网关设备接收客户端发送的IP报文1,上述IP报文1的报文头部中携带的源IP地址为12.1.2.3(对应的十六进制数为0c 01 02 03),源端口号为65535(对应的十六进制数为0f 0f 0f 0f);由此可得,上述客户端的IP地址可以是12.1.2.3,上述客户端的端口信息可以是65535。
又例如,客户端侧网关设备接收客户端发送的IP报文2,上述IP报文2的报文头部中携带的源IP地址为1969:abcd:189c:1190:a1df:2003:9781:1234(十六进制),源端口号为65535(对应的十六进制数为0f 0f 0f 0f);由此可得,上述客户端的IP地址可以是1969:abcd:189c:1190:a1df:2003:9781:1234,上述客户端的端口信息可以是65535。
需要说明的是,在本说明书中,上述IP报文的IP头部中携带的上层协议字段(Protocol)的值为6,即上层协议采用了TCP协议。
在示出的一种实施方式中,上述客户端侧网关设备在接收客户端发送的IP报文之后,还可以包括:上述客户端侧网关设备获取上述IP报文的报文头部中的版本字段;确定与上述版本字段对应的上述IP报文的版本类型;其中,上述IP报文的版本类型包括IPv4和IPv6。
例如,客户端侧网关设备接收客户端发送的IP报文1之后,如表4所示,获取IP报文1的IP头部中携带的版本字段(Version)为0100,可以确定IP报文1的网络协议的版本类型为IPv4协议。
又例如,客户端侧网关设备接收客户端发送的IP报文2之后,获取IP报文2的IP头部中携带的版本字段(Version)为0110,可以确定IP报文2的网络协议的版本类型为IPv6协议。
在本说明书中,上述客户端侧网关设备获取接收到的IP报文的报文头部中的上述客户端的IP地址和端口信息,并将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部。
在实际应用中,上述客户端侧网关设备根据接收到的IP报文的报文头部中的源IP地址和源端口号,可以获取到上述客户端的IP地址和端口信息;进一步地,上述客户端侧网关设备可以将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部。
例如,客户端侧网关设备获取到接收到的IP报文1的报文头部中,客户端的IP地址为12.1.2.3,上述客户端的端口信息为65535;客户端侧网关设备可以按照用户预先配置的填充格式和预设的填充位置,将上述客户端的IP地址和端口信息填充到上述IP报文1内层的TCP头部。
需要说明的是,在本说明书中,关于填充到上述IP报文内层的TCP头部的具***置,可以填充到上述TCP头部中的预留字段,也可以填充到一个或多个用户自定义的选项字段中;关于填充的具体格式和占用的字节大小,本说明书不做限制。
在示出的一种实施方式中,上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部的过程,具体可以包括:上述客户端侧网关设备对获取到的上述客户端的IP地址和端口信息进行加密处理;将加密后的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部。
例如,客户端侧网关设备获取到接收到的IP报文1的报文头部中,客户端的IP地址为12.1.2.3,上述客户端的端口信息为65535;可以先将上述客户端的IP地址处理为“c0 1020 30”,上述客户端的端口信息可以处理为“f0 f0 f0 f0”,然后将加密后的信息填充到上述IP报文内层的TCP头部,如填充到TCP OPTION 28字段中,上述TCP OPTION 28字段可以为“1c 0a c0 10 20 30f0 f0 f0 f0”。
需要说明的是,在以上示出的实施方式中,客户端侧网关设备可以对获取到的客户端的IP地址和端口信息进行加密处理,再填充到IP报文的TCP头部,从而避免直接将客户端的IP地址和端口信息填充到IP报文的报文头部时,网络中的非法设备可能获取到上述信息,导致客户端安全受到威胁。
另外,需要说明的是,关于对客户端的IP地址和端口信息进行加密的具体实现方式,以上示出的仅仅是示例性的描述,用户也可以通过其他加密手段对客户端的IP地址和端口信息进行加密处理,本说明书不做限制。
在示出的另一种实施方式中,上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部的过程,具体可以包括:上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的TCP OPTION字段。
在实际应用中,用户可以利用可自定义的TCP OPTION字段,预先设置上述TCPOPTION字段的总长度(Length),并将获取到的上述客户端的IP地址和端口信息填充到上述TCP OPTION字段的具体信息(Info)中。
例如,客户端侧网关设备获取到接收到的IP报文1的报文头部中,客户端的IP地址为12.1.2.3,上述客户端的端口信息为65535;客户端侧网关设备可以按照用户预先配置的填充格式和预设的填充位置,将上述客户端的IP地址和端口信息填充到上述IP报文1的TCPOPTION 28字段中,即上述TCP OPTION 28字段可以为“1c 0a 0c 01 02 03 0f 0f 0f 0f”,共10个字节;其中,“1c”可以表示上述TCP OPTION 28字段的类型为28,“0a”可以表示上述TCP OPTION 28字段的总长度为10个字节,第3-6个字节为客户端的IP地址,第7-10个字节为客户端的端口信息。
又例如,客户端侧网关设备获取到接收到的IP报文2的报文头部中,客户端的IP地址为1969:abcd:189c:1190:a1df:2003:9781:1234,上述客户端的端口信息为65535;客户端侧网关设备可以按照用户预先配置的填充格式和预设的填充位置,将上述客户端的IP地址和端口信息填充到上述IP报文2的TCP OPTION 29字段中,即上述TCP OPTION 29字段可以为“1d 16 19 69ab cd 18 9c 11 90a1 df 20 03 97 81 12 34 0f 0f 0f 0f”,共22个字节;其中,“1d”可以表示上述TCP OPTION字段的类型为29,“16”(十六进制数)可以表示上述TCP OPTION 29字段的总长度为22个字节,第3-18个字节为客户端的IP地址,第19-22个字节为客户端的端口信息。
需要说明的是,在以上示出的实施方式中,关于上述TCP OPTION字段的具体类型,“28”和“29”仅仅是示例性的描述,用户也可以将获取到的客户端的IP地址和端口信息填充到其他类型的TCP OPTION字段,本说明书不做限制。
在示出的另一种实施方式中,上述客户端侧网关设备确定与上述IP报文的报文头部中的版本字段对应的上述IP报文的版本类型之后,将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部的过程,具体可以包括:如果是IPv4报文,则将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的一个TCPOPTION字段;如果是IPv6报文,则将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的多个TCP OPTION字段。
例如,用户预先设置了填充字段的总长度为12字节;如果客户端侧网关设备确定接收到的IP报文1是IPv4报文,获取到的客户端的IP地址为12.1.2.3,端口信息为65535,则可以将上述客户端的IP地址和端口信息填充到上述IP报文1的TCP OPTION 28字段中,即上述TCP OPTION 28字段可以为“1c 0a 0c 01 02 03 0f 0f 0f 0f 01 01”,共12个字节;其中,“01”可以表示填充字节,即不代表任何含义。
又例如,用户预先设置了填充字段的总长度为12字节;如果客户端侧网关设备确定接收到的IP报文2是IPv6报文,获取到的客户端的IP地址为1969:abcd:189c:1190:a1df:2003:9781:1234,端口信息为65535,则可以将上述客户端的IP地址和端口信息分别填充到上述IP报文2的TCP OPTION 28字段和TCP OPTION 29字段中,即上述TCP OPTION 28字段可以为“1c 0c 19 69ab cd 18 9c 11 90 0f 0f”,上述TCP OPTION 29字段可以为“1d 0c a1df 20 03 97 81 12 34 0f 0f”;其中,“0c”可以表示上述TCP OPTION 28字段和TCPOPTION 29字段的总长度分别为12个字节,TCP OPTION 28字段的第3-10个字节为客户端的IP地址的前半部分,第11-12个字节为客户端的端口信息的前半部分,TCP OPTION 29字段的第3-10个字节为客户端的IP地址的后半部分,第11-12个字节为客户端的端口信息的后半部分。
需要说明的是,在以上示出的实施方式中,关于将客户端的IP地址和端口信息填充到上述IP报文的TCP OPTION字段中的具体数据格式,以上仅仅是示例性的描述,用户可以根据需求进行配置,本说明书不做限制。
在本说明书中,在上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部之后,向与上述客户端对应的服务端转发上述IP报文,以使服务端侧网关设备在接收到上述IP报文时,基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号,并将上述IP报文发送至上述服务端。
在实际应用中,上述客户端侧网关设备向与上述客户端对应的服务端转发的IP报文,在到达上述服务端之前,可能会经过多次NAT或NAPT(Network Address PortTranslation,网络端口地址转换)处理,因此,上述IP报文的IP头部中携带的源IP地址以及TCP头部中携带的源端口号可能不是初始发包时的源IP地址和源端口号。由于上述客户端侧网关设备可以将获取到的客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部,因此,服务端或者服务端侧网关设备就可以根据上述填充到IP报文内层的TCP头部中的信息,获取到真实的客户端的IP地址和端口信息。
例如,在客户端侧网关设备将获取到的客户端的IP地址和端口信息填充到上述IP报文1内层的TCP头部之后,可以根据上述IP报文1的目的IP地址和目的端口号,向与上述客户端对应的服务端转发上述完成填充的IP报文1;服务端侧网关设备在接收到上述完成填充的IP报文1时,可以基于IP报文1的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的IP头部中的源IP地址和TCP头部中的源端口号,并将完成替换的IP报文1发送给服务端;服务端接收到上述完成替换的IP报文1时,可以直接根据IP报文1的源IP地址和源端口号,获取到客户端的IP地址和端口信息。
通过以上技术方案可知,客户端侧网关设备通过将客户端发送的IP报文的报文头部中的客户端的IP地址和端口信息,填充到上述IP报文内层的TCP头部后,再转发上述IP报文,可以在IP报文内层的TCP头部中携带初始发包的客户端的IP地址和端口信息,从而在客户端发送给服务端的报文经过多次NAT处理的场景中,服务端侧网关设备仍然可以获取到正确的初始发包的客户端的IP地址和端口信息,以使服务端可以实现准确地统计客户端的负载情况。
与上述方法实施例对应地,本说明书还提供了一种IP报文转发装置的实施例。
请参见图3,图3是一示例性的实施例示出的一种IP报文转发装置的框图,上述装置应用于客户端侧网关设备,上述装置可以包括如下所示模块:
接收单元301,用于接收客户端发送的IP报文;其中,上述IP报文的报文头部包括上述客户端的IP地址和端口信息;
填充单元302,用于获取上述IP报文的报文头部中的上述客户端的IP地址和端口信息,并将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部;
转发单元303,用于向与上述客户端对应的服务端转发上述IP报文,以使服务端侧网关设备在接收到上述IP报文时,基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号,并将上述IP报文发送至上述服务端。
在本实施例中,上述填充单元302,具体用于:
对获取到的上述客户端的IP地址和端口信息进行加密处理;
将加密后的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部。
在本实施例中,上述填充单元302,具体用于:
将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的TCP OPTION字段。
在本实施例中,上述接收单元301,还用于:
获取上述IP报文的报文头部中的版本字段;
确定与上述版本字段对应的上述IP报文的版本类型;其中,上述IP报文的版本类型包括IPv4和IPv6;
上述填充单元302,具体用于:
如果是IPv4报文,则将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的一个TCP OPTION字段;
如果是IPv6报文,则将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的多个TCP OPTION字段。
请参见图4,图4是一示例性的实施例示出的另一种IP报文转发方法的流程图,上述方法应用于服务端侧网关设备,并且上述方法执行以下步骤:
步骤402:接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部;
步骤404:基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号;
步骤406:将上述IP报文发送至上述服务端。
在本说明书中,上述服务端侧网关设备接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部。
在实际应用中,由于上述客户端侧网关设备向与客户端对应的服务端转发的IP报文在到达上述服务端侧网关设备之前,可能经过多次NAT或NAPT处理,因此,上述接收到的IP报文的报文头部中的源IP地址和源端口号,可能并不是初始发包时的源IP地址和源端口号。
例如,服务端侧网关设备接收客户端侧网关设备向与客户端对应的服务端转发的IP报文,上述IP报文的报文头部中的源IP地址和源端口号,可以不是客户端的IP地址和端口信息,并且上述IP报文内层的TCP头部中填充有上述客户端的IP地址和端口信息。
在示出的一种实施方式中,上述服务端侧网关设备获取上述IP报文的报文头部中的版本字段;确定与上述版本字段对应的上述IP报文的版本类型;其中,上述IP报文的版本类型包括IPv4和IPv6。
例如,客户端侧网关设备接收客户端发送的IP报文1之后,如表4所示,获取IP报文1的IP头部中携带的版本字段(Version)为0100,可以确定IP报文1的网络协议的版本类型为IPv4协议。
又例如,客户端侧网关设备接收客户端发送的IP报文2之后,获取IP报文2的IP头部中携带的版本字段(Version)为0110,可以确定IP报文2的网络协议的版本类型为IPv6协议。
在本说明书中,上述服务端侧网关设备基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
在实际应用中,上述服务端侧网关设备可以基于接收到的IP报文内层的TCP头部,提取出其中填充的上述客户端的IP地址和端口信息,并用提取出的上述客户端的IP地址和端口信息,替换上述接收到的IP报文的报文头部中的源IP地址和源端口号。
例如,服务端侧网关设备可以基于接收到的IP报文1的TCP头部,获取到填充在其中的客户端的IP地址为12.1.2.3,端口信息为65535;并且用上述获取到的客户端的IP地址和端口信息,替换上述接收到的IP报文1的报文头部中的源IP地址和源端口号,即在替换后的IP报文1的报文头部中,源IP地址为12.1.2.3,源端口号为65535。
需要说明的是,上述服务端侧网关设备用上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号之后,替换后的IP报文的源IP地址和源端口号,可以用于表示初始发包的客户端的IP地址和端口信息。
在示出的一种实施方式中,上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息经过上述客户端侧网关设备加密时,上述服务端侧网关设备基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号的过程,具体包括:上述服务端侧网关设备对上述IP报文内层的TCP头部中填充的由上述客户端侧网关设备加密后的上述客户端的IP地址和端口信息进行解密处理;用解密后得到的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
例如,服务端侧网关设备基于接收到的IP报文1内层的TCP头部中填充的信息,可以获得客户端侧网关设备加密后的客户端的IP地址为“c0 10 2030”,端口信息为“f0 f0f0 f0”;服务端侧网关设备可以根据与客户端侧网关设备预先约定的算法进行解密,获取到客户端的IP地址为“0c 01 02 03”,端口信息为“0f 0f 0f 0f”,并且可以用解密后得到的上述客户端的IP地址和端口信息,替换上述IP报文1的报文头部中的源IP地址和源端口号。
在示出的另一种实施方式中,上述服务端侧网关设备基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号的过程,具体可以包括:上述服务端侧网关设备基于上述IP报文内层的TCP头部中的TCP OPTION字段中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
例如,服务端侧网关设备接收到的IP报文1的TCP OPTION 28字段为“1c 0a 0c 0102 03 0f 0f 0f 0f”,可以获取到客户端的IP地址为“0c 01 02 03”,端口信息为“0f 0f0f 0f”;并且可以用上述获取到的客户端的IP地址替换上述接收到的IP报文1的IP头部中的源IP地址,用上述获取到的客户端的端口信息替换上述接收到的IP报文1的TCP头部中的源端口号,即在替换后的IP报文1的报文头部中,源IP地址为12.1.2.3,源端口号为65535。
又例如,服务端侧网关设备接收到的IP报文2的TCP OPTION 29字段为“1d 16 1969ab cd 18 9c 11 90a1 df 20 03 97 81 12 34 0f 0f 0f 0f”,可以获取到客户端的IP地址为“19 69ab cd 18 9c 11 90a1 df 20 03 97 81 12 34”,端口信息为“0f 0f 0f0f”;并且可以用上述获取到的客户端的IP地址和端口信息,替换上述接收到的IP报文2的报文头部中的源IP地址和源端口号,即在替换后的IP报文2的报文头部中,源IP地址为1969:abcd:189c:1190:a1df:2003:9781:1234,源端口号为65535。
在示出的另一种实施方式中,上述服务端侧网关设备在确定与版本字段对应的上述IP报文的版本类型之后,基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口的过程,具体可以包括:如果是IPv4报文,则基于上述IP报文内层的TCP头部中一个TCP OPTION字段中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号;如果是IPv6报文,则基于上述IP报文内层的TCP头部中多个TCP OPTION字段中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
例如,如果服务端侧网关设备确定接收到的IP报文1是IPv4报文,接收到的IP报文1的TCP OPTION 28字段为“1c 0a 0c 01 02 03 0f 0f 0f 0f 01 01”,可以获取到客户端的IP地址为“0c 01 02 03”,端口信息为“0f 0f 0f 0f”;并且可以用上述获取到的客户端的IP地址和端口信息分别替换上述接收到的IP报文1的报文头部中的源IP地址和源端口号,即在替换后的IP报文1的报文头部中,源IP地址为12.1.2.3,源端口号为65535。
又例如,如果服务端侧网关设备确定接收到的IP报文2是IPv6报文,接收到的IP报文2的TCP OPTION 28字段为“1c 0c 19 69ab cd 18 9c 11 90 0f 0f”,TCP OPTION 29字段为“1d 0c a1 df 20 03 97 81 12 34 0f 0f”,可以获取到客户端的IP地址为“19 69abcd 18 9c 11 90a1 df 20 03 97 81 12 34”,端口信息为65535;并且可以用上述获取到的客户端的IP地址和端口信息,替换上述接收到的IP报文2的报文头部中的源IP地址和源端口号,即在替换后的IP报文2的报文头部中,源IP地址为1969:abcd:189c:1190:a1df:2003:9781:1234,源端口号为65535。
在本说明书中,上述服务端侧网关设备基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号之后,将上述IP报文发送至上述服务端。
在实际应用中,上述服务端侧网关设备可以将上述替换报文头部中的源IP地址和源端口号后的IP报文发送给服务端;服务端在接收到上述替换后的IP报文时,根据上述替换后的IP报文的源IP地址和源端口号,可以直接获取到客户端的IP地址和端口信息。
例如,上述替换后的IP报文1的报文头部中的源IP地址和源端口号,分别为上述获取到的客户端的IP地址和端口信息,服务端侧网关设备可以将上述替换后的IP报文1发送给服务端。
通过以上技术方案可知,一方面,服务端侧网关设备可以基于上述客户端侧网关设备转发的IP报文内层的TCP头部中填充的客户端的IP地址和端口信息,替换IP报文的报文头部中的源IP地址和源端口号,再将替换后的IP报文发送至服务端,以使服务端无需对IP报文进行额外的处理,就可以根据接收到的IP报文的源IP地址和源端口号,直接获得初始发包的客户端的IP地址和端口信息。
另一方面,客户端侧网关设备通过将客户端发送的IP报文的报文头部中的客户端的IP地址和端口信息,填充到所述IP报文内层的TCP头部后,再转发所述IP报文,可以在IP报文内层的TCP头部中携带初始发包的客户端的IP地址和端口信息,从而在客户端发送给服务端的报文经过多次NAT处理的场景中,服务端侧网关设备仍然可以获取到正确的初始发包的客户端的IP地址和端口信息,以使服务端可以实现准确地统计客户端的负载情况。
与上述方法实施例对应地,本说明书还提供了另一种IP报文转发装置的实施例。
请参见图5,图5是一示例性的实施例示出的另一种IP报文转发装置的框图,上述装置应用于服务端侧网关设备,上述装置可以包括如下所示模块:
接收单元501,用于接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部;
替换单元502,用于基于上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号;
发送单元503,用于将上述IP报文发送至上述服务端。
在本实施例中,上述IP报文内层的TCP头部中填充的上述客户端的IP地址和端口信息,包括由上述客户端侧网关设备加密后的上述客户端的IP地址和端口信息;
上述替换单元502,具体用于:
对上述IP报文内层的TCP头部中填充的由上述客户端侧网关设备加密后的上述客户端的IP地址和端口信息进行解密处理;
用解密后得到的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
在本实施例中,上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部,包括:
上述客户端侧网关设备将获取到的上述客户端的IP地址和端口信息填充到上述IP报文内层的TCP头部中的TCP OPTION字段;
上述替换单元502,具体用于:
基于上述IP报文内层的TCP头部中的TCP OPTION字段中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
在本实施例中,上述接收单元501,还用于:
获取上述IP报文的报文头部中的版本字段;
确定与上述版本字段对应的上述IP报文的版本类型;其中,上述IP报文的版本类型包括IPv4和IPv6;
上述替换单元502,具体用于:
如果是IPv4报文,则基于上述IP报文内层的TCP头部中一个TCP OPTION字段中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号;
如果是IPv6报文,则基于上述IP报文内层的TCP头部中多个TCP OPTION字段中填充的上述客户端的IP地址和端口信息,替换上述IP报文的报文头部中的源IP地址和源端口号。
此外,本说明书还提供了一种IP报文转发装置所在的电子设备的实施例。
与上述方法实施例对应地,本说明书还提供了一种IP报文转发装置的实施例。本说明书的IP报文转发装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器,将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,请参见图6,图6是一示例性的实施例示出的一种IP报文转发装置所在电子设备的硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种IP报文转发方法,其特征在于,应用于客户端侧网关设备,所述方法包括:
接收客户端发送的IP报文;其中,所述IP报文的报文头部包括所述客户端的IP地址和端口信息;
获取所述IP报文的报文头部中的所述客户端的IP地址和端口信息,并将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
向与所述客户端对应的服务端转发所述IP报文,以使服务端侧网关设备在接收到所述IP报文时,基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,并将所述IP报文发送至所述服务端。
2.根据权利要求1所述的方法,其特征在于,所述将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
对获取到的所述客户端的IP地址和端口信息进行加密处理;
将加密后的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部。
3.根据权利要求1所述的方法,其特征在于,所述将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的TCP OPTION字段。
4.根据权利要求3所述的方法,其特征在于,在接收客户端发送的IP报文之后,还包括:
获取所述IP报文的报文头部中的版本字段;
确定与所述版本字段对应的所述IP报文的版本类型;其中,所述IP报文的版本类型包括IPv4和IPv6;
所述将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
如果是IPv4报文,则将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的一个TCP OPTION字段;
如果是IPv6报文,则将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的多个TCP OPTION字段。
5.一种IP报文转发方法,其特征在于,应用于服务端侧网关设备,所述方法包括:
接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
将所述IP报文发送至所述服务端。
6.根据权利要求5所述的方法,其特征在于,所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,包括由所述客户端侧网关设备加密后的所述客户端的IP地址和端口信息;
所述基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,包括:
对所述IP报文内层的TCP头部中填充的由所述客户端侧网关设备加密后的所述客户端的IP地址和端口信息进行解密处理;
用解密后得到的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
7.根据权利要求5所述的方法,其特征在于,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部,包括:
所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部中的TCP OPTION字段;
所述基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,包括:
基于所述IP报文内层的TCP头部中的TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
8.根据权利要求7所述的方法,其特征在于,在接收客户端侧网关设备向与客户端对应的服务端转发的IP报文之后,还包括:
获取所述IP报文的报文头部中的版本字段;
确定与所述版本字段对应的所述IP报文的版本类型;其中,所述IP报文的版本类型包括IPv4和IPv6;
所述基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口,包括:
如果是IPv4报文,则基于所述IP报文内层的TCP头部中一个TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
如果是IPv6报文,则基于所述IP报文内层的TCP头部中多个TCP OPTION字段中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号。
9.一种IP报文转发装置,其特征在于,应用于客户端侧网关设备,所述装置包括:
接收单元,用于接收客户端发送的IP报文;其中,所述IP报文的报文头部包括所述客户端的IP地址和端口信息;
填充单元,用于获取所述IP报文的报文头部中的所述客户端的IP地址和端口信息,并将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
转发单元,用于向与所述客户端对应的服务端转发所述IP报文,以使服务端侧网关设备在接收到所述IP报文时,基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号,并将所述IP报文发送至所述服务端。
10.一种IP报文转发装置,其特征在于,应用于服务端侧网关设备,所述装置包括:
接收单元,用于接收客户端侧网关设备向与客户端对应的服务端转发的IP报文;其中,所述客户端侧网关设备将获取到的所述客户端的IP地址和端口信息填充到所述IP报文内层的TCP头部;
替换单元,用于基于所述IP报文内层的TCP头部中填充的所述客户端的IP地址和端口信息,替换所述IP报文的报文头部中的源IP地址和源端口号;
发送单元,用于将所述IP报文发送至所述服务端。
CN202110214217.2A 2021-02-25 2021-02-25 一种ip报文转发方法及装置 Pending CN113014490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110214217.2A CN113014490A (zh) 2021-02-25 2021-02-25 一种ip报文转发方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110214217.2A CN113014490A (zh) 2021-02-25 2021-02-25 一种ip报文转发方法及装置

Publications (1)

Publication Number Publication Date
CN113014490A true CN113014490A (zh) 2021-06-22

Family

ID=76386042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110214217.2A Pending CN113014490A (zh) 2021-02-25 2021-02-25 一种ip报文转发方法及装置

Country Status (1)

Country Link
CN (1) CN113014490A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794703A (zh) * 2021-08-31 2021-12-14 上海弘积信息科技有限公司 一种负载均衡***中获取客户端ip的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554065A (zh) * 2015-12-03 2016-05-04 华为技术有限公司 处理报文的方法、转换单元和应用单元
WO2016101591A1 (zh) * 2014-12-22 2016-06-30 华为技术有限公司 一种报文响应方法及装置
CN108769291A (zh) * 2018-06-22 2018-11-06 北京云枢网络科技有限公司 一种报文处理方法、装置及电子设备
CN109413224A (zh) * 2018-11-12 2019-03-01 杭州数梦工场科技有限公司 报文转发方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101591A1 (zh) * 2014-12-22 2016-06-30 华为技术有限公司 一种报文响应方法及装置
CN105554065A (zh) * 2015-12-03 2016-05-04 华为技术有限公司 处理报文的方法、转换单元和应用单元
CN108769291A (zh) * 2018-06-22 2018-11-06 北京云枢网络科技有限公司 一种报文处理方法、装置及电子设备
CN109413224A (zh) * 2018-11-12 2019-03-01 杭州数梦工场科技有限公司 报文转发方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794703A (zh) * 2021-08-31 2021-12-14 上海弘积信息科技有限公司 一种负载均衡***中获取客户端ip的方法

Similar Documents

Publication Publication Date Title
CN109450852B (zh) 网络通信加密解密方法及电子设备
CN107547508B (zh) 一种报文发送、接收方法、装置及网络设备
US7860975B2 (en) System and method for secure sticky routing of requests within a server farm
US20070116285A1 (en) Method and system for secure packet communication
CN107528917B (zh) 一种文件存储方法及装置
CN112887259A (zh) 基于应用的网络安全
CN111107087B (zh) 报文检测方法及装置
CN108011927A (zh) 请求数据的方法、装置以及存储介质和电子设备
US11784977B2 (en) Methods, apparatus, and systems for an encryption mode via a virtual private network
CN110620762A (zh) 基于rdma的数据传输方法、网卡、服务器及介质
US11218454B2 (en) Facilitating user privacy in communications involving semantic-bearing IPv6 addresses
CN101764825B (zh) 虚拟专用网的数据传输方法、***及终端、网关设备
US8880892B2 (en) Secured embedded data encryption systems
CN115604221A (zh) 信息处理方法、中间解析器、网络设备及存储介质
CN113014490A (zh) 一种ip报文转发方法及装置
CN110832806B (zh) 针对面向身份的网络的基于id的数据面安全
CN116527405B (zh) 一种srv6报文加密传输方法、装置及电子设备
US11082411B2 (en) RDMA-based data transmission method, network interface card, server and medium
CN111835613B (zh) 一种vpn服务器的数据传输方法及vpn服务器
CN110022344B (zh) 通信方法、非暂时性计算机可读存储介质、存储访问***
EP3276920B1 (en) Message processing method, device and system
CN110086702B (zh) 报文转发方法、装置、电子设备及机器可读存储介质
CN114826672A (zh) 云网络的加密、解密方法、装置、计算节点及***
CN107547684A (zh) 一种IPv6地址分配方法和装置
CN111224855A (zh) 基于Linux的虚拟网卡实现方法、装置、设备及介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210622

RJ01 Rejection of invention patent application after publication