IP Library Granted Patent US 7,213,077
Granted Patent B2
US 7,213,077 · App. 09/903,755 · Granted May 1, 2007

Method and system for providing buffer management in a performance enhancing proxy architecture

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 7,213,077
App. No.
09/903,755
Granted
May 1, 2007
Kind
B2
Abstract

A network apparatus for providing performance enhancements of a communication network is disclosed. The network apparatus includes a plurality of communication interfaces that are configured to receive and to forward messages according to a prescribed protocol. The network apparatus also includes a plurality of modules configured to process the messages to effect performance enhancing functions. Further, the network apparatus includes a plurality of buffers that are configured to store the received messages and messages that are generated by one of the plurality of modules. A portion of the plurality of buffers is shared by the plurality of modules based upon execution of a particular one of the performance enhancing functions. Each of the plurality of buffers has a data structure that includes an expandable header to accommodate different message types. The present invention has particular applicability to a bandwidth constrained system, such as satellite network.

Claims (81)

1. A network apparatus for providing performance enhancements of a communication network, comprising:

a plurality of communication interfaces configured to receive and to forward messages according to a prescribed protocol;

a plurality of modules configured to process the messages to effect performance enhancing functions, wherein the plurality of modules comprises a spoofing module configured to perform selective spoofing of one or more connections within the communication network by adding information to or deleting information from the messages to enhance performance of the communication network, a connection module configured to multiplex the connections over a common backbone connection established over the communication network, a prioritization module configured to prioritize the connections for access to the backbone connection, and a path selection module configured to determine a path among a plurality of paths supporting the connections over the communication network; and

a plurality of buffers configured to store the received messages and messages that are generated by one of the plurality of modules,

wherein a portion of the plurality of buffers is shared by the plurality of modules based upon execution of a particular one of the performance enhancing functions, each of the plurality of buffers has a data structure that includes an expandable header to accommodate different message types.

2. The network apparatus according to claim 1 , wherein the communication interface includes a local area network (LAN) interface, and a wide area network (WAN) interface, one of the plurality of buffers being designated as a LAN-to-WAN buffer that stores the receive messages in a LAN-to-WAN direction, another one of the plurality of buffers being designated as a WAN-to-LAN buffer that stores the receive messages in a WAN-to-LAN direction.

3. The network apparatus according to claim 2 , wherein the WAN is satellite network.

4. The network apparatus according to claim 1 , wherein the data structure of the plurality of buffers comprises:

a specific header field that stores platform specific information;

a common header field the stores information known to the plurality of modules;

a payload field;

an offset field that indicates start of the payload field; and

a header growth field that provides a variable header length.

5. The network apparatus according to claim 4 , wherein the common header field comprises:

a flag field that specifies direction of message flow;

a connection handle field that specifies handle of a backbone connection; and

an owner specific field that stores an owner specific header.

6. The network apparatus according to claim 1 , wherein the prescribed protocol is the Transmission Control Protocol (TCP).

7. A method for providing performance enhancements by an endpoint within a communication network, the method comprising:

receiving messages according to a prescribed protocol;

processing the messages to effect performance enhancing functions via a plurality of modules of the endpoint, wherein the plurality of modules comprises a spoofing module configured to perform selective spoofing of one or more connections within the communication network by adding information to or deleting information from the messages to enhance performance of the communication network, a connection module configured to multiplex the connections over a common backbone connection established over the communication network, a prioritization module configured to prioritize the connections for access to the backbone connection, and a path selection module configured to determine a path among a plurality of paths supporting the connections over the communication network; and

storing the received messages and messages that are generated by one of the plurality of modules in a plurality of buffers of the endpoint,

wherein a portion of the plurality of buffers is shared by the plurality of modules based upon execution of a particular one of the performance enhancing functions, each of the plurality of buffers has a data structure that includes an expandable header to accommodate different message types.

8. The method according to claim 7 , wherein the receiving step is performed by a communication interface that includes at least one of a local area network (LAN) interface and a wide area network (WAN) interface, one of the plurality of buffers being designated as a LAN-to-WAN buffer that stores the receive messages in a LAN-to-WAN direction, another one of the plurality of buffers being designated as a WAN-to-LAN buffer that stores the receive messages in a WAN-to-LAN direction.

9. The method according to claim 8 , wherein the WAN is satellite network.

10. The method according to claim 7 , wherein the data structure of the plurality of buffers comprises:

a specific header field that stores platform specific information;

a common header field the stores information known to the plurality of modules;

a payload field;

an offset field that indicates start of the payload field; and

