IP Library Granted Patent US 8,391,143
Granted Patent B2
US 8,391,143 · App. 13/096,828 · Granted Mar 5, 2013

Classification and verification of static file transfer protocols

Inventors: Bram Cohen (Mill Valley, CA); David Harrison (San Francisco, CA)
Assignee: BitTorrent, Inc.
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,391,143
App. No.
13/096,828
Granted
Mar 5, 2013
Kind
B2
Abstract

Classification and verification of static file transfer protocols is provided. A network node sitting in the path of packets classifies traffic according to its content, and then statistically verifies that the content actually matches the initial classification. Classification and verification are standard building blocks in networks systems that provide quality-of-service. However, unlike traditional quality-of-service building blocks, a system of the present invention takes a trust-but-verify approach, and thus can rely on longer-timescale statistical online or offline verification to reduce computational requirements. This improves scalability and reduces the cost and complexity that in part has prevented prior service differentiation systems from succeeding in the Internet. Internet Service Providers (ISPs) can combine the classification and verification building blocks with a networked directory service to allow further classification as to whether particular content is for pay.

Claims (64)

1. A method for routing network traffic, the method comprising:

receiving, by a router, data for transmission over a connection;

assigning, by the router, a preliminary connection routing classification to the received data by:

extracting, by the router, a content identifier from the received data;

determining, by the router, based on the extracted content identifier whether the received data is representative of paid content or non-paid content; and

determining, by the router, the preliminary connection routing classification for the received data based on the determination of whether the received data is representative of paid content or non-paid content;

mapping, by the router, the received data to a preliminary service treatment associated with the preliminary connection routing classification;

routing, by the router, the received data over the connection with a priority associated with the preliminary service treatment; and

verifying the preliminary classification routing classification as appropriate for the received data.

2. The method of claim 1 , wherein the extracted content identifier comprises the output of a hash function applied to at least one selected from the group consisting of:

a portion of the received data; and

metadata associated with the received data.

3. The method of claim 1 , further comprising:

associating the preliminary connection routing classification with the connection; and

responsive to receiving additional data for transmission over the connection, routing the received data over the connection with the priority associated with the preliminary connection routing classification.

4. The method of claim 1 , wherein the preliminary connection routing classification comprises a default classification.

5. The method of claim 1 , wherein assigning a preliminary connection routing classification to the received data comprises redirecting the received data to a content classification engine.

6. The method of claim 1 , wherein verifying the preliminary connection routing classification as appropriate for the received data comprises:

extracting a portion of the received data;

calculating a content identifier based on the extracted portion of received data; and

comparing the calculated content identifier to a stored content identifier, the stored content identifier associated with the preliminary connection routing classification.

7. The method of claim 6 , wherein calculating a content identifier based on the extracted portion of received data comprises:

applying a hash function to the extracted portion of received data.

8. The method of claim 6 , wherein the extracted portion of received data comprises a subset of the received data.

9. A router system for routing network traffic, the router system comprising:

receiving means for receiving data for transmission over a connection;

a content classification engine, communicatively coupled to the receiving means, adapted to assign a preliminary connection routing classification to the received data by:

extracting a content identifier from the received data;

determining based on the extracted content identifier whether the received data is representative of paid content or non-paid content; and

determining the preliminary connection routing classification for the received data based on the determination of whether the received data is representative of paid content or non-paid content;

a content directory, communicatively coupled to the content classification engine, adapted to map the received data to a preliminary service treatment associated with the preliminary connection routing classification;

routing means, communicatively coupled to the receiving means, adapted to route the received data over the connection with a priority associated with the preliminary service treatment; and

a content verification engine, communicatively coupled to the content classification engine, adapted to verify the preliminary connection routing classification as appropriate for the received data.

10. The system of claim 9 , wherein the extracted content identifier comprises the output of a hash function applied to at least one selected from the group consisting of:

a portion of the received data; and

metadata associated with the received data.

11. The system of claim 9 , wherein the content classification engine is further adapted to:

associate the preliminary connection routing classification with the connection; and

responsive to receiving additional data for transmission over the connection, route the received data over the connection with the priority associated with the preliminary connection routing classification.

12. The system of claim 9 , wherein the preliminary connection routing classification comprises a default classification.

13. The system of claim 9 , wherein the content verification engine is adapted to verify the preliminary connection routing classification as appropriate for the received data by:

extracting a portion of the received data;

calculating a content identifier based on the extracted portion of received data; and

comparing the calculated content identifier to a stored content identifier, the stored content identifier associated with the preliminary connection routing classification.

14. The system of claim 13 , wherein the content verification engine is adapted to calculate the content identifier based on the extracted portion of received data by:

applying a hash function to the extracted portion of received data.

15. The system of claim 14 , wherein the extracted portion of received data comprises a subset of the received data.

16. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor of a router, cause the processor to perform a process for routing network traffic, the process comprising:

receiving data for transmission over a connection;

assigning a preliminary connection routing classification to the received data by:

extracting a content identifier from the received data;

determining on the extracted content identifier whether the received data is representative of paid content or non-paid content; and

determining the preliminary connection routing classification for the received data based on the determination of whether the received data is representative of paid content or non-paid content;

mapping the received data to a preliminary service treatment associated with the preliminary connection routing classification;

routing the received data over the connection with a priority associated with the preliminary service treatment; and

verifying the preliminary classification routing classification as appropriate for the received data.

17. The computer-readable storage medium of claim 16 , wherein the extracted content identifier comprises the output of a hash function applied to at least one selected from the group consisting of:

a portion of the received data; and

metadata associated with the received data.

18. The computer-readable storage medium of claim 16 , further comprising:

associating the preliminary connection routing classification with the connection; and

responsive to receiving additional data for transmission over the connection, routing the received data over the connection with the priority associated with the preliminary connection routing classification.

19. The computer-readable storage medium of claim 16 , wherein the preliminary connection routing classification comprises a default classification.

20. The computer-readable storage medium of claim 16 , wherein assigning a preliminary connection routing classification to the received data comprises redirecting the received data to a content classification engine.

Assignments (1)
CHANGE OF NAME Recorded Jul 27, 2021
From: BITTORRENT, INC.
To: RAINBERRY, INC.
Reel/Frame 056995/0889 →
Continuity (3)
Continuation 11764791 · Jun 18, 2007
Provisional Application 60805025 · Jun 16, 2006
Related Publication 20110202679A1 · Aug 18, 2011