IP Library › Granted Patent US 9,088,612
Granted Patent B2
US 9,088,612 · App. 13/765,660 · Granted Jul 21, 2015

Systems and methods for providing link-performance information in socket-based communication devices

Inventors: Deepak Kakadia (Union City, CA); Mingxing S. Li (San Jose, CA); Lalit R. Kotecha (San Ramon, CA); Donna L. Polehn (Kirkland, WA); Priscilla Lau (Fremont, CA); Patricia R. Chang (San Ramon, CA)
Assignees: Verizon Patent and Licensing Inc.; Cellco Partnership
H04L69/162H04L43/0876H04L43/0882H04L47/10H04L69/16G06F11/30H04L41/046H04L43/08H04L43/087H04L43/0829H04L43/0864H04L47/2408H04L69/32H04W40/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,088,612
App. No.
13/765,660
Granted
Jul 21, 2015
Kind
B2
Abstract

A network socket application programming interface (API) running on a communication device is operative to provide, to applications running on the device, information about the performance of communication links used by sockets for communicating across a network. The socket API receives packets associated with sockets, and retrieves from the packets performance information for corresponding communication links. In response to receiving a request from an application for performance information associated with a particular socket, the API identifies performance information for the particular socket and returns the retrieved information to the application. A performance monitoring network device provides the performance information. The performance monitoring device stores information about the performance of a plurality of communication links used by sockets of communications devices in the network, and inserts the performance information for particular sockets into associated packets before transmitting the packets to corresponding communication devices.

Claims (80)

1. A method comprising:

in response to receiving a request to establish a connection through a socket from an application running on a communication device running a network socket application programming interface (API), establishing a communication link with another communication device for use in communicating packets associated with the socket to or from the other communication device across a communication network;

receiving, in the network socket API across the established communication link, a packet associated with the socket and including information about a performance of the communication link;

storing, by the network socket API in a memory of the communication device, the received information about the performance of the communication link; and

in response to receiving a request from the application running on the communication device for information about the performance of the communication link, retrieving by the network socket API and returning to the application the stored information about the performance of the communication link.

2. The method of claim 1 , wherein the received information about the performance of the communication link is stored by the network socket API in association with an identifier for the socket.

3. The method of claim 1 , wherein the request received from the application running on the communication device is an input/output control function call (ioctl( )).

4. The method of claim 1 , wherein:

the received packet associated with the socket is a data packet having a header,

the header of the packet includes the information about the performance of the communication link, and

the body of the packet includes data destined for the application running on the communication device.

5. The method of claim 4 , wherein:

the received packet is a TCP or a UDP packet, and

the information about the performance of the communication link is included in an options field of the header of the packet.

6. The method of claim 1 , wherein the packet is a control packet following an Internet control message protocol (ICMP).

7. The method of claim 1 , further comprising:

in response to receiving the request from the application running on the communication device for information about the performance of the communication link, generating and transmitting across the network a control packet requesting the information about the performance of the communication link,

wherein the received packet associated with the socket is received in response to the control packet requesting the information.

8. The method of claim 1 , wherein the information about the performance of the communication link includes information about a type of wireless connection over which the communication link is established, information about network bandwidth or network speed, network congestion and back-log, jitter, delay, packet loss, or link quality on the established communication link.

9. The method of claim 1 , wherein the communication device is a user equipment device or a server configured to use sockets for communication across a communication network.

10. The method of claim 1 , further comprising:

receiving, in the network socket API, a second request from the application running on the communication device for information about a performance of a communication link associated with a second socket;

in response to receiving the second request, retrieving by the network socket API and returning to the application information about the performance of the communication link associated with the second socket; and

receiving a communication request from the application through a selected one of the first and second sockets, wherein the one of the first and second sockets is selected based on the returned information about performance of each of the communication links associated with the first and second sockets.

11. A communication device comprising:

a network communication interface;

a processor; and

a memory storing computer readable instructions wherein execution of the computer readable instructions by the processor configures the communication device to perform the method according to claim 1 .

12. An article of manufacture, comprising:

a non-transitory computer-readable medium; and

computer-executable instructions embodied in the medium wherein execution of the computer-executable instructions by a processor of the communication device cause the communication device to perform the method according to claim 1 .

