CN112261094B - 一种报文处理方法及代理服务器 - Google Patents

一种报文处理方法及代理服务器 Download PDF

Info

Publication number
CN112261094B
CN112261094B CN202011078137.0A CN202011078137A CN112261094B CN 112261094 B CN112261094 B CN 112261094B CN 202011078137 A CN202011078137 A CN 202011078137A CN 112261094 B CN112261094 B CN 112261094B
Authority
CN
China
Prior art keywords
message
data
proxy server
processing module
data processing
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
CN202011078137.0A
Other languages
English (en)
Other versions
CN112261094A (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.)
Xiamen Wangsu Co Ltd
Original Assignee
Xiamen Wangsu 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 Xiamen Wangsu Co Ltd filed Critical Xiamen Wangsu Co Ltd
Priority to CN202011078137.0A priority Critical patent/CN112261094B/zh
Publication of CN112261094A publication Critical patent/CN112261094A/zh
Application granted granted Critical
Publication of CN112261094B publication Critical patent/CN112261094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种报文处理方法及代理服务器,其中方法包括:代理服务器的数据处理模块基于透明代理机制获取第一报文数据;数据处理模块根据第一报文的类型,选择相应的原始套接字,基于原始套接字构建第二报文,并通过原始套接字发出第二报文。该方案由于原始套接字是预先创建好的,当有报文进入代理服务器时,对于满足条件的UDP报文可以通过已创建的原始套接字实现透明传输的目的,由于已创建的原始套接字具有可复用的特性,从而对于数量巨大的情况,无需代理服务器高频率地创建套接字,故提高了代理服务器在传输透明代理过程中的效率,降低了代理服务器的性能损耗,同时还降低了对传输透明代理过程中的管理代价。

Description

