IP Library Granted Patent US 8,526,318
Granted Patent B2
US 8,526,318 · App. 12/869,828 · Granted Sep 3, 2013

Method and device of identifying the payload of a data packet in a TCP stream

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,526,318
App. No.
12/869,828
Granted
Sep 3, 2013
Kind
B2
Abstract

A method and device of identifying payload of a data packet in a TCP stream. The method includes the steps of: calculating a payload signature according to information in header of the data packet in the TCP stream; comparing the payload signature with a pre-stored file signature; determining the payload of the data packet in the TCP stream as belonging to a file corresponding to the pre-stored file signature, in response to a match between payload signatures of multiple data packets and the pre-stored file signature. The present invention can monitor and identify TCP streams by using a more efficient and lower cost solution.

Claims (25)

1. A method of identifying payload of a data packet in a TCP stream, comprising:

inspecting the TCP stream to obtain the data packet in the TCP stream;

calculating a payload signature according to information in a header of the data packet in the TCP stream, the header comprising a TCP header and a pseudo header, wherein the TCP header comprises a checksum, wherein the checksum is generated based on fields in the TCP header, the payload, and the pseudo header;

wherein calculating the payload signature comprises removing from the checksum portions of the checksum which correspond to the TCP header and the pseudo header, and obtaining the payload signature;

wherein removing from the checksum portions of the checksum which correspond to the TCP header and the pseudo header further comprises bitwise-negating the checksum subsequent to subtracting 1 therefrom, obtaining value A, obtaining value B by adding complement of fields except the checksum in the TCP header and of fields in the pseudo header in the unit of 16 bits, adding 1 to value B subsequent to bitwise-negating value B, obtaining resultant value B′, and adding value A and value B′;

comparing the payload signature with a pre-stored file signature; and

determining the payload of the data packet in the TCP stream as belonging to a file corresponding to the pre-stored file signature, in response to a match between payload signatures of multiple data packets and the pre-stored file signature.

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

dividing in advance the file into multiple portions of a specific length, wherein one of the portions of specific length can be transmitted in a data packet and is used as the payload of the data packet;

generating a file signature for at least one part of the portions of specific length, wherein the file signature for at least one part of the portions of specific length is generated in the same way as calculating a payload signature according to information in the header of the data packet in the TCP stream; and

storing the file signature generated for the at least one part of the portions of specific length.

3. The method according to claim 1 , wherein the TCP stream is a P2P stream.

4. A device of identifying payload of a data packet in a TCP stream, comprising:

inspection means for inspecting the TCP stream to obtain a data packet in the TCP stream;

calculation means for calculating a payload signature according to information in header of the data packet in the TCP stream, the header comprising a TCP header and a pseudo header, wherein the TCP header comprises a checksum, wherein the checksum is generated based on fields in the TCP header, the payload, and the pseudo header;

comparison means for comparing the payload signature with a pre-stored file signature;

wherein the calculation means removes from the checksum portions of the checksum which correspond to the TCP header and the pseudo header, and obtains the payload signature;

wherein removing from the checksum portions of the checksum which correspond to the TCP header and the pseudo header further comprises bitwise-negating the checksum subsequent to subtracting 1 therefrom, obtaining value A, obtaining value B by adding complement of fields except the checksum in the TCP header and of fields in the pseudo header in the unit of 16 bits, adding 1 to value B subsequent to bitwise-negating value B, obtaining resultant value B′, and adding value A and value B′; and

determining means for determining the payload of the data packet in the TCP stream as belonging to a file corresponding to the pre-stored file signature, in response to a match between payload signatures of multiple data packets and the pre-stored file signature.

5. The device according to claim 4 , further comprising:

means for dividing in advance the file into multiple portions of a specific length, wherein one of the portions of a specific length can be transmitted in a data packet and is used as the payload of the data packet;

means for generating a file signature for at least one part of the portions of specific length, wherein the file signature for at least one part of the portions of specific length is generated in the same way as calculating a payload signature according to information in the header of the data packet in the TCP stream; and

means for storing the file signature generated for the at least one part of the portions of specific length.

6. The device according to claim 4 , wherein the device is a router or a switch.

7. The device according to claim 4 , wherein the TCP stream is a P2P stream.

Assignments (1)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Nov 8, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044413/0124 →