a header growth field that provides a variable header length.

11. The method according to claim 10 , wherein the common header field comprises:

a flag field that specifies direction of message flow;

a connection handle field that specifies handle of a backbone connection; and

an owner specific field that stores an owner specific header.

12. The method according to claim 7 , wherein the prescribed protocol in the receiving step is the Transmission Control Protocol (TCP).

13. A network apparatus for providing performance enhancements of a communication network, comprising:

means for receiving messages according to a prescribed protocol; and

means for processing the messages to effect performance enhancing functions, wherein the received messages and messages that are generated by processing means are stored in a plurality of buffers, a portion of the plurality of buffers being shared by the processing means based upon execution of a particular one of the performance enhancing functions, each of the plurality of buffers having a data structure that includes an expandable header to accommodate different message types,

wherein the processing means comprises a spoofing module configured to perform selective spoofing of one or more connections within the communication network by adding information to or deleting information from the messages to enhance performance of the communication network, a connection module configured to multiplex the connections over a common backbone connection established over the communication network, a prioritization module configured to prioritize the connections for access to the backbone connection, and a path selection module configured to determine a path among a plurality of paths supporting the connections over the communication network.

14. The network apparatus according to claim 13 , wherein the receiving means includes at least one of a local area network (LAN) interface and a wide area network (WAN) interface, one of the plurality of buffers being designated as a LAN-to-WAN buffer that stores the receive messages in a LAN-to-WAN direction, another one of the plurality of buffers being designated as a WAN-to-LAN buffer that stores the receive messages in a WAN-to-LAN direction.

15. The network apparatus according to claim 14 , wherein the WAN is satellite network.

16. The network apparatus according to claim 13 , wherein the data structure of the plurality of buffers comprises:

a specific header field that stores platform specific information;

a common header field the stores information known to the plurality of modules;

a payload field;

an offset field that indicates start of the payload field; and

a header growth field that provides a variable header length.

17. The network apparatus according to claim 16 , wherein the common header field comprises:

a flag field that specifies direction of message flow;

a connection handle field that specifies handle of a backbone connection; and

an owner specific field that stores an owner specific header.

18. The network apparatus according to claim 13 , wherein the prescribed protocol is the Transmission Control Protocol (TCP).

19. A volatile and non-volatile computer-readable medium carrying one or more sequences of one or more instructions for providing performance enhancements by an endpoint within a communication network, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:

receiving messages according to a prescribed protocol;

processing the messages to effect performance enhancing functions via a plurality of modules of the endpoint, wherein the plurality of modules comprises a spoofing module configured to perform selective spoofing of one or more connections within the communication network by adding information to or deleting information from the messages to enhance performance of the communication network, a connection module configured to multiplex the connections over a common backbone connection established over the communication network, a prioritization module configured to prioritize the connections for access to the backbone connection, and a path selection module configured to determine a path among a plurality of paths supporting the connections over the communication network; and

storing the received messages and messages that are generated by one of the plurality of modules in a plurality of buffers of the endpoint,

wherein a portion of the plurality of buffers is shared by the plurality of modules based upon execution of a particular one of the performance enhancing functions, each of the plurality of buffers has a data structure that includes an expandable header to accommodate different message types.

20. The volatile and non-volatile computer-readable medium according to claim 19 , wherein the receiving step is performed by a communication interface that includes at least one of a local area network (LAN) interface and a wide area network (WAN) interface, one of the plurality of buffers being designated as a LAN-to-WAN buffer that stores the receive messages in a LAN-to-WAN direction, another one of the plurality of buffers being designated as a WAN-to-LAN buffer that stores the receive messages in a WAN-to-LAN direction.

21. The volatile and non-volatile computer-readable medium according to claim 20 , wherein the WAN is satellite network.

22. The volatile and non-volatile computer-readable medium according to claim 19 , wherein the data structure of the plurality of buffers comprises:

a specific header field that stores platform specific information;

a common header field the stores information known to the plurality of modules;

a payload field;

an offset field that indicates start of the payload field; and

a header growth field that provides a variable header length.

23. The volatile and non-volatile computer-readable medium according to claim 22 , wherein the common header field comprises:

a flag field that specifies direction of message flow;

a connection handle field that specifies handle of a backbone connection; and

an owner specific field that stores an owner specific header.

24. The volatile and non-volatile computer-readable medium according to claim 19 , wherein the prescribed protocol in the receiving step is the Transmission Control Protocol (TCP).

25. A memory resident within an endpoint for storing information for providing performance enhancements of a communication network, the memory comprising a data structure including:

a specific header field that stores platform specific information;

a common header field the stores information known to a plurality of modules of the endpoint, wherein the plurality of modules comprises a spoofing module configured to perform selective spoofing of one or more connections within the communication network by adding information to or deleting information from the messages to enhance performance of the communication network, a connection module configured to multiplex the connections over a common backbone connection established over the communication network, a prioritization module configured to prioritize the connections for access to the backbone connection, and a path selection module configured to determine a path among a plurality of paths supporting the connections over the communication network;

a payload field;

an offset field that indicates start of the payload field; and

a header growth field that provides a variable header length.

26. The memory according to claim 25 , wherein the common header field comprises:

a flag field that specifies direction of message flow;

a connection handle field that specifies handle of a backbone connection; and

an owner specific field that stores an owner specific header.

Assignments (13)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 15649418 PREVIOUSLY RECORDED ON REEL 050600 FRAME 0314. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF PATENT SECURITY AGREEMENTS. Recorded Sep 3, 2020
From: WELLS FARGO, NATIONAL BANK ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 053703/0367 →
ASSIGNMENT OF PATENT SECURITY AGREEMENTS Recorded Oct 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 050600/0314 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED ON REEL 026499 FRAME 0290. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Sep 4, 2018
From: EH HOLDING CORPORATION; ECHOSTAR 77 CORPORATION; ECHOSTAR GOVERNMENT SERVICES L.L.C.; ECHOSTAR ORBITAL L.L.C.; ECHOSTAR SATELLITE OPERATING CORPORATION; ECHOSTAR SATELLITE SERVICES L.L.C.; ADVANCED SATELLITE RESEARCH, LLC; HELIUS ACQUISITION, LLC; HELIUS, LLC; HNS FINANCE CORP.; HNS LICENSE SUB, LLC; HNS REAL ESTATE, LLC; HNS-INDIA VSAT, INC.; HNS-SHANGHAI, INC.; HUGHES COMMUNICATIONS, INC.; HUGHES NETWORK SYSTEMS, LLC; HUGHES NETWORK SYSTEMS INTERNATIONAL SERVICE COMPANY
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 047014/0886 →
SECURITY AGREEMENT Recorded Jun 24, 2011
From: EH HOLDING CORPORATION; ECHOSTAR 77 CORPORATION; ECHOSTAR GOVERNMENT SERVICES L.L.C.; ECHOSTAR ORBITAL L.L.C.; ECHOSTAR SATELLITE OPERATING CORPORATION; ECHOSTAR SATELLITE SERVICES L.L.C.; ADVANCED SATELLITE RESEARCH, LLC; HELIUS ACQUISITION, LLC; HELIUS, LLC; HNS FINANCE CORP.; HNS LICENSE SUB, LLC; HNS REAL ESTATE, LLC; HNS-INDIA VSAT, INC.; HNS-SHANGHAI, INC.; HUGHES COMMUNICATIONS, INC.; HUGHES NETWORK SYSTEMS, LLC; HUGHES NETWORK SYSTEMS INTERNATIONAL SERVICE COMPANY
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 026499/0290 →
PATENT RELEASE Recorded Jun 16, 2011
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 026459/0883 →
ASSIGNMENT AND ASSUMPTION OF REEL/FRAME NOS. 16345/0401 AND 018184/0196 Recorded Apr 9, 2010
From: BEAR STEARNS CORPORATE LENDING INC.
To: JPMORGAN CHASE BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 024213/0001 →
RELEASE OF SECOND LIEN PATENT SECURITY AGREEMENT Recorded Aug 29, 2006
From: JPMORGAN CHASE BANK, N.A.
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 018184/0170 →
ASSIGNMENT OF SECURITY INTEREST IN U.S. PATENT RIGHTS Recorded Aug 29, 2006
From: JPMORGAN CHASE BANK, N.A.
To: BEAR STEARNS CORPORATE LENDING INC.
Reel/Frame 018184/0196 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 11, 2005
From: HUGHES NETWORK SYSTEMS, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 016345/0368 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jul 11, 2005
From: HUGHES NETWORK SYSTEMS, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 016345/0401 →
MERGER Recorded Jun 21, 2005
From: HUGHES ELECTRONICS CORPORATION
To: DIRECTV GROUP, INC.,THE
Reel/Frame 016427/0731 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2005
From: DIRECTV GROUP, INC., THE
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 016323/0867 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2001
From: BORDER, JOHN
To: HUGHES ELECTRONICS CORPORATION
Reel/Frame 011993/0391 →