一种报文处理方法及代理服务器
技术领域
本申请涉及通讯技术领域,尤其涉及一种报文处理方法及代理服务器。
背景技术
目前,现有的传输透明代理(Transparent proxy,TPROXY)技术应用在用户数据包协议(User Datagram Protocol,UDP)上,主要是基于Linux内核中的TPROXY特性的支持。在代理服务器获取到来自客户端的UDP请求报文时,代理服务器请求服务器时需要创建并绑定各客户端的IP和端口,也即为此过程创建一个套接字socket,并将该socket设置为IP_TRANSPARENT选项,从而自代理服务器发出去的报文的源IP和端口就是客户端的,从而达到面向服务器透明的目的。在代理服务器接收到来自服务器的UDP响应报文时,代理服务器回复客户端时需要创建并绑定服务器的IP和端口,也即为此过程创建一个socket,并将该socket设置为IP_TRANSPARENT选项,从而自代理服务器发出去的报文的源IP和端口就是服务器的,从而达到面向客户端透明的目的。
对于上述的传输透明技术,主要存在以下技术问题:在同一时刻,若代理服务器接收到巨额数目的来自客户端的请求报文,则代理服务器需要频繁创建socket,这严重影响代理服务器的性能;同时,由于一个socket的有效时长为从它开始被创建直到服务器有响应或者客户端有响应,这个过程中需要代理服务器管理各个socket,这存在极大的管理代价。
对于以上问题,现有技术目前还无法提供一种高效的传输透明代理方案。
申请内容
本申请实施例提供一种报文处理方法及代理服务器,用以解决现有技术无法提供一种高效的传输透明代理的问题。
第一方面,本申请实施例提供一种报文处理方法,适用于代理服务器,该方法包括:所述代理服务器的数据处理模块基于透明代理机制获取第一报文数据;所述数据处理模块根据第一报文的类型,选择相应的原始套接字,基于所述原始套接字构建第二报文,并通过所述原始套接字发出所述第二报文;其中,所述第二报文是所述数据处理模块基于获取到的所述第一报文数据构建的,其源地址和目的地址与所述第一报文的源地址、目的地址一致。
基于该方案,首先代理服务器的数据处理模块通过透明代理机制获取到的第一报文数据,并根据第一报文的类型,选择与第一报文对应的原始套接字,然后基于选择的原始套接字进行第二报文的构建,并发送出已构建好的第二报文。该方案中,由于原始套接字是预先创建好的,当有报文进入代理服务器时,对于满足条件的UDP报文可以通过已创建的原始套接字实现透明传输的目的,由于已创建的原始套接字具有可复用的特性,从而对于数量巨大的情况,无需代理服务器高频率地创建套接字,因此提高了代理服务器在传输透明代理过程中的效率,降低了代理服务器的性能损耗,同时还降低了对传输透明代理过程中的管理代价。
在一种可能的实现方法中,所述数据处理模块基于透明代理机制获取第一报文数据,包括:所述透明代理机制根据预先设定的数据获取规则,从所述第一报文中提取出所述第一报文数据,并发送至所述第一报文数据对应的接收端口;所述数据处理模块通过监听所述接收端口,获取所述第一报文数据。
基于该方案,对于进入到代理服务器中的报文,首先代理服务器中的透明代理机制可以按照预先设定的数据获取规则,从报文中提取出报文数据,并将提取出的报文数据发送至用于接收该报文数据的接收端口,即本地回环接口,然后代理服务器中的数据处理模块可以通过对接收端口的监听来获取报文数据,该方式可以精准地实现对报文数据的接收。
在一种可能的实现方法中,所述数据处理模块通过多进程或多线程的方式对所述接收端口进行监听,并处理获取到的所述第一报文数据。
基于该方案,通过采用多进程或多线程的方式监听第一数据报文对应的接收端口,从而保证巨额数目的客户端的请求报文或者服务器的应答报文进入代理服务器时,代理服务器能够并行地对第一报文数据进行获取和处理,避免产生性能瓶颈的问题。
在一种可能的实现方法中,所述数据处理模块根据第一报文的类型,选择相应的原始套接字,包括:所述数据处理模块基于所述第一报文的源地址或目的地址是否符合预设条件,以确定所述第一报文的类型,选择相应的原始套接字,其中不同类型的报文对应的原始套接字不同;或者,所述数据处理模块根据接收所述第一报文数据的接收端口来确定所述第一报文的类型。
基于该方案,在数据处理模块在获取到第一报文时,通过将第一报文的源地址与预设条件进行比较或者将第一报文的目的地址与预设条件进行比较,判断是否符合预设条件,以得到第一报文的类型,包括发自预设客户端的请求报文、发往预设服务器的请求报文、发自预设服务器的响应报文、或者发往预设客户端的响应报文,然后根据所确定出的第一报文的类型选择相应的原始套接字,最后按照原始套接字的预设格式生成第二报文。
在一种可能实现的方法中,所述预设条件包含所述源地址或目的地址包含在预设名单中。
基于该方案,可通过在预设名单中预先记录报文类型的识别信息,包括对报文类型对应的源地址或者目的地址进行记录,如此,当有报文数据进入数据代理模块,通过与预设名单进行匹配,则可以快速地判定报文类型。
在一种可能实现的方法中,所述透明代理机制为TPROXY;所述接收端口采用REUSEPORT机制。
在一种可能实现的方法中,所述第一报文数据包含第一报文的源地址、目的地址和应用层数据;所述基于所述原始套接字构建第二报文,包括:对所述应用层数据进行处理,并由所述原始套接字基于所述源地址和目的地址,构造所述第二报文,其中,对所述应用层数据进行处理包含数据压缩、数据缓存。
基于该方案,数据处理模块可首先对第一报文数据中的应用层数据进行处理,包括数据压缩、数据缓存,然后基于第一报文数据中的源地址和目的地址,根据确定出的原始套接字构造第二报文,最后将第二报文向接收端进行发送。该过程实现了面向接收端透明的目的。
在一种可能实现的方法中,在所述获取第一报文数据步骤之前,所述方法还包括:所述第一报文由客户端或服务器向对方发送,并流经所述代理服务器时,基于所述透明代理机制将其设置为本机接收。
基于该方案,对于需要做透明传输的报文,可以是由客户端向服务器发出的请求报文,也可以是由服务器向客户端发出的响应报文,对于需要做透明传输的报文,在它流经代理服务器时,由代理服务器进行接收,并进行透明传输的处理。
第二方面,本申请实施例提供了一种代理服务器,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,通过执行所述程序指令实现如第一方面任一所述的方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一所述的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种可能的系统架构图;
图2为本申请实施例提供的一种报文处理方法;
图3为本申请实施例提供的一种报文处理流程图;
图4为本申请实施例提供的一种代理服务器;
图5为本申请实施例提供的一种计算设备。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
目前,在传输透明代理技术中,来自客户端的请求报文在传输至服务器的过程中,可能需要经过代理服务器,由代理服务器对其执行一定的处理后,从而最终到达服务器。然而,现有技术的传输透明代理方案通常占用代理服务器较大的处理性能,以及需要花费较大的管理代价。
如图1所示,为本申请实施例提供的一种可能的系统架构图,该系统架构包括客户端110,代理服务器120和服务器130。
其中,客户端110用于向服务器130请求数据资源,包括但不限于多种应用功能的智能手机、平板电脑、智能电视、机顶盒等;代理服务器120为给来自客户端110的请求报文或者给来自服务器130的响应报文做相应处理的中间设备,可以是一个第三方提供的服务设备,代理服务器120上可安装有代理服务程序,该代理服务程序运行在应用层,其中,所述代理服务程序可被理解为代理服务器120中的数据处理模块;服务器130可为客户端110提供数据资源,可对请求报文作出响应的设备。
值得注意的是,图1所示的系统架构为本申请的一个应用场景,在其他应用场景中,图1中的客户端110和/或服务器130可以是代理服务器。
基于图1所示的系统架构,本申请实施例提供一种报文处理方法,适用于代理服务器。如图2所示,该方法包括:
步骤201,所述代理服务器的数据处理模块基于透明代理机制获取第一报文数据。
步骤202,所述数据处理模块根据第一报文的类型,选择相应的原始套接字,基于所述原始套接字构建第二报文,并通过所述原始套接字发出所述第二报文。
在本步骤中,所述第二报文是所述数据处理模块基于获取到的所述第一报文数据构建的,其源地址和目的地址与所述第一报文的源地址、目的地址一致。
基于该方案,首先代理服务器的数据处理模块通过透明代理机制获取到的第一报文数据,并根据第一报文的类型,选择与第一报文对应的原始套接字,然后基于选择的原始套接字进行第二报文的构建,并发送出已构建好的第二报文。该方案中,由于原始套接字是预先创建好的,当有报文进入代理服务器时,对于满足条件的UDP报文可以通过已创建的原始套接字实现透明传输的目的,由于已创建的原始套接字具有可复用的特性,从而对于数据量大的情况,无需代理服务器高频率地创建套接字,因此提高了代理服务器在传输透明代理过程中的效率,降低了代理服务器的性能损耗,同时还降低了对传输透明代理过程中的管理代价。
以下将结合示例分别对上述各步骤进行详细说明。
在上述步骤201的一个实施中,透明代理机制可以采用Linux内核的TPROXY,对于进入代理服务器中的第一报文进行处理,第一报文可包括自客户端向服务器发送的请求报文和自服务器向客户端发送的响应报文,具体而言,TPROXY可根据预先设定的数据获取规则,从第一报文中获取第一报文数据,其中,第一报文数据可以包括第一报文的源地址、目的地址和应用层数据,并将第一报文数据发送至可以接收该报文数据的接收端口,其中,可通过预设的方式,对不同的报文数据设置不同的接收端口。如此,数据处理模块可通过监听相应的接收端口来获取第一报文数据。
在一种实施方式中,透明代理机制可对报文进行过滤,以获得需要被代理的第一报文,例如,可通过匹配白名单的方式来对报文进行过滤。
在一种实施方法中,数据处理模块通过多进程或者多线程的方式对接收端口进行监听,可能包括以下三种情形:
情形1,启用至少两个代理进程,同时监听接收端口,这两个代理进程均为单线程;
情形2,启用一个代理进程,对于该代理进程,采用多线程的方式同时监听接收端口;
情形3,启用至少两个代理进程,且针对至少一个代理进程,采用多线程的方式同时监听接收端口。
根据以上三种监听方式,可以克服数据监听和处理性能的瓶颈问题。
在上述步骤202的一个实施方式中,所述数据处理模块根据第一报文的类型,选择相应的原始套接字的方法,具体可包括两种方式:
第一种,所述数据处理模块基于所述第一报文的源地址或目的地址是否符合预设条件,以确定所述第一报文的类型,选择相应的原始套接字,其中不同类型的报文对应的原始套接字不同。所述预设条件包含所述源地址或目的地址包含在预设名单中。
比如,对于数据处理模块可以预先确定需要提供透明代理服务的客户端或服务器,通过将该些客户端和服务器的地址,或作为源地址、或作为目的地址,记录在预设名单中,从而在数据处理模块接收到一则报文时,通过将该报文中包括的源地址或者目的地址与预设名单进行匹配,若与预设名单中的某一地址相匹配,则可根据匹配到的地址来确定该报文的发送端或者接收端,若发送端为客户端,数据处理模块可选择与服务器通信的原始套接字,若发送端为服务器,则可选择与客户端通信的原始套接字,值得注意的是,在代理服务器中,该些原始套接字是预先创建好的,并设定了关联关系,在本实施例中,代理服务器中预先创建了两个原始套接字分别用于与客户端和服务器的通信,即可实现数据的代理,在本申请的其他实施例中,为了实现负载均衡,代理服务器中可预先创建固定数量个原始套接字,或者可根据历史数据接收量来动态创建或删除原始套接字。因此,当数据处理模块获取到第一报文时,可通过确定第一报文的类型,包括确定第一报文是属于自客户端向服务器发送的请求报文,还是属于自服务器向客户端发送的响应报文,并在确定出第一报文的类型后,从而可以选取与第一报文类型相匹配的原始套接字。
第二种,可根据接收到第一报文数据的接收端口来确定第一报文的类型,如上文所述,透明代理机制可根据预设的方式,将不同的报文数据设置不同的接收端口,如此,数据处理模块可直接根据接收端口来确定第一报文的类型,例如,透明代理机制可将来自客户端的第一报文数据发送至接收端口1,将来自服务器的第一报文数据发送至接收端口2,进而,当数据处理模块通过接收端口1接收到第一报文数据时,可确定第一报文由客户端发送。
在实际应用中,可根据业务需求来选择相应的方式来确定第一报文的类型,可二者择其一,也可二者组合后进行适应性调整使用。
在一种实施方式中,数据处理模块通过监听所述接收端口,获取所述第一报文数据后,可通过多进程或者多线程的方式对第一报文数据进行处理。
在一种实施方式中,第一报文数据可包括应用层数据,数据代理模块对第一报文数据进行处理可包括:对所述应用层数据进行处理,其中,对所述应用层数据进行处理包含数据压缩、数据缓存、传输路径选择等。在数据代理模块对第一报文数据处理完成后,由原始套接字基于所述源地址和目的地址,构造所述第二报文,在构建好第二报文后,则可以通过原始套接字发出该第二报文。
以下将结合示例对上述方法进行示意说明,请参照图3,图3为本申请实施例提供的一种报文处理流程图。
如图3所示,在客户端向服务器请求流量的过程中,客户端发送的请求报文通过代理服务器的TPROXY引流到数据处理模块所监听的接收端口PORT A,从而使得数据处理模块可以接收到客户端发送的请求报文,例如,客户端的UDP请求报文到达代理服务器时,可通过内核TPROXY机制在不进行任何NAT的情况下改为本机可接收,并转给数据处理模块所监听的接收端口PORT A,在具体实施中,客户端UDP请求到达代理服务器时,可根据预先设定的iptables规则将需要透明代理的请求定向给TPROXY Target,例如,通过设置iptables规则,以对来自目标地址或发往目标地址(预设名单中的地址)的UDP请求报文进行处理,同时设置目的端口为本地监听的端口PORT A,并打上标记,然后基于配置的路由规则将标记流量送到本地lo接口,并通过将数据处理模块监听的PORT A的socket设置为IP_TRANSPARENT选项,使得数据处理模块可以接收上述请求报文,且可以获取该请求中原始的目的IP和端口。
数据处理模块可从内核获取到请求报文的原始的目的IP和端口,例如,socket设置IP_RECVORIGDSTADDR选项,再通过recvmsg接收报文。
可选的,数据处理模块可对该请求报文的报文数据进行数据处理,例如,对应用层数据进行数据压缩或缓存,或为该请求报文选择加速线路等,之后,数据处理模块可根据报文类型,选择原始套接字Raw Socket B,并通过已创建的原始套接字Raw Socket B构建新的报文(源IP为原始客户端IP,目的IP为原始服务器IP),并从代理服务器发出,从而完成请求报文的代理。
当服务器对请求报文作出响应,并发出响应报文,同样的,代理服务器需要对响应报文进行代理时,可基于同样的机制对接收到的响应报文进行处理,具体而言,代理服务器的TPROXY可将响应报文引流到数据处理模块所监听的接收端口PORT B,从而使得数据处理模块可以接收到服务器发送的响应报文,例如,服务器的UDP响应报文到达代理服务器时,可通过内核TPROXY机制在不进行任何NAT的情况下改为本机可接收,并转给数据处理模块所监听的接收端口PORT B,在具体实施中,服务器UDP响应报文到达代理服务器时,可根据预先设定的iptables规则将需要透明代理的响应定向给TPROXY Target,例如,通过设置iptables规则,以对来自目标地址或发往目标地址(预设名单中的地址)的UDP响应报文进行处理,同时设置目的端口为本地监听的端口PORT B,并打上标记,然后基于配置的路由规则将标记流量送到本地lo接口,并通过将数据处理模块监听的PORT B的socket设置为IP_TRANSPARENT选项,使得数据处理模块可以接收上述响应报文,且可以获取该报文中原始的目的IP和端口。
数据处理模块可从内核获取到响应报文的原始的目的IP和端口,例如,socket设置IP_RECVORIGDSTADDR选项,再通过recvmsg接收报文。
可选的,数据处理模块可对该响应报文的报文数据进行数据处理,例如,对应用层数据进行数据压缩或缓存,或为该响应报文选择加速线路等,之后,数据处理模块可根据报文类型,选择原始套接字Raw Socket A,并通过已创建的原始套接字Raw Socket A构建新的报文(源IP为原始服务器IP,目的IP为原始客户端IP),并从代理服务器发出,从而完成响应报文的代理。
基于同样的构思,本申请实施例提供一种代理服务器,如图4所示,该代理服务器包括:
存储器401,用于存储程序指令;
处理器402,用于调用所述存储器中存储的程序指令,并通过执行程序指令实现本申请实施例所提供的方法。
本申请实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储报文处理方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行报文处理方法。
如图5所示,为本申请实施例提供的一种计算设备的示意图,该计算设备包括:
处理器501、存储器502、收发器503、总线接口504;其中,处理器501、存储器502与收发器503之间通过总线505连接;
所述处理器501,用于读取所述存储器502中的程序,执行上述报文处理方法;
处理器501可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
所述存储器502,用于存储一个或多个可执行程序,可以存储所述处理器501在执行操作时所使用的数据。
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器502可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器502也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器502还可以包括上述种类的存储器的组合。
存储器502存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
总线505可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
总线接口504可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为WLAN接口。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行报文处理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (8)

