CN114765614B - 一种访问局域网服务设备的方法及电子设备 - Google Patents
一种访问局域网服务设备的方法及电子设备 Download PDFInfo
- Publication number
- CN114765614B CN114765614B CN202011638225.1A CN202011638225A CN114765614B CN 114765614 B CN114765614 B CN 114765614B CN 202011638225 A CN202011638225 A CN 202011638225A CN 114765614 B CN114765614 B CN 114765614B
- Authority
- CN
- China
- Prior art keywords
- message
- network
- router
- service
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 230000006854 communication Effects 0.000 claims abstract description 126
- 238000004891 communication Methods 0.000 claims abstract description 124
- 238000013507 mapping Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 18
- 230000003993 interaction Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 37
- 241001362551 Samba Species 0.000 description 34
- 238000010586 diagram Methods 0.000 description 28
- 230000004044 response Effects 0.000 description 17
- 238000005538 encapsulation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 108700023290 Stanford University protocol Proteins 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004080 punching Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2567—NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种访问局域网服务设备的方法及电子设备,涉及远程控制技术领域。该方法主要通过外部网络中的电子设备获取服务设备所在局域网的内网通信地址,并将该内网通信地址作为内网报文的源地址,将内网报文作为三层报文的UDP报文负载,经由电子设备与路由器之间P2P通道将三层报文发送给路由器,之后由路由器获取内网报文,并经由路由器与服务设备之间的LAN网桥将内网报文发送给服务设备。根据上述方法,能够实现外部网络的电子设备对局域网内部的服务设备的便捷高效的远程访问或控制。
Description
技术领域
本申请涉及远程控制技术领域,尤其涉及一种访问局域网服务设备的方法及设备。
背景技术
为应对网际协议版本4(internet protocol version 4,IPv4)地址被耗尽的挑战,网络地址转换(network address translation,NAT)设备被广泛部署于通信架构,通过NAT设备的地址转换功能,可以将较多的私网地址映射为少量的公网地址,从而缓解互联网协议地址(Internet protocol address,IP)不足的问题。此外,在端对端(peer to peer,P2P)通信场景下,NAT也起着至关重要的作用,通过NAT穿透技术可以使不同网络的终端之间建立P2P通道,使终端和终端直接进行通信,从而减少端到端的时延,并大大减轻了服务器的压力,降低其成本。
随着物联网(Internet of things,IoT)的发展,家庭网络中的IoT服务设备越来越多,客户前置设备(customer premise equipment,CPE)(或称路由)下挂的服务设备也越来越多,远程访问这些服务设备的需求也日益强烈。然而,由于这些服务设备的应用可能并不支持跨网通信,使得终端无法基于当前NAT穿透技术高效便捷地访问这些路由下挂设备。
发明内容
本申请提供了一种访问局域网服务设备的方法及电子设备,通过将电子设备在内网中的通信地址作为内网报文源地址,并将内网报文作为三层报文的负载部分,解决外网网络的电子设备无法高效直接地访问内网中服务设备的问题。
第一方面,提供了一种访问局域网服务设备的方法,应用于电子设备,所述电子设备位于第一网络,所述电子设备与位于第二网络中的第一路由器之间具有P2P通道,所述P2P通道用于所述电子设备与所述第一路由器进行通信,所述第一路由器下挂至少一个服务设备,所述方法包括:向所述第一路由器发送第一请求消息,所述第一请求消息用于请求所述电子设备在第二网络的通信地址;接收所述第一路由器发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址;通过所述电子设备在第二网络的通信地址访问所述至少一个服务设备。
可选地,本申请中的电子设备可以是能够与用户进行交互的终端,或者路由器。
可选地,本申请中的第二网络指第一路由器和其下挂的服务设备所在的网络,该第二网络可以为某一局域网(或称内网)。第一网络为电子设备所在的网络,该第一网络也可以是某一局域网,且第一网络与第二网络不同。相对于第二网络(服务设备所在的内网),该第一网络也可以被称为外部网络。
其中,通信地址可以包括用于通信的IP地址(或称IP),或者IP地址和端口号。
应理解,第一网络的电子设备和第二网络的第一路由器之间可以具有P2P通道,该P2P通道用于所述电子设备与所述第一路由器进行通信包括:在本申请提供的访问局域网服务设备的过程中,电子设备与第一路由器之间的消息传输,或者说报文传输可以经由该P2P通道。比如,电子设备向第一路由器可以经由P2P通道向第一路由器发送第一请求消息,第一路由器可以经由P2P通道向第一路由器发送第一反馈消息。之后,电子设备可以经由P2P通道向第一路由器发送第一报文。
根据上述方法,通过外部网络的电子设备获取内网的内网通信地址,能够实现与内网中服务设备组成位于同一网络的虚拟组网,使得外部网络的电子设备与内网的服务设备如同在同一网络中的设备进行通信,从而实现电子设备对内网服务设备的高效便捷的访问或控制。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述电子设备通过所述电子设备在第二网络的通信地址访问所述至少一个服务设备,包括:根据所述电子设备在第二网络的通信地址,生成第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备的通信地址;向所述第一路由器发送所述第一报文。
本申请提供的访问局域网服务设备的方法,主要通过外部网络中的电子设备获取服务设备所在局域网的内网地址,并将该内网地址作为内网报文的源地址,将内网报文作为三层报文的UDP报文负载,经由电子设备与路由器之间P2P通道将三层报文发送给路由器,之后由路由器获取内网报文,并经由路由器与服务设备之间的LAN网桥将内网报文发送给服务设备。
根据上述方法,能够实现外部网络的电子设备对局域网内部的服务设备的便捷高效的远程访问或控制。
结合第一方面,在第一方面的某些实现方式中,所述第一报文的源地址为所述电子设备在所述第一网络的通信地址,所述第一报文的目的地址为所述第一路由器在第二网络的通信地址。
结合第一方面,在第一方面的某些实现方式中,所述第二报文的第二负载部分包括服务请求数据,所述服务请求数据用于指示向所述至少一个服务设备请求的服务,所述方法还包括:获取所述服务请求数据;根据所述服务请求数据生成所述第二报文;对所述第二报文进行封装,生成所述第一报文。
应理解,第二报文的源地址和目的地址均为第二网络的内网地址,主要用于在第二网络内部的设备之间传输(具体由第一路由器传输至服务设备),因而其也可以被称为内网报文。
根据上述方法,通过将内网报文作为负载封装在三层报文(第一报文)中,能够实现将用户的服务请求高效地传输至服务设备,从而使服务设备提供相应的服务。
结合第一方面,在第一方面的某些实现方式中,当所述电子设备是用于与用户交互的终端时,所述获取所述服务请求数据,具体包括:接收用户输入的服务请求操作;根据所述服务请求操作,获取所述服务请求数据。
应理解,这里的与用户交互的终端是指,能够直接接受用户输入服务请求的终端。例如,终端上具有本地应用程序或者第三方应用程序,能够使用户通过该应用程序输入针对第二网络服务设备的服务请求。
可选地,当电子设备为能够与用户交互的终端时,终端可以接收用户输入的服务请求,获取服务请求数据,并基于服务请求数据生成第一报文。
根据上述方法,能够实现外部网络的电子设备对局域网内部的服务设备的便捷高效的远程访问或控制。
结合第一方面,在第一方面的某些实现方式中,当所述电子设备为第二路由器时,所述接收所述服务请求数据,具体包括:接收终端发送的所述服务请求数据,所述终端用于与用户进行交互。
可选地,当电子设备为第二路由器时,该第二路由器可以下挂终端,该终端可以是能够直接与用户进行交互,或者说,能够直接接受用户输入服务请求的终端。
当电子设备为第二路由器时,第二路由器可以由终端接收用户输入的服务请求数据,并基于服务请求数据生成第一报文。换言之,此时,三层报文由第二路由器生成。
根据上述方法,能够实现外部网络的电子设备对局域网内部的服务设备的便捷高效的远程访问或控制。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:接收用户在所述电子设备添加的所述服务设备在第二网络的通信地址。
结合第一方面,在第一方面的某些实现方式中,所述第一网络和所述第二网络为局域网,且所述第一网络与所述第二网络不同。
第二方面,提供了一种访问局域网服务设备的方法,应用于第一路由器,所述第一路由器位于第二网络,且所述第一路由器下挂至少一个服务设备,所述第一路由器与位于第一网络中的电子设备之间具有P2P通道,所述P2P通道用于所述第一路由器与所述电子设备进行通信,所述方法包括:接收所述电子设备发送的第一请求消息,所述第一请求消息用于请求所述电子设备在第二网络的通信地址;根据所述第一请求消息,为所述电子设备分配所述第二网络的通信地址;向所述电子设备发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址。
应理解,电子设备向第一路由器发送第一请求消息,以及第一路由器向电子设备发送第一反馈消息,可以经由电子设备与第一路由器之间的P2P通道进行。
本申请中的第一请求消息是电子设备为了请求第一路由器为终端分配第二网络的内网地址。其中,第二网络的内网地址可以指第二网络的内网IP;或者,第二网络的内网IP和内网端口号。
根据上述方法,通过外部网络的电子设备获取内网的内网通信地址,能够实现与内网中服务设备组成位于同一网络的虚拟组网,使得外部网络的电子设备与内网的服务设备如同是同一网络中的设备进行通信,从而实现电子设备对内网服务设备的高效便捷的访问或控制。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:接收所述电子设备发送的第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备的通信地址;对所述第一报文解封装,获取所述第二报文;根据所述第二报文的目的地址,向所述至少一个服务设备发送所述第二报文。
本申请提供的访问局域网服务设备的方法,主要通过外部网络中的电子设备获取服务设备所在局域网的内网地址,并将该内网地址作为内网报文的源地址,将内网报文作为三层报文的UDP报文负载,经由电子设备与路由器之间P2P通道将三层报文发送给路由器,之后由路由器获取内网报文,并经由路由器与服务设备之间的LAN网桥将内网报文发送给服务设备。
根据上述方法,能够实现外部网络的电子设备对局域网内部的服务设备的便捷高效的远程访问或控制。
结合第二方面,在第二方面的某些实现方式中,所述第一报文的源地址为所述电子设备在所述第一网络的通信地址,所述第一报文的目的地址为所述第一路由器在第二网络的通信地址。
结合第二方面,在第二方面的某些实现方式中,所述第二报文的第二负载部分包括服务请求数据,所述服务请求数据用于指示向所述至少一个服务设备请求的服务。
根据上述方法,通过将内网报文作为负载封装在三层报文(第一报文)中,能够实现将用户的服务请求高效地传输至服务设备,从而使服务设备提供相应的服务。
结合第二方面,在第二方面的某些实现方式中,所述第一网络和所述第二网络为局域网,且所述第一网络与所述第二网络不同。
第三方面,提供了一种访问局域网服务设备的电子设备,包括:一个或多个处理器;一个或多个存储器;一个或多个通信接口;以及一个或多个计算机程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或多个程序被所述处理器执行时,使得所述设备执行以下步骤:向所述第一路由器发送第一请求消息,所述第一请求消息用于请求所述电子设备在第二网络的通信地址;接收所述第一路由器发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址;通过所述电子设备在第二网络的通信地址访问所述至少一个服务设备。
结合第三方面,在第三方面的某些实现方式中,当所述一个或多个程序被所述处理器执行时,使得所述设备执行以下步骤:获取所述电子设备在所述第二网络的通信地址;根据所述电子设备在第二网络的通信地址,生成第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备的通信地址;向所述第一路由器发送所述第一报文。
结合第三方面,在第三方面的某些实现方式中,所述第一报文的源地址为所述电子设备在所述第一网络的通信地址,所述第一报文的目的地址为所述第一路由器在第二网络的通信地址。
结合第三方面,在第三方面的某些实现方式中,所述第二报文的第二负载部分包括服务请求数据,所述服务请求数据用于指示向所述至少一个服务设备请求的服务,当所述一个或多个程序被所述处理器执行时,使得所述设备执行以下步骤:获取所述服务请求数据;根据所述服务请求数据生成所述第二报文;对所述第二报文进行封装,生成所述第一报文。
结合第三方面,在第三方面的某些实现方式中,当所述电子设备是用于与用户交互的终端时,所述一个或多个程序被所述处理器执行时,使得所述设备执行以下步骤:接收用户输入的服务请求操作;根据所述服务请求操作,获取所述服务请求数据。
结合第三方面,在第三方面的某些实现方式中,当所述电子设备是用于与用户交互的终端时,所述一个或多个程序被所述处理器执行时,使得所述设备执行以下步骤:接收用户在所述电子设备添加的所述服务设备在第二网络的通信地址。
结合第三方面,在第三方面的某些实现方式中,当所述电子设备为第二路由器时,所述一个或多个程序被所述处理器执行时,使得所述设备执行以下步骤:接收终端发送的所述服务请求数据,所述终端用于与用户进行交互。
第四方面,提供了一种访问局域网服务设备的路由器,包括:一个或多个处理器;一个或多个存储器;一个或多个通信接口;以及一个或多个计算机程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或多个程序被所述处理器执行时,使得所述路由器执行以下步骤:接收所述电子设备发送的第一请求消息,所述第一请求消息用于请求所述电子设备在第二网络的通信地址;根据所述第一请求消息,为所述电子设备分配所述第二网络的通信地址;向所述电子设备发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址。
结合第四方面,在第四方面的某些实现方式中,当所述一个或多个程序被所述处理器执行时,使得所述路由器执行以下步骤:接收电子设备发送的第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备在所述第二网络的通信地址;对所述第一报文解封装,获取所述第二报文;根据所述第二报文的目的地址,向所述至少一个服务设备发送所述第二报文。
结合第四方面,在第四方面的某些实现方式中,所述第一报文的源地址为所述电子设备在所述第一网络的通信地址,所述第一报文的目的地址为所述第一路由器在第二网络的通信地址。
结合第四方面,在第四方面的某些实现方式中,所述第二报文的第二负载部分包括服务请求数据,所述服务请求数据用于指示向所述至少一个服务设备请求的服务。
结合第四方面,在第四方面的某些实现方式中,所述第一网络和所述第二网络为局域网,且所述第一网络与所述第二网络不同。
第五方面,提供了一种访问局域网服务设备的方法,应用于服务设备,所述服务设备为第一路由器的下挂设备,所述服务设备和所述第一路由器位于第二网络,所述第一路由器和位于第一网络中的电子设备之间具有P2P通道,所述P2P通道用于所述电子设备与所述第一路由器进行通信,所述方法包括:向所述第一路由器发送第一响应消息,所述第一响应消息用于指示所述服务设备执行目标服务操作;所述第一路由器向所述电子设备发送所述第一响应消息。
结合第五方面,在第五方面的某些实现方式中,所述服务设备向所述第一路由器发送的所述第一响应消息报文的源地址为所述服务设备在所述第二网络的通信地址,且目的地址为所述电子设备在所述第二网络的通信地址。
结合第五方面,在第五方面的某些实现方式中,所述第一路由器向所述电子设备发送的所述第一响应消息报文的源地址为所述服务设备在所述第二网络的通信地址,且目的地址为所述电子设备在所述第一网络的通信地址。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机实现如第一方面或第二方面中任一实现方式所述的方法。
第七方面,提供了一种计算机产品,所述计算机产品存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机实现如第一方面或第二方面中任一实现方式所述的方法。
第八方面,提供了一种芯片,包括处理器和存储器,所述存储器中存储有计算机程序或指令,当所述处理器执行所述计算机程序或指令时,使得如第一方面或第二方面中任一实现方式所述的访问局域网服务设备的方法得以实现。
第九方面,提供了一种访问局域网服务设备的通信系统,包括电子设备、第一路由器和所述第一路由器下挂的至少一个服务设备,其中,所述电子设备位于第一网络,所述第一路由器和所述至少一个服务设备位于第二网络,所述电子设备和所述第一路由器之间具有P2P通道,所述P2P通道用于所述电子设备与所述第一路由器进行通信,所述电子设备用于执行如上述第一方面的任一实现方式所述的方法,所述第一路由器用于执行如上述第二方面任一实现方式所述的方法。
附图说明
图1是本申请实施例提供的一种应用NAT技术通信的系统架构示意图。
图2A和图2B是本申请实施例提供的两种系统架构的示意图。
图3A至图3G是本申请实施例提供的一例用户通过手机访问内网平板电脑过程中的手机侧的GUI示意图。
图4是本申请实施例提供的一种P2P通道建立过程的示意图。
图5是本申请实施例提供的图2A所示系统架构中的多端交互过程示意图。
图6是本申请实施例提供的图2A所示的系统架构中各设备结构的示意图。
图7是本申请实施例提供的一种报文封装和解封装过程中的报文结构示意图。
图8是本申请实施例提供的报文格式的示意图。
图9是本申请实施例提供的图2B所示系统架构中的多端交互过程示意图。
图10是本申请实施例提供的图2B所示的系统架构中各设备软件结构的示意图。
图11是本申请实施例提供的另一种报文封装和解封装过程中的报文结构示意图。
图12是本申请实施例提供的一种访问局域网服务设备的电子设备的结构示意图。
图13是本申请实施例提供的一种访问局域网服务设备的路由器的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(globalsystem of mobile communication,GSM)系统、码分多址(code division multipleaccess,CDMA)系统、宽带码分多址(wideband code division multiple access,WCDMA)系统、通用分组无线业务(general packet radio service,GPRS)、长期演进(long termevolution,LTE)系统、LTE频分双工(frequency division duplex,FDD)系统、LTE时分双工(time division duplex,TDD)、通用移动通信系统(universal mobiletelecommunication system,UMTS)、全球互联微波接入(worldwide interoperabilityfor microwave access,WiMAX)通信系统、未来的第五代(5th generation,5G)系统或新无线(new radio,NR)等。
随着物联网技术的发展,用户对支持互联互通的设备类型提出了更多的要求。如对于一些位于家庭网络中的服务设备来说,如果能够被外部网络中的终端访问,那么用户就可以远程控制服务设备提供相应的服务,从而获得更好的体验。比如,当用户出差时,可能需要通过手机访问家庭或办公室内网中的电脑、打印机等服务设备;或者,当用户游玩拍照时,为节省手机上的存储空间,可能需要将拍摄的照片及时传输至家中的存储设备上。为实现诸如此类的情形,就需要外部网络中的电子设备能够高效便捷的访问内网中的服务设备,使得服务设备提供相应的服务。
然而,如背景技术所介绍,随着NAT设备在通信网络中的广泛部署,目前很多服务设备都部署于NAT设备之后。而受限于NAT设备的工作特点,很多服务设备仅支持与同一网络内部的设备通信,而不能提供跨网服务,致使用户的需求无法被满足。为更好地理解NAT设备之后的服务设备无法提供跨网服务的原因,以下首先对NAT设备的工作原理进行介绍。
示例性的,如图1所示,为一种应用NAT技术通信的系统架构示意图。
在图1所示的系统架构中,假设通信发起端(终端1)位于某一局域网(local areanetwork,LAN)(或称内网),通信目的端(服务器1)位于广域网(wide area network,WAN)(或称外网或公网)。其中,外网部署有NAT设备,终端1处于该NAT设备之后。
如图1所示,通常NAT设备负责维护一个地址映射表,该地址映射表中记录有终端1的内网地址、外网地址和目的地址,该映射表初始时为空。其中,该终端1的内网地址可以作为终端1通信时的源地址,包括终端1在内网中的IP地址和端口号,该源地址例如为:192.168.0.100:10000;外网地址是由NAT设备分配给终端1的广域网地址,该外网地址与源地址之间具有映射关系,包括终端1在外网中的IP地址和端口号,该外网地址例如为:210.21.12.140:2000;目的地址是指终端1请求通信的目的端设备的地址,这里具体是指处于外网中的服务器1的IP地址和端口号,该目的地址例如为:210.15.27.166:8000。
结合图1所示的系统架构,以图1中的NAT设备是锥型NAT设备为例,终端1和服务器1之间的通信过程可以包括以下步骤:
(1)终端1生成需要发给服务器1的报文1,并将报文1发送至NAT设备,其中,报文1包括终端1的源地址192.168.0.100:10000,目标地址为210.15.27.166:8000。当NAT设备接收到报文1后,可以在映射表中获取源地址为192.168.0.100:10000的记录。
其中,若终端1是首次向服务器1发送报文,NAT设备的映射表中尚未创建源地址为192.168.0.100:10000的记录,此时,NAT设备需要在映射表中新建一套关于源地址为192.168.0.100:10000的记录,并分配外网IP地址和外网端口,例如该NAT设备为终端1分配的外网IP和端口号为210.21.12.140:2000。
应理解,互联网服务提供商(internet service provider,ISP)可以为终端分配内网IP地址和内网端口号,并通过NAT设备将其内网IP地址和端口号转换为外网IP地址和端口号才可以使终端在外网(如Internet)上通信。为方便描述,本申请实施例将终端在内网中的IP地址和/或端口统一称为内网地址,将终端在外网中的IP地址和/或端口统一称为外网地址。
(2)NAT设备修改报文1的内网地址,获得报文2,然后再将报文2发送到外网。其中,NAT设备修改报文1的内网地址是指,将报文1中的源地址修改为外网地址,也即将192.168.0.100:10000修改为210.21.12.140:2000。报文2指的是对报文1进行地址修改后的报文,报文2中的源地址210.21.12.140:2000,目标地址为210.15.27.166:8000。
经过上述终端1向服务器1发送报文的过程,NAT设备上已经建立有终端1内网地址、外网地址以及服务器1地址(即本次通信过程中的目的地址)之间的映射关系,因此,之后终端1向外网服务器1发送报文时,通过该NAT设备,均可将源地址为192.168.0.100:10000修改为目的地址为210.15.27.166:8000。
(3)NAT设备接收到服务器1经由服务器1地址(210.15.27.166:8000)向外网地址(210.21.12.140:2000)发送的报文3。其中,报文3的源地址为210.15.27.166:8000(即服务器1对应的地址),目的地址为210.21.12.140:2000(即终端1对应的外网地址)。
(4)NAT设备接收到报文3后,通过查询地址映射表,可以获取与该外网地址210.21.12.140:2000具有映射关系的内网地址为192.168.0.100.10000。NAT修改报文3当前的目的地址,获取报文4,然后将报文4发送至内网的终端1。其中,NAT设备修改报文3当前的目的地址是指,将报文3的外网地址(210.21.12.140:2000)修改为该外网地址映射的内网地址(192.168.0.100.10000)。报文4是指对报文3进行地址修改后的报文,报文4中的源地址210.15.27.166:8000,目标地址为192.168.0.100.10000。
由上述过程可以看出,NAT设备通过修改报文的源地址或目的地址将报文由内网传输至外网,或者由外网传输至内网。其工作原理可以总结为:只有内网设备主动向外网设备发送数据,外网设备才有可能发送数据给内网设备。原因是,如果内网设备没有先向外网设备发送过报文,NAT设备上不会存储有内网设备与外网设备地址的映射关系,此时即使NAT设备接收到外网设备发送的报文,也不能成功将其传递至内网中。
结合上文介绍的NAT设备工作原理可以看出,某一局域网外的电子设备若想访问该局域网中的服务设备,需要该服务设备先向该外部网络的电子设备发送数据。然而,在实际应用中,局域网中的服务设备通常并不会主动向外部网络中的电子设备发送数据,这就导致了外部网络中的电子设备无法成功访问局域网内的服务设备,进而无法控制其提供相应的服务。
针对上述问题,本申请实施例提供了一种访问局域网服务设备的方法,通过局域网外的电子设备获取局域网内的路由器为其分配的内网地址,并将该内网地址作为与局域网内的服务设备通信时内网报文的源地址,从而使外部网络的电子设备与服务设备如同在同一内网进行通信,实现外部网络的电子设备对局域网内的服务设备高效便捷的访问或控制。
在一些示例中,本申请实施例中的电子设备可以是能够直接与用户交互的终端,也可以是路由器。终端例如可以是手机、平板电脑、可穿戴设备(如智能手表、智能手环、智能眼镜、智能首饰等)、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备。本申请实施例对终端的具体类型不做任何限制。电子设备或服务设备的示例性实施例包括搭载等操作系统的终端。在一些示例中,本申请实施例中的终端或服务设备可以是支持信息服务块(Samba,SMB)协议(以下可记为Samba设备)、文件传输协议(filetransfer protocol,FTP)、超文本传输协议(hyper text transfer protocol,HTTP)的电子设备。服务设备例如可以是个人电脑、平板电脑、打印机等电子设备,本申请实施例对服务设备的具体类型不作限定。
如图2A和图2B所示,是本申请实施例提供的两种示例性系统架构的示意图。
在一个实施例中,如图2A所示,为本申请实施例提供的一种系统架构示意图。该系统架构包括终端,第一NAT设备,第二NAT设备,第一路由器以及第一路由器下挂的至少一个服务设备(如第一服务设备和第二服务设备)。其中,终端位于第一网络中,且终端位于第一NAT设备之后;第一路由器以及服务设备位于第二网络中,且第一路由器和服务设备位于第二NAT设备之后;第一NAT设备和第二NAT设备可以位于WAN中。应理解,本申请实施例提供的访问局域网服务设备的方法可以应用于终端跨网访问局域网中的服务设备场景中,更为具体地,可以应用于位于NAT设备之后的一个局域网中的终端访问另一NAT设备之后的另一局域网中的服务设备的场景。因此,在一些实施例中,图2A中第一网络、第二网络可以为部署于家庭、办公室等场地中的局域网,第一网络、第二网络分别为不同的局域网。
在另一个实施例中,本申请提供的访问局域网服务设备的方法还可以应用于路由器跨网访问局域网中的服务设备的场景中,此时外部网络的电子设备为路由器。如图2B所示,为本申请实施例提供的另一种系统架构示意图。相较于图2A所示的系统架构,图2B中的终端为第二路由器的下挂设备。为便于描述,这里对图2B中与图2A相应的设备或网络采用相同命名,但应理解,在实际应用中,图2A和图2B中的网络、设备(如终端、路由器等)可以不相同。
在图2B所示的系统架构中,终端、第二路由器位于第一网络,且终端和第二路由器位于第一NAT设备之后;第一路由器、第一路由器下挂的至少一个服务设备(如第一服务设备和第二服务设备)位于第二网络,且第一路由器和服务设备位于第二NAT设备之后。
在一些示例中,本申请实施例中的NAT设备和路由器可以是同一设备,该设备例如可以是兼具NAT设备和路由器的功能的路由器。本申请对此不作限定。
在一些实施例中,图2A中的终端和图2B中第二路由器下挂的终端可以有多个,此时可以实现不同用户通过各自的终端分别远程访问或控制局域网中的服务设备。换言之,本申请实施例提供的访问局域网服务设备的方法可以适用于一个外部网络的电子设备对一个局域网中的服务设备进行访问/控制,或者也可以适用于多个外部网络的终端对一个局域网中的服务设备进行访问/控制,或者也可以适用于一个外部网络的电子设备对多个局域网中的服务设备进行访问/控制。
应理解,图2A和图2B所示的服务设备的数量仅为示例,在一些示例中,服务设备可以有比图2A和图2B所示更多或更少的数量,本申请对此不作限定。
为便于描述,本申请将服务设备所在的网络(如部署于家庭或办公场地内部的局域网)称为内网,将电子设备(终端或第二路由器)所在的网络称为外部网络。
本申请实施例提供的访问局域网服务设备的方法,能够让用户远程控制内网中的服务设备。为了便于理解,本申请以下实施例将以图2A或图2B中的终端是手机为例,结合附图和具体的应用场景,对本申请实施例提供的访问局域网服务设备的方法进行具体阐述。
示例性的,这里以用户远程访问家庭内网中的平板电脑,并将拍摄的照片传输至该平板电脑的场景为例,对用户通过终端上的应用程序(Application,APP)访问内网服务设备的过程进行简单介绍。
如图3A至图3G所示,为本申请实施例提供的一例用户通过手机访问内网平板电脑过程中的手机侧的图形用户界面(garphical user interface,GUI)示意图。
如图3A所示,为解锁模式下,手机当前输出的界面内容,该界面内容包括了多款应用程序(Application,App),例如时钟、日历、图库、备忘录、文件管理、电子邮件、音乐、计算器、华为视频、运动健康、天气、浏览器、智慧生活、设置、录音机、应用商城、相机、通讯录、电话、信息等。应理解,在一些实施例中,该界面可以包括比图3A所示更多或更少的应用程序,本申请实施例对此不作限定。
如图3A所示,用户点击智慧生活App的图标,响应于用户的点击操作,手机运行智慧生活App,并显示如图3B所示界面。其中,图3B中的界面是我的设备/设备列表界面,该设备列表界面可以包括平板电脑、智能音箱、智慧屏、智能手环等服务设备的图标、每个设备后对应的选择图标以及添加新服务设备图标。该设备列表中的服务设备例如可以为当前处于家庭内网中的设备。可选地,各个服务设备可以由用户预先手动添加,例如用户在智慧生活App的设备列表界面,点击添加新设备图标,然后输入新设备的名称、通信地址(家庭内网的IP地址)等信息,将设备添加至该设备列表。或者,服务设备也可以是手机提前自动添加的,如手机处于服务设备所在内网时,可以扫描并发现周围的服务设备,并与服务设备建立连接,存储该服务设备的信息。
如图3B所示,当用户需要访问家庭内网中的平板电脑时,用户点击平板电脑对应的选择图标;响应于用户的点击操作,手机可以与家庭网络中的路由器(如图2A或图2B中的第一路由器)建立通信连接。可选地,用户还可以预先对每个设备设置访问密码,当点击选择图标后,可以显示输入密码或者绘制密码手势的界面(图3B未示出),用户输入正确的密码或者绘制正确的手势后,手机才会与平板电脑建立通信。
其中,手机与家庭网络中路由器的建立通信连接的过程例如可以对应图4中的S401至S413,也即手机与家庭网络的路由器之间建立P2P通道的过程,该P2P通道可以用作手机和路由器之间的P2P三层代理转发通道。手机和路由器之间具有P2P通道后,手机与路由器下挂的服务设备(包括连接在路由器上的平板电脑)的通信方式可以如同内网设备之间的通信。当手机与路由器建立了P2P三层代理转发通道(如图4所示的终端与路由器之间建立的P2P通道)之后,手机可以显示已连接状态,如图3C所示,此时平板电脑图标对应的选择图标可以显示为已连接状态。
之后,用户可以退出智慧生活App,返回解锁后的手机输出界面。如图3D所示,用户点击相册图标,打开相册应用;响应于用户的相册打开操作,手机运行相册App,并显示如图3E所示的相册界面。用户在相册界面选择需要传输的照片,比如用户可以用手指长按某一张需要传输的照片,则当前相册每张相片的右下角会出现勾选框。
之后用户可以点击需要传输的其它照片的勾选框,响应于用户选择照片的操作,手机可以显示如图3F所示的界面,该界面包括用户所选的照片(勾选框中显示√的照片),以及针对照片的分享、移动、删除以及更多等功能。
接着,用户可以点击相册下方的分享图标,响应于用户的点击操作,手机显示如图3G所示的照片分享界面,该照片分享界面包括用户已选照片的数量(如已选择4项)、所选的全部或部分照片图像以及可以分享照片的设备或方式,图中包括发送到平板电脑,通过QQ发送给好友、蓝牙等。值得注意的是,由于之前手机已经与平板电脑连接的路由器建立通信连接,因此,在照片分享界面可以显示发送到平板电脑的选项图标,因而如图3G所示,用户可以点击平板电脑的图标,响应于用户的点击操作,手机可以将选好的照片发送给家庭内网中的平板电脑。
可选地,家庭网络组中的平板电脑接收到照片后,可以按照预先设置将照片存储至平板电脑的相册,或者其他预设的存储位置。
应理解,图3A至图3G仅为示例性图形用户界面图,在一些实施例中,该图形用户界面还可以为其它呈现方式,本申请对此不作限定。
根据本申请实施例提供的访问局域网服务设备的方法,终端可以由局域网之外的网络直接对内网中的服务设备进行访问或控制,使得用户能够高效便捷的获取相应的服务,提升了用户体验。
结合图2A和图2B所示的系统架构,下面对本申请实施例提供的访问局域网服务设备的具体实现方式进行介绍。
应理解,在本申请实施例提供的访问局域网服务设备的方法中,外部网络的设备可以在建立好的P2P通道上与对端网络中的路由器进行通信。因此,为了更清楚地介绍本申请实施例提供的访问局域网服务设备的方法,下文将分为两个阶段进行介绍。
阶段一:外部网络的设备与内网中路由器建立P2P通道。
需要说明的是,阶段一的过程可以作为初始化过程,该阶段涉及的P2P通道的建立过程可以采用现有的流程实现。这里仅基于图2A所示的系统架构(外部网络的电子设备是终端),选择一种可能的实现方式进行示例性说明,然而在实际应用中,P2P通道的建立方式并不限于此。
如图4所示,提供了一种P2P通道建立过程的示意图。
其中,图4中的第一NAT设备和第二NAT设备可以分别对应图2A中的第一NAT设备和第二NAT设备。为便于理解,此处以第一NAT设备和第二NAT设备均为锥型NAT设备为例进行介绍。该P2P通信建立的过程可以包括以下步骤:
S401,终端向第一NAT设备发送第一查询消息。
其中,第一查询消息用于向第一NAT设备查询该终端对应的外网地址。
S402,第一NAT设备为终端分配外网地址。
在一些示例中,第一NAT设备接收到第一查询消息后,若终端没有对应的外网地址,则第一NAT设备为该终端分配外网地址。具体地,第一NAT设备可以在本地的地址映射表中创建终端内网地址和外网地址之间的映射关系。
S403,第一NAT设备向终端发送第一指示消息。
可选地,第一NAT设备响应于第一查询消息,向终端发送第一指示消息,该第一指示消息用于向终端指示该终端对应的外网地址。
S404,终端向服务器发送第一注册消息。
其中,第一注册消息可以包括第一NAT设备为终端分配的外网地址。
具体地,终端可以经由第一NAT设备向服务器发送该第一注册消息。
在一些示例中,服务器可以基于该第一注册消息获知终端对应的外网地址;服务器可以将终端的外网地址存储于本地的存储空间。
应理解,通过步骤S401至步骤S404,服务器获知该终端的外网地址。
S405,第一路由器向第二NAT设备发送第二查询消息。
其中,第二查询消息用于向服务器查询路由器对应的外网地址。
S406,第二NAT设备为第一路由器分配外网地址。
S407,第二NAT设备向第一路由器发送第二指示消息。
可选地,第二NAT设备响应于第二查询消息,向第一路由器发送第二指示消息,该第二指示消息用于向第一路由器指示其对应的外网地址。
S408,第一路由器向服务器发送第二注册消息。
其中,第二注册消息包括第二NAT设备为第一路由器分配的外网地址。
在一些示例中,服务器可以基于该第二注册消息获知第一路由器对应的外网地址;服务器可以将第一路由器的外网地址存储于本地的存储空间。
应理解,通过步骤S405至步骤S408,服务器获知第一路由器的外网地址。
S409,服务器向终端发送第一路由器的外网地址。
S410,服务器向第一路由器发送终端的外网地址。
应理解,通过步骤S409和步骤S410,终端和第一路由器分别获知的通信对端的外网地址,该外网地址可以作为之后终端与第一路由器通信时的目的地址。
S411,终端向第二NAT设备发送打洞消息。
其中,该打洞消息的目的地址可以为第一路由器的外网地址。该打洞消息主要用于在第一NAT设备上建立第一路由器外网地址、终端内网地址和终端外网地址之间的映射关系。
应理解,如果第一NAT设备上没有存储第一路由器外网地址对应的映射关系,那么由第一路由器外网地址发送而来的消息会被作为“不请自来”的消息,无法被发送到终端上。因此,为了使第一路由器发送来的消息能够穿透第一NAT设备,被发送至终端,需要在第一NAT设备上添加第一路由器外网地址、终端外网地址和终端内网地址之间的映射关系。
S412,第一路由器向第一NAT设备发送直通请求消息,该直通请求消息的目的地址为终端的外网地址。
其中,该步骤用于第一路由器尝试建立与终端之间的P2P通道。该直通请求消息用于向终端请求建立通信连接。
应理解,当第二NAT设备发出针对终端的直通请求消息时,第二NAT设备会在地址映射表中添加第一路由器内网地址、外部网络地址以及目的地址(终端对应的外网地址)之间的映射关系。由于在步骤S411中,第一NAT设备中的地址映射表中已经具有了第一路由器外网地址对应的映射关系,因此,该步骤中,第一NAT设备接收到由第一路由器外网地址发送而来的直通请求消息后,基于其携带的目的地址(终端对应的外网地址),由地址映射表中获取该目的地址对应的内网地址为终端的内网地址,则第一NAT设备可以将直通请求消息发送给终端。
S413,终端向第一路由器发送直通响应消息,该直通响应消息的目的地址为第一路由器的外网地址。
由于在步骤S412中,第一路由器经由第二NAT设备向终端的外网地址发送直通请求消息时,该第二NAT设备上的地址映射表中已经具有了第一路由器内网地址、第一路由器外网地址和目的地址(终端的外网地址)之间的映射关系,因此,第二NAT设备基于地址映射表,将直通响应消息发送至第一路由器上。至此,终端与第一路由器实现NAT穿越,P2P通道建立成功。
应理解,上述建立P2P通道的过程仅以锥型NAT设备-锥型NAT设备组合举例进行说明。在实际应用时,P2P通道的建立可以基于STUN协议、TRUN协议采用多种其它实现方式,本申请对此不作限定。
还应理解,当终端和路由器在P2P通道上进行通信时,可以按照用户数据报协议(user data protocol,UDP)发送数据报文,其中,具体的数据报文格式可以参见现有的相关协议,本申请对此不再赘述。
根据上述方法,通过在终端与路由器之间进行NAT穿越,获得P2P通道,终端和路由器可以在该P2P通道直接通信,通信路径无需再经由服务器,使得终端和路由器之间的通信更加的便捷和高效。
应理解,图4所示实施例中的P2P通道可以具体用于第一网络中的电子设备与第二网络中的第一路由器进行通信。换言之,在本申请实施例提供的访问局域网服务设备的过程中,电子设备与第一路由器之间的消息传输,或者说报文传输可以经由该P2P通道。比如,电子设备向第一路由器可以经由P2P通道向第一路由器发送第一请求消息,第一路由器可以经由P2P通道向第一路由器发送第一反馈消息。之后,电子设备可以经由P2P通道向第一路由器发送第一报文。
阶段二:外部网络的设备跨网访问局域网中路由器下挂的服务设备,使该服务设备提供服务。
当外网网络的设备与路由器之间的P2P通道建立之后,进行阶段二。其中,阶段二所涉及的外部网络设备与内网路由器之间的通信,可以通过阶段一所建立的P2P通道进行。以下分别针对图2A所示的系统架构和图2B所示的系统架构,对阶段二的过程进行介绍。
示例性的,首先结合图5至图7对基于图2A中系统架构所进行的阶段二的过程进行介绍。如图5所示,示出了图2A所示系统架构中的多端交互过程示意图。其中,图5实施例中的终端位于第一网络,第一路由器和服务设备位于第二网络。该过程具体可以包括以下步骤:
S501,终端向第一路由器发送第一请求消息。
其中,该第一请求消息用于向第一路由器请求第二网络的内网地址,该第二网络的内网地址可以是第二网络的内网IP地址,或者,第二网络的内网IP地址和第二网络的内网端口号。
结合图2A所示的系统架构,为更清楚地理解终端向第一路由器发送第一请求的不同阶段,该第一请求消息报文的具体内容,可同时参见表1,为步骤S501涉及的第一请求消息报文五元组具体内容以及报文负载部分的正文数据内容。
在一些实施例中,终端首先向第一NAT设备发送第一请求消息。其中,终端向第一NAT设备发送的第一请求消息报文五元组(源IP、目的IP、源端口号、目的端口号、传输层协议)的具体内容可以是:源IP为终端在第一网络的内网IP、目的IP为第一路由器对应的外网IP、源端口号为终端在第一网络的内网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表1所示的终端→第一NAT设备阶段的第一请求消息报文内容)。
表1
在一些实施例中,第一NAT设备接收到第一请求消息报文后,对其源地址(源IP、源端口号)进行修改。具体地,将源IP由终端在第一网络中的内网IP修改为终端对应的外网IP,将源端口号由终端在第一网络中的源端口号修改为终端对应的外网端口号。
之后,第一NAT设备可以将修改后的第一请求消息报文发送给第二NAT设备。此时,该第一请求消息报文五元组的具体内容可以是:源IP为终端对应的外网IP、目的IP为第一路由器对应的外网IP、源端口号为终端对应的外网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表1中第一NAT设备→第二NAT设备阶段的第一请求消息报文内容)。
在一些实施例中,第二NAT设备接收到第一NAT设备发送的第一请求消息的报文后,对其目的地址(目的IP、目的端口号)进行修改。具体地,将目的IP由第一路由器对应的外网IP修改为第一路由器在第二网络的内网IP,将目的端口号由第一路由器对应的外网端口号修改为第一路由器在第二网络的内网端口号(参见表1中第二NAT设备→第一路由器阶段的第一请求消息报文内容)。
之后,第二NAT设备将上述经由该第二NAT设备修改后的第一请求消息报文发送给位于第二网络中的第一路由器。
应理解,本实施例示出的报文内容变化仅以图2A所示的系统架构为例,在一些实施例中,如果终端与第一路由器之间还有其它更多的设备(如NAT设备等),则报文的内容(源地址或者目的地址)会发生相应的变化。本申请对此不作限定。
在一些实施例中,终端可以通过终端中的P2P L3客户端代理(P2P L3 proxyclient)模块生成第一请求消息,并经由终端和第一路由器之间的P2P通道发送给第一路由器的P2P L3服务端(P2P L3 proxy service)模块。
在一些实施例中,第一路由器根据第一请求消息为终端分配对应的第二网络的内网地址。
S502,第一路由器向终端发送第一反馈消息。
其中,该第一反馈消息用于指示终端在第二网络的内网地址,该第二网络的内网地址是第一路由器为终端分配的在第二网络中的内网地址。
结合图2A所示的系统架构,为更清楚地理解第一路由器向终端发送第一反馈消息的不同阶段,该第一反馈消息报文不同部分的具体内容,可参见表2,为步骤S502涉及的第一反馈消息报文的五元组具体内容以及报文负载的正文数据内容。
表2
在一些实施例中,第一路由器首先向第二NAT设备发送第一反馈消息。其中,第一路由器向第二NAT设备发送的第一反馈消息报文五元组的具体内容可以是:源IP为第一路由器在第二网络的内网IP、目的IP为终端对应的外网IP、源端口号为第一路由器在第二网络的内网端口号、目的端口号为终端对应的外网端口号、传输层协议为UDP协议(参见表2中第一路由器→第二NAT设备阶段的第一反馈消息报文内容)。
在一些实施例中,第二NAT设备接收到第一反馈消息报文后,对其源地址(源IP、源端口号)进行修改。具体地,将源IP由第一路由器在第二网络中的内网IP修改为第一路由器对应的外网IP,将源端口号由第一路由器在第二网络中的源端口号修改为第一路由器对应的外网端口号。
之后,第二NAT设备可以将修改后的第一反馈消息报文发送给第一NAT设备。此时该第一反馈消息报文五元组的具体内容可以是:源IP为第一路由器对应的外网IP、目的IP为终端对应的外网IP、源端口号为第一路由器对应的外网端口号、目的端口号为终端对应的外网端口号、传输层协议为UDP协议(参见表2中第二NAT设备→第一NAT设备阶段的第一反馈消息报文内容)。
在一些实施例中,第一NAT设备接收到第二NAT设备发送的第一反馈消息的报文后,对其目的地址(目的IP、目的端口号)进行修改。具体地,将目的IP由终端对应的外网IP修改为终端在第一网络的内网IP,将目的端口号由终端对应的外网端口号修改为终端在第一网络的内网端口号(参见表2中第一NAT设备→终端阶段的第一反馈消息报文内容)。
在一些实施例中,第一路由器可以通过第一路由器中的P2P L3 proxy service模块生成第一反馈消息,并经由终端和第一路由器之间的P2P通道发送给终端的P2P L3proxy client模块。
在一些实施例中,终端获得第二网络的内网地址后,可以进行通过P2P L3 proxyclient模块配置新的本地TUN接口,并在网络系统模块添加该TUN接口相应的路由规则,使得网络系统模块可以根据路由规则将指定App(如智慧生活App)上的数据传输至对应的TUN接口上,通过该TUN接口传送该指定App的流量。
之后,当终端中的指定APP接收用户输入的服务请求后,可以响应于用户发起的服务请求,生成服务请求数据,并将该服务请求数据通过系统网络模块传输至TUN接口,再由TUN接口传输至P2P L3proxy client模块。
S503,终端基于服务请求的数据,生成第一报文。
示例性的,第一报文对应的消息可以是服务请求消息,用于向第一路由器下挂的服务设备的请求服务。
在一些实施例中,第一报文五元组的具体内容可以包括:源IP、目的IP、源端口号、目的端口号、传输层协议。此时,第一报文五元组的具体内容可以为:源IP为终端在第一网络的内网IP、目的IP为第一路由器对应的外网IP、源端口号为终端在第一网络的内网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议。
在一些实施例中,第一报文的报文格式包括第一报文头和第一负载部分(UDP负载)。其中,第一报文头又可以包括第一IP头(用于写入源IP、目的IP以及传输层协议标识等)、第一UDP头(用于写入源端口号和目的端口号);而第一负载部分用于写入数据正文。
应理解,与现有技术不同的是,在本申请实施例中,第一报文的第一负载部分用于写入第二报文,该第二报文为第二网络的内网报文。示例性的,第二报文五元组具体内容可以是:源IP为终端在第二网络的内网IP、目的IP为服务设备(如支持Samba协议的服务设备)在第二网络的内网IP、源端口号为终端在第二网络的内网端口号、目的端口号为服务设备在第二网络的内网端口号、传输层协议为UDP协议。
在一些实施例中,第二报文的报文格式可以包括第二报文头和第二负载部分。其中,第二报文头可以包括第二IP头(用于写入第二报文的源IP、目的IP以及传输层协议标识)、第二UDP头(用于写入源端口号和目的端口号);而第二负载部分(对应图7所示的IPpayload)用于写入数据正文,如终端向服务设备请求提供某些服务的服务请求数据,比如图3G实施例中分享照片等服务请求数据,该请求服务的数据,可以用于请求服务设备执行相应的服务操作。
在一些实施例中,第二报文的第二负载部分还可以写入报文类型的标识信息,例如,在1个字节(或1位)上用数字“0”表示对应的报文为数据报文。可选地,对于控制报文,也可以在报文负载部分写入报文类型的标识信息,例如,在1个字节(或1位)上用数字“1”表示对应的报文为控制报文(如图8所示)。或者,也可以用数字“1”表示对应的报文为数据报文,用数字“0”表示对应的报文为控制报文(图8未示出),本申请对此不作限定。
其中,对于生成第一报文的过程以及不同步骤中涉及的具体的报文格式将在下文结合图7进行介绍,此处暂不详述。
S504,终端向第一路由器发送第一报文。
结合图2A所示的系统架构,为更清楚地理解终端访问服务设备的不同阶段,该消息报文不同部分的具体内容,可参见表3,为三层报文的五元组具体内容以及报文负载的正文数据内容。
与步骤S501类似,在一些实施例中,终端首先向第一NAT设备发送第一报文。其中,终端向第一NAT设备发送的第一请求消息报文五元组(源IP、目的IP、源端口号、目的端口号、传输层协议)的具体内容可以是:源IP为终端在第一网络的内网IP、目的IP为第一路由器对应的外网IP、源端口号为终端在第一网络的内网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表3中终端→第一NAT设备阶段的第一报文内容)。
表3
在一些实施例中,第一NAT设备接收到第一报文后,对其源地址(源IP、源端口号)进行修改。具体地,将源IP由终端在第一网络中的内网IP修改为终端对应的外网IP,将源端口号由终端在第一网络中的源端口号修改为终端对应的外网端口号。
之后,第一NAT设备可以将修改后的第一报文发送给第二NAT设备。此时该第一报文五元组的具体内容可以是:源IP为终端对应的外网IP、目的IP为第一路由器对应的外网IP、源端口号为终端对应的外网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表3中第一NAT设备→第二NAT设备阶段的第一报文内容)。
在一些实施例中,第二NAT设备接收到第一NAT设备发送的第一报文后,对其目的地址(目的IP、目的端口号)进行修改。具体地,将目的IP由第一路由器对应的外网IP修改为第一路由器在第二网络的内网IP,将目的端口号由第一路由器对应的外网端口号修改为第一路由器在第二网络的内网端口号(参见表3中第二NAT设备→第一路由器阶段的第一报文内容)。
之后,第二NAT设备将上述经由该第二NAT设备修改后的第一报文发送给位于第二网络中的第一路由器。
S505,第一路由器对第一报文解封装,获取第二报文。
在一些实施例中,第一路由器通过P2P L3proxy service模块对第一报文进行解封装,获取第二报文。
在一些实施例中,第一路由器对第一报文解封装可以是剥离第一报文的第一报文头(第一IP头和第一UDP头),获取第一报文的第一负载部分(也即第二报文)。
之后,第一路由器可以根据第二报文的第二报文头获取目的地址,并将该第二报文发送至目的地址对应的服务设备。
S506,第一路由器向服务设备发送第二报文。
在一些实施例中,第二报文的五元组内容以及负载的数据内容可以参见表3中的第一路由器→服务设备阶段的第二报文内容。
在一些实施例中,第一路由器的P2P L3proxy client模块根据第二报文携带的目的地址,将该第二报文发送给对应的服务设备。其中,该第二报文的目的地址例如可以是图3B中平板电脑在家庭网络的内网IP地址。
在一些实施例中,第一路由器通过第二网络中该第一路由器与服务设备之间的LAN网桥将第二报文发送给对应的服务设备。
S507,服务设备根据第二报文指示的服务请求,提供服务。
具体地,服务设备接收到第二报文后,对该第二报文解封装,剥离第二报文头,获取第二报文负载部分的正文数据(服务请求数据);之后,服务设备根据该正文数据(服务请求数据),提供对应的服务。
在一些实施例中,服务设备包括服务模块(如Samba service模块),该服务模块可以对第二报文解封装,获取第二报文负载部分的服务请求数据内容,通过读取服务请求的数据内容,该服务模块调用服务设备的其它相关模块(如处理模块、存储模块、显示模块等),提供相应的服务。该请求服务的数据内容例如可以是图3G实施例中的分享照片服务。
根据本申请实施例提供的访问局域网服务设备的方法,通过外部网络中的终端获取路由器为其分配的服务设备所在局域网的内网地址,并将该内网地址作为内网报文的源地址,将内网报文作为UDP报文负载,经由终端与路由器之间的基于UDP的P2P通道以及路由器与服务设备之间的LAN网桥与服务设备通信连接,能够实现外部网络的终端与局域网内部的服务设备的便捷高效的远程访问或控制。
为更好地理解本申请实施例提供的访问局域网服务设备的方法,以下结合图6和图7,对本申请实施例提供的访问家庭网络服务的方法的内部实现过程进行介绍。
示例性的,如图6所示,为图2A所示的系统架构中各设备的结构示意图。该系统架构具体包括第一NAT设备、第二NAT设备,以及位于第一NAT设备之后的终端(以手机为例)、位于第二NAT设备之后的第一路由器以及该第一路由器下挂的服务设备(以samba设备为例)。
参照图6,手机所包括的模块及各模块的功能如下:
在一些实施例中,手机可以包括App模块、系统网络(system network)模块、TUN接口、P2P L3代理客户端(P2P L3 proxy client)模块以及网关(gateway)等。
其中,App模块可以用于实现手机与用户的交互,如接收用户输入的指示服务设备提供服务的操作等。该App例如可以是终端自带的系统App(如智慧生活APP),或者也可以是第三方App,本申请对此不作限定。
系统网络模块,例如可以是Andriod系统中的App网络管理模块,用于根据预设的路由规则将不同App中的数据流分配并传输至对应的接口上。例如,在本申请实施例中,系统网络模块接收到智慧生活App的数据流之后,可以根据预设的TUN接口的路由规则,将该数据流发送至与智慧生活App对应的TUN接口上。
TUN接口为P2P L3 proxy client模块配置的新的本地接口,该TUN接口为系统通过软件模拟出的虚拟网卡,其可以通过文件(如/dev/tun文件)收发数据包,而无需经由网线。举例来说,本申请实施例中的TUN接口可以通过如/dev/tun文件与App相连,如App通过系统调用将数据写入/dev/tun文件,之后,这些数据会以网络层数据包的形式传递至TUN接口;其中,终端还可以为该TUN接口设定IP地址以及路由规则,并将该TUN接口的IP地址和路由规则存储于网络系统模块,使该网络系统模块将指定App中的数据传输至对应的TUN接口。
P2P L3 proxy client模块,相当于处理模块,可以用于实现多种功能,包括用于生成与第一路由器之间的通信请求,通过P2P通道与路由器中的P2P L3 proxy service模块通信;或者,用于为终端配置新的TUN接口,并为该TUN接口设置相应的IP地址及路由规则;或者,对终端的报文进行封装、解封装等。
参照图6,第一路由器所包括的模块及各模块的功能如下:
在一些实施例中,第一路由器例如可以支持OS-Linux系统,分为用户空间(userspace)和内核空间(kernal space)。其中,用户空间包括P2P L3 proxy service模块;内核空间包括广域网WAN模块、LAN模块以及OS-Linux系统模块等。
其中,P2P L3 proxy service模块,可以用于为外部网络中的终端分配家庭网络的内网地址;或者,还可以对接收到的终端发送的报文进行封装和解封装。
WAN模块,包括WAN通信接口,用于与广域网中的设备通信;或者,用于经由广域网与其他外部网络中的设备通信。
LAN模块,包括LAN通信接口,用于与局域网内部的其它设备进行通信。
参照图6,Samba设备所包括的模块及各模块的功能如下:
在一些实施例中,Samba设备可以包括Samba服务(Samba service)模块和网络(Internet)模块等。
其中,Samba service模块可以用于根据其他设备的请求,调动服务设备的其他模块(如存储模块、文件传输模块、打印模块等)提供相应的服务。
Internet模块可以用于与同一局域网中的设备进行通信。
以下结合图6所示的设备的各个模块,对各个设备的内部工作流程以及报文封装和解封装的内部实现过程进行介绍。
如7所示,为报文封装和解封装过程中的报文结构示意图。包括以下步骤:
步骤S710:手机生成第一报文。
参照图7中手机内各模块之间的箭头流向,手机生成第一报文的具体过程为:手机上的App(如智慧生活App)接收用户输入的服务请求操作;响应于用户输入的服务请求操作,App可以生成对应的服务请求的数据;之后,App将该数据传输至系统网络模块;系统网络模块根据存储的路由规则确定该App对应的TUN接口,并将服务请求的数据进一步传输至App所对应的TUN接口,然后经由TUN接口将服务请求的数据发送至P2P L3 proxy client模块;P2P L3 proxy client模块接收到该服务请求的数据后,可以按照UDP协议对该数据进行报文封装,获取第一报文。
参照步骤S710中的报文701至报文704的格式变化,P2P L3 proxy client模块进行报文封装的具体过程为:P2P L3 proxy client模块将接收到的服务请求的数据作为第二报文的负载(或称第二报文负载或IP payload),此时的报文结构如S710中的报文701所示;之后,P2P L3proxy client模块为该IP payload添加第二IP头,获取第二报文,此时的报文结构如报文702所示。可以看出,第二报文(报文702)的结构包括第二IP头和IPpayload,其中,第二IP头中可以写有该第二报文的源IP、目的IP和UDP协议标识等,源IP为终端在第二网络的内网IP,目的IP为服务设备在第二网络的内网IP;IP payload包括服务请求的数据,该服务请求的数据可以用于请求服务设备提供相关服务,如接收并存储照片等服务操作。
应理解,这里的第二报文的IP payload还可以包括第二报文的第二UDP头(图7未示出),该第二UDP头包括该第二报文的源端口号、目的端口号,源端口号为终端在第二网络的内网端口号,目的端口号为服务设备在第二网络的内网端口号。
还应理解,第二报文可以由第二网络中的第一路由器通过第二网络的LAN网桥传输至服务设备,且第二报文的源地址和目的地址均为第二网络内网地址,因而该第二报文也可以称为第二网络的内网报文。
之后,手机的P2P L3 proxy client模块在第二报文上添加第一UDP头,此时的报文结构如S710中的报文703所示。该第一UDP头可以包括第一报文的源端口号、目的端口号,源端口号为手机在第一网络中的端口号,目的端口号为第一路由器对应的外网端口号,源端口号和目的端口号用于提供端对端的接口。
之后,手机的P2P L3 proxy client模块再为当前的报文(S710中的报文703)添加第一IP头,生成第一报文,此时报文格式如S710中的报文704所示。其中,第一IP头和第一UDP头可以合称为第一报文头或者第一报文的报文头。第一IP头可以包括第一报文的源IP、目的IP,源IP为终端在第一网络中的IP,目的IP为第一路由器对应的外网IP。
由以上过程可以看出,手机首先生成第二报文,而后将第二报文封装在第一报文的第一负载部分。其中,第二报文可以用于在第二网络的设备之间传输,这里也可以将其称为第二网络的内网报文;第二IP头和UDP头则用于在网络层和传输层传输,因而也可以将其称为外网报文,可选地,这里的外网可以指WAN。
应理解,本申请实施例所说的报文可以是按照UDP协议生成的UDP报文。由于手机向服务设备发送的报文可能是数据报文或控制报文,为了区分这两种不同类型的报文,如图8所示,可以在第二报文的负载部分(IP payload)用一个字节(或1位)指示当前报文是哪一种。例如,如图8所示,可以用“0”表示当前传输的报文为数据报文,此时IP payload部分包括数据信息;用“1”表示当前传输的报文为控制报文,此时IP payload部分包括控制信息;或者,也可以用“1”表示当前传输的报文为数据报文,此时IP payload部分包括数据信息;用“0”表示当前传输的报文为控制报文,此时IP payload部分包括控制信息(图8未示出)。本申请对此不作限定。
步骤S711:手机经由P2P通道将第一报文发送至第一路由器。
其中,步骤S711对应于图5实施例中的步骤S504。具体地,P2P L3 proxy client模块经由终端的Internet模块和网关(gateway)将报文704(也即第一报文)经由手机与第一路由器之间的P2P通道传输至第二网络中的第一路由器。
步骤S712:第一路由器接收第一报文,并对第一报文解封装,获取第二报文。
其中,步骤S711对应于图5实施例中的步骤S505。
参照图7中第一路由器内部各个模块之间的箭头流向,第一路由器可以经由WAN模块接收第一报文(如S712中的报文704所示);然后,WAN模块经由OS-Linux模块将第一报文传输至用户空间(user space)的P2P L3 proxy service模块;该P2P L3 proxy service模块接收到第一报文后,对其进行解封装,获得第二报文(如712中的报文702所示)。
参照步骤S712所示的报文704至报文702的格式变化,第一路由器对第一报文解封装的过程为:第一路由器P2P L3 proxy service模块首先剥离第一报文(S712中的报文704)的第一IP头,获取S712中的报文703;之后,再剥离第一UDP头,获取第二报文(S712中的报文702)。P2P L3 proxy service模块可以根据第二报文(S712中的报文702)的第二IP头获取该第二报文的目的IP;可选地,如果IP payload中有UDP头,P2P L3 proxy service模块还可以通过解析IP payload中包括的第二UDP头(未示出)获取该第二报文的目的端口号。
步骤S713:第一路由器经由LAN侧网桥,将第二报文发送给Samba设备。
其中,步骤S711对应于图5实施例中的步骤S506。
在一些实施例中,第一路由器根据第二报文包括的目的地址(第二报文的目的IP、目的端口号)将第二报文发送至对应的服务设备(Samba设备)上。示例性的,第一路由器可以通过LAN侧网桥将该第二报文发送给Samba设备;该Samba设备例如可以是位于家庭网络中的平板电脑。
步骤S714,Samba设备对第二报文解封装。
其中,步骤S714对应于图5实施例中的步骤S507。
参照图7中Samba设备中各个模块之间的箭头流向,Samba设备的Internet模块接收第二报文(报文702);之后,Internet模块将第二报文传输至Samba service模块;Sambaservice模块对第二报文解封装,获取第二报文负载的内容(S714中的报文701),并根据该负载中的服务请求数据执行用户指示的操作。
参照步骤S714所示的报文702至报文701的格式变化,Samba service模块获取第二报文(S714中的报文702)后,可以剥离报文702的第二IP头,获取第二报文的IP payload(报文701);可选地,如果IP payload中有UDP头,则Samba service模块还可以剥离IPpayload的UDP头,获取服务请求的正文数据,并根据该请求服务的数据内容执行相应的服务操作,提供相应的服务。
应理解,当服务设备向终端发送反向数据报文时,也可以采用与上述过程类似的封装、解封装方式,此处不再赘述。
根据本申请实施例提供的访问局域网服务设备的方法,通过为外部网络中的终端分配家庭网络的内网地址,并将家庭内网报文作为P2P通道的负载进行传输,能够实现终端与内部网络中的服务设备之间的便捷通信,使得终端能够高效访问并控制服务设备提供相应的服务,从而提升了用户的使用体验。
示例性的,以下结合图9至图11对基于图2B所示的系统架构所进行的阶段二的过程进行介绍。相较于图2A所示的系统架构,图2B所示系统架构中,由第二路由器获取该第二路由器在第二网络的内网地址(或称在第二网络的通信地址),并且由第二路由器来执行生成第一报文的操作;而在图2A所示的系统架构中,是由终端获取该终端在第二网络的内网地址(或称在第二网络的通信地址),并且由终端生成第一报文的。
图9示出了在图2B所示系统架构中的多端交互过程示意图。其中,图9实施例中的终端、第二路由器位于第一网络,终端为第二路由器的下挂设备,终端和第二路由器位于第一NAT设备之后;第一路由器和服务设备位于第二网络,服务设备为第一路由器的下挂设备,第一路由器和服务设备位于第二NAT设备之后。该过程可以包括以下步骤:
S901,第二路由器向第一路由器发送第一请求消息。
其中,该第一请求消息用于向第一路由器请求第二网络的内网地址,该第二网络的内网地址可以是第二网络的内网IP地址,或者,第二网络的内网IP地址和第二网络的内网端口号。
结合图2B所示的系统架构,为更清楚地理解终端向第一路由器发送第一请求消息的不同阶段,该第一请求消息报文的具体内容,可同时参见表4,为图9实施例步骤S901中第一请求消息报文的五元组具体内容以及报文负的载正文数据内容。
表4
在一些实施例中,第二路由器可以首先向第一NAT设备发送第一请求消息。其中,第二路由器向第一NAT设备发送的第一请求消息报文五元组(源IP、目的IP、源端口号、目的端口号、传输层协议)的具体内容可以是:源IP为第二路由器在第一网络的内网IP、目的IP为第一路由器对应的外网IP、源端口号为第二路由器在第一网络的内网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表4中第二路由器→第一NAT设备阶段的第一请求消息报文内容)。
在一些实施例中,第一NAT设备接收到第一请求消息报文后,对其源地址(源IP、源端口号)进行修改。具体地,将源IP由第二路由器在第一网络中的内网IP修改为第二路由器对应的外网IP,将源端口号由第二路由器在第一网络中的源端口号修改为第二路由器对应的外网端口号。
之后,第一NAT设备可以将修改后的第一请求消息报文发送给第二NAT设备。此时该第一请求消息报文五元组的具体内容可以是:源IP为第二路由器对应的外网IP、目的IP为第一路由器对应的外网IP、源端口号为第二路由器对应的外网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表4中第一NAT设备→第二NAT设备阶段的第一请求消息报文内容)。
在一些实施例中,第二NAT设备接收到第一NAT设备发送的第一请求消息的报文后,对其目的地址(目的IP、目的端口号)进行修改。具体地,将目的IP由第一路由器对应的外网IP修改为第一路由器在第二网络的内网IP,将目的端口号由第一路由器对应的外网端口号修改为第一路由器在第二网络的内网端口号(参见表4中第二NAT设备→第一路由器阶段的第一请求消息报文内容)。
之后,第二NAT设备将上述经由该第二NAT设备修改后的第一请求消息报文发送给位于第二网络中的第一路由器。
应理解,本实施例示出的报文内容变化仅以图2B所示的系统架构为例,在一些实施例中,如果终端与第一路由器之间还有其它更多的设备(如NAT设备等),则报文的内容(源地址或者目的地址)会发生相应的修改。本申请对此不作限定。
在一些实施例中,第一路由器根据第一请求消息为第二路由器分配对应的第二网络的内网地址。
S902,第一路由器向第二路由器发送第一反馈消息。
其中,该第一反馈消息用于指示第二路由器在第二网络的内网地址,该第二网络的内网地址是第一路由器为第二路由器分配的在第二网络中的内网地址。
结合图2B所示的系统架构,为更清楚地理解第一路由器向第二路由器发送第一反馈消息的不同阶段中,该第一反馈消息报文的具体内容,可同时参见表5,为图9实施例步骤S902中第一反馈消息报文五元组具体内容以及报文负载的正文数据内容。
在一些实施例中,第一路由器首先向第二NAT设备发送第一反馈消息。其中,第一路由器向第二NAT设备发送的第一反馈消息报文五元组的具体内容可以是:源IP为第一路由器在第二网络的内网IP、目的IP为第二路由器对应的外网IP、源端口号为第一路由器在第二网络的内网端口号、目的端口号为第二路由器对应的外网端口号、传输层协议为UDP协议(参见表4中第一路由器→第二NAT设备阶段的第一反馈消息报文内容)。
在一些实施例中,第二NAT设备接收到第一反馈消息报文后,对其源地址(源IP、源端口号)进行修改。具体地,将源IP由第一路由器在第二网络中的内网IP修改为第一路由器对应的外网IP,将源端口号由第一路由器在第二网络中的源端口号修改为第一路由器对应的外网端口号。
表5
之后,第二NAT设备可以将修改后的第一反馈消息报文发送给第一NAT设备。此时该第一反馈消息报文五元组的具体内容可以是:源IP为第一路由器对应的外网IP、目的IP为第二路由器对应的外网IP、源端口号为第一路由器对应的外网端口号、目的端口号为第二路由器对应的外网端口号、传输层协议为UDP协议(参见表5中第二NAT设备→第一NAT设备阶段的第一反馈消息报文内容)。
在一些实施例中,第一NAT设备接收到第二NAT设备发送的第一反馈消息的报文后,对其目的地址(目的IP、目的端口号)进行修改。具体地,将目的IP由第二路由器对应的外网IP修改为第二路由器在第一网络的内网IP,将目的端口号由第二路由器对应的外网端口号修改为第二路由器在第一网络的内网端口号(参见表5中第一NAT设备→第二路由器阶段的第一反馈消息报文内容)。
在一些实施例中,第一NAT设备将第一反馈消息发送至第二路由器。
S903,终端响应于用户输入的服务请求,生成服务请求信息。
在一些实施例中,终端在接收到用户输入的服务请求操作后,可以生成服务请求信息,并将该服务请求信息发送给第二路由器。其中,服务请求信息可以包括服务请求的数据。
S904,终端向第二路由器发送服务请求信息。
可选地,终端可以通过第一网络的PLAN网桥将该服务请求信息发送给第二路由器。
在一些实施例中,服务请求信息报文五元组(源IP、目的IP、源端口号、目的端口号、传输层协议)的具体内容可以是:源IP为终端在第一网络的内网IP、目的IP为第二路由器在第一网络的内网IP、源端口号为终端在第一网络的内网端口号、目的端口号为第二路由器在第一网络的内网端口号、传输层协议为UDP协议(参见表6中终端→第二路由器阶段的服务请求信息报文内容)。
表6
S905,第二路由器根据服务请求信息,生成第一报文。
在一些实施例中,第二路由器根据服务请求信息获取服务请求的数据。并基于服务请求的数据,生成第一报文。
结合图2B所示的系统架构,为更清楚地理解终端访问服务设备的不同阶段,该消息报文不同部分的具体内容,可参见下文表7,为三层报文的五元组具体内容以及报文负载的正文数据内容。
在一些实施例中,第一报文五元组的具体内容可以包括:源IP、目的IP、源端口号、目的端口号、传输层协议。此时,第一报文五元组的具体内容可以为:源IP为第二路由器在第一网络的内网IP、目的IP为第一路由器对应的外网IP、源端口号为第二路由器在第一网络的内网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表7中第二路由器→第一NAT设备阶段的第一报文内容)。
在一些实施例中,第一报文的报文格式包括第一报文头和第一负载部分(UDP负载)。其中,第一报文头又可以包括第一IP头(用于写入源IP、目的IP以及传输层协议标识等)、第一UDP头(用于写入源端口号和目的端口号);而第一负载部分用于写入数据正文。
表7
应理解,与现有技术不同的是,在本申请实施例中,第一报文的第一负载部分用于写入第二报文,该第二报文为第二网络的内网报文。示例性的,第二报文五元组具体内容可以是:源IP为第二路由器在第二网络的内网IP、目的IP为服务设备(如支持Samba协议的服务设备)在第二网络的内网IP、源端口号为第二路由器在第二网络的内网端口号、目的端口号为服务设备在第二网络的内网端口号、传输层协议为UDP协议。
在一些实施例中,第二报文的报文格式可以包括第二报文头和第二负载部分。其中,第二报文头可以包括第二IP头(用于写入第二报文的源IP、目的IP以及传输层协议标识);而第二负载部分(对应图11所示的IP payload)用于写入数据正文,如终端向服务设备请求提供某些服务的服务请求数据,比如图3G实施例中分享照片等服务请求数据,该请求服务的数据,可以用于请求服务设备执行相应的服务操作。此外,第二负载部分(对应图11的IP payload)还可以包括第二UDP头(用于写入源端口号和目的端口号)。
在一些实施例中,第二报文的第二负载部分还可以写入报文类型的标识信息,例如,在1个字节(或1位)上用数字“0”表示对应的报文为数据报文。可选地,对于控制报文,也可以在报文负载部分写入报文类型的标识信息,例如,在1个字节(或1位)上用数字“1”表示对应的报文为控制报文。或者,也可以用数字“0”表示对应的报文为数据报文,用数字“1”表示对应的报文为控制报文,本申请对此不作限定。
其中,对于生成第一报文的过程以及不同步骤中涉及的具体的报文格式将在下文结合图11进行介绍,此处暂不详述。
S906,第二路由器向第一路由器发送第一报文。
与步骤S901类似,在一些实施例中,第二路由器首先向第一NAT设备发送第一报文。其中,第二路由器向第一NAT设备发送的第一请求消息报文五元组(源IP、目的IP、源端口号、目的端口号、传输层协议)的具体内容可以是:源IP为第二路由器在第一网络的内网IP、目的IP为第一路由器对应的外网IP、源端口号为第二路由器在第一网络的内网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表7中第二路由器→第一NAT设备阶段的第一报文内容)。
在一些实施例中,第一NAT设备接收到第一报文后,对其源地址(源IP、源端口号)进行修改。具体地,将源IP由第二路由器在第一网络中的内网IP修改为第二路由器对应的外网IP,将源端口号由第二路由器在第一网络中的源端口号修改为第二路由器对应的外网端口号。
之后,第一NAT设备可以将修改后的第一报文发送给第二NAT设备。此时该第一报文五元组的具体内容可以是:源IP为第二路由器对应的外网IP、目的IP为第一路由器对应的外网IP、源端口号为第二路由器对应的外网端口号、目的端口号为第一路由器对应的外网端口号、传输层协议为UDP协议(参见表7中第一NAT设备→第二NAT设备阶段的第一报文内容)。
在一些实施例中,第二NAT设备接收到第一NAT设备发送的第一报文后,对其目的地址(目的IP、目的端口号)进行修改。具体地,将目的IP由第一路由器对应的外网IP修改为第一路由器在第二网络的内网IP,将目的端口号由第一路由器对应的外网端口号修改为第一路由器在第二网络的内网端口号(参见表7中第二NAT设备→第一路由器阶段的第一报文内容)。
之后,第二NAT设备将上述经由该第二NAT设备修改后的第一报文发送给位于第二网络中的第一路由器。
S907,第一路由器对第一报文解封装,获取第二报文。
其中,第二报文的报文五元组内容和负载内容可以参见表7中的第一路由器→服务设备阶段的第二报文内容。
在一些实施例中,第一路由器通过P2P L3proxy service模块对第一报文进行解封装,获取第二报文。
在一些实施例中,第一路由器对第一报文解封装可以是剥离第一报文的第一报文头(第一IP头和第一UDP头),获取第一报文的第一负载部分(也即第二报文)。
之后,第一路由器可以根据第二报文的第二报文头获取目的地址,并将该第二报文发送至目的地址对应的服务设备。
S908,第一路由器向服务设备发送第二报文。
在一些实施例中,第一路由器的P2P L3proxy client模块根据第二报文携带的目的地址,将该第二报文发送给对应的服务设备。其中,该第二报文的目的地址例如可以是图3B中平板电脑在家庭网络的内网地址。
在一些实施例中,第一路由器通过第二网络中该第一路由器与服务设备之间的LAN网桥将第二报文发送给对应的服务设备。
S909,服务设备根据第二报文指示的服务请求,提供服务。
具体地,服务设备接收到第二报文后,对该第二报文解封装,剥离第二报文头,获取第二报文负载部分的正文数据(服务请求数据);之后,服务设备根据该正文数据(服务请求数据),提供对应的服务。
在一些实施例中,服务设备包括服务模块(如Samba service模块),该服务模块可以对第二报文解封装,获取第二报文负载部分的服务请求数据内容(如图11所示的报文1101),通过读取服务请求的数据内容,该服务模块调用服务设备的其它相关模块(如处理模块、存储模块、显示模块等),提供相应的服务。该请求服务的数据内容例如可以对应图3G实施例中的分享照片服务。
应理解,在本申请实施例中,第二路由器和第一路由器之间建立有P2P通道,其中,第二路由器可以视为客户端,第一路由器可以视为服务端,第一路由器和第二路由器之间可以经由该P2P通道进行三层报文代理转发。
根据本申请实施例提供的访问局域网服务设备的方法,通过外部网络中的第二路由器获取路由器为其分配的服务设备所在局域网的内网地址,并将该内网地址作为内网报文的源地址,将内网报文作为UDP报文负载,经由第二路由器与路由器之间的基于UDP的P2P通道以及路由器与服务设备之间的LAN网桥与服务设备通信连接,能够实现第二路由器与家庭网络内部的服务设备的便捷高效的远程互访。
为更好地理解本申请实施例提供的访问局域网服务设备的方法,以下结合图10和图11,对本申请实施例提供的访问家庭网络服务的方法的内部实现过程进行介绍。
示例性的,如图10所示,为图2B所示的系统架构中各设备软件结构的示意图。该系统架构中的设备可以与图2B所示的系统架构中的相应设备对应,具体包括第一NAT设备、第二NAT设备,以及位于第一NAT设备之后的终端(以手机为例)和第二路由器,位于第二NAT设备之后的第一路由器以及该第一路由器下挂的服务设备(以samba设备为例)。
其中,图10所示架构中的设备所包括的模块以及各个模块的功能可以参见图6中的相关介绍,为描述简洁,这里仅针对图10系统架构与图6系统架构的不同之处进行介绍。
结合图2B的系统架构和图9所示的多端交互图,可以看出,图10的系统架构中,终端可以接收用户输入的服务请求,之后,由第二路由器与第二网络中的第一路由器和服务设备进行交互。
参照图10,第二路由器所包括的模块及各模块的功能如下:
在一些实施例中,本申请实施例中的第二路由器例如可以支持OS-Linux系统,分为用户空间(user space)和内核空间(kernal space)。用户空间包括P2P L3 proxyservice模块;内核空间包括代理局域网(proxy LAN,PLAN)模块、WAN模块以及OS-Linux系统模块等。
其中,P2P L3 proxy service模块,可以用于为终端第一网络的内网地址;或者,还可以对接收到的终端发送的报文进行封装和解封装。
WAN模块,包括WAN通信接口,用于与广域网中的设备(如第一NAT设备)通信;或者,用于经由广域网与其他外部网络中的设备通信。
PLAN模块可以是第二路由器启动的一个特殊虚拟接入点(virtual accesspoint,VAP),该VAP可以提供与物理实体接入点一样的功能,如为手机提供无线接入服务。
结合图10,以下对在该系统架构下的访问局域网服务设备过程中报文封装和解封装的内部实现过程进行介绍。示例性的,如11所示,为报文封装和解封装过程中的报文结构示意图。
参照图11,手机侧执行步骤S1110:手机生成服务请求信息报文。
在一些实施例中,用户可以通过手机上的App(如智慧生活App)输入服务请求。之后,手机基于服务请求的数据生成服务请求信息。
具体地,该服务请求信息报文的格式及内容可以参见表6,五元组内容具体为:源IP为终端在第一网络的内网IP、目的IP为第二路由器在第一网络的内网IP、源端口号为终端在第一网络的内网端口号、目的端口号为第二路由器在第一网络的内网端口号、传输层协议为UDP协议。
在一些实施例中,服务请求信息报文格式可以包括第三IP头和负载部分IPpayload1(如S1110中报文1102),该服务请求信息的负载部分可以包括服务请求的数据。
参照图11中手机内各模块之间的箭头流向,手机生成服务请求信息报文的具体过程为:手机中的App接收用户输入的服务请求,并生成对应的服务请求的数据;之后,App将该数据传输至系统网络模块;系统网络模块根据该App对应的TUN接口,将该数据进一步传输至TUN接口,并经由TUN接口发送至P2P L3 proxy client模块;P2P L3 proxy client模块接收到该服务请求的数据后,可以按照UDP协议对该数据进行报文封装,获取该服务请求信息报文。
参照图11中报文1101至报文1102的格式变化,手机对服务请求信息进行封装的具体过程包括:手机将服务请求数据封装入UDP负载部分(IP payload1),如S1110中的报文1101所示;之后,在IP payload1上添加第三IP头,如S1110中的报文1102所示。可选地,IPpayload还可以包括该服务请求报文的UDP头。
应理解,本实施中手机的模块和功能仅为示例,在一些实施例中,生成该服务请求信息报文的模块可以与图11实施例中的手机模块不同,本申请对此不作限定。
步骤S1111,手机向第二路由器发送服务请求信息报文。
其中,步骤S1111可以与图9中的步骤S904对应。可选地,终端可以通过第一网络的PLAN网桥将该服务请求信息发送给第二路由器。
步骤1112,第二路由器根据服务请求信息生成第一报文。
其中,步骤S1112可以与图9中的步骤S905对应。
参照图11中第二路由器内各模块之间的箭头流向,第二路由器生成第二报文的具体过程为:第二路由器中的PLAN模块接收手机发送的服务请求信息,并将其通过OS-Linux模块传输至用户空间的P2P代理客户端(P2P L3 proxy client);P2P L3 proxy client模块对服务请求信息报文进行解封装,获取该服务请求报文负载中的服务请求数据;之后,P2P L3 proxy client模块根据该服务请求数据封装入第二报文的负载部分,再将第二报文封装入第一报文的负载部分,从而生成第一报文。
参照步骤S1112中的报文1101至报文1104的报文格式变化,P2P L3 proxy client模块进行报文封装的具体过程为:P2P L3 proxy client模块将接收到的服务请求的数据作为第二报文负载(IP payload),此时的报文结构如S1112中的报文1101所示;之后,P2PL3 proxy client模块为该IP payload添加第二IP头,获取第二报文,此时第二报文的报文结构如S1112中的报文1102所示。可以看出,第二报文(报文1102)的结构包括第二IP头和IPpayload,其中,第二IP头中可以写有该第二报文的源IP、目的IP和UDP协议标识等,源IP为第二路由器在第二网络的内网IP,目的IP为服务设备在第二网络的内网IP;IP payload包括服务请求的数据,该服务请求的数据可以用于请求服务设备提供相关服务,如接收并存储照片等服务操作。
可选地,这里的第二报文的IP payload还可以包括第二报文的第二UDP头(未示出),该第二UDP头包括该第二报文的源端口号、目的端口号,源端口号为第二路由器在第二网络的内网端口号,目的端口号为服务设备在第二网络的内网端口号。
还应理解,第二报文可以由第二网络中的路由器通过第二网络的LAN网桥传输至服务设备,且第二报文的源地址和目的地址均为第二网络内网地址,因而该第二报文也可以称为第二网络的内网报文。
之后,第二路由器的P2P L3 proxy client模块在第二报文上添加第一UDP头,此时的报文结构如S1112中的报文1103所示。该第一UDP头可以包括第一报文的源端口号、目的端口号,源端口号为第二路由器在第一网络中的端口号,目的端口号为第一路由器对应的外网端口号,源端口号和目的端口号用于提供端对端的接口。
之后,第二路由器的P2P L3 proxy client模块再为当前的报文(S1112中的报文1103)添加第一IP头,生成第一报文,此时报文格式如S1112中的报文1104所示。其中,第一IP头和第一UDP头可以合称为第一报文头或者第一报文的报文头。第一IP头可以包括第一报文的源IP、目的IP,源IP为终端在第一网络中的IP,目的IP为第一路由器对应的外网IP。
由以上过程可以看出,第二路由器首先生成第二报文,而后将第二报文封装在第一报文的第一负载部分。其中,第二报文可以用于在第二网络的设备之间传输,这里也可以将其称为第二网络的内网报文;第二IP头和UDP头则用于在网络层和传输层传输,因而也可以将其称为外网报文,可选地,这里的外网可以指WAN。
步骤S1113:第二路由器经由P2P通道将第一报文发送至第一路由器。
其中,步骤S1113对应于图9实施例中的步骤S906。具体地,P2P L3 proxy client模块经由第二路由器的Internet模块和网关(gateway)将报文1104(也即第一报文)经由第二路由器与第一路由器之间的P2P通道传输至第二网络中的第一路由器。
步骤S1114:第一路由器接收第一报文,并对第一报文解封装,获取第二报文。
其中,步骤S1114可以与图9中的步骤S907对应。参照图11中第一路由器内部各个模块之间的箭头流向,第一路由器可以经由WAN模块接收第一报文(如S1114中的报文1104所示);然后,WAN模块经由OS-Linux模块将第一报文传输至用户空间(user space)的P2PL3 proxy service模块;该P2P L3 proxy service模块接收到第一报文后,对其进行解封装,获得第二报文(如S1114中的报文1102所示)。
参照步骤S1112所示的报文1104至报文1102的格式变化,第一路由器对第一报文解封装的过程为:第一路由器P2P L3 proxy service模块首先剥离第一报文(S1114中的报文1104)的第一IP头和第一UDP头,获取第二报文(S1114中的报文1102);之后,P2P L3proxy service模块可以根据第二报文(S1114中的报文1102)的第二IP头获取该第二报文的目的IP;可选地,如果第二报文的IP payload包括第二UDP头(图11未示出),P2P L3proxy service模块还可以通过解析IP payload中包括的第二UDP头获取该第二报文的目的端口号。
步骤S1115:第一路由器经由LAN侧网桥,将第二报文发送给Samba设备。
其中,步骤S1115可以对应于图9中的步骤S908。
在一些实施例中,第一路由器根据第二报文包括的目的地址(第二报文的目的IP、目的端口号)将第二报文发送至对应的服务设备(Samba设备)上。示例性的,第一路由器可以通过LAN侧网桥将该第二报文发送给Samba设备;该Samba设备例如可以是图3B中位于家庭网络中的平板电脑。
步骤S1116,Samba设备对第二报文解封装,获取服务请求数据。
其中,步骤S1116可以与图9中的步骤S909对应。
参照图11中Samba设备中各个模块之间的箭头流向,Samba设备的Internet模块接收第二报文(报文1102);之后,Internet模块将第二报文传输至Samba service模块;Sambaservice模块对第二报文解封装,获取第二报文负载的内容(S1116中的报文1101),并根据该负载中的服务请求数据执行用户指示的操作。
参照步骤S1116所示的报文1102至报文1101的格式变化,Samba service模块获取第二报文(报文1102)后,可以剥离报文1102的第二IP头;可选地,如果第二报文的IPpayload中包括第二UDP头时,Samba service模块还可以剥离第二UDP头,获取第二报文的正文数据(即服务请求的数据),并根据该请求服务的数据内容执行相应的服务操作,提供相应的服务。
应理解,当服务设备向终端发送反向数据报文时,也可以采用与上述过程类似的封装、解封装方式,此处不再赘述。
根据本申请实施例提供的访问局域网服务设备的方法,通过为外部网络中的终端分配家庭网络的内网地址,并将家庭内网报文作为P2P通道的负载进行传输,能够实现终端与内部网络中的服务设备之间的便捷通信,使得终端能够高效访问并控制服务设备提供相应的服务,从而提升了用户的使用体验。
示例性的,如图12所示,本申请实施例还提供了一种访问局域网服务设备的电子设备1200,该电子设备1200包括一个或多个处理器1201、一个或多个存储器1202、一个或多个通信接口1203以及一个或多个计算机程序,其中一个或多个程序被存储在存储器1202中,处理器1201,存储器1202和通信接口1203通过总线1204互相连接。其中,总线1204可以是PCI总线或EISA总线等。总线1204可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在一些实施例中,当一个或多个程序被处理器1201执行时,使得设备执行以下步骤:获取所述电子设备在所述第二网络的通信地址;根据所述电子设备在第二网络的通信地址,生成第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备的通信地址;向所述第一路由器发送所述第一报文。
在一些实施例中,当所述一个或多个程序被所述处理器1201执行时,使得所述设备执行以下步骤:电子设备向第一路由器发送第一请求消息,第一请求消息用于请求电子设备在第二网络的通信地址;接收所述第一路由器发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址。
在一些实施例中,第二报文的第二负载部分包括服务请求数据,服务请求数据用于向所述至少一个服务设备请求服务,当一个或多个程序被处理器1201执行时,使得电子设备执行以下步骤:获取服务请求数据;根据服务请求数据生成第二报文;对第二报文进行封装,生成所述第一报文。
在一些实施例中,当电子设备是用于与用户交互的终端时,一个或多个程序被处理器1201执行时,使得电子设备执行以下步骤:接收用户输入的服务请求操作;根据服务请求操作,获取服务请求数据。
在一些实施例中,当电子设备为第二路由器时,一个或多个程序被处理器1201执行时,使得电子设备设备执行以下步骤:接收终端发送的服务请求数据,终端用于与用户进行交互。
示例性的,如图13,为本申请实施例提供的一种访问局域网服务设备的路由器的结构示意图。该路由器1300包括一个或多个处理器1301、一个或多个存储器1302、一个或多个通信接口1303以及一个或多个计算机程序,其中一个或多个程序被存储在存储器1302中,处理器1301,存储器1302和通信接口1303通过总线1304互相连接。其中,总线1304可以是PCI总线或EISA总线等。总线1304可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
当一个或多个程序被处理器1301执行时,使得路由器1300执行以下步骤:接收电子设备发送的第一报文,该第一报文的第一负载部分包括第二报文,第二报文的源地址为电子设备在第二网络的通信地址,第二报文的目的地址为至少一个服务设备在第二网络的通信地址;对第一报文解封装,获取第二报文;向至少一个服务设备发送第二报文。
在一些实施例中,当一个或多个程序被处理器1301执行时,使得路由器执行以下步骤:接收电子设备发送的第一请求消息,第一请求消息用于请求电子设备在第二网络的通信地址;根据第一请求消息,为电子设备分配在第二网络的通信地址;向电子设备发送第一反馈消息,第一反馈消息用于指示电子设备在第二网络的通信地址。
在一些实施例中,第二报文的第二负载部分包括服务请求数据,该服务请求数据用于向至少一个服务设备请求服务。
在一些实施例中,第一网络和第二网络为局域网,且第一网络与第二网络不同。
本申请实施例还提供了一种计算机可读存储介质,该计算机可以存储介质存储有计算机程序,当计算机程序在计算机上运行时,使得计算机实现如上文所述的访问局域网服务设备的方法。
本申请实施例还提供了一种计算机产品,计算机产品存储有计算机程序,当计算机程序在计算机上运行时,使得计算机实现如上文所述的访问局域网服务设备的方法。
本申请实施例还提供了一种访问局域网服务设备的通信系统,包括电子设备、第一路由器和第一路由器下挂的至少一个服务设备,其中,电子设备位于第一网络,第一路由器和至少一个服务设备位于第二网络,电子设备和第一路由器之间具有P2P通道,P2P通道用于电子设备与第一路由器进行通信,电子设备用于实现上文所述的访问局域网服务设备的方法在终端或第二路由器上的功能,第一路由器用于实现上文所述的访问局域网服务设备的方法在该第一路由器上的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种访问局域网服务设备的方法,其特征在于,应用于电子设备,所述电子设备位于第一网络,所述电子设备位于第一NAT设备之后,第一路由器以及服务设备位于第二网络中,且第一路由器和服务设备位于第二NAT设备之后,第一NAT设备和第二NAT设备位于外网中,第一NAT设备和第二NAT设备上存储有第一路由器外网地址、电子设备内网地址和电子设备外网地址之间的映射关系以建立电子设备与第一路由器之间的P2P通道,所述电子设备与位于第二网络中的第一路由器之间具有P2P通道,所述P2P通道用于所述电子设备与所述第一路由器进行通信,所述第一路由器下挂至少一个服务设备,所述方法包括:
向所述第一路由器发送第一请求消息,所述第一请求消息用于请求所述电子设备在第二网络的通信地址;
接收所述第一路由器发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址;所述第二网络的通信地址是第一路由器为电子设备分配的在第二网络中的内网地址;所述第一网络和所述第二网络为局域网,且所述第一网络与所述第二网络不同;
通过所述电子设备在第二网络的通信地址访问所述至少一个服务设备。
2.根据权利要求1所述的方法,其特征在于,通过所述电子设备在第二网络的通信地址访问所述至少一个服务设备,包括:
根据所述电子设备在第二网络的通信地址,生成第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备的通信地址;
向所述第一路由器发送所述第一报文。
3.根据权利要求2所述的方法,其特征在于,所述第一报文的源地址为所述电子设备在所述第一网络的通信地址,所述第一报文的目的地址为所述第一路由器在第二网络的通信地址。
4.根据权利要求2或3所述的方法,其特征在于,所述第二报文的第二负载部分包括服务请求数据,所述服务请求数据用于向所述至少一个服务设备请求服务,所述方法还包括:
获取所述服务请求数据;
根据所述服务请求数据生成所述第二报文;
对所述第二报文进行封装,生成所述第一报文。
5.根据权利要求4所述的方法,其特征在于,当所述电子设备是用于与用户交互的终端时,所述获取所述服务请求数据,具体包括:
接收用户输入的服务请求操作;
根据所述服务请求操作,获取所述服务请求数据。
6.根据权利要求4所述的方法,其特征在于,当所述电子设备为第二路由器时,所述接收所述服务请求数据,具体包括:
接收终端发送的所述服务请求数据,所述终端用于与用户进行交互。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
接收用户输入的所述服务设备在第二网络的通信地址。
8.一种访问局域网服务设备的方法,其特征在于,应用于第一路由器,所述第一路由器位于第二网络,电子设备位于第一NAT设备之后,第一路由器以及服务设备位于第二网络中,且第一路由器和服务设备位于第二NAT设备之后,第一NAT设备和第二NAT设备位于外网中,第一NAT设备和第二NAT设备上存储有第一路由器外网地址、电子设备内网地址和电子设备外网地址之间的映射关系以建立电子设备与第一路由器之间的P2P通道,且所述第一路由器下挂至少一个服务设备,所述第一路由器与位于第一网络中的电子设备之间具有P2P通道,所述P2P通道用于所述第一路由器与所述电子设备进行通信,所述方法包括:
接收所述电子设备发送的第一请求消息,所述第一请求消息用于请求所述电子设备在第二网络的通信地址;
根据所述第一请求消息,为所述电子设备分配所述第二网络的通信地址;所述第二网络的通信地址是第一路由器为电子设备分配的在第二网络中的内网地址;所述第一网络和所述第二网络为局域网,且所述第一网络与所述第二网络不同;
向所述电子设备发送第一反馈消息,所述第一反馈消息用于指示所述电子设备在第二网络的通信地址。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述电子设备发送的第一报文,所述第一报文的第一负载部分包括第二报文,所述第二报文的源地址为所述电子设备在第二网络的通信地址,所述第二报文的目的地址为所述至少一个服务设备的通信地址;
对所述第一报文解封装,获取所述第二报文;
根据所述第二报文的目的地址,向所述至少一个服务设备发送所述第二报文。
10.根据权利要求9所述的方法,其特征在于,所述第一报文的源地址为所述电子设备在所述第一网络的通信地址,所述第一报文的目的地址为所述第一路由器在第二网络的通信地址。
11.根据权利要求9或10所述的方法,其特征在于,所述第二报文的第二负载部分包括服务请求数据,所述服务请求数据用于向所述至少一个服务设备请求服务。
12.一种访问局域网服务设备的电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
一个或多个通信接口;
以及一个或多个计算机程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或多个程序被所述处理器执行时,使得所述设备实现如权利要求1至7中任一项所述的访问局域网服务设备的方法。
13.一种访问局域网服务设备的路由器,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
一个或多个通信接口;
以及一个或多个计算机程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或多个程序被所述处理器执行时,使得所述路由器实现如权利要求8至11中任一项所述的访问局域网服务设备的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机实现如权利要求1至11中任一项所述的访问局域网服务设备的方法。
15.一种芯片,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序或指令,当所述处理器执行所述计算机程序或指令时,使得如权利要求1至11中任一项所述的访问局域网服务设备的方法得以实现。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011638225.1A CN114765614B (zh) | 2020-12-31 | 2020-12-31 | 一种访问局域网服务设备的方法及电子设备 |
EP21913868.2A EP4250651A4 (en) | 2020-12-31 | 2021-12-13 | METHOD FOR ACCESSING A LOCAL NETWORK SERVICE DEVICE, AND ELECTRONIC DEVICE |
PCT/CN2021/137525 WO2022143127A1 (zh) | 2020-12-31 | 2021-12-13 | 一种访问局域网服务设备的方法及电子设备 |
US18/259,860 US20240089317A1 (en) | 2020-12-31 | 2021-12-13 | Method and electronic device for accessing service device in local area network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011638225.1A CN114765614B (zh) | 2020-12-31 | 2020-12-31 | 一种访问局域网服务设备的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114765614A CN114765614A (zh) | 2022-07-19 |
CN114765614B true CN114765614B (zh) | 2023-11-10 |
Family
ID=82259042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011638225.1A Active CN114765614B (zh) | 2020-12-31 | 2020-12-31 | 一种访问局域网服务设备的方法及电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240089317A1 (zh) |
EP (1) | EP4250651A4 (zh) |
CN (1) | CN114765614B (zh) |
WO (1) | WO2022143127A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277397A (zh) * | 2022-08-09 | 2022-11-01 | 北京有竹居网络技术有限公司 | 内容分发网络中内容服务器的控制方法、设备及存储介质 |
CN116436929B (zh) * | 2023-06-14 | 2023-09-08 | 深圳市玩物科技有限公司 | 利用服务器组装udp报文的辅助p2p打洞方法和服务器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007104438A (ja) * | 2005-10-05 | 2007-04-19 | Matsushita Electric Ind Co Ltd | 宅外アクセスシステム、サーバ、および通信方法 |
US8005098B2 (en) * | 2008-09-05 | 2011-08-23 | Cisco Technology, Inc. | Load balancing across multiple network address translation (NAT) instances and/or processors |
CN102420774B (zh) * | 2012-01-06 | 2014-04-30 | 深圳市共进电子股份有限公司 | 使用igmp实现内网穿透的方法和内网穿透系统 |
CN106331187A (zh) * | 2015-06-18 | 2017-01-11 | 中兴通讯股份有限公司 | 一种nat穿透方法、装置及系统 |
US10237236B2 (en) * | 2015-06-25 | 2019-03-19 | Microsoft Technology Licensing, Llc | Media Session |
CN105227692B (zh) * | 2015-09-17 | 2019-05-03 | 青岛海信电器股份有限公司 | 一种nat穿越方法及网关设备 |
CN105610999A (zh) * | 2016-03-30 | 2016-05-25 | 上海斐讯数据通信技术有限公司 | 一种通过穿透nat实现p2p通信的方法、设备、服务器及系统 |
CN107580081A (zh) * | 2017-09-18 | 2018-01-12 | 北京奇艺世纪科技有限公司 | 一种nat穿透方法及装置 |
CN110278192B (zh) * | 2019-05-20 | 2022-10-25 | 平安科技(深圳)有限公司 | 外网访问内网的方法、装置、计算机设备及可读存储介质 |
CN110474922B (zh) * | 2019-09-02 | 2022-02-22 | 锐捷网络股份有限公司 | 一种通信方法、pc系统及接入控制路由器 |
CN110581903A (zh) * | 2019-09-16 | 2019-12-17 | 上海享途网络科技有限公司 | 一种多层内网穿透方法、系统及介质 |
CN111314458A (zh) * | 2020-02-13 | 2020-06-19 | 深圳市网心科技有限公司 | P2p网络的打洞方法、打洞装置及计算机可读存储介质 |
-
2020
- 2020-12-31 CN CN202011638225.1A patent/CN114765614B/zh active Active
-
2021
- 2021-12-13 WO PCT/CN2021/137525 patent/WO2022143127A1/zh active Application Filing
- 2021-12-13 EP EP21913868.2A patent/EP4250651A4/en active Pending
- 2021-12-13 US US18/259,860 patent/US20240089317A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114765614A (zh) | 2022-07-19 |
EP4250651A4 (en) | 2024-05-29 |
WO2022143127A1 (zh) | 2022-07-07 |
EP4250651A1 (en) | 2023-09-27 |
US20240089317A1 (en) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8885649B2 (en) | Method, apparatus, and system for implementing private network traversal | |
US20230133809A1 (en) | Traffic forwarding and disambiguation by using local proxies and addresses | |
CN114765614B (zh) | 一种访问局域网服务设备的方法及电子设备 | |
JP2020517132A (ja) | ポリシ制御を実装するための方法、装置、およびシステム | |
US10321381B2 (en) | Device, system, and method for customizing user-defined mobile network | |
US10142230B2 (en) | Method and apparatus for transmitting messages associated with internet protocol version 4 (IPv4) addresses on an internet protocol version 6 (IPv6) network | |
WO2016011885A1 (zh) | 一种信息传输方法及装置 | |
US11949579B2 (en) | Method and device for network path probe | |
WO2024021405A1 (zh) | 一种数据传输系统和方法 | |
US20220131797A1 (en) | Method and device for data packet forwarding | |
US9917772B2 (en) | Diameter message mirroring and spoofing | |
EP4138359A1 (en) | Reverse address resolution method and electronic devices | |
US20200127963A1 (en) | Establishing connection between different overlay networks using edge application gateway | |
CN111130978B (zh) | 网络流量转发方法、装置、电子设备及机器可读存储介质 | |
EP2779716B1 (en) | Direct routing of communication sessions for mobile IP communication end points | |
WO2023143574A1 (zh) | 设备选择的方法以及装置 | |
WO2023165195A1 (zh) | 感知数据上报方法、装置、信息生成方法、装置、计算机可读存储介质、计算机设备及计算机程序产品 | |
CN114980359B (zh) | 数据转发方法、装置、设备、系统及存储介质 | |
CN114500176B (zh) | 用于vpn的多流负载均衡方法、装置、系统及存储介质 | |
CN114666395B (zh) | 双系统网络共享的方法及装置 | |
WO2014067065A1 (zh) | 实现隧道处理的方法、装置和系统 | |
CN104243522B (zh) | 用于超文本传输协议网络的方法及宽带网络网关 | |
CN109688038B (zh) | 端到端的Non-IP传输方法及装置、设备、存储介质 | |
CN107623656B (zh) | 一种封装业务数据包的方法及装置 | |
JP5198916B2 (ja) | インターネット接続システム |
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 |