CN111726384A - 通信方法及装置 - Google Patents

通信方法及装置 Download PDF

Info

Publication number
CN111726384A
CN111726384A CN201910221336.3A CN201910221336A CN111726384A CN 111726384 A CN111726384 A CN 111726384A CN 201910221336 A CN201910221336 A CN 201910221336A CN 111726384 A CN111726384 A CN 111726384A
Authority
CN
China
Prior art keywords
proxy
application
server
proxy client
data
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
CN201910221336.3A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910221336.3A priority Critical patent/CN111726384A/zh
Publication of CN111726384A publication Critical patent/CN111726384A/zh
Pending legal-status Critical Current

Links

Images

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/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

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

Abstract

本发明公开了一种通信方法,在代理客户端中执行,包括:获取并缓存应用产生的应用请求数据;当与代理服务端建立网络连接时,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至代理服务端,以便代理服务端将应用请求数据发送至应用服务端,其中,会话标识用于标识代理客户端与代理服务端的本次通信;通过代理服务端接收应用服务端返回的响应数据,以及将响应数据发送至对应的应用。本发明一并公开了在代理服务端中执行的通信方法以及相应的装置。

Description

通信方法及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种通信方法及装置。
背景技术
终端应用(App)通常需要工作在联网状态,通过与服务端通信来从服务端获取相关数据,以向用户提供相应功能。目前,应用多采用socket技术来与服务端进行网络通信,而socket严重依赖网络状态。随着终端设备的便携性逐渐提高,终端设备所处的网络状态复杂、多变,例如,终端设备可能频繁出现IP地址变化或网络断线等情况。在这种情况下,socket连接会频繁地关闭、创建,并且应用会频繁地向用户发出无法联网、无法打开页面等提示,通信效率低下,对用户带来大量困扰,用户体验不佳。
发明内容
为此,本发明提供一种通信方法及装置,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种通信方法,在代理客户端中执行,所述方法包括:获取并缓存应用产生的应用请求数据;当与代理服务端建立网络连接时,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至所述代理服务端,以便所述代理服务端将所述应用请求数据发送至应用服务端,其中,所述会话标识用于标识代理客户端与代理服务端的本次通信;通过代理服务端接收应用服务端返回的响应数据,以及将所述响应数据发送至对应的应用。
根据本发明的第二个方面,提供一种通信方法,在代理服务端中执行,所述方法包括:接收代理客户端发送的会话标识、代理客户端的IP地址和应用请求数据,其中,所述会话标识用于标识代理客户端与代理服务端的本次通信;将所述应用请求数据发送至应用服务端;接收应用服务端返回的响应数据,以及将所述响应数据发送至所述代理客户端。
根据本发明的第三个方面,提供一种通信系统,包括:代理客户端和代理服务端,所述代理客户端与所述代理服务端通信连接,所述代理客户端设置于终端设备中,适于获取并缓存应用产生的应用请求数据,当与代理服务端建立网络连接时,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至代理服务端,通过代理服务端接收应用服务端返回的响应数据,以及将所述响应数据发送至对应的应用,其中,所述会话标识用于标识代理客户端与代理服务端的本次通信;所述代理服务端与应用服务端通信连接,适于将代理客户端发送的应用请求数据发送至应用服务端,接收应用服务端返回的响应数据,以及将所述响应数据发送至所述代理客户端。
根据本发明的第四个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如上所述的通信方法。
根据本发明的第五个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的通信方法。
根据本发明的通信方案,在终端设备侧设置代理客户端,在应用服务端侧设置代理服务端,终端设备不直接与应用服务端通信,而是通过代理客户端、代理服务端来与应用服务端通信。终端设备中的上层应用将待发送的应用请求数据交给代理客户端,代理客户端对获取到的应用请求数据进行缓存。代理客户端可以感知网络状态,当网络状态正常时,代理客户端将请求数据发送至代理服务端,代理服务端则将来自应用服务端的响应数据发送至代理客户端。在复杂网络情况下,终端设备上的应用不感知网络状态,不会将大量资源用于处理socket通信的异常、频繁地关闭/创建socket以及向用户提示网络状态异常,提到了通信效率及用户体验。
在本发明的通信方案中,代理客户端与代理服务端之间的通信采用会话标识来标识,使得本发明的通信方法可以适应IP地址变化的复杂网络环境。即使代理客户端的IP地址发生变化,由于代理客户端发送的数据中携带了同一个会话标识,代理服务端也可以识别出与之通信的是同一个代理客户端,与该代理客户端继续通信。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的通信系统100的示意图;
图2示出了根据本发明一个实施例的通信方法200(代理客户端侧)的流程图;
图3示出了根据本发明一个实施例的确定会话标识的过程300的示意图;
图4示出了根据本发明一个实施例的确定会话标识的过程400的交互图;
图5示出了根据本发明一个实施例的数据收发过程500的示意图;
图6示出了根据本发明一个实施例的数据收发过程600的交互图;
图7示出了根据本发明一个实施例的通信方法700(代理服务端侧)的流程图;以及
图8示出了根据本发明一个实施例的计算设备800的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的通信系统100的示意图。如图1所示,通信系统100包括终端设备110和服务端设备120~140。应当指出,图1所示的通信系统100仅为一个示例,尽管图1中仅示出了一个终端设备和三个服务端设备,但是本领域技术人员可以理解,在其他实施例中,可以根据实际情况在通信系统中部署任意数量的终端设备和服务端设备,本发明对通信系统所包括的终端设备及服务端设备的数量均不做限制。
终端设备110为位于用户侧的设备,其可以实现为任意可接入互联网的设备,例如桌面电脑、笔记本电脑等个人配置的计算机,或手机、平板电脑、智能可穿戴设备等移动终端,或智能家电、车机、无人机等物联网(Internet of Things,简称IoT)设备等,但不限于此。
终端设备110中通常部署有多个应用(Application,简称App),例如浏览器、购物应用、即时通讯应用、拍照美颜应用等,用于向用户提供相应的功能。如图1所示,终端设备110中部署有第一应用111和第二应用112。
服务端设备120~140是用于向终端设备110提供计算服务的设备,其例如可以实现为物理服务器、工作站等高性能计算机,也可以是桌面电脑、笔记本电脑等个人配置的计算机,还可以是手机、平板电脑、智能可穿戴设备等移动终端,但不限于此。
服务端设备130、140中分别部署有应用服务端,该应用服务端用于向终端设备110中的相应应用提供方法及数据调用等服务。如图1所示,服务端设备130中部署有第一应用服务端131,第一应用服务端131用于向终端设备110中的第一应用111提供相应的服务。服务端设备140中部署有第二应用服务端141,第二应用服务端141用于向终端设备110中的第二应用112提供相应的服务。
需要说明的是,应用服务端本质上是部署于服务端设备中的、用于向用户提供服务的应用(代码)。一个服务端设备中可以仅部署一个应用服务端(如图1所示),也可以部署多个应用服务端。在云计算场景中,一个服务端设备通常部署有多个应用服务端。例如,服务端设备130为云服务器,第一应用服务端131和第二应用服务端141可以均部署于该云服务器中,这时,第一应用服务端131和第二应用服务端141为该云服务器中的计算实例。
在现有方案中,应用与应用服务端直接建立socket(套接字)连接进行通信,即,第一应用111与第一应用服务端131直接建立socket连接,第二应用112与第二应用服务端141直接建立socket连接。由于socket通信严重依赖网络状态,而终端设备110所处的网络状态复杂、多变,可能频繁出现IP地址变化或网络断线等情况。在这种情况下,socket连接会频繁地关闭、创建,相应地,第一应用111、第二应用112的用户界面上会频繁发出无法联网、无法打开页面等异常提示,通信效率低下,并且对用户带来大量困扰,用户体验不佳。
有鉴于此,本发明提供一种通信方案,以解决上述问题。如图1所示,在本发明的通信方案中,在终端设备110处设置代理客户端113,在服务端设备120中设置代理服务端121(当然,代理服务端121也可以设置于服务端设备130或140中)。终端设备110中的应用(第一应用111、第二应用112)不再与相应的应用服务端(第一应用服务端131、第二应用服务端141)直接通信,而是通过代理客户端113、代理服务端121来与应用服务端通信。
具体地,例如,代理客户端113可以监听目标网卡114,当第一应用111将待发送的应用请求数据发送至目标网卡114后,代理客户端113获取该应用请求数据并缓存。当代理客户端113与代理服务端121建立网络连接时,代理客户端113将用于标识代理客户端113与代理服务端121的本次通信的会话标识、代理客户端113的IP地址以及所缓存的应用请求数据通过目标网卡114发送至代理服务端121所在的服务端设备120的第三网卡122,第三网卡122将上述数据传递至代理服务端121。代理服务端121从接收到的数据中解析出应用请求数据,将应用请求数据发送至相应的第一应用服务端131。
第一应用服务端131基于接收到的应用请求数据,确定相应的响应数据,并将响应数据返回至代理服务端121。代理服务端121进一步将响应数据返回至代理客户端113,代理客户端113对响应数据进行一定的处理后,发送至目标网卡114,以便第一应用111能够从目标网卡114处获取相应的响应数据。
以上以第一应用111与第一应用服务端131为例,介绍了代理客户端113和代理服务端121的工作过程。不过,代理客户端113和代理服务端121不限于仅实现第一应用111与第一应用服务端131的通信,其可以实现终端设备110中任意应用与其对应的应用服务端的通信。例如,代理客户端113和代理服务端121还可以用于第二应用112与第二应用服务端141之间的通信,通信过程与上述第一应用111的通信过程类似,此处不再赘述。
应当指出,如图1所示,第一应用111、第二应用112、代理客户端113、代理服务端121、第一应用服务端131、第二应用服务端141工作在网络通信协议(例如OSI七层协议等)的应用层,目标网卡114等网卡工作在链路层。本领域技术人员应当可以理解,基于现有的网络传输协议,应用层和链路层之间还包括传输层、网络层。本说明书为了清楚、简要地描述本发明的通信方案,图1中仅示出了应用层和链路层,而未示出传输层、网络层及网络传输协议中的其他处理层。
基于本发明的通信方案,在终端设备侧设置代理客户端113,在应用服务端侧设置代理服务端121,终端设备不直接与应用服务端通信,而是通过代理客户端113、代理服务端121来与应用服务端通信。终端设备中的上层应用111、112将待发送的应用请求数据交给代理客户端113,代理客户端113对获取到的应用请求数据进行缓存。代理客户端113可以感知网络状态,当网络状态正常时,代理客户端113将请求数据发送至代理服务端121,代理服务端121则将来自应用服务端的响应数据发送至代理客户端113。在复杂网络情况下,终端设备110上的应用不感知网络状态,不会将大量资源用于处理socket通信的异常、频繁地关闭/创建socket以及向用户提示网络状态异常,提到了通信效率及用户体验。
另外,在本发明的通信方案中,代理客户端113与代理服务端121之间的通信采用会话标识来进行标识,使得本发明的通信方法可以适应IP地址变化的复杂网络环境。即使代理客户端的IP地址发生变化,由于代理客户端发送的数据中携带了同一个会话标识,代理服务端也可以识别出与之通信的是同一个代理客户端,与该代理客户端继续通信。
图2示出了根据本发明一个实施例的通信方法200的流程图。方法200在代理客户端(例如前述代理客户端113)处执行。如图2所示,方法200始于步骤S210。
在步骤S210中,获取并缓存应用产生的应用请求数据。
随后,在步骤S220中,当与代理服务端建立网络连接时,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至代理服务端,以便代理服务端将应用请求数据发送至应用服务端,其中,会话标识用于标识代理客户端与代理服务端的本次通信。
若代理服务端与代理服务端之间的网络连接断开,则代理服务端继续缓存应用请求数据,待恢复与代理服务端的网络连接后,再执行步骤S220,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至代理服务端。
根据一种实施例,代理客户端适于监听终端设备中的目标网卡。目标网卡即为当前终端设备中用于进行数据收发的网卡。代理客户端用于监听目标网卡,当应用将应用请求数据发送至目标网卡时,相应地,目标网卡中有待发送的应用请求数据,这时,代理客户端执行步骤S210,从目标网卡中获取应用请求数据并缓存。当代理客户端与代理服务端建立网络连接时,执行步骤S220,将缓存的应用请求数据与会话标识、代理客户端的IP地址一同发送至代理服务端。
代理客户端的IP地址即终端设备中目标网卡的IP地址。目标网卡的IP地址通常由终端设备所在的局域网内的DHCP(Dynamic Host Configuration Protocol)服务器来分配,并且,DHCP服务器在确定了目标网卡的IP地址后,会将相应的网关路由IP地址以及DNS(Domain Name System)服务器的IP地址一并发送至终端设备。在确定了目标网卡以及相应的网关路由、DNS服务器的IP地址后,对代理客户端进行相应配置,使代理客户端监听该目标网卡,并能够通过该目标网卡以及相应的网关路由、DNS服务器与外部设备进行通信。
会话标识是一个字符串,用于唯一标识代理客户端和代理服务端在某段时间内的通信。在步骤S220中,代理客户端向代理服务端发送应用请求数据的同时,一并发送了会话标识。因此,根据一种实施例,需要在执行步骤S220之前首先确定代理客户端与代理服务端本次通信的会话标识。
根据一种实施例,会话标识可以按照以下方法确定:判断终端设备处是否已存储有有效的会话标识;若是,则获取该有效的会话标识;若否,则代理客户端向代理服务端发送连接请求,并接收代理服务端为本次通信分配的会话标识。
终端设备处未存储有有效的会话标识包括两种情况:一种是终端设备处存储有无效的会话标识,另一种情况是终端设备处未存储有会话标识。这两种情况下,均需要请求代理服务端来为本次通信分配会话标识。此外,当终端设备处存储有无效的会话标识时,表明该终端设备中的代理客户端在一段时间以前曾与代理服务端进行通信,但是现在通信已结束,终端设备中可能仍存储有上一次与代理服务端通信的历史数据,某些变量(例如数据的发送、接收记录等)的值可能被改变。在这种情况下,为了本次通信的正常进行,需要清除上次通信的历史数据,即,清除无效的会话标识所关联的历史数据,将相关变量置为初始值。
图3示出了根据本发明一个实施例的确定会话标识的过程300的示意图。该过程由代理客户端执行。如图3所示,该过程始于步骤S301。
在步骤S301中,判断是否存在有效的会话标识。若是,则执行步骤S302,获取会话标识,过程300结束;若否,则继续执行步骤S303。
在步骤S303中,判断是否存在无效的会话标识。若是,则执行步骤S304,清除该无效的会话标识所关联的历史数据,随后执行步骤S305;若否,则执行步骤S305。
在步骤S305中,判断终端设备是否连接至互联网。若否,则表明当前终端设备未连网,代理客户端无法与外部设备进行网络通信,这时,执行步骤S306,休眠一段时间,待一段时间后,再次执行步骤S305,判断是否已连网;若是,则执行步骤S307,向代理服务端发送连接请求,以请求代理服务端为本次通信分配会话标识。
在一些实施例中,代理客户端中预先配置了代理服务端的IP地址,这种情况下,代理客户端可以直接根据IP地址向代理服务端发送连接请求。在另一些实施例中,代理客户端处配置了代理服务端的域名,而不知晓代理服务端的IP地址。在这种情况下,代理客户端可以先向DNS服务器请求获取代理服务端的IP地址,然后再根据代理服务端的IP地址向代理服务端发送连接请求。
代理客户端在向代理服务端发送连接请求后,执行步骤S308,等待代理服务端返回响应,即等待代理服务端返回会话标识。若在某段时间内(例如60秒内)代理服务端返回响应,则在步骤S309中,代理客户端接收代理服务端返回的会话标识,过程300结束。
若在某段时间内未收到代理服务端的响应,则执行步骤S310,判断当前重试次数是否达到最大值,若尚未达到最大值,则再次向代理服务端发送连接请求;若已达到最大值,则执行步骤S311,返回本次获取会话标识失败,过程300结束。
若过程300以步骤S311结束,则表明代理客户端尚未获取到会话标识,代理客户端将在一段时间后再次尝试向代理客户端发起连接请求,以获取会话标识。
图4示出了根据本发明一个实施例的确定会话标识的过程的交互图。图4所示的交互图与前述图3所示的代理客户端处执行的流程图相对应。如图4所示,在步骤S401中,代理客户端首先判断终端设备处是否存在有效的会话标识,若是,则获取该有效的会话标识;若否,则执行步骤S402,向代理服务端发送连接请求。在步骤S403中,代理服务端将为本次通信分配的会话标识返回给代理客户端。
如图4所示,确定会话标识的过程仅涉及代理客户端和代理服务端,而与应用(例如第一应用111)和应用服务端(例如第一应用服务端131)无关。
在确定了代理客户端的IP地址和本次通信的会话标识后,代理客户端将IP地址、会话标识和缓存的应用请求数据发送至代理服务端。根据一种实施例,代理客户端将会话标识、代理客户端的IP地址以及所缓存的应用请求数据封装成符合目标传输协议的数据包,将该数据包发送至代理服务端,其中,目标传输协议为代理客户端与代理服务端约定的传输协议。目标传输协议例如可以是HTTP、TCP、UDP等,但不限于此。
目标传输协议可以是代理客户端与代理服务端在步骤S220之前约定的。例如,在前述过程300、400中,代理客户端可以在向代理服务端请求会话标识的同时,一并告知代理服务端其所支持的传输协议。代理服务端将从接收到的传输协议中选择出一种自己能够支持的传输协议,并将会话标识和选中的传输协议一并返回给代理客户端。该选中的传输协议将作为代理客户端与代理服务端之间的目标传输协议。
需要说明的是,在代理客户端与代理服务端通信的过程中,经过二者的协商(协商过程如上所述,协商结果即选中一个二者均支持的传输协议作为目标传输协议),目标传输协议可以发生改变。
代理服务端接收到代理客户端发来的数据后,从中解析出应用请求数据,将接收到的至少一组应用请求数据组成应用请求,将应用请求发送至应用服务端,以便应用服务端基于应用请求,返回相应的响应数据。代理服务端在接收到应用服务端返回的响应数据后,可以对响应数据进行缓存,以及在与代理客户端建立网络连接时,将响应数据返回给代理客户端。
随后,在步骤S230中,通过代理服务端接收应用服务端返回的响应数据,以及将响应数据发送至对应的应用。
根据一种实施例,代理服务端通过目标网卡来接收代理服务端发来的响应数据,将响应数据封装成预设格式的数据包,再将该数据包发送至目标网卡,以便相应的应用能够获取响应数据。其中,预设格式为对应的应用能够读取的数据格式。
在代理客户端与代理服务端通信的过程中,代理客户端的IP地址可能会发生改变。例如,终端设备为用户的手机,用户携带手机移动,在移动的过程中,该手机所连接的WiFi网络发生变化,相应地,代理客户端的IP地址亦发生变化。根据一种实施例,当代理客户端的IP地址发生变化,且缓存中没有待发送的应用请求数据时,代理客户端向代理服务端发送状态变化通知,该状态变化通知包括会话标识和变化后的IP地址。通过向代理服务端发送状态变化通知,代理服务端能够得知代理客户端的最新IP地址,从而将响应数据发送至最新的IP地址,不会发送至旧的IP地址而造成响应数据丢失。
需要说明的是,当代理客户端的IP地址发生变化,且缓存中有待发送的应用请求数据时,则不必专门向代理服务端发送状态变化通知。因为在缓存中有待发送的应用请求数据时,代理客户端需要将该应用请求数据与会话标识和IP地址一起发送至代理服务端,即,代理客户端向代理服务端发送的数据中包括了当前的IP地址(新的IP地址),因此便不必再专门向代理服务端发送针对新的IP地址的状态变化通知了。
根据一种实施例,代理客户端可以主动结束与代理服务端的通信。例如,代理客户端向代理服务端发送结束请求,以断开与代理服务端的通信;当断开与代理服务端的通信后,代理客户端将会话标识的状态设置为无效。
根据另一种实施例,代理服务端也可以主动结束与代理客户端的通信。例如,当代理服务端在预设时长(例如半小时)内未收到代理客户端发来的数据时,断开与代理客户端的通信,向代理客户端发送结束通知。代理客户端在收到代理服务端发来的结束通知后,将会话标识的状态设置为无效。
图5示出了根据本发明一个实施例的数据收发过程500的示意图。该过程由代理服务端执行。如图5所示,该过程始于步骤S501。
在步骤S501中,判断网络是否连接。若无网络连接,则执行步骤S502,休眠一段时间,待一段时间后,再次执行步骤S501,判断终端设备是否连网。若已连接网络,则继续执行步骤S503。
在步骤S503中,判断缓存中是否有待发送的应用请求数据,若是,则执行步骤S506,向代理服务端发送会话标识、代理客户端的IP地址和缓存的应用请求数据;若否,则执行步骤S504。
在步骤S504中,判断代理客户端的IP地址是否发生变化,若是,则执行步骤S505,向代理服务端发送状态变化通知,将新的IP地址告知代理服务端;若否,则回到步骤S501。
在步骤S506向代理服务端发送应用请求数据后,执行步骤S507,代理客户端等待代理服务端返回响应数据。若某段时间内(例如60秒内)代理服务端返回响应数据,则在步骤S508中,代理客户端将响应数据进行封包后发至目标网卡,以便相应的应用能够获取该响应数据。若代理客户端在某段时间内未收到代理服务端的响应,则执行步骤S509,判断当前重试次数是否达到最大值,若尚未达到最大值,则再次向代理服务端发送应用请求数据;如已达到最大值,则执行步骤S510,返回响应失败的结果。
当步骤S510返回响应失败的结果时,则表明代理客户端未成功收到响应数据。代理客户端将在一段时间后再次尝试向代理服务端发送应用请求数据,以获取相应的响应数据。
图6示出了根据本发明一个实施例的数据收发过程的交互图。图6所示的交互图与图5所示的在代理客户端处执行的流程图相对应。
如图6所示,在步骤S601中,当用户在使用第一应用的过程中产生应用请求数据时,第一应用将产生的应用请求数据发送至目标网卡。
需要说明的是,步骤S601以第一应用为例,在实践中,用户可以使用终端设备上的任意应用,其产生的通信过程与图6中使用第一应用的通信过程类似。
代理客户端监听目标网卡。在步骤S602中,代理客户端获取目标网卡中待发送的应用请求数据,将该应用请求数据与会话标识、代理客户端的IP地址一起,封装成符合目标传输协议的数据包,在步骤S603中,将数据包发送至代理服务端。
需要说明的是,由于终端设备处,即代理客户端处的网络环境比较复杂,代理客户端与代理服务端之间的网络连接可能出现断开的情况。当网络断开时,代理客户端会将步骤S602生成的数据包缓存在本地,待网络恢复连接后,再执行步骤S603,将本地缓存的数据包发送至代理服务端。
另外,代理服务端处的IP地址可能会发生变化。当代理服务端的IP地址发生变化时,若本地缓存中没有待发送的数据包,则代理客户端需要向代理服务端发送状态变化通知,以将新的IP地址告知代理服务端,以便代理服务端后续将响应数据发送至新的IP地址。
在步骤S604中,代理服务端对代理客户端发来的数据包进行解析,将接收到的至少一组应用请求数据组成应用请求,将该应用请求发送至第一应用服务端。
在步骤S605中,第一应用服务端针对接收到的应用请求生成响应数据,将响应数据返回给代理服务端。
在步骤S606中,代理服务端将响应数据封装成符合目标传输协议的数据包,将其发送至最近一次接收到的代理服务端的IP地址。
在步骤S607中,代理客户端将接收到的响应数据封装成第一应用能够读取的预设格式的数据包,将该数据包发送至目标网卡。
第一应用监听目标网卡,在步骤S608中,第一应用可以从目标网卡中获取相应的响应数据。
图7示出了根据本发明一个实施例的通信方法700的流程图。方法700在代理服务端(例如前述代理服务端121)中执行。如图7所示,方法700始于步骤S710。
在步骤S710中,接收代理客户端发送的会话标识、代理客户端的IP地址和应用请求数据,其中,会话标识用于标识代理客户端与代理服务端的本次通信。
根据一种实施例,在步骤S710之前,还包括步骤:接收代理客户端发送的连接请求;响应于该连接请求,为与代理客户端的本次通信分配会话标识。
步骤S710与前述步骤S220相对应,步骤S710的具体实施步骤可以参考前述关于步骤S220的相关描述,此处不再赘述。
随后,在步骤S720中,将应用请求数据发送至应用服务端。
根据一种实施例,代理服务端将从代理客户端处接收到的至少一组应用请求数据组成应用请求,将应用请求发送至应用服务端。
随后,在步骤S730中,接收应用服务端返回的响应数据,以及将响应数据发送至代理客户端。
根据一种实施例,代理服务端接收应用服务端的响应数据,将响应数据封装成符合目标传输协议的数据包,将该数据包发送至代理客户端,其中,目标传输协议为代理客户端与代理服务端约定的传输协议。
根据一种实施例,当代理服务端在预设时长内未收到代理客户端发送的数据时,断开与代理客户端的通信,向代理客户端发送结束通知,以便代理客户端在接收到结束通知后,将会话标识的状态设置为无效。
图8示出了根据本发明一个实施例的计算设备800的示意图。如图8所示,计算设备800包括处理器810和存储器820。存储器820中存储有程序指令,当程序指令被处理器810读取并执行时,使得计算设备800执行本发明的通信方法200或通信方法700。
当存储器820中存储有用于执行本发明的通信方法200的程序指令时,计算设备800实现为本发明的终端设备,例如前述图1中的终端设备110,该用于执行通信方法200的程序指令即为本发明的代理客户端113。
当存储器820中存储有用于执行本发明的通信方法700的程序指令时,计算设备800实现为本发明的服务端设备,例如前述图1中的服务端设备120,该用于执行通信方法700的程序指令即为本发明的代理服务端121。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的通信方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (26)