1.一种报文处理方法,其特征在于,适用于代理服务器,所述方法包括:
所述代理服务器的数据处理模块基于透明代理机制,根据预先设定的数据获取规则,从第一报文中提取出第一报文数据,并发送至所述第一报文数据对应的接收端口,所述透明代理机制为TPROXY;所述接收端口采用REUSE PORT机制;
所述数据处理模块通过监听所述接收端口,获取所述第一报文数据;
所述数据处理模块根据第一报文的类型,选择相应的原始套接字,基于所述原始套接字构建第二报文,并通过所述原始套接字发出所述第二报文;其中,所述第二报文是所述数据处理模块基于获取到的所述第一报文数据构建的,其源地址和目的地址与所述第一报文的源地址、目的地址一致,所述原始套接字是预先创建的。
2.如权利要求1所述的方法,其特征在于,
所述数据处理模块通过多进程或多线程的方式对所述接收端口进行监听,并处理获取到的所述第一报文数据。
3.如权利要求1所述的方法,其特征在于,
所述数据处理模块根据第一报文的类型,选择相应的原始套接字,包括:
所述数据处理模块基于所述第一报文的源地址或目的地址是否符合预设条件,以确定所述第一报文的类型,选择相应的原始套接字,其中不同类型的报文对应的原始套接字不同;或者,所述数据处理模块根据接收所述第一报文数据的接收端口来确定所述第一报文的类型。
4.如权利要求3所述的方法,其特征在于,所述预设条件包含所述源地址或目的地址包含在预设名单中。
5.如权利要求1-4任一项所述的方法,其特征在于,所述第一报文数据包含第一报文的源地址、目的地址和应用层数据;
所述基于所述原始套接字构建第二报文,包括:
对所述应用层数据进行处理,并由所述原始套接字基于所述源地址和目的地址,构造所述第二报文,其中,对所述应用层数据进行处理包含数据压缩、数据缓存。
6.如权利要求1所述的方法,其特征在于,
在所述获取第一报文数据步骤之前,所述方法还包括:
所述第一报文由客户端或服务器向对方发送,并流经所述代理服务器时,基于所述透明代理机制将其设置为本机接收。
7.一种代理服务器,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,通过执行所述程序指令实现如权利要求1-6任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-6任一项所述的方法。
CN202011078137.0A 2020-10-10 2020-10-10 一种报文处理方法及代理服务器 Active CN112261094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011078137.0A CN112261094B (zh) 2020-10-10 2020-10-10 一种报文处理方法及代理服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011078137.0A CN112261094B (zh) 2020-10-10 2020-10-10 一种报文处理方法及代理服务器

