CN114902635A - 一种流量代理方法、装置、电子设备及存储介质 - Google Patents

一种流量代理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114902635A
CN114902635A CN202280000789.3A CN202280000789A CN114902635A CN 114902635 A CN114902635 A CN 114902635A CN 202280000789 A CN202280000789 A CN 202280000789A CN 114902635 A CN114902635 A CN 114902635A
Authority
CN
China
Prior art keywords
data frame
udp
cloud server
proxy
transmission channel
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
CN202280000789.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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Publication of CN114902635A publication Critical patent/CN114902635A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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

Landscapes

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

Abstract

本公开关于一种流量代理方法、装置、电子设备及存储介质,属于物联网技术领域。其中,该方法包括:与云服务器建立传输控制协议TCP连接通道,与处于物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,通过TCP连接通道和UDP本地传输通道,传输终端设备与云服务器通信时所需数据帧。由此,可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,实现了对终端设备流量的代理,减少了终端设备和云端服务器之间进行TCP连接的压力,提高了网络服务质量。

Description

一种流量代理方法、装置、电子设备及存储介质
技术领域
本公开涉及物联网技术领域,尤其涉及一种流量代理方法、装置、电子设备及存储介质。
背景技术
目前,随着物联网技术的蓬勃发展,在普通家庭宽带下连网的终端设备的数量也越来越多。
随着终端设备的数量的增多,相应地终端设备与云服务器之间进行TCP(Transmission Control Protocol,传输控制协议)长连接的网络压力会增大,往往会降低网络服务质量。
发明内容
本公开提供一种流量代理方法、装置、电子设备及存储介质,以至少解决相关技术中随着终端设备的数量的增多,终端设备和云服务器之间进行TCP连接的压力增大,降低网络服务质量的问题。
本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种流量代理方法,适用于代理设备,包括:与云服务器建立传输控制协议TCP连接通道;与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道;通过所述TCP连接通道和所述UDP本地传输通道,传输所述终端设备与所述云服务器通信时所需数据帧。
根据本公开实施例的第二方面,提供一种流量代理方法,适用于终端设备,包括:响应于与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道;通过所述UDP本地传输通道传输与所述云服务器通信所需的数据帧。
根据本公开实施例的第三方面,提供一种流量代理装置,适用于代理设备,包括:连接模块,被配置为执行与云服务器建立传输控制协议TCP连接通道;第一传输模块,被配置为执行与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道;第二传输模块,被配置为执行通过所述TCP连接通道和所述UDP本地传输通道,传输所述终端设备与所述云服务器通信时所需数据帧。
根据本公开实施例的第四方面,提供一种流量代理装置,适用于终端设备,包括:连接模块,被配置为执行响应于与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道;传输模块,被配置为执行通过所述UDP本地传输通道传输与所述云服务器通信所需的数据帧。
根据本公开实施例的第五方面,提供一种电子设备,包括:处理器;用于存储所述处理器的可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如本公开实施例第一方面或者本公开实施例第二方面所述的流量代理方法。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本公开实施例第一方面或者本公开实施例第二方面所述的流量代理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,实现了对终端设备流量的代理,减少了终端设备和云端服务器之间进行TCP连接的压力,提高了网络服务质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或背景技术中的技术方案,下面将对本公开实施例或背景技术中所需要使用的附图进行说明。
图1是根据一示例性实施例示出的一种流量代理方法的流程图。
图2是根据一示例性实施例示出的流量代理的示意图。
图3是根据一示例性实施例示出的另一种流量代理方法的流程图。
图4是根据一示例性实施例示出的建立UDP本地传输通道的交互示意图。
图5是根据一示例性实施例示出的另一种流量代理方法的流程图。
图6是根据一示例性实施例示出的另一种流量代理方法的流程图。
图7是根据一示例性实施例示出的关闭UDP本地传输通道的交互示意图。
图8是根据一示例性实施例示出的另一种流量代理方法的流程图。
图9是根据一示例性实施例示出的一种流量代理方法的流程图。
图10是根据一示例性实施例示出的一种流量代理装置的框图。
图11是根据一示例性实施例示出的另一种流量代理装置的框图。
图12是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种流量代理方法的流程图,适用于代理设备,如图1所示,本公开实施例的流量代理方法由代理设备执行,该方法可以包括以下步骤:
S101,与云服务器建立传输控制协议TCP连接通道。
需要说明的是,本公开实施例的流量代理方法的执行主体为代理设备,其中,代理设备包括但不限于手机、平板电脑、笔记本、台式电脑、车载终端、智能家电等。本公开实施例的流量代理方法可以由本公开实施例的流量代理装置执行,本公开实施例的流量代理装置可以配置在任意代理设备中,以执行本公开实施例的流量代理方法。
本领域可以理解的是,光猫或光纤入户路由器需要为所有接入路由器的终端设备对应的TCP连接通道进行NAT(Network Address Translation,网络地址转换)转换,而运营商的设备硬件资源有限,智能家居场景下用户连网的终端设备越多,光猫或入户路由器的NAT转换压力就越大,从而降低了网络质量,影响用户的上网体验。
基于此,本公开实施例提出了一种流量代理方法,通过TCP连接通道和UDP(UserDatagram Protocol,用户数据报协议)本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,能够使流量被代理的终端设备不再单独创建TCP连接通道,从而消除运营商设备的NAT转换压力,突破终端设备连网数量限制,提高网络服务质量。
本公开的实施例中,代理设备即对处于物联网中的终端设备进行流量代理的中枢设备,云服务器即对连接的设备提供基础服务和配置的云端主机,代理设备与云服务器可建立传输控制协议TCP连接通道,以进行后续通信消息的处理和转发,如图2所示。
S102,与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道。
本公开的实施例中,终端设备即物联网中的设备,代理设备与处于同一物联网中的终端设备之间建立用户数据报协议UDP本地传输通道,以进行后续信息接收和转发。其中,终端设备的数量可以为一个或者多个。需要说明的是,代理设备的初始状态与云服务器连接,终端设备在与代理设备建立UDP本地传输通道后,会断开与云服务器的连接,之后通过UDP本地传输通道进行信息交互。
还需要说明的是,本公开实施例中,对终端设备的具体类别不做过多限定,可根据实际情况进行设置,例如,终端设备具体可包括但不限于空气净化器、窗帘控制器、智能门锁等。
例如,继续如上图2所示,终端设备为物联网WiFi设备,具体可包括但不限于空气净化器、智能摄像机、窗帘电机等,在传输层上,每个终端设备与代理设备之间各自建立用户数据报协议UDP本地传输通道,则终端设备不再与云服务器直接建立TCP连接通道,所有终端设备与云服务器交互的流量由代理设备进行代理转发,在应用层上,代理设备与被代理流量的终端设备之间交换信息使用UDP报文。
S103,通过TCP连接通道和UDP本地传输通道,传输终端设备与云服务器通信时所需数据帧。
本公开的实施例中,代理设备通过步骤S101建立的TCP连接通道和步骤S102建立的UDP本地传输通道对终端设备和云服务器之间通信时所需的消数据帧进行代理。其中,数据帧为终端设备与云服务器通信数据的数据单元。
作为一种可能的实现方式,终端设备通过UDP本地传输通道发送通信时所需数据帧至代理设备,代理设备接收到终端设备发送的数据帧后,通过与云服务器之间建立的TCP连接通道将该数据帧发送至云服务器,云服务器接受到代理设备发送的数据帧后返回相应的数据帧至代理设备,代理设备在接收到该云服务器返回的数据帧后将其发送至终端设备,从而实现对终端设备和云服务器之间通信时所需数据帧的传输。
本公开的实施例提供的流量代理方法,代理设备与云服务器建立传输控制协议TCP连接通道,与处于物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,通过TCP连接通道和UDP本地传输通道,传输终端设备与云服务器通信时所需数据帧。由此,可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,实现了对终端设备流量的代理,减少了终端设备和云端服务器之间进行TCP连接的压力,提高了网络服务质量。
作为一种可能的实现方式,代理设备与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,UDP本地传输通道的需要在已知设备双方的地址信息的基础上进行建立。本公开中,代理设备可以获取自身的第一地址信息,并且可以还需要获取到终端设备的第二地址信息,在已知设备双方的地址信息的基础上,可以执行UDP建链流程,以与终端设备之间建立UDP本地传输通道。需要说明的是,本公开的地址信息可选地为IP地址信息。
为了保证数据传输的安全性,可选地代理设备与终端设备需要在具有相同的用户标识或者绑定账号的基础上,建立UDP本地传输通道。本公开中,代理设备还可以获取终端设备所绑定的第二用户标识,以及自身所绑定的第一用户标识,在两个用户标识一致的情况下,建立与终端设备之间的UDP本地传输通道。可选地,终端设备可以获取到代理设备的第一用户标识,终端设备确定出自身的第二用户标识和第一用户标识一致时,向代理设备发送第二地址信息和第二用户标识。
本公开中,为了保证代理设备与终端设备之间的数据传输是安全的,代理设备还需要获取到第二用户标识对应的密钥,以便于能够实现与终端设备之间进行安全传输,即在UDP本地传输通道上传输的数据是基于第二用户标识对应的密钥加密后的数据。
图3是根据一示例性实施例示出的另一种流量代理方法的流程图,如图3所示,本公开实施例的流量代理方法由代理设备执行,该方法可以包括以下步骤:
S301,与云服务器建立传输控制协议TCP连接通道。
本实施例中的步骤S301的介绍可参见上述实施例中相关内容的记载,此处不再赘述。
S302,周期性广播探测请求帧,其中,探测请求帧中包括代理设备对应的第一用户标识和第一地址信息。
本公开的实施例中,代理设备周期性广播探测请求帧至终端设备,其中,探测请求帧用于代理设备发现局域网内同一用户名下的终端设备,为建立UDP本地传输通道做好准备,第一用户标识为代理设备所属的用户账号的UID(User Identity,用户识别码),第一地址信息为代理设备发送的探测请求帧的源IP(Internet Protocol,IP地址)信息。可选地,探测请求帧的UID的字节长度为8。
需要说明的是,广播指一对多的信息交换,对应的,一对一的信息交换即为单播,本公开对代理设备周期性广播的具体形式不做过多限定,可根据实际情况进行设置。例如,代理设备可以将1分钟或5秒钟作为一个周期,到达设定周期后就向终端设备发送一次探测请求帧,以实现定时广播的需求。
例如,图4为流量代理模式下终端设备和代理设备的交互示意图,如图4所示,探测请求帧为probe_request,探测响应帧为probe_response,代理设备和终端设备分别在初始化、连接云服务器即和服务器建立TCP连接通道后,代理设备向终端设备以广播的形式发送探测请求帧probe_request。其中,初始化即初始化设备的参数,恢复设备默认状态。
进一步地,终端设备在接收到代理设备的探测请求帧后,对探测请求帧中的UID字段进行解析,如果代理设备的UID与终端设备自身的UID相同即两者同属一个用户账户,则终端设备记录收到的探测请求帧的UDP报文的源IP信息,并返回探测响应帧至代理设备。
S303,接收终端设备返回的探测响应帧,其中,探测响应帧包括终端设备对应的第二用户标识和第二地址信息。
其中,探测响应帧由终端设备确定出第一用户标识和第二用户标识相同。
本公开的实施例中,第二用户标识为终端设备所属的用户账户的UID,第二地址信息为终端设备发来的探测响应帧的源IP信息,当步骤S302的探测请求帧的第一用户标识和本步骤的探测响应帧的第二用户标识相同时即代理设备和终端设备处于同一用户账户下时,终端设备确定返回探测响应帧,代理设备对终端设备返回的探测响应帧进行接收,如图4所示,终端设备在接收到代理设备以广播的形式发送的探测请求帧probe_request后,以单播的形式向代理设备返回探测响应帧probe_response。
需要说明的是,代理设备在接收到终端设备返回的探测响应帧后,对终端设备返回的探测响应帧中的UID字段进行解析,当确认代理设备的UID与终端设备自身的UID相同之后,代理设备记录接收到的探测响应帧的UDP报文的源IP和终端设备的唯一的DID(Device Identity,设备识别码)。可选地,探测请求帧的DID可为全0xFF,DID的字节长度为8。
需要说明的是,代理设备可对终端设备返回的数据帧或探测响应帧的有效性进行判断和相应的处理。
在一些实施方式中,代理设备响应于接收到数据帧或探测响应帧,从数据帧或探测响应帧中提取时间戳,并基于时间戳和当前时间,获取时间差,响应于时间差小于或者等于窗口时间,确定数据帧或探测响应帧为有效帧,对有效帧进行处理或传输;响应于时间差大于窗口时间,确定数据帧或探测响应帧为无效帧,对无效帧进行丢弃。不难看出,只有当时间差小于或者等于窗口时间时,代理设备收到的终端设备发送的数据帧或探测响应帧才是有效的。
本领域人员可以理解的是,时间戳用于进行消息去重及防重放攻击。可选地,时间戳(timestamp,简称ts)可为国际标准UNIX时间戳,该时间戳的字节长度为4。
S304,基于第一地址信息和第二地址信息与终端设备进行UDP建链流程,以建立UDP本地传输通道。
本公开的实施例中,代理设备可基于步骤S302的第一地址信息和步骤S303的第二地址信息,与终端设备进行建链流程,从而建立UDP本地传输通道。
需要说明的是,经过一轮探测请求帧和探测响应帧的信息交换,代理设备和终端设备均获得了对方的地址信息即源IP信息,基于代理设备和终端设备的地址信息,在代理设备和终端设备之间建立UDP本地传输通道。
例如,对本地传输通道的建立过程进行描述,继续如上图4所示,代理设备在成功从云服务器获取终端设备的密钥后,以单播的形式进一步向终端设备发送连接请求帧link_request以请求建立本地传输通道,终端设备在接收到代理设备发送的link_request后,同样以单播的形式向代理设备返回连接响应帧link_response表示同意建立本地传输通道,以实现本地传输通道的建立。
图5是根据一示例性实施例示出的另一种流量代理方法的流程图,如图5所示,本公开实施例的流量代理方法由代理设备执行,该方法可以包括以下步骤:
S501,与云服务器建立传输控制协议TCP连接通道。
S502,周期性广播探测请求帧,其中,探测请求帧中包括代理设备对应的第一用户标识和第一地址信息。
本实施例中的步骤S501~步骤502的介绍,可参见上述实施例中相关内容的记载,此处不再赘述。
S503,接收终端设备返回的探测响应帧,其中,探测响应帧包括终端设备对应的第二用户标识和第二地址信息。
其中,探测响应帧由终端设备确定出第一用户标识和第二用户标识相同。
本实施例中的步骤S501~步骤503的介绍,可参见上述实施例中相关内容的记载,此处不再赘述。
S504,基于设备标识和第二用户标识向云服务器发送密钥获取请求。
本公开的实施例中,探测响应帧还包括终端设备的第一设备标识,设备标识为终端设备唯一的DID(Device Identity,设备识别码),密钥为终端设备绑定用户账户时由云服务器生成并下发到终端设备的Token(令牌),代理设备基于设备标识和第二用户标识可向云服务器发送密钥获取请求,以获取用户账户下的终端设备对应的密钥。需要说明的是,一个终端设备有且只有一个对应的密钥,不同用户账户和/或不同终端设备均有着不同的密钥。
需要说明的是,代理设备仅能从云服务器获取和终端设备相同用户账号名下的终端设备的密钥。
S505,响应于接收到云服务器返回的第二用户标识对应的密钥,以单播方式向终端设备发送通道建立请求,其中,通道建立请求用于请求与终端设备建立UDP本地传输通道。
本公开的实施例中,代理设备在接收到云服务器返回的第二用户标识对应的密钥后,以单播方式向终端设备发送用于请求与终端设备建立UDP本地传输通道的通道建立请求。
如果代理设备未能从云服务器成功获取第二用户标识对应的终端设备的密钥,例如,发生代理设备未连接到云服务器、云服务器故障等情况,代理设备则不会发送通道建立请求(link_request)至终端设备,这样也就无法建立UDP本地传输通道,那么终端设备则按照正常启动流程连接云服务器,保持原有连接逻辑不变。
S506,基于第一地址信息和第二地址信息与终端设备进行UDP建链流程,以建立UDP本地传输通道。
本实施例中的步骤S501~步骤506的介绍,可参见上述实施例中相关内容的记载,此处不再赘述。
在建立UDP本地传输通道之后,若代理设备和终端设备中的一个IP地址信息发生更新,而两者之间的UDP本地传输通道未进行同步更新,则代理设备与终端设备之间的本地通信无法进行,往往会导致数据丢失。
本公开实施例中,代理设备需要对第一地址信息和第二地址信息进行更新监控,以及时发现是否发生地址信息更新,尽快进行UDP本地通信道路的重建,能够使得数据的传输更加安全。响应于监测到第一地址和/或第二地址信息更新,则基于更新后地址信息对UDP本地传输通道进行重新建立,也就是重新执行UDP本地传输通道的建链流程。
作为一种可能的实现方式,在建立UDP本地传输通道之后,代理设备定期与终端设备进行探测请求帧和探测响应帧的交互,可选地,提取代理设备探测请求帧中的地址信息,将提取到的代理设备的地址信息与第一地址信息对比,若两者对比未一致确定代理设备发生地址更新。代理设备提取探测响应帧中的地址信息与第二地信息对比,若两者对比未一致确定终端设备发生地址更新。也就是说,当第一地址信息对比未一致和/或第二地址信息比对未一致,可以确定出第一地址和/或第二地址信息发生更新。
进一步地,响应于探测请求帧和/或探测响应帧各自携带的地址信息更新,则基于更新后地址信息对UDP本地传输通道进行重新建立。
例如,如上图4所示,代理设备在流量代理模式下,始终定期以广播的形式发送探测请求帧probe_request,已与代理设备建立本地传输通道的终端设备在收到probe_request后也会以单播的形式返回探测响应帧probe_response,代理设备和终端设备通过probe_request和probe_response的交互来维护对方的IP地址,当其中一方IP地址改变时,另一方能够及时发现并重新建立本地传输通道。
图6是根据一示例性实施例示出的另一种流量代理方法的流程图,如图6所示,本公开实施例的流量代理方法由代理设备执行,该方法可以包括以下步骤:
S601,与云服务器建立传输控制协议TCP连接通道。
S602,与处于物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道。
本实施例中的步骤S601~步骤602的介绍,可参见上述实施例中相关内容的记载,此处不再赘述。
S603,响应于接收到终端设备通过UDP本地传输通道发送的上行数据帧,通过TCP连接通道,将上行数据帧发送给云服务器。
本公开的实施例中,代理设备接收到终端设备通过UDP本地传输通道发送的上行数据帧后,通过代理设备和云服务器的TCP连接通道,将上行数据帧发送给云服务器。其中,一般情况下,终端设备的自身状态的改变会通知控制中心(代理设备或者云服务器),这种设备通知上报给控制中心的消息称为上行消息,此处的上行消息为终端设备加密后的上行消息。需要说明的是,终端设备发送上行消息时,使用第二用户标识对应的密钥加密上行消息,在将上行消息打包后通过UDP本地传输通道发送给代理设备。还需要说明的是,代理设备与云服务器的应用层协议采用MQTT over TLS(传输层安全的消息队列遥测传输标准协议)方案,该方案中对上行数据帧的定义如下:device/${DID}/up/${method}:其中,method由云服务器与代理设备约定而成,当DID为代理设备时,该消息为代理设备自身的上行消息,当DID为终端设备时,该消息为代理设备代理终端设备的上行消息。
需要说明的是,本公开对代理设备发送上行数据帧至云服务器的具体方式不做过多限定,可根据实际情况进行设置。
在一些实施方式中,代理设备可基于第一设备标识确定从云服务器获取到的第二用户标识对应的密钥,并基于第二用户标识对应的密钥对加密上行数据帧进行解密,并基于代理设备自身的密钥对解密后的上行消息进行加密后发送给云服务器。其中,代理设备在接收到上行数据帧后,对上行数据帧中的DID字段进行解析,使用相应的终端设备的密钥即第二用户标识对应的密钥对上行数据帧进行解密。
S604,响应于接收到云服务器通过TCP连接通道发送的下行数据帧,通过UDP本地传输通道,将下行数据帧发送给终端设备。
本公开的实施例中,代理设备接收到云服务器通过TCP连接通道发送的下行数据帧后,通过UDP本地传输通道,将下行数据帧发送给终端设备。其中,一般情况下,用户想要控制终端设备时,控制中心(代理设备或者云服务器)会给终端设备发送控制指令,这种包含控制指令的数据帧称为下行数据帧,此处的下行数据帧为云服务器加密后的下行数据帧。
需要说明的是,MQTT over TLS方案中对下行数据帧的定义如下:device/${DID}/down/${method}:其中,method由云服务器与代理设备约定而成,当DID为代理设备时,该消息为云服务器发给代理设备的下行数据帧,当DID为终端设备时,该消息为代理设备需要代为处理或转发的其他终端设备的下行数据帧。
需要说明的是,本公开对代理设备发送下行数据帧的方式不做过多限定,可根据实际情况进行设置。
在一些实施方式中,代理设备可基于代理设备自身的密钥对加密下行数据帧进行解密,基于第一设备标识确定从云服务器获取到的第二用户标识对应的密钥,并基于第二用户标识对应的密钥对解密后的下行数据帧进行加密,并通过UDP本地传输通道发送给终端设备。
本公开的实施例提供的流量代理方法,代理设备与云服务器建立传输控制协议TCP连接通道,与处于物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,响应于接收到终端设备通过UDP本地传输通道发送的上行数据帧消息,通过TCP连接通道,将上行数据帧发送给云服务器,响应于接收到云服务器通过TCP连接通道发送的下行数据帧,通过UDP本地传输通道,将下行数据帧发送给终端设备。由此,可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,可以减少云服务器的端口的使用数量,缓解了云端服务器的TCP连接压力,增强了本地自动化控制终端设备的能力。同时,通过密钥对数据帧进行加密和解密,提高了传输的安全性,消除了隐私泄露风险。
进一步地,关闭UDP本地传输通道的方式可以有以下两种:
一、响应于第一预设时长内未收到终端设备返回的探测响应帧,则关闭UDP本地传输通道。例如,如图7所示,当代理设备超过一定时间未收到终端设备返回的探测响应帧probe_response,代理设备则认为终端设备已经丢失,从而对相应的UDP本地传输通道进行关闭。需要说明的是,第一预设时长为事先设置,本公开对此不做过多限定,可根据实际情况进行设置。例如,可以将第一预设时长设置为一小时,即当代理设备一小时内未收到终端设备返回的探测响应帧,则关闭UDP本地传输通道。
二、响应于代理设备退出代理模式,广播通道断开指示,其中,通道断开指示用于告知终端设备关闭UDP本地传输通道。例如,如图7所示,UDP本地传输通道建立后,如果代理设备不希望再代理终端设备的数据帧即退出代理模式,比如,代理设备出现更换、重启或故障等情况时,代理设备会以广播的形式发送unlink_notify以告知终端设备关闭UDP本地传输通道,终端设备在接收到代理设备的unlink_notify后对其中的DID和UID字段进行解析,如果DID、UID与当前跟终端设备建立UDP本地传输通道的代理设备相匹配,终端设备则会关闭UDP本地传输通道,停止向该代理设备发送上行数据帧,同时,终端设备则退回刚启动时的初始状态,重新连接云服务器。
图8为本公开另一实施例提供的流量代理方法的流程示意图。本公开实施例的流量代理方法由终端设备执行,该方法可包括以下步骤:
S801,响应于与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道。
具体的,关于步骤801的具体介绍,可参加上述实施例中相关内容的记载,此处不再赘述。
S802,通过UDP本地传输通道传输与云服务器通信所需的数据帧。
本公开实施例中,代理设备与云服务器之间存在TCP连接通道。
通过UDP本地传输通道传输与云服务器通信所需的上行数据帧,代理设备通过与云服务器之间的TCP连接通道,将数据帧发送给云服务器。
作为一种可能的实施方式,终端设备可以通过UDP本地传输通道传输和代理设备向云服务器传输上行数据帧,通过UDP本地传输通道接收代理设备传输的来自云服务器的下行数据帧。
本公开的实施例提供的流量代理方法,终端设备与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道,通过UDP本地传输通道传输与云服务器通信所需的数据帧。由此,可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,可以减少云服务器的端口的使用数量,缓解了云端服务器的TCP连接压力,增强了本地自动化控制终端设备的能力。
作为一种可能的实现方式,终端设备与处于同一物联网中的代理设备建立用户数据报协议UDP本地传输通道的过程:UDP本地传输通道的需要在已知设备双方的地址信息的基础上进行建立。本公开中,终端设备可以获取自身的第二地址信息,还需要获取到代理设备的第一地址信息,在已知设备双方的地址信息的基础上,可以执行UDP建链流程,以与代理设备之间建立UDP本地传输通道。
为了保证数据传输的安全性,可选地终端设备与代理设备需要在具有相同的用户标识或者绑定账号的基础上,建立UDP本地传输通道。本公开中,终端设备还可以获取自身所绑定的第二用户标识,以及代理设备所绑定的第一用户标识,在两个用户标识一致的情况下,建立与代理设备之间的UDP本地传输通道。可选地,终端设备可以获取到代理设备的第一用户标识,终端设备确定出自身的第二用户标识和第一用户标识一致时,向代理设备发送第二地址信息和第二用户标识。
本公开中,为了保证代理设备与终端设备之间的数据传输是安全的,代理设备还需要获取到第二用户标识对应的密钥,以便于能够实现与终端设备之间进行安全传输,即在UDP本地传输通道上传输的数据是基于第二用户标识对应的密钥加密后的数据。可选地,在UDP本地传输通道建立之前,终端设备可以基于与云服务器之间的第一TCP的长连接,将第二用户标识对应的密钥、第二用户标识和终端设备的第一设备标识同步发送给所述云服务器,以便于代理设备基于上述信息从云服务器获取到第二用户标识所绑定的密钥。
可选地,终端设备存储有所绑定的第二用户标识对应的密钥,终端设备可以对上行数据帧进行加密,并通过UDP本地传输通道,将加密上行数据帧发送给代理设备。相应地,代理设备可以从云服务器获取到第二用户标识对应的密钥,进而可以根据第二用户标识对应的密钥对加密上行数据帧进行解密。进一步地,代理设备基于自身的密钥对解密后的上行数据帧进行加密后发送给云服务器。
可选地,云服务器可以通过与代理设备之间的TCP连接通道,将下行数据帧发送给终端设备,实现中,云服务器可以通过与代理设备之间的TCP连接通道,将下行数据帧发送给代理设备,代理设备通过UDP本地传输通道将下行数据帧发送给终端设备。
可选地,为了保证通信安全,云服务器通过代理设备对应的密钥对下行数据帧进行加密,得到加密下行数据帧,并将加密下行数据帧发送给代理设备,代理设备基于自身的密钥进行解密,得到解密后下行数据帧。进一步地,基于终端设备所绑定的第二用户标识对应的密钥对解密后下行数据帧进行加密,通过UDP本地传输通道发送至终端设备,相应地,终端设备通过UDP本地传输通道接收加密下行数据帧,并基于终端设备所绑定的第二用户标识对应的密钥对加密下行数据帧进行解密,得到下行数据帧。
本公开的实施例中,终端设备、代理设备和云服务器基于第二用户标识对应的密钥和/或代理设备自身的密钥对数据帧进行相应的加密和/或解密处理,提高了传输的安全性,消除了隐私泄露的风险。此外,只有代理设备可以在云服务器获取到第二用户标识对应的密钥,增强了代理设备的控制能力,进一步提高了传输的安全性。
图9为本公开另一实施例提供的流量代理方法的流程示意图。如图9所示,本公开实施例的流量代理方法具体可包括以下步骤:
S901,获取代理设备周期性广播的探测请求帧。
其中,探测请求帧中包括代理设备对应的第一用户标识和第一地址信息。
S902,确定第一用户标识和终端设备对应的第二用户标识一致时,向代理设备返回探测响应帧,其中,探测响应帧包括第二用户标识和终端设备的第二地址信息。
S903,基于第一地址信息和第二地址信息,与代理设备进行UDP建链流程,以建立UDP本地传输通道。
关于终端设备与代理设备建立UDP本地传输通道的具体过程,可参见上述实施例中相关内容的记载,此处不再赘述。
可选地,与处于同一物联网中代理设备建立UDP本地传输通道之前,终端设备基于第一TCP连接通道,将第二用户标识对应的密钥、第二用户标识和终端设备的第一设备标识同步发送给云服务器。
在建立UDP本地传输通道之后,若代理设备和终端设备中的一个地址信息发生更新,而两者之间的UDP本地传输通道未进行同步更新,则代理设备与终端设备之间的本地通信无法进行,往往会导致数据丢失。
本公开实施例中,终端设备需要对第一地址信息和第二地址信息进行更新监控,以及时发现是否发生地址信息更新,尽快进行UDP本地通信道路的重建,能够使得数据的传输更加安全。响应于监测到第一地址和/或第二地址信息更新,则基于更新后地址信息对UDP本地传输通道进行重新建立,也就是重新执行UDP本地传输通道的建链流程。
作为一种可能的实现方式,建立UDP本地传输通道之后,终端设备定期与代理设备进行探测请求帧和探测响应帧的交互,可选地,提取代理设备探测请求帧中的地址信息,将提取到的代理设备的地址信息与第一地址信息对比,若两者对比未一致确定代理设备发生地址更新。代理设备提取探测响应帧中的地址信息与第二地信息对比,若两者对比未一致确定终端设备发生地址更新。也就是说,当第一地址信息对比未一致和/或第二地址信息比对未一致,可以确定出第一地址和/或第二地址信息发生更新。
响应于探测请求帧和/或探测响应帧内携带的地址信息更新,则基于更新后地址信息对UDP本地传输通道进行重新建立。
可选地,响应于终端设备满足UDP本地传输通道的关闭条件,则关闭UDP本地传输通道,并重新终端设备建立与云服务器之间的第一TCP连接通道。
可选地,UDP本地传输通道的关闭条件包括以下中的至少一项:预设时长内终端设备未收到代理设备广播的探测请求帧;接收代理设备广播的通道断开指示。
可选地,通道断开指示包括第二设备标识和第三用户标识,其中,关闭UDP本地传输通道,包括:响应于第二设备标识为终端设备的第一设备标识,且第三用户标识为终端设备所绑定的第二用户标识,则关闭UDP本地传输通道。
此处需要说明的是,上述对流量代理方法实施例的解释说明,也适用于本公开实施例的流量代理方法,具体过程此处不再赘述。
本公开的实施例中,终端设备响应于与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道,通过UDP本地传输通道传输与云服务器通信所需的数据帧。由此,通过UDP本地传输通道传输与云服务器通信所需的数据帧,可以减少云服务器的端口的使用数量,缓云服务器进行TCP连接的压力,提高了网络服务质量。
图10是根据一示例性实施例示出的一种流量代理装置的框图。如图10所示,本公开实施例的流量代理装置1000,包括连接模块1001、第一传输模块1002和第二传输模块1003。
连接模块1001,被配置为执行与云服务器建立传输控制协议TCP连接通道。
第一传输模块1002,被配置为执行与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道。
第二传输模块1003,被配置为执行通过TCP连接通道和UDP本地传输通道,传输终端设备与云服务器通信时所需数据帧。
在本公开的一个实施例中,第一传输模块1002,还被配置为执行:获取终端设备的第二地址信息,并基于代理设备自身的第一地址信息和第二地址信息,与终端设备进行UDP建链流程,以建立UDP本地传输通道。
在本公开的一个实施例中,第一传输模块1002,还被配置为执行:在与终端设备建立UDP本地传输通道之前,获取所述终端设备的第一设备标识和所述终端设备绑定的第二用户标识,并基于第一设备标识和第二用户标识,从云服务器获取第二用户标识对应的密钥。
在本公开的一个实施例中,第一传输模块1002,还被配置为执行:周期性广播探测请求帧,其中,探测请求帧中包括代理设备对应的第一用户标识和第一地址信息;接收终端设备返回的探测响应帧,其中,探测响应帧包括终端设备对应的第二用户标识和第二地址信息;基于第一地址信息和第二地址信息与终端设备进行UDP建链流程,以建立UDP本地传输通道。
在本公开的一个实施例中,探测响应帧还包括终端设备的第一设备标识,第一传输模块1002,还被配置为执行:基于第一设备标识和第二用户标识向云服务器发送密钥获取请求;响应于接收到云服务器返回的第二用户标识对应的密钥,以单播方式向终端设备发送通道建立请求,其中,通道建立请求用于请求与终端设备建立UDP本地传输通道。
在本公开的一个实施例中,第二传输模块1003,还被配置为执行:响应于接收到终端设备通过UDP本地传输通道发送的上行数据帧,通过TCP连接通道,将上行数据帧发送给云服务器。
在本公开的一个实施例中,第二传输模块1003,还被配置为执行:响应于接收到云服务器通过TCP连接通道发送的下行数据帧;通过UDP本地传输通道,将下行数据帧发送给终端设备。
在本公开的一个实施例中,上行数据帧为加密上行数据帧且包括终端设备的第一设备标识,其中,第二传输模块1003,还被配置为执行:基于第一设备标识确定从云服务器获取到的第二用户标识对应的密钥,并基于第二用户标识对应的密钥对加密上行数据帧进行解密;基于代理设备自身的密钥对解密后的上行数据帧进行加密后发送给云服务器。
在本公开的一个实施例中,下行数据帧为加密下行数据帧且包括终端设备的第一设备标识,其中,第二传输模块1003,还被配置为执行:基于代理设备自身的密钥对加密下行数据帧进行解密;基于第一设备标识确定从云服务器获取到的第二用户标识对应的密钥,并基于第二用户标识对应的密钥对解密后的下行数据帧进行加密,并通过UDP本地传输通道发送给终端设备。
在本公开的一个实施例中,该流量代理装置1000还包括:获取模块,被配置为执行响应于接收到数据帧或探测响应帧,从数据帧或探测响应帧中提取时间戳,并基于时间戳和当前时间,获取时间差;第一确定模块,被配置为执行响应于时间差小于或者等于窗口时间,确定数据帧或探测响应帧为有效帧,对有效帧进行处理或传输;第二确定模块,被配置为执行响应于时间差大于窗口时间,确定数据帧或探测响应帧为无效帧,对无效帧进行丢弃。
在本公开的一个实施例中,第一传输模块1002,被配置为执行建立UDP本地传输通道之后,定期与终端设备进行探测请求帧和探测响应帧的交互;
更新模块,被配置为执行响应于探测请求帧和/或探测响应帧各自携带的地址信息更新,则基于更新后地址信息对UDP本地传输通道进行重新建立。
在本公开的一个实施例中,该流量代理装置1000还包括:关闭模块,被配置为执行响应于第一预设时长内未收到终端设备返回的探测响应帧,则关闭UDP本地传输通道。
在本公开的一个实施例中,该流量代理装置1000还包括:关闭模块,被配置为执行响应于代理设备退出代理模式,广播通道断开指示,其中,通道断开指示用于告知终端关闭UDP本地传输通道。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例提供的流量代理装置,代理设备与云服务器建立传输控制协议TCP连接通道,与处于物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,通过TCP连接通道和UDP本地传输通道,传输终端设备与云服务器通信时所需数据帧。由此,可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,减少了终端设备和云端服务器之间进行TCP连接的压力,提高了网络服务质量。
图11是根据一示例性实施例示出的一种流量代理装置的框图。如图11所示,本公开实施例的流量代理装置1100,包括连接模块1101和传输模块1102。
连接模块1101,被配置为执行响应于与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道。
传输模块1102,被配置为执行通过UDP本地传输通道传输与云服务器通信所需的数据帧。
在本公开的一个实施例中,传输模块1102,还被配置为执行:通过UDP本地传输通道传输和代理设备向云服务器传输上行数据帧;通过UDP本地传输通道接收代理设备传输的来自云服务器的下行数据帧。
在本公开的一个实施例中,连接模块1101,还被配置为执行:获取代理设备对应的第一用户标识和第一地址信息,确定第一用户标识和终端设备对应的第二用户标识一致时,向代理设备发送第二用户标识和终端设备的第二地址信息;基于第一地址信息和第二地址信息,与代理设备进行UDP建链流程,以建立UDP本地传输通道。
在本公开的一个实施例中,连接模块1101,还被配置为执行:获取代理设备周期性广播的探测请求帧,其中,探测请求帧中包括代理设备对应的第一用户标识和第一地址信息;确定第一用户标识和终端设备对应的第二用户标识一致时,向代理设备返回探测响应帧,其中,探测响应帧包括第二用户标识和终端设备的第二地址信息;基于第一地址信息和第二地址信息,与代理设备进行UDP建链流程,以建立UDP本地传输通道。
在本公开的一个实施例中,该流量代理装置1100,还包括:发送模块,被配置为执行与代理设备建立UDP本地传输通道之前,基于第一TCP连接通道,将第二用户标识对应的密钥、第二用户标识和终端设备的第一设备标识同步发送给云服务器。
在本公开的一个实施例中,传输模块1102,还被配置为执行:基于终端设备所绑定的第二用户标识对应的密钥,对上行数据帧进行加密;通过UDP本地传输通道,将加密上行数据帧发送给代理设备。
在本公开的一个实施例中,下行数据帧为加密下行数据帧,其中,传输模块1102,还被配置为执行:通过UDP本地传输通道接收加密下行数据帧,并基于终端设备所绑定的第二用户标识对应的密钥对加密下行数据帧进行解密。
在本公开的一个实施例中,该流量代理装置1100,还包括:获取模块,被配置为执行每接收到数据帧或探测请求帧,从接收到的数据帧或探测请求帧中提取时间戳,并基于时间戳和当前时间,获取时间差;第一确定模块,被配置为执行响应于时间差小于或者等于窗口时间,确定该数据帧或探测请求帧为有效帧,对有效帧进行处理;第二确定模块,被配置为执行响应于时间差大于窗口时间,确定该数据帧或探测请求帧为无效帧,对无效帧进行丢弃。
在本公开的一个实施例中,该流量代理装置1100,还包括:交互模块,被配置为执行建立UDP本地传输通道之后,定期与代理设备进行探测请求帧和探测响应帧的交互;更新模块,被配置为执行响应于探测请求帧和/或探测响应帧内携带的地址信息更新,则基于更新后地址信息对UDP本地传输通道进行重新建立。
在本公开的一个实施例中,该流量代理装置1100,还包括:关闭模块,被配置为执行响应于终端设备满足UDP本地传输通道的关闭条件,则关闭UDP本地传输通道,并建立与云服务器之间的第二TCP连接通道。
在本公开的一个实施例中,UDP本地传输通道的关闭条件包括以下中的至少一项:预设时长内终端设备未收到代理设备广播的探测请求帧;接收代理设备广播的通道断开指示。
在本公开的一个实施例中,通道断开指示包括第二设备标识和第三用户标识,其中,关闭模块,还被配置为执行:响应于第二设备标识为终端设备的第一设备标识,且第三用户标识为终端设备所绑定的第二用户标识,则关闭UDP本地传输通道。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例中,终端设备与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道,通过UDP本地传输通道传输与云服务器通信所需的数据帧。由此,通过UDP本地传输通道传输与云服务器通信所需数据帧,减少了终端设备和云端服务器之间进行TCP连接的压力,提高了网络服务质量。
图12是根据一示例性实施例示出的一种电子设备1200的框图。
如图12所示,上述电子设备1200包括:
存储器1201及处理器1202,连接不同组件(包括存储器1201和处理器1202)的总线1203,存储器1201存储有计算机程序,当处理器1202执行程序时实现本公开实施例上述的流量代理方法。
总线1203表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备1200典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备1200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器1201还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)1204和/或高速缓存存储器1205。电子设备1200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统1206可以用于读写不可移动的、非易失性磁介质(图12未显示,通常称为“硬盘驱动器”)。尽管图12中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线1203相连。存储器1201可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块1207的程序/实用工具1208,可以存储在例如存储器1201中,这样的程序模块1207包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块1212通常执行本公开所描述的实施例中的功能和/或方法。
电子设备1200也可以与一个或多个外部设备1209(例如键盘、指向设备、显示器1210等)通信,还可与一个或者多个使得用户能与该电子设备1200交互的设备通信,和/或与使得该电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1212进行。并且,电子设备1200还可以通过网络适配器1213与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图12所示,网络适配器1213通过总线1203与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器1202通过运行存储在存储器1201中的程序,从而执行各种功能应用以及数据处理。
需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本公开实施例的流量代理方法的解释说明,此处不再赘述。
本公开实施例提供的电子设备,可以执行如前所述的流量代理方法,与云服务器建立传输控制协议TCP连接通道,与处于物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,通过TCP连接通道和UDP本地传输通道,传输终端设备与云服务器通信时所需数据帧。由此,可通过TCP连接通道和UDP本地传输通道对终端设备与云服务器通信时所需数据帧进行传输,减少了终端设备和云端服务器之间进行TCP连接的压力,提高了网络服务质量。
为了实现上述实施例,本公开还提出一种计算机可读存储介质。
其中,该计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如前所述的流量代理方法。可选的,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (36)