1.一种通信方法,在代理客户端中执行,所述方法包括:
获取并缓存应用产生的应用请求数据;
当与代理服务端建立网络连接时,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至所述代理服务端,以便所述代理服务端将所述应用请求数据发送至应用服务端,其中,所述会话标识用于标识代理客户端与代理服务端的本次通信;
通过代理服务端接收应用服务端返回的响应数据,以及将所述响应数据发送至对应的应用。
2.如权利要求1所述的方法,其中,所述代理客户端适于监听终端设备中的目标网卡,所述获取并缓存应用产生的应用请求数据的步骤包括:
当应用将应用请求数据发送至目标网卡时,从所述目标网卡中获取所述应用请求数据并缓存;
所述将所述响应数据发送至对应的应用的步骤包括:
将所述响应数据发送至目标网卡以便对应的应用获取所述响应数据。
3.如权利要求1所述的方法,其中,在所述将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至所述代理服务端的步骤之前,还包括:
确定用于标识代理客户端与代理服务端的本次通信的会话标识。
4.如权利要求3所述的方法,其中,所述会话标识按照以下步骤确定:
判断终端设备处是否已存储有有效的会话标识;
若是,则获取所述有效的会话标识;
若否,则代理客户端向代理服务端发送连接请求,并接收代理服务端为本次通信分配的会话标识。
5.如权利要求4所述的方法,其中,当终端设备处存储有无效的会话标识时,清除该无效的会话标识所关联的历史数据。
6.如权利要求1所述的方法,还包括:
当所述代理客户端的IP地址发生变化,且缓存中没有待发送的应用请求数据时,向代理服务端发送状态变化通知,所述状态变化通知包括所述会话标识和变化后的IP地址。
7.如权利要求1所述的方法,其中,所述将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至所述代理服务端的步骤包括:
将所述会话标识、代理客户端的IP地址以及应用请求数据封装成符合目标传输协议的数据包,将所述数据包发送至代理服务端,其中,所述目标传输协议为代理客户端与代理服务端约定的传输协议。
8.如权利要求1所述的方法,其中,所述将所述响应数据发送至对应的应用的步骤包括:
将所述响应数据封装成预设格式的数据包,所述预设格式为所述对应的应用能够读取的数据格式;
将所述数据包发送至目标网卡,以便所述对应的应用获取所述响应数据。
9.如权利要求1所述的方法,还包括:
向代理服务端发送结束请求,以断开与代理服务端的通信;
当断开与代理服务端的通信后,将所述会话标识的状态设置为无效。
10.一种通信方法,在代理服务端中执行,所述方法包括:
接收代理客户端发送的会话标识、代理客户端的IP地址和应用请求数据,其中,所述会话标识用于标识代理客户端与代理服务端的本次通信;
将所述应用请求数据发送至应用服务端;
接收应用服务端返回的响应数据,以及将所述响应数据发送至所述代理客户端。
11.如权利要求10所述的方法,其中,在所述接收代理客户端发送的会话标识、代理客户端的IP地址和应用请求数据的步骤之前,还包括:
接收代理客户端发送的连接请求;
响应于所述连接请求,为与所述代理客户端的本次通信分配会话标识。
12.如权利要求10所述的方法,其中,所述将所述响应数据发送至所述代理客户端的步骤包括:
将所述响应数据封装成符合目标传输协议的数据包,将所述数据包发送至所述代理客户端,其中,所述目标传输协议为代理客户端与代理服务端约定的传输协议。
13.如权利要求10所述的方法,还包括:
当在预设时长内未收到代理客户端发送的数据时,断开与代理客户端的通信,向代理客户端发送结束通知,以便代理客户端在接收到所述结束通知后,将所述会话标识的状态设置为无效。
14.一种通信系统,包括:代理客户端和代理服务端,所述代理客户端与所述代理服务端通信连接,
所述代理客户端设置于终端设备中,适于获取并缓存应用产生的应用请求数据,当与代理服务端建立网络连接时,将会话标识、代理客户端的IP地址以及所缓存的应用请求数据发送至代理服务端,通过代理服务端接收应用服务端返回的响应数据,以及将所述响应数据发送至对应的应用,其中,所述会话标识用于标识代理客户端与代理服务端的本次通信;
所述代理服务端与应用服务端通信连接,适于将代理客户端发送的应用请求数据发送至应用服务端,接收应用服务端返回的响应数据,以及将所述响应数据发送至所述代理客户端。
15.如权利要求14所述的系统,其中,所述代理客户端进一步适于:
监听终端设备中的目标网卡,当应用将应用请求数据发送至目标网卡时,从所述目标网卡中获取所述应用请求数据并缓存;以及
将所述响应数据发送至目标网卡以便对应的应用获取所述响应数据。
16.如权利要求14所述的系统,其中,所述代理客户端适于按照以下步骤确定会话标识:
判断终端设备处是否已存储有有效的会话标识;
若是,则获取所述有效的会话标识;
若否,则代理客户端向代理服务端发送连接请求,并接收代理服务端为本次通信分配的会话标识。
17.如权利要求16所述的系统,其中,所述代理客户端适于在终端设备处存储有无效的会话标识时,清楚该无效的会话标识所关联的历史数据。
18.如权利要求14所述的系统,其中,所述代理客户端还适于:
在所述代理客户端的IP地址发生变化,且缓存中没有待发送的应用请求数据时,向代理服务端发送状态变化通知,所述状态变化通知包括所述会话标识和变化后的IP地址。
19.如权利要求14所述的系统,其中,所述代理客户端适于按照以下步骤向代理服务端发送会话标识、代理客户端的IP地址以及应用请求数据:
将所述会话标识、代理客户端的IP地址以及应用请求数据封装成符合目标传输协议的数据包,将所述数据包发送至代理服务端,其中,所述目标传输协议为代理客户端与代理服务端约定的传输协议。
20.如权利要求14所述的系统,其中,所述代理服务端适于按照以下步骤将应用请求数据发送至应用服务端:
将接收到的至少一组应用请求数据组成应用请求,将所述应用请求发送至应用服务端。
21.如权利要求14所述的系统,其中,所述代理客户端适于按照以下步骤将所述响应数据发送至对应的应用:
将所述响应数据封装成预设格式的数据包,所述预设格式为所述对应的应用能够读取的数据格式;
将所述数据包发送至目标网卡,以便所述对应的应用获取所述响应数据。
22.如权利要求14所述的系统,其中,所述代理客户端还适于:
向代理服务端发送结束请求,以断开与代理服务端的通信;
当断开与代理服务端的通信后,将所述会话标识的状态设置为无效。
23.如权利要求14所述的系统,其中,所述代理服务端还适于:
在预设时长内未收到代理客户端发送的数据时,断开与代理客户端的通信,向代理客户端发送结束通知,以便代理客户端在接收到所述结束通知后,将所述会话标识的状态设置为无效。
24.如权利要求14所述的系统,还包括:
至少一个应用,设置于所述终端设备中,适于向代理客户端发送应用请求数据,以及获取代理客户端接收到的响应数据;
应用服务端,适于接收代理服务端发送的应用请求数据,确定所述应用请求数据所对应的响应数据,以及将所述响应数据发送至代理服务端。
25.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如权利要求1-9或10-13中任一项所述的方法。
26.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-9或10-13中任一项所述的方法。
CN201910221336.3A 2019-03-22 2019-03-22 通信方法及装置 Pending CN111726384A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910221336.3A CN111726384A (zh) 2019-03-22 2019-03-22 通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910221336.3A CN111726384A (zh) 2019-03-22 2019-03-22 通信方法及装置

