IP Library Granted Patent US 6,961,539
Granted Patent B2
US 6,961,539 · App. 09/925,178 · Granted Nov 1, 2005

Low latency handling of transmission control protocol messages in a broadband satellite communications system

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 6,961,539
App. No.
09/925,178
Granted
Nov 1, 2005
Kind
B2
Abstract

An approach for transmitting packets conforming with the TCP (Transmission Control Protocol) over a satellite communications network comprises a plurality of prioritized queues that are configured to store the packets. The packets conform with a predetermined protocol. A classification logic classifies the packets based upon the predetermined protocol. The packet is selectively stored in one of the plurality of queues, wherein the one queue is of a relatively high priority. The packet is scheduled for transmission over the satellite communications network according to the relative priority of the one queue.

Claims (171)

1. A method of transmitting packets via a terminal over a satellite communications network, the method comprising:

receiving a packet that conforms with a predetermined protocol;

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority, wherein the queues correspond to user services that include a connection-oriented service and a connectionless service, and further wherein the plurality of queues in the trasmitting step is prioritized using a weighting scheme that is based upon user services; and

scheduling the packet for transmission over the satellite communications network according to the storing step.

2. The method according to claim 1 , wherein the predetermined protocol is a transport layer protocol, the method further comprising:

determining whether the packet corresponds to an initial message in a message flow; and

selectively compressing the packet to reduce header information in response to the determining step.

3. The method according to claim 2 , wherein the transport layer protocol is TCP (Transmission Control Protocol), the message flow in the determining step includes Hyper Text Transfer Protocol (HTTP) messages.

4. The method according to claim 1 , further comprising:

transmitting the packet over a contention channel of the satellite communications network.

5. The method according to claim 1 , further comprising:

storing header information associated with the packet at a remote terminal.

6. The method according to claim 1 , further comprising:

determining whether a threshold of the one queue has been exceeded; and

redirecting the packet to another one of the priority queues, the one queue being of a higher priority than the other queue.

7. The method according to claim 1 , further comprising:

servicing the plurality of queues according to a schedule plan to selectively forward the packet to an uplink channel of the satellite communications network.

8. The method according to claim 1 , further comprising:

spoofing a source host in response to the receiving step, the source host originating the packet.

9. A method of trasmitting packets via a terminal over a satellite communications network, the method comprising:

receiving a packet that conforms with a predetermined protocol including a transport layer protocol that is TCP (Transmission Control Protocol);

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

determining whether the packet corresponds to an initial message in a message flow that includes Hyper Text Transfer Protocol (HTTP) messages,

wherein the HTTP messages include GET messages;

selectively compressing the packet to reduce header information in response to the determining step; and

scheduling the packet for transmission over the satellite communications network according to the storing step.

10. A method of trasmitting packets via a terminal over a satellite communications network, the method comprising:

receiving a packet that conforms with a predetermined protocol including a transport layer protocol;

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

determining whether the packet corresponds to an initial message in a message flow;

selectively compressing the packet to reduce header information in response to the determining step by

eliminating repeated header information from the packet; and

scheduling the packet for transmission over the satellite communications network according to the storing step.

11. A method of transmitting packets via a terminal over a satellite communications network, the method comprising:

receiving a packet that conforms with a predetermined protocol;

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

scheduling the packet for transmission over the satellite communications network according to the storing step;

servicing the plurality of queues according to a schedule plan to selectively forward the packet to an uplink channel of the satellite communications network;

allocating a packet transmission opportunity (PTO) via the schedule plan; and

selectively preempting the PTO.

12. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

a plurality of queues configured to store the packets, the plurality of queues being prioritized, wherein the packets conform with a predetermined protocol and the queues correspond to user services that include a connection-oriented service and a connectionless service, and further wherein the plurality of queues in the transmitting step is prioritized using a weighting scheme that is based upon user services; and

classification logic configured to classify the packets based upon the predetermined protocol, wherein one of the packets is selectively stored in one of the plurality of queues, the one queue being of a relatively high priority, the one packet being scheduled for transmission over the satellite communications network according to the relative priority of the one queue.

13. The apparatus according to claim 12 , wherein the one packet is transmitted over a contention channel of the satellite communications network.

14. The apparatus according to claim 12 , wherein the header information associated with the one packet is stored at a remote terminal.

15. The apparatus according to claim 12 , wherein the one packet is redirected to another one of the priority queues if a threshold of the one queue has been exceeded, the one queue being of a higher priority than the other queue.

16. The apparatus according to claim 12 , wherein the plurality of queues are serviced according to a schedule plan, the packet being forwarded to an uplink channel of the satellite communications network.

17. The apparatus according to claim 12 , further comprising:

a spoofer configured to transmit an acknowledgement message to a source host that originated the one packet.

18. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

a plurality of queues configured to store the packets, the plurality of queues being prioritized, wherein the packets conform with a predetermined protocol including a transport layer protocol;

classification logic configured to classify the packets based upon the predetermined protocol, wherein one of the packets is selectively stored in one of the plurality of queues, the one queue being of a relatively high priority, the one packet being scheduled for transmission over the satellite communications network according to the relative priority of the one queue; and