13. A method comprising:

obtaining, by a network device connected to a network, performance information about a performance of at least one communication link used by at least one communication device for socket-based communication through the network, the performance information representing performance measured by a performance monitor connected to the network;

storing, in a memory of the network device, the obtained performance information; and

in response to receiving a packet that is associated with a socket of a communication device;

retrieving, from the memory, performance information about a performance of a communication link associated with the socket;

inserting, by the network device, the retrieved performance information into a header of the received packet; and

forwarding the packet including the inserted performance information to the packet's destination.

14. The method of claim 13 , wherein the header of the received packet does not include the performance information about the performance of the communication link associated with the socket when the packet is received.

15. The method of claim 13 , wherein:

the received packet is a packet transmitted by a user-equipment type of communication device; and

the packet's destination is a user-equipment type of communication device.

16. The method of claim 13 , further comprising:

receiving, in the network device, information about the performance of a particular communication link from a network relay device located along the particular communication link in the network,

wherein:

the network relay device is one of an eNodeB device, a SGW, or a PGW, and

the information received from the network relay device is inserted into the header of the received packet.

17. The method of claim 13 , wherein:

the network device is a wire-speed device that is located in-line with at least one of the communication links, and

the obtaining comprises obtaining measured performance information about the performance of the at least one communication link passing through the wire-speed network device.

18. A network device comprising:

a network communication interface;

a processor; and

a memory storing computer readable instructions wherein execution of the computer readable instructions by the processor configures the network device to perform the method according to claim 13 .

19. An article of manufacture, comprising:

a non-transitory computer-readable medium; and

computer-executable instructions embodied in the medium wherein execution of the computer-executable instructions by a processor of the network device cause the network device to perform the method according to claim 13 .

20. A method comprising:

obtaining, by a network device connected to a network, performance information about a performance of at least one communication link used by at least one communication device for socket-based communication through the network, the performance information representing performance measured by a performance monitor connected to the network;

storing, in a high speed memory of the network device, the obtained performance information; and

in response to receiving from one communication device a control packet requesting performance information about a performance of a communication link associated with a particular socket:

retrieving, from the memory, the requested performance information about the performance of the communication link associated with the particular socket;

generating, by the network device, a response control packet including the requested performance information; and

transmitting the generated response control packet to the one communication device.

21. The method of claim 20 , further comprising:

receiving, in the network device, information about the performance of a particular communication link from a network relay device located along the particular communication link in the network,

wherein:

the network relay device is one of an eNodeB device, a SGW, or a PGW, and

the information received from the network relay device is included in the response control packet generated by the network device.

22. The method of claim 21 , wherein:

the network device is a wire-speed device that is located in-line with at least one of the communication links, and

the obtaining comprises obtaining measured performance information about the performance of the at least one link passing through the wire-speed network device.

23. The method of claim 21 , wherein the stored performance information is socket-specific information about the performance of the particular communication link.

24. A network device comprising:

a network communication interface;

a processor; and

a memory storing computer readable instructions wherein execution of the computer readable instructions by the processor configures the network device to perform the method according to claim 20 .

25. An article of manufacture, comprising:

a non-transitory computer-readable medium; and

computer-executable instructions embodied in the medium wherein execution of the computer-executable instructions by a processor of the network device cause the network device to perform the method according to claim 20 .

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2015
From: POLEHN, DONNA L.; CHANG, PATRICIA R.
To: CELLCO PARTNERSHIP D/B/A VERIZON WIRELESS
Reel/Frame 035845/0809 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAMES AND ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 029910 FRAME: 0692. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 16, 2015
From: KAKADIA, DEEPAK; LI, MINGXING S.; KOTECHA, LALIT R.; LAU, PRISCILLA
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 035920/0725 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2013
From: KAKADIA, DEEPAK; LI, MINGXING S.; KOTECHA, LALIT R.; POLEHN, DONNA L.; LAU, PRISCILLA; CHANG, PATRICIA R.
To: VERIZON PATENT AND LICENSING INC.; CELLCO PARTNERSHIP D/B/A VERIZON WIRELESS
Reel/Frame 029910/0692 →
Continuity (1)
Related Publication 20140226658A1 · Aug 14, 2014