Publications (1)

Publication Number Publication Date
CN111726384A true CN111726384A (zh) 2020-09-29

Family

ID=72562908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910221336.3A Pending CN111726384A (zh) 2019-03-22 2019-03-22 通信方法及装置

Country Status (1)

Country Link
CN (1) CN111726384A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235279A (zh) * 2020-10-10 2021-01-15 北京百度网讯科技有限公司 用于应用间通信的方法、装置、电子设备及可读存储介质
CN112532732A (zh) * 2020-12-03 2021-03-19 郑州阿帕斯数云信息科技有限公司 基于https的会话处理方法及装置
CN112688920A (zh) * 2020-12-09 2021-04-20 北京博瑞彤芸科技股份有限公司 一种判定会面事件真实性的方法及系统
CN113382026A (zh) * 2021-08-16 2021-09-10 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质
CN114257434A (zh) * 2021-12-14 2022-03-29 北京知道创宇信息技术股份有限公司 一种DDoS攻击防御方法、电子设备及存储介质
CN114584963A (zh) * 2020-12-01 2022-06-03 奇点新源国际技术开发(北京)有限公司 通话呼叫方法、装置和终端设备
CN115022386A (zh) * 2022-06-17 2022-09-06 阿里云计算有限公司 一种会话处理的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1921438A (zh) * 2006-09-15 2007-02-28 深圳市深信服电子科技有限公司 一种应用代理实现网间应用加速的方法
CN107426339A (zh) * 2017-09-04 2017-12-01 珠海迈越信息技术有限公司 一种数据连接通道的接入方法、装置及系统
CN108833487A (zh) * 2018-05-23 2018-11-16 南京大学 一种tcp传输协议代理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1921438A (zh) * 2006-09-15 2007-02-28 深圳市深信服电子科技有限公司 一种应用代理实现网间应用加速的方法
CN107426339A (zh) * 2017-09-04 2017-12-01 珠海迈越信息技术有限公司 一种数据连接通道的接入方法、装置及系统
CN108833487A (zh) * 2018-05-23 2018-11-16 南京大学 一种tcp传输协议代理方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235279A (zh) * 2020-10-10 2021-01-15 北京百度网讯科技有限公司 用于应用间通信的方法、装置、电子设备及可读存储介质
CN112235279B (zh) * 2020-10-10 2023-04-18 阿波罗智联(北京)科技有限公司 用于应用间通信的方法、装置、电子设备及可读存储介质
CN114584963A (zh) * 2020-12-01 2022-06-03 奇点新源国际技术开发(北京)有限公司 通话呼叫方法、装置和终端设备
CN114584963B (zh) * 2020-12-01 2024-04-12 奇点新源国际技术开发(北京)有限公司 通话呼叫方法、装置和终端设备
CN112532732A (zh) * 2020-12-03 2021-03-19 郑州阿帕斯数云信息科技有限公司 基于https的会话处理方法及装置
CN112532732B (zh) * 2020-12-03 2023-12-05 郑州阿帕斯数云信息科技有限公司 基于https的会话处理方法及装置
CN112688920A (zh) * 2020-12-09 2021-04-20 北京博瑞彤芸科技股份有限公司 一种判定会面事件真实性的方法及系统
CN113382026A (zh) * 2021-08-16 2021-09-10 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质
CN114257434A (zh) * 2021-12-14 2022-03-29 北京知道创宇信息技术股份有限公司 一种DDoS攻击防御方法、电子设备及存储介质
CN114257434B (zh) * 2021-12-14 2023-10-13 北京知道创宇信息技术股份有限公司 一种DDoS攻击防御方法、电子设备及存储介质
CN115022386A (zh) * 2022-06-17 2022-09-06 阿里云计算有限公司 一种会话处理的方法和装置
CN115022386B (zh) * 2022-06-17 2024-03-12 阿里云计算有限公司 一种会话处理的方法和装置

