Patent Document

CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 11/103,821, filed on Apr. 11, 2005, which is a continuation-in-part of U.S. patent application Ser. No. 10/845,436, filed on May 12, 2004. Priority to the above patent applications is expressly claimed, and the disclosures of the applications are hereby incorporated herein by reference in their entireties and for all purposes. 
     
    
     BACKGROUND 
       [0002]    1. Field 
         [0003]    The present disclosure relates generally to the field of digital content distribution, and in particular to the identification and tracking of digital content distributors on Wide Area Networks. 
         [0004]    2. Related Art 
         [0005]    Unauthorized distribution of copyrighted digital content on the Internet and other Wide Area Networks (WANs) is a growing problem. The existing systems and methods aimed at identification of digital content distributors are conducted on an ad hoc basis, for example by manually searching for a file representing a piece of copyrighted content on a file sharing network and making a note of user names and IP addresses of potential distributors advertising the file. The problem with these preexisting approaches is that they are inefficient and not scalable. Accordingly, a need exists for an efficient and automated system for identification and tracking of digital content distributors on WANs. 
       SUMMARY 
       [0006]    The present disclosure relates to a system and method for tracking and identifying digital content distributors on Wide Area Networks. The present system monitors distribution networks, logs pertinent network and distributor information, generates network statistics, gathers evidence of content distribution, and notifies interested parties of the availability of content on Wide Area Networks. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]      FIG. 1  is a block diagram showing a system for identification and tracking of digital content distributors, comprising a primary database  101 , a data exchange server  102 , and one or more crawler nodes  103 , according to an embodiment of the present disclosure. 
           [0008]      FIG. 2  is a flow diagram showing a method for identification and tracking of digital content distributors, according to an embodiment of the present disclosure. 
           [0009]      FIG. 3  is a diagram illustrating a memory scraping module  112 , according to an embodiment of the present disclosure. 
           [0010]      FIG. 4  is a flow diagram showing a method for identification and tracking of digital content distributors, according to an embodiment of the present disclosure. 
           [0011]      FIG. 5   a  is a flow diagram illustrating a method for performing a multi-source download of a piece of digital content, according to an embodiment of the present disclosure. 
           [0012]      FIG. 5   b  is a flow diagram illustrating a method for performing a single-source download of a piece of digital content, according to an embodiment of the present disclosure. 
           [0013]      FIG. 6  is a diagram showing a “slow server”  110  emulating a file sharing network  104  client application  113 , according to an embodiment of the present disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0014]    The following serves as a glossary of terms as used herein: 
         [0015]    Digital content—A digital representation of an image, video, audio, text, software or other data. 
         [0016]    Wide Area Network (WAN)—A network of communicating nodes, wherein some of the nodes are geographically dispersed, such as covering a distance between buildings, cities or countries. 
         [0017]    File sharing network—A network of nodes communicating according to a protocol allowing the sharing of digital content among the nodes. 
         [0018]    File sharing network client application—An application for connecting to a file sharing network and sharing digital content over the file sharing network. 
         [0019]    Single-source download—A download of a piece of digital content, wherein the downloaded fragments of the piece originate from a single source node, for example from a single IP address. 
         [0020]    Multi-source download—A download of a piece of digital content, wherein the downloaded fragments of the piece originate from a plurality of source nodes, for example from a plurality of IP addresses. 
         [0021]    External file hash—A hash value associated with a file, wherein the hash value is assigned by a distribution network (such as a file sharing network) and made available as a search key for the file. 
         [0022]    Internal file hash—A hash value associated internally (by the present disclosure) with a file in the primary database, the hash value serving as a fingerprint for identifying similar or duplicate digital content. 
         [0023]      FIG. 1  is a block diagram showing a system for identification and tracking of digital content distributors, comprising a primary database  101 , a data exchange server  102 , and one or more crawler nodes  103 , according to an embodiment of the present disclosure. A crawler node  103  establishes a connection to a Wide Area Network according to a distribution protocol, such as a file sharing network protocol, an IRC (Internet Relay Chat) protocol, a spidering protocol and/or any other content distribution protocol, and initiates a search for a piece of digital content based on one or more search terms. By way of example and not by limitation, the Figures depict crawlers  103  establishing connections to file sharing networks  104  via an appropriate file sharing protocol on a Wide Area Network; however it is understood that other distribution protocols on a Wide Area Network (as recited above) can be used analogously. If a node in file sharing network  104  reports an availability of the sought piece of digital content, crawler node  103  logs such availability and optionally initiates a single-source or a multi-source download of the piece of digital content from the file sharing network  104 . The primary database  101  stores search terms for the crawler  103  searches, as well as any search results obtained from crawler node  103 . The data exchange server  102  acts as an interface between primary database  101  and crawler nodes  103 , retrieving search terms from primary database  101  and providing them to crawler  103 , as well as receiving search results from crawler node  103  and storing them in primary database  101 . Any two crawler nodes  103  may establish connections with the same file sharing network  104  or with different file sharing networks  104 . 
         [0024]      FIG. 2  is a flow diagram showing a method for identification and tracking of digital content distributors, according to an embodiment of the present disclosure. A crawler node  103  establishes  201  a connection to a file sharing network  104  and initiates  202  a search for a piece of digital content, the search comprising one or more search keywords obtained from primary database  101  via data exchange server  102 . Crawler node  103  receives  203  a search result from the file sharing network, the search result indicating one or more distributors (hereinafter also known as suspected distributors) and respective pieces of digital content distributed by the one or more suspected distributors. As an example, such search result comprises an IP address of a suspected distributor, a port number as used by a suspected distributor, a file name, a file size, an external file hash and/or other identifiers which the file sharing network makes available regarding a piece of digital content made available by a suspected distributor, and/or other data about any digital content and suspected distributors. Optionally, verify  204  IP addresses (if obtained) of any suspected distributors. Optionally, determine  205  what other file sharing protocols (if any) are used by such suspected distributors. Finally, log  206  any received and/or verified information about such suspected distributors and digital content, and relay the information to data exchange server  102  for storage in primary database  101 . Optionally, perform preliminary filtering on the gathered information prior to sending to data exchange server  102 , for example by discarding information pertaining to files whose file names indicate a different content type than the content type under search (e.g. a .AVI video file when we are looking for something like an audio file), or by discarding information pertaining to files that do not match all submitted keywords. Optionally, crawler node  103  also requests statistical information from file sharing network  104 , such as the number of users currently using the file sharing network  104 , the set of files available on the file sharing network  104 , the number of files available on the file sharing network  104 , a list of the different versions of any sought piece of digital content available on the file sharing network  104 , and/or or any other statistical information about file sharing network  104 . If available and supplied by the file sharing network  104 , crawler node  103  stores such statistical information in primary server  101 . 
         [0025]    It may be the case that a file sharing network  104  discloses information about peers (such as IP address, or other information described above) in such as way that the disclosed information is decipherable only by a native client application  113  of the file sharing network  104 . This may be accomplished for example by encrypting such information in transit, and having the native client application  113  decrypt the information when needed to make a connection to the respective peers. In such a case, an optional embodiment of the present disclosure launches a native client application  113  of the file sharing network  104 , and retrieves such information by performing “memory scraping”, wherein memory allocation and memory usage of the client application  113  is monitored. 
         [0026]      FIG. 3  is a diagram illustrating a memory scraping module  112 , according to an embodiment of the present disclosure. With initial user assistance, memory scraping module  112  deduces a pattern in the memory usage of the file sharing network  104  client application  113 . A user interacts with the file sharing network client application  113  as the user would normally when seeking out a file, comprising performing a search, examining the search results, and selecting a file for download. At the same time, the memory scraping module  112  monitors changes occurring in memory and deduces the pattern of memory usage for future automated parsing. Once such a pattern is known and stored, memory scraping module  112  applies the pattern to search requests submitted by the file sharing network  104  client application  113  and/or to search results returned to the file sharing network  104  client application  113 , and decodes information about distributors, such as IP address, port number, file name, file size, external file hash and/or other identifiers. The information is then parsed into a format suitable for storage into primary database  101 . 
         [0027]      FIG. 4  is a flow diagram showing a method for identification and tracking of digital content distributors, according to an embodiment of the present disclosure. The present disclosure teaches a method for doing intensive scans of the internet to trace distribution of copyrighted content and track propagation of such content. In this method, for each suspected distributor&#39;s information stored in the data exchange server as identified by the crawler  210 , download of the specific file using the specific external identifier on the file sharing network in step  214  is requested by an evidence gathering module. If the file is found (step  220 ) download of the file segment is initiated in step  225 . After the download has been completed successfully (step  230 ) make an entry in the distributor log that documents for each file segment downloaded the source IP address, the amount of file segment received in bytes, sequence number of bytes, time and date of the download, percentage of the total file held by the source of the segment at a given point of time, file name, (step  235 .) In step  240  a copy of the file segment is made and stored in the data exchange server. Once a piece of digital content is suspected to have become available for download over a file sharing network, an attempt is made to confirm this suspicion by (a) initiating a multi-source download of the piece of digital content, or by (b) initiating a single-source download of the piece of digital content. Once all segments are downloaded (step  245 ), the segments are all assembled to make a complete digital copy of the file (step  250 .) Thereafter reports may be generated using the information stored in the distributor log and provided to client as proof of distribution of digital content on the file sharing network (step  255 .) 
         [0028]      FIG. 5   a  is a flow diagram illustrating a method for performing a multi-source download of a piece of digital content, according to an embodiment of the present disclosure. Establish  215  a connection to file sharing network  104 , and initiate  216  a download of the piece of digital content, wherein the file sharing network  104  dynamically arranges download sources for the piece of digital content, and wherein possibly different segments of the piece of digital content are obtained from different download sources. Once content is successfully downloaded, verify  217  that the downloaded content indeed represents the sought piece of digital content. An example of verification step  217  comprises rendering the downloaded content (for example by playing a downloaded video clip or audio clip, or by displaying a downloaded image or document on a viewing screen) and using a human to verify that the downloaded content matches the sought content. Optionally, an internal hash value is computed for the downloaded content, allowing efficient determination of whether the content already exists in primary database  101  and therefore is a duplicate that can be discarded. As another option, the content type may be determined by examining a header of the downloaded content. Note that whereas a successful multi-source download of a piece of sought digital content confirms the suspicion that the content is available over a file sharing network  104 , such a multi-source download does not necessarily identify any one person (or entity or IP address) as a distributor of the entire piece of digital content. Optionally, only a portion of the sought digital content is downloaded using multi-source download, establishing that such a portion of the sought content is made available by the file sharing network  104 . Optionally, a multi-source download of sought digital content is automatically scheduled to be performed immediately, or at a later time, following the confirmation that a file sharing network  104  advertises availability of such content. 
         [0029]      FIG. 5   b  is a flow diagram illustrating a method for performing a single-source download of a piece of digital content, according to an embodiment of the present disclosure. Establish  218  a connection to a specific suspected distributor, and initiate  218  a download of the piece of digital content from the suspected distributor. Once content is successfully downloaded, verify  219  that the downloaded content indeed represents the sought piece of digital content. An example of verification step  219  comprises rendering the downloaded content (for example by playing a downloaded video clip or audio clip, or by displaying a downloaded image or document on a viewing screen) and using a human to verify that the downloaded content matches the sought content. Note that in addition to confirming the suspicion that the digital content is available over a file sharing network  104 , a single-source download also identifies one person (or entity or IP address) as a distributor of the entire piece of digital content. Optionally, only a portion of the sought digital content is downloaded using single-source download, establishing that such a portion of the sought content is made available by the distributor. Optionally, a single-source download of sought digital content is automatically scheduled to be performed immediately, or at a later time, following the confirmation that a distributor advertises availability of such content from an IP address. 
         [0030]    It is an advantageous aspect of the present disclosure that the several different crawler nodes  103  can have several different connections to several different file sharing networks  104 , web sites (via spidering), IRC nodes and/or other distribution nodes simultaneously. Optionally, an alert message is issued upon determining that a designated piece of digital content is found to be advertised as available on any one of the file sharing networks  104  to which one or more of the crawler nodes  103  are connected. The alert functionality enables a user to dynamically create and/or edit a “watch list” comprising one or more pieces of digital content, wherein an alert is issued if any piece of digital content on the watch list is suspected to be available on a file sharing network  104 . 
         [0031]    In addition to identifying and tracking suspected content distributors, the present disclosure optionally emulates a file sharing network  104  client application  113  on a file sharing network  104  by executing a native file sharing client application  113  appropriate for the file sharing network  104 .  FIG. 6  is a diagram showing a “slow server”  110  emulating a file sharing network  104  client application  113 , according to an embodiment of the present disclosure. The slow server  110  attempts to serve file requests from peers  111  on the file sharing network  104 , with the exception that the service is interrupted at the Operating System level by intercepting TCP/IP packets transmitted to and/or from the emulated native client application  113  in order to drop and/or ignore every p packets by not sending an acknowledgement back to the requesting peer  111 , thereby causing the TCP stack to fall into “slow packet mode”. The number p is tunable and may be initially set for example to drop one out of every three packets, such that enough packets are ignored and/or unacknowledged in order to disrupt content transmission while still responding to system packets and/or status packets in order to have the connection appear intact to requesting peers  111 . This arrangement makes it difficult for a peer  111  requesting digital content to obtain the content from the file sharing network  104 . 
         [0032]    In an alternative embodiment of the present disclosure, distributors participating in an IP telephony protocol are targeted. Crawler node  103  initiates a connection with an IP telephony network (which may be part of a file sharing network  104 ), searches for any users and/or peers who advertise their presence in an IP telephony directory, and stores any information provided by the IP telephony network and/or file sharing network  104  about such users into primary database  101 , analogous to above description for other protocols on Wide Area Networks. 
         [0033]    The foregoing described embodiments are provided as illustrations and descriptions. They are not intended to limit the disclosure to precise form described. In particular, it is contemplated that functional implementation of disclosure described herein may be implemented equivalently in hardware, software, firmware, and/or other available functional components or building blocks, and that networks may be wired, wireless, or a combination of wired and wireless. Other variations and embodiments are possible in light of above teachings, and it is thus intended that the scope of disclosure not be limited by this Detailed Description, but rather by Claims following.

Technology Category: h