×

Low-latency hole punching

  • US 9,154,426 B2
  • Filed: 10/31/2011
  • Issued: 10/06/2015
  • Est. Priority Date: 10/31/2011
  • Status: Expired due to Fees
First Claim
Patent Images

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; and

    when 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.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×