a spoofer coupled to the classification logic and configured to selectively compress the one packet to reduce header information based upon determining whether the one packet corresponds to an initial message in a message flow.

19. The apparatus according to claim 18 , wherein the transport layer protocol is TCP (Transmission Control Protocol), the message flow includes Hyper Text Transfer Protocol (HTTP) messages.

20. The apparatus according to claim 19 , wherein the HTTP messages include GET messages.

21. The apparatus according to claim 18 , wherein the spoofer compresses the one packet by eliminating repeated header information from the one packet.

22. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

a plurality of queues configured to store the packets, the plurality of queues being prioritized, wherein the packets conform with a predetermined protocol including a transport layer protocol, and the queues are serviced according to a schedule plan; and

classification logic configured to classify the packets based upon the predetermined protocol, wherein one of the packets is selectively stored in one of the plurality of queues, the one queue being of a relatively high priority, the one packet being scheduled for transmission over an uplink channel of the satellite communications network according to the relative priority of the one queue,

wherein the schedule plan provides for allocation of a packet transmission opportunity (PTO), the PTO being selectively preempted.

23. A satellite communications system comprising:

a hub configured to control bandwidth allocations in conjunction with a satellite; and

a plurality of terminals configured to transmit packets, each of the terminals comprising,

a plurality of queues configured to store the packets, the plurality of queues being prioritized, wherein the queues correspond to user services that include a connection-oriented service and a connectionless service, and

classification logic configured to classify the packets based upon a predetermined protocol associated with the packets, wherein one of the packets is selectively stored in one of the plurality of queues, the one queue being of a relatively high priority, the one packet being scheduled for transmission over the satellite communications network according to the relative priority of the one queue.

24. The system according to claim 23 , wherein the one packet is transmitted over a contention channel of the satellite communications network.

25. The system according to claim 23 , wherein the plurality of terminals includes a source terminal and a destination terminal, the header information associated with the one packet being stored at the destination terminal.

26. The system according to claim 23 , wherein the one packet is redirected to another one of the priority queues if a threshold of the one queue has been exceeded, the one queue being of a higher priority than the other queue.

27. The system according to claim 23 , wherein the plurality of queues are prioritized using a weighting scheme that is based upon user services.

28. The system according to claim 23 , wherein the plurality of queues are serviced according to a schedule plan, the one packet being forwarded to an uplink channel of the satellite communications network.

29. A satellite communications system comprising:

a hub configured to control bandwidth allocations in conjunction with a satellite; and

a plurality of terminals configured to transmit packets, each of the terminals comprising,

a plurality of queues configured to store the packets, the plurality of queues being prioritized,

classification logic configured to classify the packets based upon a predetermined protocol associated with the packets, the predetermined protocol including a transport layer protocol, wherein one of the packets is selectively stored in one of the plurality of queues, the one queue being of a relatively high priority, the one packet being scheduled for transmission over the satellite communications network according to the relative priority of the one queue, and

a spoofer coupled to the classification logic and configured to selectively compress the one packet to reduce header information based upon determining whether the one packet corresponds to an initial message in a message flow.

30. The system according to claim 29 , wherein the transport layer protocol is TCP (Transmission Control Protocol), the message flow includes Hyper Text Transfer Protocol (HTTP) messages.

31. The system according to claim 30 , wherein the HTTP messages include GET messages.

32. The system according to claim 29 , wherein the spoofer compresses the one packet by eliminating repeated header information from the one packet.

33. A satellite communications system comprising:

a hub configured to control bandwidth allocations in conjunction with a satellite; and

a plurality of terminals configured to transmit packets, each of the terminals comprising,

a plurality of queues configured to store the packets, the plurality of queues being prioritized, and serviced according to a schedule plan,

classification logic configured to classify the packets based upon a predetermined protocol associated with the packets, wherein one of the packets is selectively stored in one of the plurality of queues, the one queue being of a relatively high priority, the one packet being scheduled for transmission over an uplink channel of the satellite communications network according to the relative priority of the one queue,

wherein the schedule plan provides for allocation of a packet transmission opportunity (PTO), the PTO being selectively preempted.

34. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

means for receiving a packet that conforms with a predetermined protocol;

means for classifying the packet based upon the predetermined protocol;

means for selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority, wherein the queues correspond to user services that include a connection-oriented service and a connectionless service, and further wherein the plurality of queues in the trasmitting step is prioritized using a weighting scheme that is based upon user services; and

means for scheduling the packet for transmission over the satellite communications network according to priority level of the one queue.

35. The apparatus according to claim 34 , wherein the predetermined protocol is a transport layer protocol, the apparatus further comprising:

means for determining whether the packet corresponds to an initial message in a message flow; and

means for compressing the packet to reduce header information if the packet corresponds to the initial message.

36. The apparatus according to claim 35 , wherein the transport layer protocol is TCP (Transmission Control Protocol), the message flow includes Hyper Text Transfer Protocol (HTTP) messages.

37. The apparatus according to claim 34 , further comprising:

means for transmitting the packet over a contention channel of the satellite communications network.

38. The apparatus according to claim 34 , further comprising:

means for storing header information associated with the packet at a remote terminal.

39. The apparatus according to claim 34 , further comprising:

means for determining whether a threshold of the one queue has been exceeded; and

means for redirecting the packet to another one of the priority queues, the one queue being of a higher priority than the other queue.

40. The apparatus according to claim 34 , further comprising:

means for servicing the plurality of queues according to a schedule plan to selectively forward the packet to an uplink channel of the satellite communications network.

41. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

means for receiving a packet that conforms with a predetermined protocol;

means for classifying the packet based upon the predetermined protocol;

means for selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

means for servicing the plurality of queues according to a schedule plan to selectively forward the packet to an uplink channel of the satellite communications network;

means for allocating a packet transmission opportunity (PTO) via the schedule plan; and

means for selectively preempting the PTO; and

means for scheduling the packet for transmission over the satellite communications network according to priority level of the one queue.

42. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

means for receiving a packet that conforms with a predetermined protocol including a transport layer protocol that is TCP (Transmission Control Protocol);

means for classifying the packet based upon the predetermined protocol;

means for selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

means for determining whether the packet corresponds to an initial message in a message flow including Hyper Text Transfer Protocol (HTTP) messages that include GET messages;

means for compressing the packet to reduce header information if the packet corresponds to the initial message; and

means for scheduling the packet for transmission over the satellite communications network according to priority level of the one queue.

43. A terminal apparatus for transmitting packets to a satellite communications system, comprising:

means for receiving a packet that conforms with a predetermined protocol including a transport layer protocol;

means for classifying the packet based upon the predetermined protocol;

means for selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

means for determining whether the packet corresponds to an initial message in a message flow;

means for compressing the packet to reduce header information if the packet corresponds to the initial message by eliminating repeated header information from the packet; and

means for scheduling the packet for transmission over the satellite communications network according to priority level of the one queue.

44. The apparatus according to claim 34 , further comprising:

means for spoofing a source host in response to the receiving step, the source host originating the packet.

45. A computer-readable medium carrying one or more sequences of one or more instructions for transmitting packets via a terminal over a satellite communications 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 a packet that conforms with a predetermined protocol;

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority, wherein the queues correspond to user services that include a connection-oriented service and a connectionless service, and further wherein the plurality of queues in the transmitting step is prioritized using a weighting scheme that is based upon user services; and

scheduling the packet for transmission over the satellite communications network according to the storing step.

46. The computer-readable medium according to claim 45 , wherein the predetermined protocol is a transport layer protocol, the computer-readable medium further comprising:

determining whether the packet corresponds to an initial message in a message flow; and

selectively compressing the packet to reduce header information in response to the determining step.

47. The computer-readable medium according to claim 46 , wherein the transport layer protocol is TCP (Transmission Control Protocol), the message flow in the determining step includes Hyper Text Transfer Protocol (HTTP) messages.

48. The computer-readable medium according to claim 45 , wherein the one or more processors further perform the step of:

transmitting the packet over a contention channel of the satellite communications network.

49. The computer-readable medium according to claim 45 , wherein the one or more processors further perform the step of:

storing header information associated with the packet at a remote terminal.

50. The computer-readable medium according to claim 45 , wherein the one or more processors further perform the steps of:

determining whether a threshold of the one queue has been exceeded; and

redirecting the packet to another one of the priority queues, the one queue being of a higher priority than the other queue.

51. The computer-readable medium according to claim 45 , wherein the one or more processors further perform the step of:

servicing the plurality of queues according to a schedule plan to selectively forward the packet to an uplink channel of the satellite communications network.

52. The computer-readable medium according to claim 45 , wherein the one or more processors further perform the step of:

spoofing a source host in response to the receiving step, the source host originating the packet.

53. A computer-readable medium carrying one or more sequences of one or more instructions for transmitting packets via a terminal over a satellite communications 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 a packet that conforms with a predetermined protocol including a transport layer protocol that is TCP (Transmission Control Protocol);

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

determining whether the packet corresponds to an initial message in a message flow that includes Hyper Text Transfer Protocol (HTTP) messages that include GET messages; and

scheduling the packet for transmission over the satellite communications network according to the storing step.

54. A computer-readable medium carrying one or more sequences of one or more instructions for transmitting packets via a terminal over a satellite communications 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 a packet that conforms with a predetermined protocol including a transport layer protocol;

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

determining whether the packet corresponds to an initial message in a message flow;

selectively compressing the packet to reduce header information in response to the determining step by eliminating repeated header information from the packet; and

scheduling the packet for transmission over the satellite communications network according to the storing step.

55. A computer-readable medium carrying one or more sequences of one or more instructions for transmitting packets via a terminal over a satellite communications 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 a packet that conforms with a predetermined protocol;

classifying the packet based upon the predetermined protocol;

selectively storing the packet into one of a plurality of prioritized queues, the one queue being of a relatively high priority;

servicing the plurality of queues according to a schedule plan to selectively forward the packet to an uplink channel of the satellite communications network;

allocating a packet transmission opportunity (PTO) via the schedule plan; and

selectively preempting the PTO.

Assignments (3)
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 →