IP Library Granted Patent US 7,043,677
Granted Patent B1
US 7,043,677 · App. 09/909,624 · Granted May 9, 2006

Apparatus and method for separating corrupted data from non-corrupted data within a packet

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,043,677
App. No.
09/909,624
Granted
May 9, 2006
Kind
B1
Abstract

A method and apparatus for detecting errors and improving quality in real-time data transmissions is provided. In one embodiment, the packet header checksum field is turned off to allow uninterrupted transmission of data packet payloads. A checksum added to each independent data segment in the datagram payload permits each data packet to be examined separately, resulting in improved transmission quality.

Claims (46)

1. A method for delivering data within a data packet comprising the steps of:

disabling a data integrity function of said data packet, said data integrity function configured for determining whether data within said data packet is valid;

calculating data integrity information for each of a plurality of independent data segments to be transmitted within said data packet; and

transmitting, within said data packet, said plurality of independent data segments and said data integrity information calculated for each of said plurality of independent data segments.

2. The method as in claim 1 wherein said data integrity information is a checksum.

3. The method as in claim 1 wherein said data integrity function is a checksum function.

4. The method as in claim 1 wherein said data packet is a User Datagram Protocol (“UDP”) packet.

5. The method as in claim 4 wherein disabling said data integrity function of said data packet comprises setting a checksum of said data packet to zero.

6. The method as in claim 1 wherein said independent data segments are GSM-AMR audio frames.

7. The method as in claim 1 further comprising:

receiving said data packet at a client;

determining whether any of said independent data segments are corrupt based on said data integrity information; and

discarding any independent data segments which are corrupt.

8. The method as in claim 7 wherein determining whether any of said independent data segments are corrupt comprises:

recalculating said data integrity information for each of said plurality of independent data segments; and

comparing said recalculated data integrity information with said transmitted data integrity information to determine whether any of said independent data segments are corrupt.

9. An apparatus for delivering data within a data packet comprising:

a data integrity calculation module for calculating data integrity information for each of a plurality of independent data segments;

a packet generation module for encapsulating, within said data packet, said plurality of independent data segments and said data integrity information calculated for each of said plurality of independent data segments and disabling a data integrity function of said data packet; and

a transmission module for transmitting said data packet over a network to a destination.

10. The apparatus as in claim 9 wherein said data integrity information is a checksum.

11. The apparatus as in claim 9 wherein said data integrity function is a checksum function.

12. The apparatus as in claim 9 wherein said data packet is a User Datagram Protocol (“UDP”) packet.

13. The method as in claim 12 wherein disabling said data integrity function of said data packet comprises setting a checksum of said single data packet to zero.

14. The apparatus as in claim 9 wherein said data segments are GSM-AMR audio frames.

15. A method comprising:

providing a UDP datagram, the UDP datagram having a header and a payload, the payload comprised of a plurality of independent data segments, the header comprising a source port field, a destination port field, a length field, and a datagram checksum;

setting the datagram checksum to zero;

adding a checksum to each independent data segment in the payload; and

sending the modified datagram through to a destination port.

16. A machine-readable medium having program code stored thereon which, when executed by a machine, cause said machine to perform the operations of:

disabling a data integrity function of a data packet, said data integrity function configured for determining whether data within said data packet is valid;

calculating data integrity information for each of a plurality of independent data segments to be transmitted within said data packet; and

transmitting, within said data packet, said plurality of independent data segments and said data integrity information calculated for each of said plurality of independent data segments.

17. The machine-readable medium as in claim 16 wherein said data integrity information is a checksum.

18. The machine-readable medium as in claim 16 wherein said data integrity function is a checksum function.

19. The machine-readable medium as in claim 16 wherein said data packet is a User Datagram Protocol (“UDP”) packet.

20. The machine-readable medium as in claim 19 wherein disabling said data integrity function of said data packet comprises setting a checksum of said data packet to zero.

21. The machine-readable medium as in claim 16 wherein said independent data segments are GSM-AMR audio frames.

22. The machine-readable medium as in claim 16 including program code which causes said machine to perform the additional operations of:

receiving said data packet at a client;

determining whether any of said independent data segments are corrupt based on said data integrity information; and

discarding any independent data segments which are corrupt.

23. The machine-readable medium as in claim 22 wherein determining whether any of said independent data segments are corrupt comprises:

recalculating said data integrity information for each of said plurality of independent data segments; and

comparing said recalculated data integrity information with said transmitted data integrity information to determine whether any of said independent data segments are corrupt.

Assignments (5)
CHANGE OF NAME Recorded Oct 7, 2011
From: WEBEX COMMUNICATIONS, INC.
To: CISCO WEBEX LLC
Reel/Frame 027033/0756 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2011
From: CISCO WEBEX LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 027033/0764 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2003
From: PRESENTER, INC.
To: WEBEX, COMMUNICATIONS, INC.
Reel/Frame 013797/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2001
From: LI, SHENG
To: PRESENTER.COM, INC.
Reel/Frame 012203/0983 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2001
From: LI, SHENG
To: PRESENTER.COM, INC.
Reel/Frame 012015/0492 →