Similar Documents

Publication Publication Date Title
CN111726384A (zh) 通信方法及装置
EP3993347A1 (en) Method and device for application migration
EP3585095B1 (en) Method and device for controlling qos, smf, upf, ue, pcf and an
CN107637029B (zh) 用于向无线终端提供对ip网络的访问的通信系统及通信方法
EP3300331B1 (en) Response method, apparatus and system in virtual network computing authentication, and proxy server
CN110995554A (zh) 用于智能家电设备配置入网的方法及装置、存储介质
US9461894B2 (en) Packet processing method, deep packet inspection request network element and deep packet inspection device
CN113596184A (zh) 混合云系统、网闸、网络访问方法及存储介质
CN109561054B (zh) 一种数据传输方法、控制器及接入设备
US20100202451A1 (en) Modified internet protocol (ip) data packet for asynchronous ip communications
CN104468852A (zh) 客户端选择ip链接地址的方法、装置及系统
CN108200158A (zh) 请求传输系统、方法、装置及存储介质
WO2017167027A1 (zh) 一种网络接入方法、相关设备和系统
US20230164234A1 (en) Service continuity event notification method, and apparatus
EP2693691B1 (en) Method and apparatus for initializing gateway in device management system
JP6768942B2 (ja) ネットワークアクセス制御方法、装置、およびデバイス
WO2017161866A1 (zh) 网络连接方法及装置
CN116684836A (zh) 算力网络运行方法、装置、设备及可读存储介质
US11438407B2 (en) Service registration based on service capabilities requirements and preferences
CN108810180B (zh) 域名解析重定向的调度方法、装置及其终端
CN114025010B (zh) 建立连接的方法和网络设备
CN110943975B (zh) 服务注册的方法、装置、计算机设备和存储介质
CN109660497A (zh) 数据处理方法及装置、终端、处理器、存储介质
CN115514799A (zh) Tcp连接方法、系统、网络设备及存储介质
CN112839347A (zh) Ue策略的传输方法、装置、设备及介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40036882

Country of ref document: HK

RJ01 Rejection of invention patent application after publication

Application publication date: 20200929

RJ01 Rejection of invention patent application after publication