CN114172976B - 上下游连接关联方法、装置、网络转发设备、系统及介质 - Google Patents
上下游连接关联方法、装置、网络转发设备、系统及介质 Download PDFInfo
- Publication number
- CN114172976B CN114172976B CN202111335324.7A CN202111335324A CN114172976B CN 114172976 B CN114172976 B CN 114172976B CN 202111335324 A CN202111335324 A CN 202111335324A CN 114172976 B CN114172976 B CN 114172976B
- Authority
- CN
- China
- Prior art keywords
- downstream
- upstream
- connection request
- layer process
- connection
- 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
- 238000011144 upstream manufacturing Methods 0.000 title claims abstract description 238
- 238000000034 method Methods 0.000 title claims abstract description 180
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 241001310793 Podium Species 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种上下游连接关联方法、装置、网络转发设备、系统及介质,其方法应用于网络转发设备,包括:底层进程接收客户端发送的下游连接请求,建立下游连接会话;应用层进程接收底层进程发送的下游连接请求,解析得到下游连接请求中的下游五元组信息,应用层进程生成包含下游五元组信息和上游五元组信息的上游连接请求;底层进程接收应用层进程发送的上游连接请求,解析得到下游五元组信息和上游五元组信息,基于下游五元组信息和上游五元组信息进行上下游连接的关联;底层进程卸载上游连接请求中的下游五元组信息,并将卸载后的上游连接请求发送到服务器。本申请具有降低代码复杂度以及减少系统资源开销的效果。
Description
技术领域
本申请涉及网络数据转发的技术领域,尤其是涉及一种上下游连接关联方法、装置、网络转发设备、系统及介质。
背景技术
对于某些网络转发设备而言,如代理设备,在实现网络转发功能时可能具有上下游两条连接,其中,下游连接是指代理设备与客户端的连接,上游连接是指代理设备与服务器的连接。对于应用层进程而言,可以知道上下游连接的对应关系,但对于应用层以下的进程,却只能确定这是两条独立连接,而不能确认下游连接与上游连接是否构成同一转发关系。出于对业务需求的考虑,应用层以下的进程需要确认上下游的连接关系。
相关技术中,应用层以下的进程主要通过进程间的通信实现上下游的连接与关联,其中进程间的通信方式有共享内存、消息队列、本地socket套接字等。当应用层以下的进程通过进程间的通信方式建立上下游连接与关联时,需要建立一套进程间通信代码或通过调用系统函数接口来实现。
发明人认为,若通过建立一套通信代码实现上下游的连接和关联,则会增加代码复杂度,并会增加进程间的耦合度;若通过频繁调用系统函数接口实现上下游的连接和关联,则会加大系统开销,占用较多的系统性能。
发明内容
为了降低代码复杂度和减少系统资源开销,本申请提供一种上下游连接关联方法、装置、网络转发设备、系统及介质。
第一方面,本申请提供一种上下游连接关联方法,采用如下的技术方案:
一种上下游连接关联方法,应用于网络转发设备,包括:
底层进程接收客户端发送的下游连接请求,建立下游连接会话;
应用层进程接收所述底层进程发送的所述下游连接请求,解析得到所述下游连接请求中的下游五元组信息,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求;
所述底层进程接收所述应用层进程发送的所述上游连接请求,解析得到所述下游五元组信息和所述上游五元组信息,基于所述下游五元组信息和所述上游五元组信息进行上下游连接的关联;
所述底层进程卸载所述上游连接请求中的所述下游五元组信息,并将卸载后的上游连接请求发送到服务器。
通过采用上述技术方案,获取下游连接请求的下游五元组信息,并将下游五元组信息设置到上游连接请求中,使发往服务器的上游连接请求携带下游五元组信息,通过上游五元组信息和下游五元组信息建立上下游关联,相比于建立一套进程间通信代码和调用系统函数接口这两种方式,不仅所需代码量较小,也不会增大系统的开销。
可选的,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求,包括:
所述应用层进程创建所述服务器对应的socket套接字,调用setsockopt函数接口将所述下游五元组信息设置到上游连接请求中ip包头的option字段,并将所述上游连接请求发送至所述底层进程;
所述底层进程卸载所述上游连接请求中的所述下游五元组信息,包括:
基于所述应用层进程创建所述服务器对应的socket套接字,将所述下游五元组信息从上游连接请求中ip包头的option字段卸载。
通过采用上述技术方案,网络层在对上游连接请求中的数据包进行封装时,若数据包为ipv4数据包,则可以通过调用setsockopt函数接口将下游五元组信息设置到上游连接请求的option字段,使发往服务器的上游连接请求携带下游五元组信息,从而使底层进程获取下游连接与上游连接构成的同一转发关系。
可选的,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求,包括:
所述应用层进程创建所述服务器对应的socket套接字,调用setsockopt函数接口将所述下游五元组信息设置到上游连接请求中ip包头的扩展头字段,并将所述上游连接请求发送至所述底层进程;
所述底层进程卸载所述上游连接请求中的所述下游五元组信息,包括:
所述底层进程直接将所述下游五元组信息从所述上游连接请求中ip包头的扩展头字段中卸载。
通过采用上述技术方案,网络层在对上游连接请求中的数据包进行封装时,若数据包为ipv6数据包,则可以通过调用setsockopt函数接口将下游五元组信息设置到上游连接请求的扩展头字段,使发往服务器的上游连接请求携带下游五元组信息,从而使底层进程获取下游连接与上游连接构成的同一转发关系。
可选的,在所述底层进程接收客户端发送的下游连接请求,建立下游连接会话之后,还包括:
所述底层进程基于所述下游五元组信息将所述下游连接会话存储于下游连接会话表中;
所述基于所述下游五元组信息和所述上游五元组信息进行上下游连接的关联,包括:
所述底层进程获取所述下游连接会话表中与所述下游五元组信息对应的下游连接会话;
所述底层进程查询上游连接会话表中是否存在与所述上游五元组信息对应的上游连接会话;
若是,则将查询到的上游连接会话与所述下游五元组信息对应的下游连接会话进行关联;
若否,则将基于所述上游五元组信息建立上游连接会话存储于所述上游连接会话表中,将建立的上游连接会话与所述下游五元组信息对应的下游连接会话进行关联。
通过采用上述技术方案,通过查询下游连接会话表中的下游连接会话和上游连接会话表中的上游连接会话,进行上游连接会话和下游连接会话的关联,从而使底层进程获取上游连接与下游连接的同一转发关系,进而实现客户端与服务器之间的通信。
可选的,所述底层进程将所述上游五元组信息对应的上游连接会话与所述下游五元组信息对应的下游连接会话进行关联,包括:
所述底层进程获取所述下游连接会话表中的下游会话数据结构对应的下游数据结构体指针,将所述下游数据结构体指针赋值到上游连接会话地址;
所述底层进程获取所述上游连接会话表中的上游会话数据结构对应的上游数据结构体指针,将所述下游数据结构体指针赋值到下游连接会话地址。
通过采用上述技术方案,采用数据结构体指针方式实现上下游连接会话的关联,使上游连接会话和下游连接会话共同使用客户端ip地址和服务器ip地址,从而构成上游连接会话和下游连接会话的同一转发关系。
可选的,在所述底层进程接收客户端发送的下游连接请求之前,还包括:
所述应用层进程创建所述客户端对应的socket套接字以监听所述客户端对应的端口,并通过所述端口接收所述客户端发送的下游连接请求。
第二方面,本申请提供一种上下游连接关联装置,采用如下的技术方案:
一种上下游连接关联装置,应用于网络转发设备,所述装置包括:
接收建立模块,用于底层进程接收客户端发送的下游连接请求,建立下游连接会话;
解析生成模块,用于应用层进程接收所述底层进程发送的所述下游连接请求,解析得到所述下游连接请求中的下游五元组信息,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求;
解析关联模块,用于所述底层进程接收所述应用层进程发送的所述上游连接请求,解析得到所述下游五元组信息和所述上游五元组信息,基于所述下游五元组信息和所述上游五元组信息进行上下游连接的关联;
卸载发送模块,用于所述底层进程卸载所述上游连接请求中的所述下游五元组信息,并将卸载后的上游连接请求发送到服务器。
第三方面,本申请提供一种网络转发设备,采用如下的技术方案:
一种网络转发设备,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面任一项所述的方法的计算机程序。
第四方面,一种上下游连接关联系统,包括客户端、服务器以及第三方面所述的网络转发设备;
第五方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面任一项所述的方法的计算机程序。
附图说明
图1是本申请实施例的一种上下游连接关联方法的结构框图。
图2是本申请实施例步骤S300子步骤的结构框图。
图3是本申请实施例的一种上下游连接关联装置500的结构框图。
图4是本申请实施例的一种网络转发设备600的结构框图。
图5是本申请实施例的一种上下游连接关联系统700的结构框图。
具体实施方式
以下结合附图对本申请作进一步详细说明。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本实施例提供一种上下游连接关联方法,该上下游连接关联方法可由网络转发设备执行,该网络转发设备可以为代理设备。对于客户端与服务器之间的通信,先由客户端向代理设备发送下游连接请求,代理设备接收下游连接请求并向服务器发送上游连接请求,此时代理设备建立了上下游连接关联,所以当服务器向客户端发送信息时,代理设备可直接通过上下游连接关联向客户端发送信息,故本实施例提供的上下游连接关联方法阐述的是从客户端向服务器发送连接请求这一过程。
如图1所示,本申请实施例提供一种上下游连接关联方法,该方法的主要流程描述如下(步骤S100~S400):
步骤S100,底层进程接收客户端发送的下游连接请求,建立下游连接会话;
在本实施例中,客户端可以是智能手机、平板电脑、台式计算机、笔记本本电脑等,但并不局限于此。
在代理设备的底层进程接收客户端发送的下游连接请求之前,客户端需要创建与代理设备建立连接的socket套接字,并向代理设备发送下游连接请求,因此,在步骤S100之前,该方法还包括:
应用层进程创建客户端对应的socket套接字以监听客户端对应的端口,并通过端口接收客户端发送的下游连接请求。
在本实施例中,下游连接请求包含传输层协议,传输层协议可以为TCP协议,也可以为UDP协议。
若客户端使用的传输层协议为TCP协议,则客户端会通过三次握手与代理设备建立连接并发送下游连接请求。在本实施例中,客户端调用connect函数向代理设备的底层进程发送下游数据包,底层进程将下游数据包发送给应用层进程进行处理。
若客户端使用的传输层协议为UDP协议,则客户端直接发送下游连接请求。在本实施例中,客户端直接调用sendto函数向代理设备的底层进程发送下游数据包。
在本实施例中,代理设备的底层进程接收客户端发送的下游连接请求,下游连接请求为客户端发送的下游数据包,代理设备的底层进程提取下游数据包中的下游五元组信息。其中,下游五元组信息包括客户端ip地址、客户端端口号、代理设备ip地址、代理设备端口号以及传输层协议等信息。
在代理设备的底层进程中设置有下游连接会话表,当下游数据包到达代理设备的底层进程时,底层进程提取下游五元组信息,并将下游五元组信息转化为hash值存储在下游会话连接表中。其中,将下游五元组信息转化为hash值可以采用md4算法或sha224算法,对此本实施例不做具体限定。
步骤S200,应用层进程接收底层进程发送的下游连接请求,解析得到下游连接请求中的下游五元组信息,应用层进程生成包含下游五元组信息和上游五元组信息的上游连接请求;
当代理设备的应用层进程接收到下游数据包时,应用层进程会创建服务器对应的socket套接字,调用setsockopt函数接口将下游五元组信息设置到上游连接请求中,代理设备向服务器发送上游连接请求与客户端向代理设备发送下游连接请求的过程一致,在此不做赘述。
需要注意的是,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务,但并不局限于此。
在本实施中,代理设备的应用层进程在生成上游连接请求时,若客户端与代理设备之间采用ipv4协议,则代理设备的应用层进程会利用服务器对应的套接字调用setsockopt函数,将下游五元组信息设置到上游数据包的ip包头的option位置上,并将带有下游五元组信息的上游数据包发送给代理设备的底层进程。
若客户端与代理设备之间采用ipv6协议,则代理设备的应用层进程会利用服务器对应的套接字调用setsockopt函数,将下游五元组信息设置到上游连接请求中ip包头的扩展头字段,并将带有下游五元组信息的上游数据包发送给代理设备的底层进程。
步骤S300,底层进程接收应用层进程发送的上游连接请求,解析得到下游五元组信息和上游五元组信息,基于下游五元组信息和上游五元组信息进行上下游连接的关联;
具体的,如图2所示,步骤S300包括以下子步骤:
步骤S301,底层进程获取下游连接会话表中与下游五元组信息对应的下游连接会话;
在本实施例中,当上游数据包到达底层进程中时,底层进程将上游数据包中的下游五元组信息转换为hash值,并在下游连接会话表中直接查找下游五元组信息对应的下游连接会话。在本实施例中,hash算法与上述hash算法一致,再此不作赘述。
步骤S302,底层进程查询上游连接会话表中是否存在与上游五元组信息对应的上游连接会话;若是,则进入步骤S303;若否,则进入步骤S304。
步骤S303,将查询到的上游连接会话与下游五元组信息对应的下游连接会话进行关联;
在本实施例中,代理设备的底层进程获取上游连接会话后,首先将上游连接会话中的下游五元组信息转化为hash值,并在下游连接会话表中查找下游会话数据结构,基于下游会话数据结构获取下游连接会话对应的会话数据结构指针,将下游数据结构体指针赋值到上游连接会话地址,下游连接会话对应的下游会话数据结构指针为客户端的ip地址。
同理,查找上连接会话表中的上游会话数据结构,基于上游会话数据结构获取上游连接会话对应的会话数据结构指针,将上游数据结构体指针赋值到下游连接会话地址,上游连接会话对应的上游会话数据结构指针为服务器的ip地址。
步骤S304,将基于上游五元组信息建立的上游连接会话储于上游连接会话表中,将建立的上游连接会话与下游五元组信息对应的下游连接会话进行关联;
在本实施例中,当下游连接请求到达代理设备的底层进程时,首先提取上游五元组信息,并将上游五元组信息对应的上游连接会话存储在上游连接会话表中。在上游连接会话表中没有查找到与上游五元组信息对应的上游连接会话时,将建立的上游连接会话与下游五元组信息对应的下游连接会话进行关联,关联过程与步骤S303一致,在此不再赘述。
步骤S400,底层进程卸载上游连接请求中的下游五元组信息,并将卸载后的上游连接请求发送到服务器。
在本实施例中,由于上游数据包中的下游五组信息不符合标准协议,当携带下游五元组信息经过路由器或服务器时会丢弃,所以代理设备的上游连接会话和下游连接会话建立完关联发给服务器之前,需要将上游数据包中的下游五元组信息卸载,从而减少丢包率。若上游数据包为ipv4数据包,则通过代理设备的应用层进程中服务器对应的套接字socket套接字将option字段从上游数据包卸载;若上游数据包为ipv6数据包,则直接删除扩展头字段上的下游五元组信息。
图3为本申请实施例提供的一种上下游连接关联装置500的结构框图。如图3所示,该上下游连接关联装置500主要包括:
接收建立模块501,用于底层进程接收客户端发送的下游连接请求,建立下游连接会话;
解析生成模块502,用于应用层进程接收底层进程发送的下游连接请求,解析得到下游连接请求中的下游五元组信息,应用层进程生成包含下游五元组信息和上游五元组信息的上游连接请求;
解析关联模块503,用于底层进程接收应用层进程发送的上游连接请求,解析得到下游五元组信息和上游五元组信息,基于下游五元组信息和上游五元组信息进行上下游连接的关联;
卸载发送模块504,用于底层进程卸载上游连接请求中的下游五元组信息,并将卸载后的上游连接请求发送到服务器。
在本可选实施例中,解析生成模块502具体用于应用层进程创建服务器对应的socket套接字,调用setsockopt函数接口将下游五元组信息设置到上游连接请求中ip包头的option字段,并将上游连接请求发送至底层进程;解析生成模块502还具体用于应用层进程创建服务器对应的socket套接字,调用setsockopt函数接口将下游五元组信息设置到上游连接请求中ip包头的扩展头字段,并将上游连接请求发送至底层进程。
作为本实施例的一种可选实施方式,解析关联模块503包括:
获取子模块,用于底层进程获取下游连接会话表中与下游五元组信息对应的下游连接会话;
查询子模块,用于底层进程查询上游连接会话表中是否存在与上游五元组信息对应的上游连接会话,若是,则进入第一关联子模块,否则进入第二关联子模块;
第一关联子模块,用于将查询到的上游连接会话与下游五元组信息对应的下游连接会话进行关联;
第二关联子模块,用于基于上游五元组信息建立上游连接会话,并将建立的上游连接会话存储于上游连接会话表中,将建立的上游连接会话与下游五元组信息对应的下游连接会话进行关联。
在本可选实施方式中,第一关联子模块和第二关联子模块具体用于底层进程获取下游连接会话表中的下游会话数据结构对应的下游数据结构体指针,将下游数据结构体指针赋值到上游连接会话地址;底层进程获取上游连接会话表中的上游会话数据结构对应的上游数据结构体指针,将下游数据结构体指针赋值到下游连接会话地址。
在本可选实施方式中,卸载发送模块504具体用于基于应用层进程创建服务器对应的socket套接字,将下游五元组信息从上游连接请求中ip包头的option字段卸载;卸载发送模块504还具体用于底层进程直接将下游五元组信息从上游连接请求中ip包头的扩展头字段中卸载。
作为本实施例的一种可选实施方式,该上下游连接关联装置500还包括监听模块,用于在底层进程接收客户端发送的下游连接请求之前,应用层进程创建客户端对应的socket套接字以监听客户端对应的端口,并通过端口接收客户端发送的下游连接请求。
作为本实施例的一种可选实施方式,该上下游连接关联装置500还包括存储模块,用于在底层进程接收客户端发送的下游连接请求,建立下游连接会话之后,底层进程基于下游五元组信息将下游连接会话存储于下游连接会话表中。
本申请实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
图4为本申请实施例提供的一种网络转发设备600的结构框图。如图4所示,网络转发设备包括存储器601、处理器602和通信总603;存储器601、处理602通过通信总线603相连。存储器601上存储有能够被处理器602加载并执行如上述实施例提供的上下游连接关联方法。
存储器601可用于存储指令、程序、代码、代码集或指令集。存储器601可以包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令以及用于实现上述实施例提供的上下游连接关联方法的指令等;存储数据区可存储上述实施例提供的上下游连接关联方法中涉及到的数据等。
处理器602可以包括一个或者多个处理核心。处理器602通过运行或执行存储在存储器601内的指令、程序、代码集或指令集,调用存储在存储器601内的数据,执行本申请的各种功能和处理数据。处理器602可以为特定用途集成电路(Application SpecificIntegrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(ProgrammableLogic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器和微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器602功能的电子器件还可以为其它,本申请实施例不作具体限定。
通信总线603可包括一通路,在上述组件之间传送信息。通信总线603可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA (ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双箭头表示,但并不表示仅有一根总线或一种类型的总线。
图5为本申请实施例提供的一种上下游连接关联系统700的结构框图。如图5所示,该上下游连接关联系统700包括网络转发设备600、客户端800以及服务器900。
本实施例中,网络转发设备600通过将客户端800发送的下游连接请求中的下游五元组信息设置到发往服务器900的上游连接请求中,实现上下游的关联。
本实施例中,客户端800用于与网络转发设备600建立上游会话,网络转发设备600用于与服务器900建立下游会话。
本申请实施例提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上述实施例提供的上下游连接关联方法的计算机程序。
本实施例中,计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意组合。具体的,计算机可读存储介质可以是便携式计算机盘、硬盘、U盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、讲台随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、光盘、磁碟、机械编码设备以及上述任意组合。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (8)
1.一种上下游连接关联方法,其特征在于,应用于网络转发设备,包括:
底层进程接收客户端发送的下游连接请求,建立下游连接会话;
应用层进程接收所述底层进程发送的所述下游连接请求,解析得到所述下游连接请求中的下游五元组信息,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求;
所述底层进程接收所述应用层进程发送的所述上游连接请求,解析得到所述下游五元组信息和所述上游五元组信息,基于所述下游五元组信息和所述上游五元组信息进行上下游连接的关联;
所述底层进程卸载所述上游连接请求中的所述下游五元组信息,并将卸载后的上游连接请求发送到服务器;
其中,所述下游连接为网络转发设备与客户端的连接,所述上游连接为网络转发设备与服务器的连接;
上游连接请求为网络转发设备发送的上游数据包,上游数据包包括上游五元组信息和下游五元组信息;
下游连接请求为客户端发送的下游数据包,下游数据包包括下游五元组信息,下游五元组信息包括客户端ip地址、客户端端口号、网络转发设备ip地址、网络转发设备端口号以及传输层协议;
当上游数据包为ipv4数据时,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求,包括:
所述应用层进程创建所述服务器对应的socket套接字,调用setsockopt函数接口将所述下游五元组信息设置到上游连接请求中ip包头的option字段,并将所述上游连接请求发送至所述底层进程;
当上游数据包为ipv4数据时,所述底层进程卸载所述上游连接请求中的所述下游五元组信息,包括:
基于所述应用层进程创建所述服务器对应的socket套接字,将所述下游五元组信息从上游连接请求中ip包头的option字段卸载;
当上游数据包为ipv6数据时,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求,包括:
所述应用层进程创建所述服务器对应的socket套接字,调用setsockopt函数接口将所述下游五元组信息设置到上游连接请求中ip包头的扩展头字段,并将所述上游连接请求发送至所述底层进程;
当上游数据包为ipv6数据时,所述底层进程卸载所述上游连接请求中的所述下游五元组信息,包括:
所述底层进程直接将下游五元组信息从上游连接请求中ip包头的扩展头字段中卸载。
2.根据权利要求1所述的方法,其特征在于,在所述底层进程接收客户端发送的下游连接请求,建立下游连接会话之后,还包括:
所述底层进程基于所述下游五元组信息将所述下游连接会话存储于下游连接会话表中;
所述基于所述下游五元组信息和所述上游五元组信息进行上下游连接的关联,包括:
所述底层进程获取所述下游连接会话表中与所述下游五元组信息对应的下游连接会话;
所述底层进程查询上游连接会话表中是否存在与所述上游五元组信息对应的上游连接会话;
若是,则将查询到的上游连接会话与所述下游五元组信息对应的下游连接会话进行关联;
若否,则将基于所述上游五元组信息建立的上游连接会话存储于所述上游连接会话表中,将建立的上游连接会话与所述下游五元组信息对应的下游连接会话进行关联。
3.根据权利要求2所述的方法,其特征在于,所述底层进程将所述上游五元组信息对应的上游连接会话与所述下游五元组信息对应的下游连接会话进行关联,包括:
所述底层进程获取所述下游连接会话表中的下游会话数据结构对应的下游数据结构体指针,将所述下游数据结构体指针赋值到上游连接会话地址;
所述底层进程获取所述上游连接会话表中的上游会话数据结构对应的上游数据结构体指针,将所述上游数据结构体指针赋值到下游连接会话地址。
4.根据权利要求1所述的方法,其特征在于,在所述底层进程接收客户端发送的下游连接请求之前,还包括:
所述应用层进程创建所述客户端对应的socket套接字以监听所述客户端对应的端口,并通过所述端口接收所述客户端发送的下游连接请求。
5.一种上下游连接关联装置,其特征在于,应用于网络转发设备,所述装置包括:
接收建立模块,用于底层进程接收客户端发送的下游连接请求,建立下游连接会话;
解析生成模块,用于应用层进程接收所述底层进程发送的所述下游连接请求,解析得到所述下游连接请求中的下游五元组信息,所述应用层进程生成包含所述下游五元组信息和上游五元组信息的上游连接请求;
解析关联模块,用于所述底层进程接收所述应用层进程发送的所述上游连接请求,解析得到所述下游五元组信息和所述上游五元组信息,基于所述下游五元组信息和所述上游五元组信息进行上下游连接的关联;
卸载发送模块,用于所述底层进程卸载所述上游连接请求中的所述下游五元组信息,并将卸载后的上游连接请求发送到服务器;
其中,所述下游连接为网络转发设备与客户端的连接,所述上游连接为网络转发设备与服务器的连接;
上游连接请求为网络转发设备发送的上游数据包,上游数据包包括上游五元组信息和下游五元组信息;
下游连接请求为客户端发送的下游数据包,下游数据包包括下游五元组信息,下游五元组信息包括客户端ip地址、客户端端口号、网络转发设备ip地址、网络转发设备端口号以及传输层协议;
当上游数据包为ipv4数据时,解析生成模块具体用于应用层进程创建服务器对应的socket套接字,调用setsockopt函数接口将下游五元组信息设置到上游连接请求中ip包头的option字段,并将上游连接请求发送至底层进程;
当上游数据包为ipv4数据时,卸载发送模块具体用于基于应用层进程创建服务器对应的socket套接字,将下游五元组信息从上游连接请求中ip包头的option字段卸载;
当上游数据包为ipv6数据时,解析生成模块还具体用于应用层进程创建服务器对应的socket套接字,调用setsockopt函数接口将下游五元组信息设置到上游连接请求中ip包头的扩展头字段,并将上游连接请求发送至底层进程;
当上游数据包为ipv6数据时,卸载发送模块还具体用于底层进程直接将下游五元组信息从上游连接请求中ip包头的扩展头字段中卸载。
6.一种网络转发设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至4中任一种方法的计算机程序。
7.一种上下游连接关联系统,其特征在于,包括客户端、服务器以及如权利要求6所述的网络转发设备。
8.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至4中任一种方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111335324.7A CN114172976B (zh) | 2021-11-11 | 2021-11-11 | 上下游连接关联方法、装置、网络转发设备、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111335324.7A CN114172976B (zh) | 2021-11-11 | 2021-11-11 | 上下游连接关联方法、装置、网络转发设备、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114172976A CN114172976A (zh) | 2022-03-11 |
CN114172976B true CN114172976B (zh) | 2024-02-02 |
Family
ID=80479048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111335324.7A Active CN114172976B (zh) | 2021-11-11 | 2021-11-11 | 上下游连接关联方法、装置、网络转发设备、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114172976B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681229B1 (en) * | 2004-06-22 | 2010-03-16 | Novell, Inc. | Proxy authentication |
CN105450585A (zh) * | 2014-07-24 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种信息传输方法及装置 |
CN105897849A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 跨进程服务方法和系统及代理服务器 |
CN112583874A (zh) * | 2019-09-30 | 2021-03-30 | 中兴通讯股份有限公司 | 异构网络的报文转发方法及装置 |
CN112653740A (zh) * | 2020-12-11 | 2021-04-13 | 北京金山云网络技术有限公司 | 支持quic连接迁移的负载均衡方法、装置及计算机产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2011096307A1 (ja) * | 2010-02-03 | 2013-06-10 | 日本電気株式会社 | プロキシ装置とその動作方法 |
-
2021
- 2021-11-11 CN CN202111335324.7A patent/CN114172976B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681229B1 (en) * | 2004-06-22 | 2010-03-16 | Novell, Inc. | Proxy authentication |
CN105450585A (zh) * | 2014-07-24 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种信息传输方法及装置 |
CN105897849A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 跨进程服务方法和系统及代理服务器 |
CN112583874A (zh) * | 2019-09-30 | 2021-03-30 | 中兴通讯股份有限公司 | 异构网络的报文转发方法及装置 |
CN112653740A (zh) * | 2020-12-11 | 2021-04-13 | 北京金山云网络技术有限公司 | 支持quic连接迁移的负载均衡方法、装置及计算机产品 |
Non-Patent Citations (1)
Title |
---|
基于Web浏览器的SSL VPN网关系统的设计和实现;张仁;徐敬东;尹乐;吴功宜;;计算机工程与设计(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114172976A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8601139B2 (en) | Multiple core session initiation protocol (SIP) | |
CN115134245A (zh) | 用于云与电信网络之间的网络分组处理的技术 | |
WO2020063298A1 (zh) | 处理tcp报文的方法、toe组件以及网络设备 | |
CN113452686B (zh) | 数据处理方法、装置、代理服务器及存储介质 | |
US10693785B2 (en) | Method and system for forwarding data, virtual load balancer, and readable storage medium | |
CN111818158B (zh) | 网关控制方法、装置、电子设备及存储介质 | |
CN108228366B (zh) | 一种数据流的处理方法和装置 | |
WO2022007406A1 (zh) | 一种基于k8s的服务部署方法、装置、设备、介质 | |
CN112804223A (zh) | 一种报文处理方法和装置 | |
CN112104640B (zh) | 网关的数据处理方法、装置、设备及可读存储介质 | |
CN112751812A (zh) | 应用协议自适配的方法和装置 | |
CN110247926B (zh) | 一种交互方法和系统 | |
CN106789993B (zh) | Tcp代理方法及装置 | |
CN115484322A (zh) | 数据包解封装卸载方法、装置、电子设备及存储介质 | |
CN112673605A (zh) | 动态多端点生成 | |
CN114172976B (zh) | 上下游连接关联方法、装置、网络转发设备、系统及介质 | |
CN112398845B (zh) | 数据传输方法、数据传输装置、系统及电子设备 | |
CN110602262A (zh) | 路由器及其处理数据报文的方法 | |
CN110708293B (zh) | 多媒体业务的分流方法和装置 | |
CN116233481A (zh) | 一种媒体流传输方法、媒体服务器以及通信系统 | |
CN115994156A (zh) | 用于实时分析数据流的方法和系统 | |
CN112039712B (zh) | 在云服务器上进行卸载的方法、控制装置、存储介质 | |
CN111212088B (zh) | 一种加速服务器提速rtp报文转发方法以及装置 | |
CN111901689A (zh) | 流媒体数据的传输方法、装置、终端设备和存储介质 | |
CN114556894A (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 |