发明名称 Low-latency hole punching
摘要 Described is a system for establishing a network connection between electronic devices in a network. In the described embodiments, a first electronic device is configured to determine that a relay server is being used to send packets to and receive packets from a second electronic device. In parallel with continuing to send packets to and receive packets from the second electronic device using the relay server, the first electronic device is configured to perform operations to establish a peer to peer network connection with the second electronic device. When the peer to peer network connection has been established, the first electronic device is configured to stop using the relay server to send packets to and receive packets from the second electronic device, and instead use the peer to peer network connection with the second electronic device to send packets to and receive packets from the second electronic device.
申请公布号 US9154426(B2) 申请公布日期 2015.10.06
申请号 US201113285194 申请日期 2011.10.31
申请人 APPLE INC. 发明人 McGuire Rory L.
分类号 G06F15/173;H04L12/801;H04L29/08;H04L29/12 主分类号 G06F15/173
代理机构 Park, Vaughan, Fleming & Dowler LLP 代理人 Park, Vaughan, Fleming & Dowler LLP
主权项 1. A method for establishing a network connection between electronic devices in a network, the method comprising: at a first electronic device that includes a processing subsystem, wherein the processing system is configured to execute an operating system for the first electronic device that comprises a kernel and an application space, andwherein the processing subsystem is further configured to execute a virtual interface daemon in the application space in the operating system, wherein the virtual interface daemon appears as a network interface to the operating system,the processing subsystem performing operations for the virtual interface daemon, the operations comprising: determining that a relay server is being used to send packets to and receive packets from a second electronic device;in parallel with continuing to send packets to and receive packets from the second electronic device using the relay server, performing operations to establish a peer to peer network connection with the second electronic device; andwhen the peer to peer network connection has been established, stopping using the relay server to send packets to and receive packets from the second electronic device, and instead using the peer to peer network connection with the second electronic device to send packets to and receive packets from the second electronic device;wherein sending packets using the relay server or the peer to peer network connection comprises, in the virtual interface daemon: receiving the packets from the kernel of the operating system, adding corresponding information to the packets to configure the packets to be sent using either the relay server or the peer to peer network connection, and returning the updated packets to the kernel of the operating system to be sent therefrom.
地址 Cupertino CA US