1.一种流量代理方法,其特征在于,适用于代理设备,所述方法包括:
与云服务器建立传输控制协议TCP连接通道;
与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道;
通过所述TCP连接通道和所述UDP本地传输通道,传输所述终端设备与所述云服务器通信时所需数据帧。
2.根据权利要求1所述的方法,其特征在于,所述与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道,包括:
获取所述终端设备的第二地址信息;
基于所述代理设备自身的第一地址信息和所述第二地址信息,与所述终端设备进行UDP建链流程,以建立所述UDP本地传输通道。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一地址信息和所述第二地址信息,与所述终端设备进行UDP建链流程,以建立所述UDP本地传输通道之前,还包括:
获取所述终端设备的第一设备标识和所述终端设备绑定的第二用户标识;
基于所述第一设备标识和所述第二用户标识,从所述云服务器获取所述第二用户标识对应的密钥。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述通过所述TCP连接通道和所述UDP本地传输通道,传输所述终端设备与所述云服务器通信时所需数据帧,包括:
响应于接收到所述终端设备通过所述UDP本地传输通道发送的上行数据帧,通过所述TCP连接通道,将所述上行数据帧发送给所述云服务器。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述通过所述TCP连接通道和所述UDP本地传输通道,传输所述终端设备与所述云服务器通信时所需数据帧,包括:
响应于接收到所述云服务器通过所述TCP连接通道发送的下行数据帧,通过所述UDP本地传输通道,将所述下行数据帧发送给所述终端设备。
6.根据权利要求4所述的方法,其特征在于,所述上行数据帧为加密上行数据帧且包括所述终端设备的第一设备标识,其中,所述通过所述TCP连接通道,将所述上行消息发送给所述云服务器,包括:
基于所述第一设备标识,确定从所述云服务器获取到的所述第二用户标识对应的密钥,并基于所述第二用户标识对应的密钥对所述加密上行数据帧进行解密;
基于所述代理设备自身的密钥对解密后的上行消息进行加密后发送给所述云服务器。
7.根据权利要求5所述的方法,其特征在于,所述下行数据帧为加密下行数据帧且包括所述终端设备的第一设备标识,其中,所述通过所述UDP本地传输通道,将所述下行消息发送给所述终端设备,包括:
基于所述代理设备自身的密钥对加密下行数据帧进行解密;
基于所述第一设备标识确定从所述云服务器获取到的所述第二用户标识对应的密钥,并基于所述第二用户标识对应的密钥对解密后的下行数据帧进行加密,并通过所述UDP本地传输通道发送给所述终端设备。
8.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
响应于接收到所述数据帧,从所述数据帧中提取时间戳,并基于所述时间戳和当前时间,获取时间差;
响应于所述时间差小于或者等于窗口时间,确定所述数据帧为有效帧,对所述有效帧进行处理或传输;
响应于所述时间差大于所述窗口时间,确定所述数据帧为无效帧,对所述无效帧进行丢弃。
9.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
响应于所述代理设备退出代理模式,广播通道断开指示,其中,所述通道断开指示用于告知所述终端设备关闭所述UDP本地传输通道。
10.一种流量代理方法,其特征在于,适用于终端设备,所述方法包括:
响应于与处于物联网中的代理设备建立UDP本地传输通道,断开与云服务器的第一TCP连接通道;
通过所述UDP本地传输通道传输与所述云服务器通信所需的数据帧。
11.根据权利要求10所述的方法,其特征在于,所述通过所述UDP本地传输通道传输与所述云服务器通信所需的数据帧,包括:
通过所述UDP本地传输通道传输和所述代理设备向所述云服务器传输上行数据帧;
通过所述UDP本地传输通道接收所述代理设备传输的来自所述云服务器的下行数据帧。
12.根据权利要求10所述的方法,其特征在于,与所述代理设备建立UDP本地传输通道,包括:
获取所述代理设备对应的第一用户标识和第一地址信息;
确定所述第一用户标识和所述终端设备对应的第二用户标识一致时,向所述代理设备发送所述第二用户标识和所述终端设备的第二地址信息;
基于所述第一地址信息和所述第二地址信息,与所述代理设备进行UDP建链流程,以建立所述UDP本地传输通道。
13.根据权利要求12所述的方法,其特征在于,所述与所述代理设备建立UDP本地传输通道之前,还包括:
基于所述第一TCP连接通道,将所述第二用户标识对应的密钥、所述第二用户标识和所述终端设备的第一设备标识同步发送给所述云服务器。
14.根据权利要求10所述的方法,其特征在于,所述通过所述UDP本地传输通道传输与所述云服务器通信所需的数据帧,包括:
基于所述终端设备所绑定的第二用户标识对应的密钥,对所述上行数据帧进行加密;
通过所述UDP本地传输通道,将加密上行数据帧发送给所述代理设备。
15.根据权利要求11所述的方法,其特征在于,所述下行数据帧为加密下行数据帧,其中,所述通过所述UDP本地传输通道接收所述代理设备传输的来自所述云服务器的下行数据帧,包括:
通过所述UDP本地传输通道接收所述加密下行数据帧,并基于所述终端设备所绑定的第二用户标识对应的密钥对所述加密下行数据帧进行解密。
16.根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
响应于接收到所述数据帧,从所述数据帧中提取时间戳,并基于所述时间戳和当前时间,获取时间差;
响应于所述时间差小于或者等于窗口时间,确定所述数据帧为有效帧,对所述有效帧进行处理;
响应于所述时间差大于所述窗口时间,确定所述数据帧为无效帧,对所述无效帧进行丢弃。
17.根据权利要求10所述的方法,其特征在于,所述方法还包括:
响应于所述终端设备满足所述UDP本地传输通道的关闭条件,则关闭所述UDP本地传输通道,并重新建立与所述云服务器之间的所述第一TCP连接通道。
18.一种流量代理装置,其特征在于,适用于代理设备,所述装置包括:
连接模块,被配置为执行与云服务器建立传输控制协议TCP连接通道;
第一传输模块,被配置为执行与处于同一物联网中的一个或多个终端设备建立用户数据报协议UDP本地传输通道;
第二传输模块,被配置为执行通过所述TCP连接通道和所述UDP本地传输通道,传输所述终端设备与所述云服务器通信时所需数据帧。
19.根据权利要求18所述的装置,其特征在于,所述第一传输模块,还被配置为执行:
获取所述终端设备的第二地址信息;
基于所述代理设备自身的第一地址信息和所述第二地址信息,与所述终端设备进行UDP建链流程,以建立所述UDP本地传输通道。
20.根据权利要求19所述的装置,其特征在于,所述第一传输模块,还被配置为执行:
获取所述终端设备的第一设备标识和所述终端设备绑定的第二用户标识;
基于所述第一设备标识和所述第二用户标识,从所述云服务器处获取所述第二用户标识对应的密钥。
21.根据权利要求18-20任一项所述的装置,其特征在于,所述第二传输模块,还被配置为执行:
响应于接收到所述终端设备通过所述UDP本地传输通道发送的上行数据帧,通过所述TCP连接通道,将所述上行数据帧发送给所述云服务器。
22.根据权利要求18-20任一项所述的装置,其特征在于,所述第二传输模块,还被配置为执行:
响应于接收到所述云服务器通过所述TCP连接通道发送的下行数据帧,通过所述UDP本地传输通道,将所述下行数据帧发送给所述终端设备。
23.根据权利要求21所述的装置,其特征在于,所述上行数据帧为加密上行数据帧且包括所述终端设备的第一设备标识,其中,所述第二传输模块,还被配置为执行:
基于所述第一设备标识确定从所述云服务器获取到的所述第二用户标识对应的密钥,并基于所述第二用户标识对应的密钥对所述加密上行数据帧进行解密;
基于所述代理设备自身的密钥对解密后的上行消息进行加密后发送给所述云服务器。
24.根据权利要求22所述的装置,其特征在于,所述下行数据帧为加密下行数据帧且包括所述终端设备的第一设备标识,其中,所述第二传输模块,还被配置为执行:
基于所述代理设备自身的密钥对加密下行数据帧进行解密;
基于所述第一设备标识确定从所述云服务器获取到的所述第二用户标识对应的密钥,并基于所述第二用户标识对应的密钥对解密后的下行数据帧进行加密,并通过所述UDP本地传输通道发送给所述终端设备。
25.根据权利要求18或19所述的装置,其特征在于,所述装置还包括:
获取模块,被配置为执行响应于接收到所述数据帧,从所述数据帧中提取时间戳,并基于所述时间戳和当前时间,获取时间差;
第一确定模块,被配置为执行响应于所述时间差小于或者等于窗口时间,确定所述数据帧为有效帧,对所述有效帧进行处理或传输;
第二确定模块,被配置为执行响应于所述时间差大于所述窗口时间,确定所述数据帧或探测响应帧为无效帧,对所述无效帧进行丢弃。
26.根据权利要求18或20所述的装置,其特征在于,所述装置还包括:
关闭模块,被配置为执行响应于所述代理设备退出代理模式,广播通道断开指示,其中,所述通道断开指示用于告知所述终端关闭所述UDP本地传输通道。
27.一种流量代理装置,其特征在于,适用于终端设备,所述装置包括:
连接模块,被配置为执行响应于与处于物联网中的代理设备建立用户数据报协议UDP本地传输通道,断开与云服务器的第一TCP连接通道;
传输模块,被配置为执行通过所述UDP本地传输通道传输与所述云服务器通信所需的数据帧。
28.根据权利要求27所述的装置,其特征在于,所述传输模块,还被配置为执行:
通过所述UDP本地传输通道传输和所述代理设备向所述云服务器传输上行数据帧;
通过所述UDP本地传输通道接收所述代理设备传输的来自所述云服务器的下行数据帧。
29.根据权利要求27所述的装置,其特征在于,所述连接模块,还被配置为执行:
获取所述代理设备对应的第一用户标识和第一地址信息;
确定所述第一用户标识和所述终端设备对应的第二用户标识一致时,向所述代理设备发送所述第二用户标识和所述终端设备的第二地址信息;
基于所述第一地址信息和所述第二地址信息,与所述代理设备进行UDP建链流程,以建立所述UDP本地传输通道。
30.根据权利要求29所述的装置,其特征在于,所述装置还包括:
发送模块,被配置为执行所述与所述代理设备建立UDP本地传输通道之前,基于所述第一TCP连接通道,将所述第二用户标识对应的密钥、所述第二用户标识和所述终端设备的第一设备标识同步发送给所述云服务器。
31.根据权利要求28所述的装置,其特征在于,所述传输模块,还被配置为执行:
基于所述终端设备所绑定的第二用户标识对应的密钥,对所述上行数据帧进行加密;
通过所述UDP本地传输通道,将加密上行数据帧发送给所述代理设备。
32.根据权利要求28所述的装置,其特征在于,所述下行数据帧为加密下行数据帧,其中,所述传输模块,还被配置为执行:
通过所述UDP本地传输通道接收所述加密下行数据帧,并基于所述终端设备所绑定的第二用户标识对应的密钥对所述加密下行数据帧进行解密。
33.根据权利要求27所述的装置,其特征在于,所述装置还包括:
获取模块,被配置为执行响应于接收到所述数据帧,从所述数据帧中提取时间戳,并基于所述时间戳和当前时间,获取时间差;
第一确定模块,被配置为执行响应于所述时间差小于或者等于窗口时间,确定所述数据帧为有效帧,对所述有效帧进行处理;
第二确定模块,被配置为执行响应于所述时间差大于所述窗口时间,确定所述数据帧为无效帧,对所述无效帧进行丢弃。
34.根据权利要求27所述的装置,其特征在于,所述装置,还包括:
关闭模块,被配置为执行响应于所述终端设备满足所述UDP本地传输通道的关闭条件,则关闭所述UDP本地传输通道,并重新建立与所述云服务器之间的所述第一TCP连接通道。
35.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-9中任一项所述的方法,或者如权利要求10-17中任一项所述的方法。
36.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-9中任一项所述的方法,或者如权利要求10-17中任一项所述的方法。
CN202280000789.3A 2022-03-30 2022-03-30 一种流量代理方法、装置、电子设备及存储介质 Pending CN114902635A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/084176 WO2023184264A1 (zh) 2022-03-30 2022-03-30 一种流量代理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114902635A true CN114902635A (zh) 2022-08-12