Publications (2)

Publication Number Publication Date
CN112261094A CN112261094A (zh) 2021-01-22
CN112261094B true CN112261094B (zh) 2023-07-21

Family

ID=74242538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011078137.0A Active CN112261094B (zh) 2020-10-10 2020-10-10 一种报文处理方法及代理服务器

Country Status (1)

Country Link
CN (1) CN112261094B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132356B (zh) * 2021-03-23 2023-06-27 网宿科技股份有限公司 Udp报文的分发方法、设备及存储介质
CN113596096A (zh) * 2021-06-30 2021-11-02 深圳市广通远驰科技有限公司 通信方法、装置、电子设备及存储介质
CN113691589B (zh) * 2021-07-27 2023-12-26 杭州迪普科技股份有限公司 报文传输方法、装置及系统
CN114025030A (zh) * 2021-11-08 2022-02-08 北京天融信网络安全技术有限公司 透明代理实现方法、装置、计算机设备和介质
CN114710548B (zh) * 2022-03-22 2024-04-05 阿里巴巴(中国)有限公司 报文转发方法及装置
CN115150464B (zh) * 2022-06-22 2024-03-15 北京天融信网络安全技术有限公司 应用代理方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848235A (zh) * 2010-04-16 2010-09-29 北京航空航天大学 一种支持nat穿越的实时多媒体数据p2p传输方案
CN102109996A (zh) * 2010-12-29 2011-06-29 浙大网新科技股份有限公司 使Linux内核支持Socket重用的方法
CN103166994A (zh) * 2011-12-14 2013-06-19 腾讯科技(深圳)有限公司 获取网络数据的方法及装置
CN103441999A (zh) * 2013-08-21 2013-12-11 好耶网络科技(上海)有限公司 一种套接字连接池控制方法
CN108228366A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种数据流的处理方法和装置
CN110719248A (zh) * 2018-07-12 2020-01-21 中移(杭州)信息技术有限公司 用户数据报协议报文的转发方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654505B2 (en) * 2009-06-22 2017-05-16 Citrix Systems, Inc. Systems and methods for encoding the core identifier in the session identifier
CN104281493A (zh) * 2014-09-28 2015-01-14 般固(北京)科技股份有限公司 一种提升应用交付通讯平台多进程程序性能的方法
CN107517227B (zh) * 2016-06-15 2020-10-13 阿里巴巴集团控股有限公司 用于分布式一致性系统的会话实现方法以及装置
CN108712459B (zh) * 2018-03-30 2021-06-15 深圳市风云实业有限公司 协议报文跨层通信方法、装置及电子设备
CN111314273B (zh) * 2018-12-12 2022-06-07 阿里巴巴集团控股有限公司 基于udp的数据传输方法和连接装置
CN113297305A (zh) * 2020-07-16 2021-08-24 阿里巴巴集团控股有限公司 会话状态处理方法、装置、设备和存储介质
CN114553693B (zh) * 2022-02-21 2024-03-26 上海哔哩哔哩科技有限公司 网关升级方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848235A (zh) * 2010-04-16 2010-09-29 北京航空航天大学 一种支持nat穿越的实时多媒体数据p2p传输方案
CN102109996A (zh) * 2010-12-29 2011-06-29 浙大网新科技股份有限公司 使Linux内核支持Socket重用的方法
CN103166994A (zh) * 2011-12-14 2013-06-19 腾讯科技(深圳)有限公司 获取网络数据的方法及装置
CN103441999A (zh) * 2013-08-21 2013-12-11 好耶网络科技(上海)有限公司 一种套接字连接池控制方法
CN108228366A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 一种数据流的处理方法和装置
CN110719248A (zh) * 2018-07-12 2020-01-21 中移(杭州)信息技术有限公司 用户数据报协议报文的转发方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郭大伟 ; 张伟 ; 姜晓艳 ; .一种基于Nginx的UDP反向代理服务器数据转发策略.北京信息科技大学学报(自然科学版).2019,(第06期),全文. *

