Abstract:
A method includes measuring behavioral characteristics of a plurality of communication sessions in a communication network. A subset of the sessions is identified using the behavioral characteristics, such that the sessions in the subset are suspected of using a target communication protocol. A candidate session is selected from the subset. A trial communication session is initiated with a node of the communication network, which participates in the candidate session, using the target communication protocol. Responsively to receiving a positive response from the node to initiation of the trial communication session, it is determined that one or more further sessions in the plurality are using the target communication protocol. The one or more further sessions are controlled responsively to a predetermined control criterion that is applicable to the target communication protocol.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to communication networks, and particularly to methods and systems for classification of communication sessions. 
     BACKGROUND OF THE INVENTION 
     Various communication applications and network elements use Deep Packet Inspection (DPI) techniques to filter or otherwise control the flow of data packets. DPI methods examine and make decisions based on the data, or payload, carried by the data packets, and not only based on the packet headers. For example, the use of DPI methods for identifying and controlling Peer-to-Peer (P2P) traffic is described in a white paper entitled “Controlling Peer-to-Peer,” published by P-Cube, Inc., 2003, which is incorporated herein by reference. 
     Cisco Systems, Inc. (San Jose, Calif.), offers an SCE 2000 Series Service Control Engine, which performs stateful application- and session-based classification and control of application-level Internet Protocol (IP) traffic using DPI techniques. The SCE 2000 carries out protocol monitoring in order to detect and control applications such as web browsing, multimedia streaming and peer-to-peer. The SCE 2000 product is described in a data sheet entitled “Cisco SCE 2000 Series Service Control Engine,” October, 2006, which is incorporated herein by reference. 
     Service providers sometimes deploy network elements that use DPI techniques in order to identify and manage P2P traffic. The application of DPI techniques for managing P2P traffic are discussed, for example, in a white paper entitled “Managing Peer-to-Peer Traffic with Cisco Service Control Technology,” published by Cisco Systems Inc. (San Jose, Calif., February, 2005), which is incorporated herein by reference. 
     The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which: 
    
    
     
       DESCRIPTION OF EXAMPLE EMBODIMENTS 
         FIG. 1  is a block diagram that schematically illustrates a communication system that uses session classification, in accordance with an embodiment of the present invention; and 
         FIG. 2  is a flow chart that schematically illustrates a method for session classification, in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
     Overview 
     Some communication protocols are difficult to identify using known DPI methods, for several reasons. For example, some protocols do not conform to a publicly-known standard or specification. Some emerging P2P protocols and clients are difficult to identify because they use obfuscation methods, specifically intended to avoid being identified by DPI systems. Such protocols use various cryptographic means, random padding, randomly changing port numbers and other measures. Other P2P protocols are difficult to identify because they have many different client types, or variants, which have different attributes. In particular, some P2P clients are distributed as open code software, enabling users to produce client variants quickly and easily. DPI systems often have difficulties in tracking the different protocol variants and attributes in order to identify the protocols. Thus, in many cases, DPI systems are having difficulties, and are often useless, in identifying certain types of communication protocols. 
     In view of these shortcomings of known DPI methods, embodiments of the present invention provide improved methods and systems for classifying network traffic. As will be shown below, the methods and systems described herein are based on behavioral characterization and not on an analysis of the packet content. As such, the behavioral methods and DPI methods can be regarded as complementary and can be used in conjunction with one another to achieve improved traffic identification and classification. 
     The methods and systems described herein automatically identify network traffic as belonging to a certain communication protocol. The protocol whose identification is sought is referred to herein as a target communication protocol. Typically but not necessarily, the target communication protocol comprises a P2P protocol. In some embodiments, a network element in a communication network identifies and controls communication sessions that use the target communication protocol. The network element monitors multiple communication sessions in the communication network, and initially attempts to identify sessions that are suspected of using the target protocol by measuring behavioral characteristics of the monitored sessions. 
     In the context of the present patent application and in the claims, the term “behavioral characteristic” is used to describe any characteristic of the form and progress of the session and not to the data (control information, user content or other data), which is conveyed in the packets. Several exemplary behavioral characteristics that can be used for identifying the suspected sessions are described below. 
     Having identified a subset of the sessions that are suspected of using the target protocol using behavioral characterization, the network element selects one of the sessions from the subset, referred to as a candidate session. The network element initiates an imitated communication session, using the target communication protocol, with a node that participates in the candidate session. For example, when the target protocol comprises a P2P protocol, the imitated session is typically initiated with a server that, which was used for content download in the candidate session. The node with which the trial session is initiated is referred to herein as a tested node. 
     The imitated session, also referred to as a trial session, is used as a means for positive identification of the protocol. In other words, if the tested node responds to the session initiation, the network element can positively conclude that the tested node indeed uses the target communication protocol. The active step of initiating a trial session using the target protocol increases the likelihood of correctly identifying the target protocol, and avoids false identifications that are common in behavioral classification methods. 
     Having positively determined that the candidate session and the nodes participating in it use the target communication protocol, the network element extracts one or more parameters from the candidate session and uses these parameters to determine whether other sessions use the target communication protocol. In particular, the network element may classify the other suspected sessions in the subset. 
     The network element can control the sessions identified as using the target communication protocol in a number of ways. For example, the network element may filter or block a certain protocol while allowing other protocols to pass. Additionally or alternatively, the network element can allocate network resources, such as bandwidth, memory and processor resources, to different sessions based on the communication protocols they use. 
     As will be explained below, the classification methods described herein can be used in conjunction with known DPI methods. For example, a DPI system can provide initial hints or suggestions for identifying the suspected sessions. Additionally or alternatively, the network element may initially attempt to classify sessions using DPI, and revert to the methods described herein when DPI fails. 
     The methods and systems described herein can identify the communication protocol used by a communication session, even when the protocol employs countermeasures intended to evade detection by DPI methods. Moreover, the processing complexity of the methods and systems described herein is considerably lower in comparison with DPI methods. Thus, a network element based on the disclosed classification methods can have lower cost and/or may handle larger amounts of traffic, without compromising classification accuracy and reliability. 
     System Description 
       FIG. 1  is a block diagram that schematically illustrates a communication system  20 , in accordance with an embodiment of the present invention. System  20  comprises a network element (NE)  24 . In the description that follows, NE  24  comprises a network-edge router that is operated by an Internet Service Provider (ISP), although the functions of NE  24  that are described herein can be embodied in various types of network elements, such as routers, switches, bridges and access concentrators. 
     NE  24  monitors communication sessions conducted among nodes  28  of a communication network  32 . Network  32  comprises a packet network, typically an IP network, and may comprise a Wide Area Network (WAN) such as the Internet, a Metropolitan Area Network (MAN), a Local Area Network (LAN), an Intranet of a certain organization, a wireless network, or any other suitable communication network. 
     Nodes  28  of network  32  communicate with one another by conducting communication sessions. A communication session typically comprises sequences of data packets that are exchanged between the nodes. Each session is conducted in accordance with a certain communication protocol. For example, some of nodes  28  may communicate using P2P protocols such as Kazaa, eMule, Gnutella and BitTorrent. Typically, each node  28  comprises software clients of the communication protocol or protocols it uses. 
     A node may communicate with one or more other nodes within a given session. The point-to-point communication between a pair of nodes is referred to as a flow. When a session is held between two nodes, the session comprises a single flow. Other sessions may involve more than two nodes and comprise multiple flows. For example, in a P2P session, a node may download content from multiple nodes by opening respective multiple flows. A node may open and close multiple flows during a given session. A flow can be defined, for example, using a 5-tuple of the subscriber IP address and port, the network IP address and port, and the transport protocol used. Alternatively, flows may be defined using other suitable sets of parameters. 
     NE  24  comprises a network interface  36 , which receives incoming data packets from network  32  and sends outgoing data packets to the network. A data path  38  processes the incoming and outgoing data packets. Data path  38  is typically implemented in hardware or firmware, and may be configured to perform various actions on incoming and outgoing data packets. For example, the data path may selectively filter out (i.e., block) certain communication sessions and/or limit the bandwidth allocated to certain sessions. NE  24  uses data path  38  to control certain communication sessions based on the communication protocols they use, as will be explained in detail below. 
     NE  24  comprises one or more packet processors  40 , which carry out packet routing, bridging or other packet processing functions, depending on the desired functionality of the network element. NE  24  comprises a classification processor  42 , which carries out the classification methods described herein. In particular, processor  42  attempts to identify sessions, which are conducted using one or more target communication protocols that are of interest. As part of the identification process, processor  42  sometimes initiates imitated, trial communication sessions with the nodes that originate sessions suspected as using the target protocols. For this purpose, NE  24  comprises one or more clients  46  of the target communication protocols. 
     In some embodiments, NE  24  applies DPI techniques in conjunction with the classification methods described herein. In these embodiments, NE  24  comprises a DPI engine  48 , which analyzes data packets processed by NE  24  using DPI methods. In some embodiments, DPI engine  48  may comprise a known DPI system, such as the Cisco SCE 2000 product, cited above. 
     Typically, classification processor  42  comprises a general-purpose computer, which is programmed in software to carry out the functions described herein. The software may be downloaded to the computer in electronic form, over a network, for example, or it may alternatively be supplied to the computer on tangible media, such as CD-ROM. In some embodiments, the functions of processor  42  can be embodied in a DPI system, such as the SCE 2000. 
     Combined Behavioral and Active Session Classification 
     In various networks and applications, NE  24  is configured to provide differentiated service to different communication sessions, depending on the communication protocols they use. For example, an ISP may wish to block all sessions that use a certain P2P protocol, allocate only a certain amount of bandwidth to a certain protocol, assign different processing priorities to different protocols, or otherwise provide differentiated, protocol-dependent operation. 
     In order to provide such differentiated operation, communication sessions should be classified based on the protocols they use. As noted above, some communication protocols and clients are purposely designed to obfuscate identification and classification systems. For example, a Java-based BitTorrent client called Azureus uses data encryption and random-length packets. Other protocols have many different versions and variants that users develop over time. 
       FIG. 2  is a flow chart that schematically illustrates a method for session classification which overcomes these difficulties, in accordance with an embodiment of the present invention. The description that follows addresses the identification of a certain target P2P protocol. In alternative embodiments, however, the method can be used to identify any number of target protocols. 
     The method begins with NE  24  monitoring communication sessions conducted in network  32 . Within the monitored communication sessions, classification processor  42  identifies a group of sessions that are suspected of using the target communication protocol, at a suspect group identification step  50 . Processor  42  identifies the suspected sessions by measuring behavioral characteristics of the monitored sessions, and selecting sessions whose behavioral characteristics are indicative of the target protocol. 
     For a certain monitored session, the behavioral characteristics evaluated by processor  42  may be based on, for example, the ratio between upstream and downstream traffic in the session, the distribution of packet sizes in the session, the distribution of packet arrival times, the number of open connections within the session, and/or the rate of opening of new connections during the session. Opening of both Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) sessions between the same pair of nodes can also be used as a behavioral indication. Additionally or alternatively, any other suitable behavioral characteristic can be used. The behavioral characterization is not necessarily limited to the scope of a single session, and may sometimes be carried out over multiple sessions, e.g., past sessions of a certain user or node. 
     In some embodiments, DPI engine  48  may assist processor  42  in determining the suspected sessions. For example, the DPI engine can provide “hints” to processor  42 , i.e., point to certain sessions that are likely to be of interest. The DPI engine may point to sessions based on, for example, the amount of bandwidth that the DPI process was unable to classify, the number of concurrent open flows, and/or any other logic, rule or heuristic. 
     Having collected a group of suspected sessions, processor  42  selects a candidate session from the group, at a candidate selection step  54 . Processor  42  attempts to determine whether or not the candidate session indeed uses the target communication protocol. 
     In some embodiments, NE  24  initially attempts to classify the candidate session using DPI engine  40 , at a DPI classification step  58 . If the DPI engine is successful in classifying the candidate session, as checked at a DPI success checking step  62 , classification processor  42  positively identifies the candidate session as using the target protocol, at a positive identification step  86 . 
     Having positively classified the candidate session, processor  42  extracts one or more parameters from the candidate session, which will assist in associating other sessions with the target protocol, at a parameter extraction step  66 . For example, some protocols use a constant port number. In such cases, a session having the behavioral characteristics of the target protocol and has the same port number as the positively-identified candidate session can be safely identified as using the target protocol, as well. As another exemplary parameter, some protocols, such as eMule, apply a padding pattern to the data packets. The padding pattern is constant per node, and therefore, when extracted, can be used to characterize other sessions of the host in question. Thus, when the target protocol comprises the eMule protocol, the padding pattern applied in the candidate session can be detected and used for associating other sessions of the same node that use the target protocol. 
     Processor  42  classifies other communication sessions using the parameters extracted from the candidate session, at a classification step  70 . In particular, the other sessions in the group identified at step  50  above, which have the behavioral characteristics of the target protocol, can be classified using the extracted parameters. Additionally or alternatively, processor  42  may classify other sessions, such as subsequently-arriving sessions. 
     In some cases, however, the DPI process carried out at step  58  above fails to classify the candidate session. The DPI process may fail because of obfuscation measures of the protocol, or for any other reason. When the DPI process fails, as checked at step  62  above, processor  42  attempts to positively classify the candidate session using active means. Processor  42  initiates a trial communication session with a node that participated in the candidate session, at a session initiation step  74 . The node with which the trial session is initiated is referred to as a tested node. When the target protocol comprises a P2P protocol, the tested node typically comprises a server, which was used for content download in the candidate session. 
     Processor  42  invokes one of clients  46  to initiate the trial session with the tested node using the target protocol. The assumption is that if the tested node responds to a session initiation that uses the target protocol, it can be safely identified as using this protocol. Typically, processor  42  attempts to connect to the IP address and port of the tested node. 
     Processor  42  checks whether the tested node responds to the trial session initiation, at an initiation success checking step  78 . If the tested node responds correctly, i.e., responds using the target protocol, processor  42  positively associates the candidate session with the target protocol at step  86 . The method continues, as described above, to extract parameters from the positively-classified candidate session and classify the other sessions using the extracted parameters. If the tested node does not respond correctly using the target protocol, processor  42  concludes that the candidate session does not use the target protocol, at a negative classification step  82 . 
     In some embodiments, clients  46  choose the source IP addresses that they use in the trial session initiation in accordance with two objectives: (1) cause the trial session to be routed to network element  24 , and (2) prevent “blacklisting” and “whitelisting” of the IP addresses used for trial sessions. 
     For example, in some embodiments clients  46  initiate the trial session using a temporary IP address that is within the same subnet mask of the IP address used by the tested node in the candidate session. This choice of IP address causes each trial session to use a different IP address, which prevents other nodes from detecting the trial sessions and “blacklisting” the IP addresses they use. In addition, since the trial session initiation uses the same subnet mask, the trial session will be routed via the same routing path as the candidate session, i.e., to NE  24 . 
     Consider an exemplary scenario in which the candidate session is held between two nodes, referred to as a network-side node and a subscriber-side node. The network-side node uses an IP address denoted IP net , and the subscriber-side node uses an IP address denoted IP sub . In this scenario, when the tested node comprises the network-side node, NE  24  may contact the network-side node using a temporary IP address equal to IP sub +1. When the tested node comprises the subscriber-side node, NE  24  may contact the subscriber-side node using a temporary IP address equal to IP net +1. When IP+1 deviates from the subnet mask of the tested node, IP−1 can be used instead. Further alternatively, any other choice of IP address that remains within the subnet mask of the tested node can also be used. 
     Typically, the source port used in the trial session initiation is random. In alternative embodiments, NE  24  may select any other suitable choice of attributes, such as IP addresses and port numbers, for the trial session initiation. 
     In some embodiments, the method of  FIG. 2  can be carried out without the presence or assistance of a DPI process. In these embodiments, steps  58  and  62  are omitted, and processor  42  actively initiates a trial session with the tested node without first attempting to classify the session using DPI. 
     Although the embodiments described herein mainly address classifying and controlling P2P protocols, the principles of the present invention can also be used for identifying and managing other types of communication protocols, such as Skype™, Yahoo!® Messenger, Post Office Protocol 3 (POP3) or any other protocol. Additionally or alternatively to managing sessions based on the communication protocols they use, the methods and systems described herein can be used to control sessions based on the communication services they consume (e.g., provide different service levels to web-browsing, video streaming and P2P sessions), and/or based on the applications they use. 
     In the embodiments described herein, the data packets pass through the network element, which classifies the sessions and regulates the packet flow. In alternative embodiments, however, the classification and regulation functions can be split between two different network elements. In other words, a first network element may identify the protocols and classify the sessions, and another network element, triggered by the first network element, may regulate the packet flow. 
     It will thus be appreciated that the embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.