IP Library Granted Patent US 8,594,126
Granted Patent B2
US 8,594,126 · App. 13/255,250 · Granted Nov 26, 2013

Receiving node in a packet communications system and method for managing a buffer in a receiving node in a packet 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 8,594,126
App. No.
13/255,250
Granted
Nov 26, 2013
Kind
B2
Abstract

A receiving node for receiving data packets in a packet communications system comprises a buffer for storing data packets received at the receiving node and for releasing the stored data packets to an application element of the receiving node. A buffer window defines a time period in which data packets are received at the buffer. A position of the buffer window is moved in time periodically, and a stored data packet is released when it is at an end of the buffer window. The receiving node further comprises a packet delay determining element for determining, for each received data packet, a delay of a received data packet by determining the difference between an estimated time of arrival of a data packet at the receiving node and an actual time of arrival of the data packet at the receiving node, a delay processing element for determining an average of the determined delays of a plurality of data packets and for determining when a change in the determined average is greater than a first threshold, and a buffer window adjusting element for adjusting at a first rate a position of the buffer window by a first amount dependent on the determined average of the determined delays and for switching to adjust a position of the buffer window at a second rate by a second amount dependent on the determined average when a change in the determined average is greater than the first threshold. The second rate is greater than the first rate.

Claims (39)

1. A receiving node for receiving data packets in a packet communications system, comprising:

a buffer for storing data packets received at the receiving node and for releasing the stored data packets to an application element of the receiving node, wherein a buffer window defines a time period in which data packets are received at the buffer, a position of the buffer window is moved in time periodically, and a stored data packet is released when it is at an end of the buffer window;

a packet delay determining element for determining, for each received data packet, a delay of a received data packet by determining the difference between an estimated time of arrival of a data packet at the receiving node and an actual time of arrival of the data packet at the receiving node;

a delay processing element for determining an average of the determined delays of a plurality of data packets and for determining when a change in the determined average is greater than a first threshold; and

a buffer window adjusting element for adjusting at a first rate a position of the buffer window by a first amount dependent on the determined average of the determined delays and for switching to adjust a position of the buffer window at a second rate by a second amount dependent on the determined average when a change in the determined average is greater than the first threshold, the second rate being greater than the first rate.

2. The receiving node according to claim 1 , wherein the delay processing element comprises:

a first averaging element having a first response time for determining and providing at an output an average of the determined delays of a plurality of data packets, wherein the first amount by which the position of the buffer window is adjusted is dependent on the output of the first averaging element; and

a second averaging element having a second response time for determining and providing at an output an average of the determined delays of the plurality of data packets, the second response time being faster than the first, wherein the second amount by which the position of the buffer window is adjusted is dependent on the output of the second averaging element.

3. The receiving node according to claim 2 , wherein the delay processing element further comprises a processing module for comparing a difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements and for determining when a change in the determined average is greater than the first threshold when a difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements is greater than a first value and for generating and providing to the buffer window adjusting element a first switch signal in response, the buffer window adjusting element being arranged to switch to adjust the position of the buffer window at the second rate in response to receiving the first switch signal.

4. The receiving node according to claim 3 wherein the processing module is further arranged to generate and provide to the buffer window adjusting element a second switch signal when after generating the first switch signal a difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements reaches a second value, the buffer window adjusting element being arranged to switch to adjust the position of the buffer window from the second rate to the first rate in response to receiving the second switch signal.

5. The receiving node according to claim 4 , wherein the second value is substantially zero.

6. The receiving node according to claim 2 , wherein the buffer window adjusting element further comprises a smoothing element for comparing a first amount dependent on the output of the first averaging element with a current adjustment of the buffer window, the current adjustment determining the current position of the buffer window, and for providing a first signal at an output when an averaged difference between the first amount and the current adjustment is greater than a predetermined value and a second signal when the averaged difference between the first amount and the current adjustment is equal to or less than the predetermined value, and wherein the buffer window adjusting element is further arranged to adjust the position of the buffer window at the first rate according to the first signal in response to the first signal at the output and to not adjust the position of the buffer window from the current position in response to the second signal at the output.

7. The receiving node according to claim 2 , wherein the delay processing element further comprises an adjustment element for adjusting the output of the first averaging element such that the first amount by which the position of the buffer window is adjusted is dependent on an adjusted output, the adjustment element comprising a filter for receiving and filtering the difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements, and a combiner for combining the filtered difference with the output of the first averaging element to provide the adjusted output.

8. The receiving node according to claim 3 , wherein the buffer window adjusting element further comprises a smoothing element for comparing a first amount dependent on the output of the first averaging element with a current adjustment of the buffer window, the current adjustment determining the current position of the buffer window, and for providing a first signal at an output when an averaged difference between the first amount and the current adjustment is greater than a predetermined value and a second signal when the averaged difference between the first amount and the current adjustment is equal to or less than the predetermined value, and wherein the buffer window adjusting element is further arranged to adjust the position of the buffer window at the first rate according to the first signal in response to the first signal at the output and to not adjust the position of the buffer window from the current position in response to the second signal at the output.

9. The receiving node according to claim 4 , wherein the buffer window adjusting element further comprises a smoothing element for comparing a first amount dependent on the output of the first averaging element with a current adjustment of the buffer window, the current adjustment determining the current position of the buffer window, and for providing a first signal at an output when an averaged difference between the first amount and the current adjustment is greater than a predetermined value and a second signal when the averaged difference between the first amount and the current adjustment is equal to or less than the predetermined value, and wherein the buffer window adjusting element is further arranged to adjust the position of the buffer window at the first rate according to the first signal in response to the first signal at the output and to not adjust the position of the buffer window from the current position in response to the second signal at the output.

