CN110417632A - 一种网络通信方法、***及服务器 - Google Patents
一种网络通信方法、***及服务器 Download PDFInfo
- Publication number
- CN110417632A CN110417632A CN201810387711.7A CN201810387711A CN110417632A CN 110417632 A CN110417632 A CN 110417632A CN 201810387711 A CN201810387711 A CN 201810387711A CN 110417632 A CN110417632 A CN 110417632A
- Authority
- CN
- China
- Prior art keywords
- message data
- request message
- network
- application layer
- socket
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络通信方法、***及服务器,所述方法包括:从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据;对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据;根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议;基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。利用本发明提供的技术方案可以提升网络通信性能,实现快速的网络通信。
Description
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种网络通信方法、***及服务器。
背景技术
随着互联网时代的到来,互联网在给用户带来便利的同时也存在着多种网络性能问题。其中,网络延时的性能问题,直接关乎网络的顺畅程度,是互联网面临的一个重要挑战。
近年来VPN(Virtual Private Network,虚拟专用网络)渐渐成为常用的网络通信方案具体的,可以包括:用户按照指定的密码、端口和加密方式,使客户端与VPN服务器端建立连接,成功连接后客户端通过构建的本地socks5代理将网络请求发送到VPN服务器;进而可以通过VPN服务器将网络请求发送给相应的远端的服务器。但上述现有的基于VPN的网络通信过程中增加VPN服务器进行代理上网的方式中,增加了网络交互,且对于目前常用的TCP协议的网络通信中,还增加了额外的连接握手次数,带来严重的网络延时的性能问题。因此,需要提供更有效的方案,以便安全快速的实现网络通信。
发明内容
本说明书实施例的目的是提供一种网络通信方法、***及服务器,可以提升网络通信性能,实现快速的网络通信。
第一方面,本发明提供了一种网络通信方法,所述方法包括:
从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据;
对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据;
根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议;
基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。
第二方面提供了一种网络通信***,所述***包括:
IP请求报文数据读取模块,用于从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据;
解封处理模块,用于对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据;
网络传输协议确定模块,用于根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议;
请求报文数据发送模块,用于基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。
第三方面提供了一种网络通信服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的网络通信方法。
第四方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的网络通信方法。
本发明提供的网络通信方法、***及服务器,具有如下技术效果:
本发明能够通过虚拟网卡建立与本地客户端之间的网络数据的交互构建本地的虚拟专用网络,并通过在本地对本地客户端发送的网络请求报文数据的解封和转发实现了本地虚拟专用网络的协议簇,避免了与远端VPN服务器的连接交互带来的网络延时,大大提高了网络性能,实现快速的网络通信。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本说明书提供的现有技术中一种网络通信***的结构示意图;
图2是本说明书实施例提供的一种网络通信***的结构示意图;
图3是本说明书实施例提供的一种网络通信方法的流程示意图;
图4是本发明实施例提供的请求报文数据解封与封装处理一种示意图;
图5是本发明实施例提供的一种网络通信方法的流程示意图;
图6是本发明实施例提供的基于网络传输协议向目的网络节点发送所述应用层的请求报文数据一种流程示意图;
图7是本发明实施例提供的基于网络传输协议向目的网络节点发送所述应用层的请求报文数据的另一种流程示意图;
图8是本发明实施例提供的另一种网络通信方法的流程示意图;
图9是本发明实施例提供的另一种网络通信方法的流程示意图;
图10是本发明实施例提供的对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据的一种流程示意图;
图11是本发明实施例提供的对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据的另一种流程示意图;
图12是本发明实施例提供的对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据的另一种流程示意图;
图13是本发明实施例提供的一种网络通信***的结构示意图;
图14是本发明实施例提供的请求报文数据发送模块的一种组成框图;
图15是本发明实施例提供的请求报文数据发送模块的另一种组成框图;
图16是本发明实施例提供的另一种网络通信***的结构示意图;
图17是本发明实施例提供的一种网络通信***的结构示意图;
图18是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,在基于VPN的网络通信应用中,往往需要借助VPN服务器将客户端的报文数据传输给相应的服务器。如图1所示,图1是本说明书提供的现有技术中一种网络通信***的结构示意图。从图1中可见,现有技术中,实现网络通信的过程中包括客户端100、VPN服务器200和服务器300。客户端100与VPN服务器200之间需要建立网络连接,且VPN服务器200与服务器300之间也需要建立网络连接,VPN服务器200才可以将客户端100传输的报文数据传输至服务器300,在这过程中,客户端100与远端的服务器300之间的网络通信多了与远端的VPN服务器的交互,增加了额外的与远端的服务器的网络交互,导致了网络延时的性能问题。基于此,本说明书实施例中可以在客户端侧实现VPN服务器的转发功能,进而解决基于VPN的网络通信应用中因增加额外的网络交互导致的网络延时的性能问题。
请参阅图2,图2是本说明书实施例提供的一种网络通信***的结构示意图,如图1所示,该网络通信***可以包括客户端01和目的网络节点02。
具体的,客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体,例如提供给用户的网页页面的APP(Application,应用程序)等。
具体的,所述目的网络节点02可以为如客户端01一样的实体设备或运行于实体设备中的软体,也可以为服务器,所述服务器可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务器02可以包括有网络通信单元、处理器和存储器等等。
在一个具体的实施例中,以基于TCP协议作为网络传输协议为例,客户端侧可以包括:客户端01、虚拟网卡、转发服务模块。目的网络节点02以服务器02为例,请参阅图3,以下结合图3介绍通信的具体流程。
1)建立连接
在实际应用中,当客户端01需要向服务器02发起联网请求时,客户端02可以向本地的虚拟网卡发送联网请求(带有SYN标志的报文,SYN标志是TCP/IP建立连接时使用的握手请求标识)。
接着,转发服务模块就可以从虚拟网卡读到该带有SYN标志的报文;转发服务模块对所述带有SYN标志的报文进行解封处理;具体的,如图4所示,由于该带有SYN标志的报文是网络层的报文数据,故在解封处理过程中,可以将网络层的报文数据解封为传输层的报文数据;然后,将传输层的报文数据解封成应用层的报文数据。相应的,转发服务模块根据解封后的应用层的报文数据的内容可以确定需要向服务器02发起联网请求(相当于发起套接字socket连接),并将解封后的应用层的联网请求报文发送给服务器02。
接着,服务器02向转发服务模块反馈的带有SYN+ACK标志的报文(SYN+ACK标志表示握手请求确认报文);由于该带有SYN+ACK标志的报文是应用层的报文,结合图4,转发服务模块可以对该带有SYN+ACK标志的报文进行封装处理,得到封装后的网络层的报文数据,并向虚拟网卡写入该封装后的网络层的报文数据。
相应的,客户端01会通过虚拟网卡接收到该封装后的网络层的报文数据,并发出一个带有ACK标志的报文(ACK标志表示确认,即已经收到上述封装后的网络层的报文数据)到虚拟网卡;相应的,转发服务模块可以从虚拟网卡读到该带有ACK标志的报文,连接建立成功。
2)数据传输
在实际应用中,当客户端01需要与服务器02进行数据传输时,客户端02可以向本地的虚拟网卡发送请求报文(带有PSH标志的报文,PSH标志表示报文的数据段大于零)。
接着,转发服务模块会从虚拟网卡中读取到该带有PSH标志的报文,转发服务模块将该带有PSH标志的报文进行解封处理。由于该带有PSH标志的报文是网络层的报文数据,故在解封处理过程中,可以将网络层的报文数据解封为传输层的报文数据;然后,将传输层的报文数据解封成应用层的报文数据。相应的,转发服务模块将解封后的应用层的报文数据通过已经建立连接的socket发送到服务器02,同时,转发服务模块回复ACK报文到虚拟网卡,该带有PSH标志的报文的传输结束。
进一步的,在实际应用中,在服务器02接收到转发服务模块发送的报文数据之后,可以通过上述已经建立连接的socket向转发服务模块反馈相应的应答报文(带有PSH+ACK标志的报文)。
接着,转发服务模块可以将接收到应用层的应答报文封装层相应的网络层的报文数据,并将封装后的报文数据写入虚拟网卡;相应的,客户端01会收到虚拟网卡发送的该封装后的报文数据,并发出一个带有ACK标志的报文到虚拟网卡;相应的,转发服务模块可以从虚拟网卡读到该带有ACK标志的报文,该带有PSH+ACK标志的报文的传输结束。
3)断开连接:当客户端01需要与服务器02断开连接时,转发服务模块会从虚拟网卡中读取到带有FIN标志的报文(FIN表示断开连接),将所述带有FIN标志的报文依次解封为传输层的报文数据和应用层的报文数据,相应的,转发服务模块根据解封后的应用层的报文数据的内容可以确定需要向服务器02发起断网请求,并根据读取的报文内容找到相应的已经建立连接的socket,;并将解封后的应用层的断网请求报文(socket断开请求)发送给服务器02;接着,服务器02向转发服务模块反馈的带有FIN+ACK标志的报文(FIN+ACK标志表示断网请求确认),由于该带有FIN+ACK标志的报文是应用层的报文,转发服务模块可以对该带有FIN+ACK标志的报文进行封装处理,得到封装后的网络层的报文数据,并向虚拟网卡写入该封装后的网络层的报文数据;相应的,客户端01会通过虚拟网卡接收到该封装后的网络层的报文数据,并发出一个带有ACK标志的报文到虚拟网卡;相应的,转发服务模块可以从虚拟网卡读到该带有ACK标志的报文,则连接断开成功。
在实际应用中,为了保证通信安全,在对解封后的应用层的报文数据进行安全传输处理,具体的,所述安全传输处理可以包括但不限于下述之一:报文过滤处理、加密处理。
在一个具体的实施例中,当所述安全传输处理为报文过滤处理时,对解封后的应用层的报文数据进行安全传输处理可以包括:判断所述解封后的应用层的请求报文数据是否为预设过滤数据;当判断的结果为否时,确定所述应用层的请求报文数据为安全传输的请求报文数据。
相应的,转发服务模块可以将安全传输的请求报文数据通过已经建立连接的socket发送到服务器02。
在另一个具体的实施例中,当所述安全传输处理为加密处理时,对解封后的应用层的报文数据进行安全传输处理可以包括:对所述解封后的应用层的请求报文数据进行加密处理,得到加密处理后的请求报文数据。
相应的,转发服务模块将加密处理后的请求报文数据通过已经建立连接的socket发送到服务器02。
在实际应用中,本说明书实施例中并不仅限于对解封处理后应用层的数据报文进行安全传输处理,还可以在转发服务模块接收到服务器的发送的应用层的报文进行安全传输处理。
上述实施例中,客户端01和目的网络节点(服务器02)之间可以借助客户端01本地的转发服务模块实现交互通信,以及所述转发服务模块可以通过客户端侧的虚拟网卡实现与客户端之间的数据交互,实现了网络通信,且客户端01无需与转发服务模块建立连接直接通过虚拟网卡就可以进行通信,在本地的虚拟专用网络中实现传输层的报文解析(封装与解封)、网络传输协议的连接与以及应用层报文的转发,可以避免了与远端服务器的连接交互带来的网络延时,避免了与远端VPN服务器的连接交互带来的网络延时,构建了本地的高性能虚拟专用网络。
以下基于上述转发服务模块所对应的本地高性能的虚拟专用网络为执行主体介绍本发明一种网络通信方法,图5是本发明实施例提供的一种网络通信方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图5所示,所述方法可以包括:
S501:从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据。
S503:对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据。
在实际应用中,客户端发送到虚拟网卡的IP(Internet Protocol,网络协议)请求报文数据往往是网络层的报文数据;相应的,在从虚拟网卡读取到IP请求报文数据之后,可以对所述IP请求报文数据进行解封处理,参见图4,可以将网络层的IP请求报文数据解封成传输层的请求报文数据,然后,传输层的请求报文数据解封成应用层的请求报文数据。
S505:根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议。
在实际应用中,不同类型的报文数据所采用的网络传输协议不同,且参见图4可知,当得到传输层的请求报文数据之后,请求报文数据的首部带有网络传输协议的信息,相应的,可以根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议。
S507:基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。
在实际网络通信过程中,常常出现大量并发请求,即同一时间可能存在大量的网络连接,而应用层的请求报文数据往往是通过socket发送的,为了保证网络通信性能,降低网络延时,就需要大量的socket进行请求报文数据的转发,本说明书实施例提供一种请求报文数据发送方式,提高数据发送速度。具体的,如图6所示,本说明书所述基于网络传输协议向目的网络节点发送所述应用层的请求报文数据可以包括:
S601:查询所述网络传输协议的套接字连接池中是否存在与所述应用层的请求报文数据相对应的套接字。
在实际应用中,区分不同应用程序进程间的网络通信,主要有3个参数:通信的目的IP地址、使用的网络传输协议和使用的端口号。套接字包含了这三个参数。集合这3个参数,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。相应的,这里可以通过网络传输协议先确定出该网络传输协议的套接字连接池,然后根据应用层的请求报文数据中的通信的目的IP地址和使用的端口号确定出与所述应用层的请求报文数据相对应的套接字。
S603:当查询的结果为是时,从线程池中获取与所述套接字绑定的线程,利用所述与所述套接字绑定的线程向目的网络节点发送所述应用层的请求报文数据。
具体的,本说明书实施例中,考虑到线程的数量和中央处理器(CPU,CentralProcessing Unit)的个数有关,而每台设备的CPU数量往往是固定的,当超过一定数量的线程数量时,再增加线程会带来性能问题。因此,本说明书实施例中,套接字连接池中的套接字与一个线程相对应,即每个套接字可以绑定一个线程,但每个线程可以绑定一个或多个套接字。这样大量请求报文数据需要进行传输时,可以避免因为套接字一对一的绑定线程所带来的网络延时的性能问题。
在另一些实施例中,如图7所示,所述方法还包括:
S605:当查询的结果为否时,从线程池中选择一个线程基于所述网络传输协议创建新的套接字,绑定选择的线程和所述新的套接字。
在实际应用中,例如采用TCP协议作为网络传输协议的网络通信过程中,需要先通过三次握手建立连接(建立套接字);当步骤S601查询的结果为否时,即还未建立连接,相应的,可以从线程池中选择一个线程基于所述网络传输协议创建新的套接字,绑定选择的线程和所述新的套接字。
S607:将所述新的套接字加入所述网络传输协议的套接字连接池。
另外,本说明书实施例中,所述线程池可以包括套接字接入线程池和数据收发线程池。具体的,套接字接入线程池中的线程可以用于创建新的套接字,绑定新的套接字与当前处理的线程,并将所述新的套接字加入相应的套接字连接池。例如,当步骤S601查询的结果为否时,即没有找到与当前请求报文数据相对应套接字时,可以从所述套接字接入线程池中选择一个线程负责创建新的套接字并加入相应的套接字连接池,同时绑定该线程和套接字。具体的,所述数据收发线程池中线程可以用于对请求报文数据的收发进行处理。
S609:利用所述选择的线程向目的网络节点发送所述应用层的请求报文数据。
在另一些实施例中,如图8所示,所述方法还可以包括:
S509:接收所述目的网络节点发送的所述应用层的请求报文数据的应答报文数据,所述应答报文数据为应用层的应答报文数据。
具体的,在实际应用中,可以利用发送所述应用层的请求报文数据的线程接收所述应答报文数据。
S511:对所述应用层的应答报文数据进行封装处理,得到网络层的IP应答报文数据。
具体的,这里对应用层的应答报文数据进行封装处理得到网络层的IP应答报文数据的具体步骤可以参见上述封装处理的相关步骤,再次不再赘述。
S513:将所述网络层的IP应答报文数据写入虚拟网卡,以便所述虚拟网卡将所述IP应答报文数据发送至相应的本地客户端。
此外,需要说明的是,本说明书实施例中所述网络传输协议并不仅限于TCP协议,即并不仅限于对TCP协议的报文的解析,以及基于TCP协议对应用层的报文进行转发等操作,在实际应用中,还可以包括其他协议,例如UDP协议等。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中通过虚拟网卡建立与本地客户端之间的网络数据的交互构建本地的虚拟专用网络,并通过在本地对本地客户端发送的网络请求报文数据的解封和转发实现了本地虚拟专用网络的协议簇,避免了与远端VPN服务器的连接交互带来的网络延时,大大提高网络性能,实现快速的网络通信。
本说明书还提供网络通信方法的另一种实施例,图9是本发明实施例提供的网络通信方法的另一种实施例的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图9所示,所述方法可以包括:
S901:从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据。
S903:对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据。
S905:根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议。
S907:对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据。
本说明书一些实施例中,为了提高网络通信的安全性,可以在传输所述应用层的请求报文数据之前,对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据。
在实际应用中,所述安全传输处理可以包括但不限于下述之一:报文过滤处理、加密处理。
在一个具体的实施例中,如图10所示,当所述安全传输处理为报文过滤处理时,所述对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据可以包括:
S1001:判断所述应用层的请求报文数据是否为预设过滤数据。
本说明书的一些实施例中,所述预设过滤数据可以包括预先设置的禁止传输的数据。具体的应用中可以包括但不限于垃圾广告请求数据、重要机密数据等。
S1003:当判断的结果为否时,确定所述应用层的请求报文数据为安全传输的请求报文数据。
在实际应用中,当步骤S1001判断的结果为否时,可以确定当前需要传输的请求报文数据可以进行传输。相应的,可以确定所述应用层的请求报文数据为安全传输的请求报文数据。
在另一个具体的实施例中,如图11所示,所述方法还可以包括:
S1005:当判断的结果为是时,向所述虚拟网卡写入预设传输失败数据。
在实际应用中,当步骤S1001判断的结果为是时,可以确定当前需要传输的请求报文数据为预先设置的禁止传输的数据。相应的,可以向所述虚拟网卡写入预设传输失败数据,以便所述虚拟网卡向相应的客户端反馈所述预设传输失败数据。
具体的,本说明书实施例中,所述预设传输失败数据可以包括可以表征请求报文数据传输失败的信息。
在另一个具体的实施例中,如图12所示,当所述安全传输处理为加密处理时,所述对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据可以包括:
S1201:对所述应用层的请求报文数据进行加密处理,得到加密处理后的请求报文数据。
本说明一些实施例中,所述加密处理可以包括但不限于MD5(Message DigestAlgorithm 5,信息摘要算法5)。
S1203:将所述加密处理后的请求报文数据作为安全传输的请求报文数据。
S909:基于所述传输层的请求报文数据所对应的网络传输协议向目的网络节点发送所述安全传输的请求报文数据。
此外,需要说明的是,本说明书实施例中并不仅限于对解封处理后应用层的数据报文进行安全传输处理,还可以在接收到目的网络节点的发送的应用层的报文进行安全传输处理。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中通过虚拟网卡建立与本地客户端之间的网络数据的交互构建本地的虚拟专用网络,并通过在本地对本地客户端发送的网络请求报文数据的解封和转发实现了本地虚拟专用网络的协议簇,避免了与远端VPN服务器的连接交互带来的网络延时,大大提高网络性能,实现快速的网络通信。另外,在请求报文数据转发之前,通过对需要传输的请求报文数据进行安全传输处理,可以实现网络垃圾广告的拦截,防火墙,数据加密等功能,实现快速安全的网络通信。
本发明实施例还提供了一种网络通信***,如图13所示,所述***包括:
IP请求报文数据读取模块1310,可以用于从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据;
解封处理模块1320,可以用于对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据;
网络传输协议确定模块1330,可以用于根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议;
请求报文数据发送模块1340,可以用于基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。
另一实施例中,如图14所示,所述请求报文数据发送模块1340可以包括:
套接字查询单元1341,可以用于查询所述网络传输协议的套接字连接池中是否存在与所述应用层的请求报文数据相对应的套接字;
线程获取单元1342,可以用于当所述套接字查询单元查询的结果为是时,从线程池中获取与所述套接字绑定的线程;
第一请求报文数据单元1343,可以用于利用所述与所述套接字绑定的线程向目的网络节点发送所述应用层的请求报文数据。
另一实施例中,如图15所示,所述请求报文数据发送模块1340还可以包括:
套接字单元1344,可以用于当查询的结果为否时,从线程池中选择一个线程基于所述网络传输协议创建新的套接字;
绑定处理单元1345,可以用于绑定选择的线程和所述新的套接字;
套接字增加处理单元1346,可以用于将所述新的套接字加入所述网络传输协议的套接字连接池;
相应的,所述请求报文数据发送模块1340还可以包括:
第二请求报文数据单元1347,用于利用所述选择的线程向目的网络节点发送所述应用层的请求报文数据。
另一实施例中,所述套接字连接池中的套接字绑定一个线程,所述线程绑定一个或多个套接字。
另一实施例中,如图16所示,所述***还可以包括:
安全传输处理模块1350,可以用于在基于网络传输协议向目的网络节点发送所述应用层的请求报文数据之前,对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据;
相应的,所述请求报文数据发送模块还可以用于基于所述传输层的请求报文数据所对应的网络传输协议向目的网络节点发送所述安全传输的请求报文数据。
另一实施例中,所述安全传输处理模块1350可以包括:
过滤数据判断单元,可以用于判断所述应用层的请求报文数据是否为预设过滤数据;
第一安全传输处理数据确定单元,可以用于当所述过滤数据判断单元判断的结果为否时,确定所述应用层的请求报文数据为安全传输的请求报文数据。
另一实施例中,所述安全传输处理模块1350还可以包括:
传输失败数据反馈单元,可以用于当所述过滤数据判断单元判断的结果为是时,向所述虚拟网卡写入预设传输失败数据。
另一实施例中,所述安全传输处理模块1350可以包括:
加密处理单元,可以用于对所述应用层的请求报文数据进行加密处理,得到加密处理后的请求报文数据;
第二安全传输处理数据确定单元,可以用于将所述加密处理后的请求报文数据作为安全传输的请求报文数据。
另一实施例中,如图17所示,所述***还可以包括:
应答报文数据接收模块1360,可以用于接收所述目的网络节点发送的所述应用层的请求报文数据的应答报文数据,所述应答报文数据为应用层的应答报文数据;
封装处理模块1370,可以用于对所述应用层的应答报文数据进行封装处理,得到网络层的IP应答报文数据;
数据写入模块1380,可以用于将所述网络层的IP应答报文数据写入虚拟网卡,以便所述虚拟网卡将所述IP应答报文数据发送至相应的本地客户端。
所述的***实施例中的***与方法实施例基于同样地发明构思。
本发明实施例提供了一种网络通信服务器,该网络通信服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的网络通信方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例还提供了一种服务器的结构示意图,请参阅图18,该服务器1800用于实施上述实施例中提供的网络通信方法,具体来讲,所述服务器结构可以包括上述网络通信***。该服务器1800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,CPU)1810(例如,一个或一个以上处理器)和存储器1830,一个或一个以上存储应用程序1823或数据1822的存储介质1820(例如一个或一个以上海量存储设备)。其中,存储器1830和存储介质1820可以是短暂存储或持久存储。存储在存储介质1820的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1810可以设置为与存储介质1820通信,在服务器1800上执行存储介质1820中的一系列指令操作。服务器1800还可以包括一个或一个以上电源1860,一个或一个以上有线或无线网络接口1850,一个或一个以上输入输出接口1840,和/或,一个或一个以上操作***1821,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本发明的实施例还提供了一种存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种网络通信方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的网络通信方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
由上述本发明提供的网络通信方法、***、服务器或存储介质的实施例可见,本发明中通过虚拟网卡建立与本地客户端之间的网络数据的交互构建本地的虚拟专用网络,并通过在本地对本地客户端发送的网络请求报文数据的解封和转发实现了本地虚拟专用网络的协议簇,避免了与远端VPN服务器的连接交互带来的网络延时,大大提高网络性能,实现快速的网络通信。另外,在请求报文数据转发之前,通过对需要传输的请求报文数据进行安全传输处理,可以实现网络垃圾广告的拦截,防火墙,数据加密等功能,实现快速安全的网络通信。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***、服务器和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种网络通信方法,其特征在于,所述方法包括:
从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据;
对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据;
根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议;
基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。
2.根据权利要求1所述的方法,其特征在于,所述基于网络传输协议向目的网络节点发送所述应用层的请求报文数据包括:
查询所述网络传输协议的套接字连接池中是否存在与所述应用层的请求报文数据相对应的套接字;
当查询的结果为是时,从线程池中获取与所述套接字绑定的线程,利用所述与所述套接字绑定的线程向目的网络节点发送所述应用层的请求报文数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当查询的结果为否时,从线程池中选择一个线程基于所述网络传输协议创建新的套接字,绑定选择的线程和所述新的套接字;
将所述新的套接字加入所述网络传输协议的套接字连接池;
相应的,所述方法还包括:利用所述选择的线程向目的网络节点发送所述应用层的请求报文数据。
4.根据权利要求2或3所述的方法,其特征在于,所述套接字连接池中的套接字绑定一个线程,所述线程绑定一个或多个套接字。
5.根据权利要求1至3任一所述的方法,其特征在于,在基于网络传输协议向目的网络节点发送所述应用层的请求报文数据之前,所述方法还包括:
对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据;
相应的,所述基于网络传输协议向目的网络节点发送所述应用层的请求报文数据包括基于所述传输层的请求报文数据所对应的网络传输协议向目的网络节点发送所述安全传输的请求报文数据。
6.根据权利要求5所述的方法,其特征在于,所述对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据包括:
判断所述应用层的请求报文数据是否为预设过滤数据;
当判断的结果为否时,确定所述应用层的请求报文数据为安全传输的请求报文数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当判断的结果为是时,向所述虚拟网卡写入预设传输失败数据。
8.根据权利要求5所述的方法,其特征在于,所述对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据包括:
对所述应用层的请求报文数据进行加密处理,得到加密处理后的请求报文数据;
将所述加密处理后的请求报文数据作为安全传输的请求报文数据。
9.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
接收所述目的网络节点发送的所述应用层的请求报文数据的应答报文数据,所述应答报文数据为应用层的应答报文数据;
对所述应用层的应答报文数据进行封装处理,得到网络层的IP应答报文数据;
将所述网络层的IP应答报文数据写入虚拟网卡,以便所述虚拟网卡将所述IP应答报文数据发送至相应的本地客户端。
10.一种网络通信***,其特征在于,所述***包括:
IP请求报文数据读取模块,用于从虚拟网卡中读取本地客户端发送的网络协议IP请求报文数据;
解封处理模块,用于对所述IP请求报文数据进行解封处理,得到传输层的请求报文数据和应用层的请求报文数据;
网络传输协议确定模块,用于根据所述传输层的请求报文数据确定所述应用层的请求报文数据的网络传输协议;
请求报文数据发送模块,用于基于网络传输协议向目的网络节点发送所述应用层的请求报文数据。
11.根据权利要求10所述的***,其特征在于,所述请求报文数据发送模块包括:
套接字查询单元,用于查询所述网络传输协议的套接字连接池中是否存在与所述应用层的请求报文数据相对应的套接字;
线程获取单元,用于当所述套接字查询单元查询的结果为是时,从线程池中获取与所述套接字绑定的线程;
第一请求报文数据单元,用于利用所述与所述套接字绑定的线程向目的网络节点发送所述应用层的请求报文数据。
12.根据权利要求11所述的***,其特征在于,所述请求报文数据发送模块还包括:
套接字单元,用于当查询的结果为否时,从线程池中选择一个线程基于所述网络传输协议创建新的套接字;
绑定处理单元,用于绑定选择的线程和所述新的套接字;
套接字增加处理单元,用于将所述新的套接字加入所述网络传输协议的套接字连接池;
相应的,所述请求报文数据发送模块还包括:
第二请求报文数据单元,用于利用所述选择的线程向目的网络节点发送所述应用层的请求报文数据。
13.根据权利要求11或12所述的***,其特征在于,所述套接字连接池中的套接字绑定一个线程,所述线程绑定一个或多个套接字。
14.根据权利要求10至12任一所述的***,其特征在于,所述***还包括:
安全传输处理模块,用于在基于网络传输协议向目的网络节点发送所述应用层的请求报文数据之前,对所述应用层的请求报文数据安全传输处理,得到安全传输的请求报文数据;
相应的,所述请求报文数据发送模块还用于基于所述传输层的请求报文数据所对应的网络传输协议向目的网络节点发送所述安全传输的请求报文数据。
15.一种网络通信服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至9任一所述的网络通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810387711.7A CN110417632B (zh) | 2018-04-26 | 2018-04-26 | 一种网络通信方法、***及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810387711.7A CN110417632B (zh) | 2018-04-26 | 2018-04-26 | 一种网络通信方法、***及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110417632A true CN110417632A (zh) | 2019-11-05 |
CN110417632B CN110417632B (zh) | 2021-08-17 |
Family
ID=68345751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810387711.7A Active CN110417632B (zh) | 2018-04-26 | 2018-04-26 | 一种网络通信方法、***及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110417632B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958264A (zh) * | 2019-12-13 | 2020-04-03 | 电子科技大学中山学院 | 一种基于tcp/ip协议的服务器通信方法 |
CN111343098A (zh) * | 2020-02-13 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 数据交互方法、装置、计算机设备和存储介质 |
CN113507506A (zh) * | 2021-06-23 | 2021-10-15 | 烽火通信科技股份有限公司 | 虚拟专用网络***及其搭建方法、设备以及可读存储介质 |
CN114866624A (zh) * | 2022-03-25 | 2022-08-05 | 深圳市国电科技通信有限公司 | 数据传输方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729513A (zh) * | 2008-10-27 | 2010-06-09 | 成都市华为赛门铁克科技有限公司 | 网络认证方法和装置 |
CN102065125A (zh) * | 2010-11-18 | 2011-05-18 | 广州致远电子有限公司 | 一种嵌入式ssl vpn的实现方法 |
CN102843292A (zh) * | 2012-08-20 | 2012-12-26 | 成都卫士通信息产业股份有限公司 | 一种跨运营商网络的vpn数据处理方法及装置 |
CN104579879A (zh) * | 2014-12-05 | 2015-04-29 | 上海斐讯数据通信技术有限公司 | 一种虚拟专用网络通信***、连接方法及数据包传输方法 |
-
2018
- 2018-04-26 CN CN201810387711.7A patent/CN110417632B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729513A (zh) * | 2008-10-27 | 2010-06-09 | 成都市华为赛门铁克科技有限公司 | 网络认证方法和装置 |
CN102065125A (zh) * | 2010-11-18 | 2011-05-18 | 广州致远电子有限公司 | 一种嵌入式ssl vpn的实现方法 |
CN102843292A (zh) * | 2012-08-20 | 2012-12-26 | 成都卫士通信息产业股份有限公司 | 一种跨运营商网络的vpn数据处理方法及装置 |
CN104579879A (zh) * | 2014-12-05 | 2015-04-29 | 上海斐讯数据通信技术有限公司 | 一种虚拟专用网络通信***、连接方法及数据包传输方法 |
Non-Patent Citations (1)
Title |
---|
赵华: "《应用层VPN研究与实现》", 《西安电子科技大学》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958264A (zh) * | 2019-12-13 | 2020-04-03 | 电子科技大学中山学院 | 一种基于tcp/ip协议的服务器通信方法 |
CN111343098A (zh) * | 2020-02-13 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 数据交互方法、装置、计算机设备和存储介质 |
CN111343098B (zh) * | 2020-02-13 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 数据交互方法、装置、计算机设备和存储介质 |
CN113507506A (zh) * | 2021-06-23 | 2021-10-15 | 烽火通信科技股份有限公司 | 虚拟专用网络***及其搭建方法、设备以及可读存储介质 |
CN113507506B (zh) * | 2021-06-23 | 2022-07-29 | 烽火通信科技股份有限公司 | 虚拟专用网络***及其搭建方法、设备以及可读存储介质 |
CN114866624A (zh) * | 2022-03-25 | 2022-08-05 | 深圳市国电科技通信有限公司 | 数据传输方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110417632B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417632A (zh) | 一种网络通信方法、***及服务器 | |
CN105553977B (zh) | 请求消息的处理、发送方法及装置 | |
US9917743B2 (en) | Directing data flows in data centers with clustering services | |
CN105162883B (zh) | 网络负载均衡处理***及其方法和装置 | |
WO2018094743A1 (zh) | 处理报文的方法和计算机设备 | |
CN109088892A (zh) | 数据传输方法、***以及代理服务器 | |
EP2538637A2 (en) | Multi-path transmission control protocol proxy service | |
US20040177158A1 (en) | Network address translation techniques for selective network traffic diversion | |
CN110191031A (zh) | 网络资源访问方法、装置、电子设备 | |
CN109246172A (zh) | 一种恢复会话的方法、装置及计算机存储介质 | |
CN101364976B (zh) | 一种建立通信通道的方法、装置及数据通信*** | |
CN107666474B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN109756508A (zh) | 基于多协议接入区块链网络的消息代理方法及相关设备 | |
CN107508836B (zh) | 一种acl规则下发的方法及装置 | |
CN102523207A (zh) | 基于虚拟网络计算机的远程资源访问方法及代理设备 | |
CN107682470A (zh) | 一种检测nat地址池中公网ip可用性的方法及装置 | |
CN106101007B (zh) | 处理报文的方法及装置 | |
CN110324365A (zh) | 无密钥前端集群***、应用方法、存储介质、电子装置 | |
CN110233902A (zh) | 会话处理方法、装置、电子设备及机器可读存储介质 | |
CN114153607A (zh) | 跨节点边缘计算负载均衡方法、设备、可读存储介质 | |
US11223689B1 (en) | Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof | |
CN107547680A (zh) | 一种数据处理方法及装置 | |
CN105099952A (zh) | 一种资源分配方法及装置 | |
US20180248765A1 (en) | Method for selecting negotiation counterpart, method for responding to discovery message, and related apparatus | |
CN106060155B (zh) | P2p资源共享的方法及装置 |
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 |