Abstract:
The subject technology discloses configurations for receiving, at a first network device, a set of network packets corresponding to a first flow from a client, wherein the set of network packets includes a destination address of a second network device; detecting, in the received set of network packets, pacing rate information indicating a specified pacing rate for transmission of the network packets; determining, based on the detected pacing rate, a desired pacing rate to reduce packet dropping on route to the second network device; and transmitting, by the first network device, the set of network packets over an egress link at the desired pacing rate.
Abstract:
A system and machine-implemented method for communicating with a client device. A server receives a first request by a client device via a first communication protocol, wherein the first request establishes a NAT binding which defines a communication path from a server to the client device. The server sends a response to the received first request via the first communication protocol, wherein the response is directed to the client device based on the NAT binding. The server determines that the response is unsuccessful in reaching the client device. In response to the determination, the server transmits a communication to the client device via a second communication protocol which is different than the first communication protocol, wherein the communication instructs the client device to re-establish the NAT binding.
Abstract:
A system and method for facilitating packet loss recovery using an intermediary are provided. The system includes a first node configured to transmit a plurality of data packets, a second node configured to receive the plurality of data packets and a third node configured to act as an intermediary between the first node and the second node and is configured to receive one or more packets of the plurality of data packets transmitted from the first node to the second node before the one or more packets are transmitted to the second node, and determine if a packet loss event has occurred, wherein a packet loss event occurs if a first packet of the plurality of packets is lost during transmission from the first node to the second node and take an action with respect to the first packet if it determined that a packet loss event has occurred.
Abstract:
Methods for network fallback using resource request expectations are provided. In one aspect, a method includes receiving a resource request, the resource request including one or more request expectations. The method also includes sending the resource request to a hostname via a first network connection. The method also includes evaluating network activity in response to the sent resource request. The method also includes resending the resource request to the hostname via a second network connection based on the evaluated network activity and the one or more request expectations. Systems and machine-readable media are also provided.
Abstract:
Systems, methods, and machine-readable media for low latency server-side redirection of User Datagram Protocol (UDP)-based transport protocols traversing a client-side Network Address Translation (NAT) are provided. At a first server, a request for directing a data resource to a client may be received. The request may be received from the client or a back-end server trying to push the data resource to the client. The first server may lack the data resource or the resources to provide the data resource to the client. A second server may be determined for responding to the request. The request may be redirected to the second server. The first server may provide for the second server to connect to the client and directly respond to the request. The second server may have not been previously connected to the client.
Abstract:
Methods for lower latency connections using speculative DNS resolution are provided. In one aspect, a method includes receiving a request at a client for a web resource to be sent to a hostname. The method also includes obtaining a speculative Domain Name System (DNS) resolution of the hostname from a source local to the client. The method also includes initiating a connection to the hostname using the obtained speculative DNS resolution of the hostname. Systems and machine-readable media are also provided.
Abstract:
Aspects of the subject technology relate to systems, methods, and machine-readable media for communicating using adaptive data compression. A system is configured to compare operation of an encrypted communications channel to at least one operational threshold for the encrypted communications channel and select a level of compression for the encrypted communications channel based on the comparing. The system is further configured to compress data packets to be transmitted over the encrypted communications channel in accordance with the level of compression, encrypt the data packets, and transmit, via a network, the encrypted and compressed data packets to a destination.
Abstract:
Aspects of the subject technology relate to a method for identifying a data stream. In some implementations, the method can include steps for generating a first globally-unique identifier (GUID), associating the first GUID with a first data stream comprising a first plurality of data packets and sending each of the first plurality of data packets to a remote device. In certain aspects, the method can also include steps for receiving a second plurality of data packets from the remote device, wherein each of the second plurality of data packets comprises a second GUID and comparing the second GUID with the first GUID to determine if the second plurality of data packets is associated with the first data stream. Systems and machine-readable media are also provided.
Abstract:
The subject technology discloses configurations for receiving, at a first network device, a set of network packets corresponding to a first flow from a client, wherein the set of network packets includes a destination address of a second network device; detecting, in the received set of network packets, pacing rate information indicating a specified pacing rate for transmission of the network packets; determining, based on the detected pacing rate, a desired pacing rate to reduce packet dropping on route to the second network device; and transmitting, by the first network device, the set of network packets over an egress link at the desired pacing rate.
Abstract:
A system and method is disclosed for moving between delay sensing and packet loss based congestion control states. In connection with communicating over a network by sending and receiving data, one or more network devices automatically selects between a first and a second congestion control state for the sending and receiving of the data based a predetermined algorithm. The devices move between the first and the second congestion control states to maintain a bit rate associated with the sending and receiving at a predetermined threshold according to the predetermined algorithm.