Family

ID=82729564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280000789.3A Pending CN114902635A (zh) 2022-03-30 2022-03-30 一种流量代理方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN114902635A (zh)
WO (1) WO2023184264A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962488A (zh) * 2023-09-18 2023-10-27 腾讯科技(深圳)有限公司 建立云服务连接的方法、装置、电子设备和可读介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256771A1 (en) * 2005-05-12 2006-11-16 Yahoo! Inc. Proxy server for relaying VOIP messages
CN101141244A (zh) * 2006-09-08 2008-03-12 飞塔信息科技(北京)有限公司 网络加密数据病毒检测和消除系统和代理服务器及方法
CN102088460A (zh) * 2010-12-29 2011-06-08 北京新媒传信科技有限公司 受限网络中流媒体数据的传输方法、设备和系统
CN104566783A (zh) * 2014-12-05 2015-04-29 广东志高空调有限公司 一种空调控制方法及系统
CN106357772A (zh) * 2016-09-20 2017-01-25 深圳市赛格导航科技股份有限公司 一种车载无线通讯系统及方法
US20180288179A1 (en) * 2017-04-03 2018-10-04 Randeep S. Bhatia Proxy for serving internet-of-things (iot) devices
CN109495258A (zh) * 2018-12-19 2019-03-19 世纪龙信息网络有限责任公司 监控数据解密的方法、装置、计算机设备及存储介质
CN110719248A (zh) * 2018-07-12 2020-01-21 中移(杭州)信息技术有限公司 用户数据报协议报文的转发方法及装置
CN112243002A (zh) * 2020-10-10 2021-01-19 腾讯科技(深圳)有限公司 数据转发方法、装置、电子设备以及计算机可读介质
CN112637344A (zh) * 2020-12-23 2021-04-09 苏州三六零智能安全科技有限公司 物联网设备的监控方法、设备、装置以及存储介质
CN113810349A (zh) * 2020-06-17 2021-12-17 腾讯科技(深圳)有限公司 数据传输方法、装置和计算机设备
CN114244886A (zh) * 2021-11-22 2022-03-25 北京小米移动软件有限公司 设备控制方法、设备控制装置及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256771A1 (en) * 2005-05-12 2006-11-16 Yahoo! Inc. Proxy server for relaying VOIP messages
CN101141244A (zh) * 2006-09-08 2008-03-12 飞塔信息科技(北京)有限公司 网络加密数据病毒检测和消除系统和代理服务器及方法
CN102088460A (zh) * 2010-12-29 2011-06-08 北京新媒传信科技有限公司 受限网络中流媒体数据的传输方法、设备和系统
CN104566783A (zh) * 2014-12-05 2015-04-29 广东志高空调有限公司 一种空调控制方法及系统
CN106357772A (zh) * 2016-09-20 2017-01-25 深圳市赛格导航科技股份有限公司 一种车载无线通讯系统及方法
US20180288179A1 (en) * 2017-04-03 2018-10-04 Randeep S. Bhatia Proxy for serving internet-of-things (iot) devices
CN110719248A (zh) * 2018-07-12 2020-01-21 中移(杭州)信息技术有限公司 用户数据报协议报文的转发方法及装置
CN109495258A (zh) * 2018-12-19 2019-03-19 世纪龙信息网络有限责任公司 监控数据解密的方法、装置、计算机设备及存储介质
CN113810349A (zh) * 2020-06-17 2021-12-17 腾讯科技(深圳)有限公司 数据传输方法、装置和计算机设备
CN112243002A (zh) * 2020-10-10 2021-01-19 腾讯科技(深圳)有限公司 数据转发方法、装置、电子设备以及计算机可读介质
CN112637344A (zh) * 2020-12-23 2021-04-09 苏州三六零智能安全科技有限公司 物联网设备的监控方法、设备、装置以及存储介质
CN114244886A (zh) * 2021-11-22 2022-03-25 北京小米移动软件有限公司 设备控制方法、设备控制装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962488A (zh) * 2023-09-18 2023-10-27 腾讯科技(深圳)有限公司 建立云服务连接的方法、装置、电子设备和可读介质
CN116962488B (zh) * 2023-09-18 2023-12-19 腾讯科技(深圳)有限公司 建立云服务连接的方法、装置、电子设备和可读介质