10. The receiving node according to claim 5 , wherein the buffer window adjusting element further comprises a smoothing element for comparing a first amount dependent on the output of the first averaging element with a current adjustment of the buffer window, the current adjustment determining the current position of the buffer window, and for providing a first signal at an output when an averaged difference between the first amount and the current adjustment is greater than a predetermined value and a second signal when the averaged difference between the first amount and the current adjustment is equal to or less than the predetermined value, and wherein the buffer window adjusting element is further arranged to adjust the position of the buffer window at the first rate according to the first signal in response to the first signal at the output and to not adjust the position of the buffer window from the current position in response to the second signal at the output.

11. The receiving node according to claim 3 , wherein the delay processing element further comprises an adjustment element for adjusting the output of the first averaging element such that the first amount by which the position of the buffer window is adjusted is dependent on an adjusted output, the adjustment element comprising a filter for receiving and filtering the difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements, and a combiner for combining the filtered difference with the output of the first averaging element to provide the adjusted output.

12. The receiving node according to claim 4 , wherein the delay processing element further comprises an adjustment element for adjusting the output of the first averaging element such that the first amount by which the position of the buffer window is adjusted is dependent on an adjusted output, the adjustment element comprising a filter for receiving and filtering the difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements, and a combiner for combining the filtered difference with the output of the first averaging element to provide the adjusted output.

13. The receiving node according to claim 5 , wherein the delay processing element further comprises an adjustment element for adjusting the output of the first averaging element such that the first amount by which the position of the buffer window is adjusted is dependent on an adjusted output, the adjustment element comprising a filter for receiving and filtering the difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements, and a combiner for combining the filtered difference with the output of the first averaging element to provide the adjusted output.

14. The receiving node according to claim 5 , wherein the delay processing element further comprises an adjustment element for adjusting the output of the first averaging element such that the first amount by which the position of the buffer window is adjusted is dependent on an adjusted output, the adjustment element comprising a filter for receiving and filtering the difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements, and a combiner for combining the filtered difference with the output of the first averaging element to provide the adjusted output.

15. A method of managing a buffer in a receiving node in a packet communications system, the buffer for storing data packets received at the receiving node and for releasing the stored data packets to an application element of the receiving node, wherein a buffer window defines a time period in which data packets are received at the buffer, a position of the buffer window is moved in time periodically by a predetermined amount, and a stored data packet is released when it is at an end of the buffer window, the method comprising:

receiving data packets at the receiving node;

determining, for each received data packet, a delay of a received data packet by determining the difference between an estimated time of arrival of a data packet at the receiving node and an actual time of arrival of the data packet at the receiving node;

determining an average of the determined delays of a plurality of data packets;

determining when a change in the determined average is greater than a first threshold;

adjusting at a first rate a position of the buffer window by a first amount dependent on the determined average of the determined delays; and

switching to adjust a position of the buffer window at a second rate by a second amount dependent on the determined average when a change in the determined average is greater than the first threshold, the second rate being greater than the first rate.

16. A communications device comprising:

a receiving node for receiving data packets comprising:

a buffer for storing data packets received at the receiving node and for releasing the stored data packets to an application element of the receiving node, wherein a buffer window defines a time period in which data packets are received at the buffer, a position of the buffer window is moved in time periodically, and a stored data packet is released when it is at an end of the buffer window;

a packet delay determining element for determining, for each received data packet, a delay of a received data packet by determining the difference between an estimated time of arrival of a data packet at the receiving node and an actual time of arrival of the data packet at the receiving node;

a delay processing element for determining an average of the determined delays of a plurality of data packets and for determining when a change in the determined average is greater than a first threshold; and

a buffer window adjusting element for adjusting at a first rate a position of the buffer window by a first amount dependent on the determined average of the determined delays and for switching to adjust a position of the buffer window at a second rate by a second amount dependent on the determined average when a change in the determined average is greater than the first threshold, the second rate being greater than the first rate.

17. The communications device of claim 16 , wherein the delay processing element comprises:

a first averaging element having a first response time for determining and providing at an output an average of the determined delays of a plurality of data packets, wherein the first amount by which the position of the buffer window is adjusted is dependent on the output of the first averaging element; and

a second averaging element having a second response time for determining and providing at an output an average of the determined delays of the plurality of data packets, the second response time being faster than the first, wherein the second amount by which the position of the buffer window is adjusted is dependent on the output of the second averaging element.

18. The communications device of claim 16 , wherein the delay processing element further comprises a processing module for comparing a difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements and for determining when a change in the determined average is greater than the first threshold when a difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements is greater than a first value and for generating and providing to the buffer window adjusting element a first switch signal in response, the buffer window adjusting element being arranged to switch to adjust the position of the buffer window at the second rate in response to receiving the first switch signal.

19. The communications device of claim 18 , wherein the processing module is further arranged to generate and provide to the buffer window adjusting element a second switch signal when after generating the first switch signal a difference between the determined averages of a plurality of data packets at the outputs of the first and second averaging elements reaches a second value, the buffer window adjusting element being arranged to switch to adjust the position of the buffer window from the second rate to the first rate in response to receiving the second switch signal.

20. The communications device of claim 19 , wherein the second value is substantially zero.

Assignments (31)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2011
From: STOICA, FLORIN-LAURENTIU; NEGHINA, MIHAI; RAILEANU, ADRIAN
To: FREESCALE SEMICONDUCTOR INC
Reel/Frame 026869/0966 →