Also Published As

Publication number Publication date
CN112261094A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN112261094B (zh) 一种报文处理方法及代理服务器
US20210337046A1 (en) Intelligent scheduling method, terminal device, edge node cluster and intelligent scheduling system
CN108419452B (zh) 用于管理移动装置上的应用的远程web客户端的装置和方法
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
CN103237060B (zh) 一种数据对象获取方法、装置及系统
WO2020224300A1 (zh) 基于用户态协议栈的报文分流方法、装置及系统
CN113709200B (zh) 一种建立通信连接的方法及装置
CN112583797B (zh) 多协议数据处理方法、装置、设备及计算机可读存储介质
WO2018112327A1 (en) Methods of concurrency control for block transfer in coap publish-subscribe architecture
WO2023217187A1 (zh) 服务响应方法、装置、设备及存储介质
CN112769671B (zh) 消息处理方法、装置与系统
CN102932269A (zh) 负载均衡的实现方法和装置
CN115004752A (zh) 感知代理sbp终止方法及装置、电子设备及存储介质
CN106686635B (zh) 基于无线接入点的控制和配置协议的数据传输方法和装置
CN112968965A (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
CN108289165B (zh) 一种基于手机控制相机的实现方法、装置及终端设备
CN110933121A (zh) 连接建立方法、通信处理方法、装置及通信设备
CN112732457B (zh) 图像传输方法、装置、电子设备和计算机可读介质
CN111193805B (zh) 一种资源发现的方法及装置
CN114513465A (zh) 负载均衡方法、负载均衡装置、电子设备和存储介质
CN112422457B (zh) 报文处理方法、装置和计算机存储介质
CN104516883A (zh) 一种网页共享方法、装置及系统
CN115243394B (zh) 基于网络切片的通信方法、装置、设备及介质
CN112131263A (zh) 软件包获取方法、系统、装置、电子设备和存储介质
CN112559469A (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