Also Published As

Publication number Publication date
WO2023184264A1 (zh) 2023-10-05

Similar Documents

Publication Publication Date Title
US20080031448A1 (en) Content distributing method, apparatus and system
CN111428225A (zh) 数据交互方法、装置、计算机设备及存储介质
CN110769420B (zh) 网络接入方法、装置、终端、基站和可读存储介质
TW201811087A (zh) 連接建立方法、裝置和設備
CN115280725A (zh) 一种数据帧安全传输方法、装置、电子设备及存储介质
CN112383917B (zh) 一种基于商密算法的北斗安全通信方法和系统
WO2023241176A1 (zh) 通信方法、装置、设备、存储介质及程序产品
CN113992427B (zh) 基于相邻节点的数据加密发送方法及装置
CN114902635A (zh) 一种流量代理方法、装置、电子设备及存储介质
CN112838925A (zh) 数据传输方法、装置和系统、电子设备、存储介质
CN108924157B (zh) 一种基于IPSec VPN的报文转发方法及装置
CN101572694B (zh) 媒体流密钥的获取方法、会话设备与密钥管理功能实体
US20090323939A1 (en) Data transmission method and terminal
CN108989302B (zh) 一种基于密钥的opc代理连接系统和连接方法
CN113765900B (zh) 协议交互信息输出传输方法、适配器装置及存储介质
CN115280743A (zh) 一种建立用户数据报协议udp传输通道的方法及装置
CN111934995B (zh) 一种物联网网关系统
CN112333088B (zh) 一种兼容性即时通信传输方法
CN114157707A (zh) 一种通信连接方法、装置及系统
CN113660285A (zh) 多媒体会议在网终端管控方法、装置、设备及存储介质
CN108494744B (zh) 一种IPsec VPN客户端报文处理方法及装置
KR20100063886A (ko) 이종 네트워크 간의 원격 접속 제어 시스템 및 방법
CN114500007B (zh) M-LAG系统中的MACsec的实现方法、装置、介质及设备
CN115622715B (zh) 一种基于令牌的分布式存储系统、网关和方法
CN112260823B (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