Abstract:
Described is a method and arrangement for managing a network which is coupling at least a first component and a remote component. A database is transmitted from the first component to the remote component via the network. The database includes filter data having at least one condition and action data corresponding to the at least one condition. A data packet is transmitted from the first component to the remote component via the network. The data packet includes a plurality of fields and data. The fields of the data packet are filtered at the remote component to determine if the at least one condition is satisfied.

Description:
FIELD OF THE INVENTION 
     The present invention relates to an arrangement and method for providing a flexible management of a network. 
     BACKGROUND OF THE INVENTION 
     Most of conventional network interface cards (“NICs”) are essentially passive devices. A basic functionality of the conventional NICs is to send and/or receive data packets between components (e.g., desktops, servers, etc.) of the network. In addition, the conventional NICs provide a simple management and a consistent level of performance in switched or shared networks regardless of a software application. The conventional NICs do not directly “interact” with other network components and do not participate in managing of network resources and services. 
     Some conventional software applications for managing the network, groupware, priority business applications, multicast-based applications, and multimedia applications require the network to be capable of monitoring traffic levels, enforcing policies and adjusting the resource. Delivering these and other functionalities (e.g., creating a virtual local area network (“VLAN”)) while controlling complexity, requires that the network components interact with the network. 
     Although, there are some conventional network packet classification (or filtering) systems which are utilized in conventional networks (e.g., a network sniffer), such conventional network packet classification systems are primitive and do not provide assistance in an intelligent network management. 
     SUMMARY OF THE INVENTION 
     The present invention relates to a method and arrangement for managing a network which is coupling at least a first component and a remote component. A database is transmitted from the first component to the remote component via the network. The database includes filter data having at least one condition and action data corresponding to the at least one condition. A data packet is transmitted from the first component to the remote component via the network. The data packet includes a plurality of fields and data. The fields of the data packet are filtered at the remote component to determine if the at least one condition is satisfied. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows an electronic arrangement coupled to a network according to an embodiment of the present invention. 
     FIG. 2 shows another embodiment of the arrangement of FIG. 1 according to an embodiment of the present invention. 
     FIG. 3 a  shows an embodiment of a data packet. 
     FIG. 3 b  shows another embodiment of the data packet which includes an additional field according to an embodiment of the present invention. 
     FIG. 4 shows a first phase of a method according to an embodiment of the present invention. 
     FIG. 5 shows a second phase of the method according to an embodiment of the present invention. 
     FIG. 6 a  shows an embodiment of a Network Management Database according to the present invention. 
     FIG. 6 b  shows another embodiment of the Network Management Database according to the present invention. 
     FIG. 6 c  shows an embodiment of a Filter Database according to the present invention. 
     FIG. 6 d  shows an embodiment of an Action Database according to the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Described below is an embodiment of an electronic arrangement or system  100  and a method according to the present invention which provide for a variety of networking functions (e.g., intelligent network monitoring, remote configuration and control, traffic prioritization, and access control). 
     FIG. 1 shows an embodiment of arrangement  100  which is coupled to a communication network  50 . Network  50  may be, e.g., a local area network, a wide area network, the Internet, etc. Arrangement  100  may be a network server, a network switch, a network router, a personal computer, a network computer, a laptop, a personal digital assistant, etc. A plurality of electronic components, similar to arrangement  100 , may be connected to network  50 . 
     Arrangement  100 , as well as the components of network  50 , may include a processor  110  (e.g., an Intel Pentium® II processor), a memory storage device  120  and a network controller  130 . Controller  130  facilitates communication between arrangement  100  and the components coupled to network  50  by transmitting (e.g., receiving and/or sending) a data packet  200  (see, e.g., FIGS. 3 a  and  3   b ). Controller  130  may include a communication arrangement  190  for transmitting packet  200 . In this embodiment, communication arrangement  190  is controlled by a software driver which is stored in memory storage device  120 . In another embodiment according to the present invention, shown in FIG. 2, controller  130  may include a further processor  140  and a further memory storage device  180 . 
     Packet  200  is utilized to transmit data to and from arrangement  100 . FIG. 3 a  shows an embodiment of packet  200  which may include, e.g., four parts: a layer  2  header  210 , Internet Protocol (“IP”) header  220 , Transmission Control Protocol (“TCP”) header  230  and a data portion  270 . A configuration of packet  200  may depend, e.g. on a type of network  50  and a network protocol which is being used by network  50 . 
     Layer  2  header  210  may include a Destination Media Access Control (“MAC”) address, a Source MAC Address and a Type field (e.g., a protocol type at MAC layer). IP header  220  may include a plurality of fields containing, e.g., the following information: version, type of service, total length of packet  200 , identification, flags, fragment offset, time to live (“TTL”), protocol, header checksum, Source IP Address, Destination IP Address, options, padding. (See Internet Data Protocol, Internet RFC 791, September 1981). TCP header  230  may include a Source Port and a Destination Port. (See Transmission Control Protocol (TCP), Internet RFC 793, September 1981). 
     Data part  270  includes the data which is being transmitted by packet  200 . In addition, data part  270  may include fields characterizing the data, e.g., a description field may include a description of the data and a type field may include an indication of a type of the data. Those skilled in the art would understand that packet  200  may include additional part(s) and that each part of packet  200  may include at least one field containing predetermined information. 
     Arrangement  100  and the method according the present invention provide a flexible management of network  50 . For instance, arrangement  100  and the method allow an intelligent monitoring, a remote configuration and control, a traffic prioritization, and a controlled access of network  50 . This is an exemplary list of the network functions; other network functions would be readily apparent to one skilled in the art. 
     An embodiment of the method according to the present invention includes at least two phases: a first phase and a second phase. The first phase, shown in FIG. 4, begins with creating a Network Management Database (“NMD”)  600  or updating NMD  600 , if NMD  600  is already in existence (step  303 ). 
     NMD  600 , shown in FIG. 6 a , is a database which contains network policies regarding the usage of network  50 . The network policies may be determined, e.g., by a network coordinator. The network policies are stored (e.g., compiled) as queries. Each query may include at least two components: a condition component and an action component (e.g., &lt;Condition, Action&gt;). If the condition component of the query is satisfied, then the action component should be executed. 
     The condition component for each query may include a filter or plurality of filters combined using logical connectors, such as AND, OR, NOT, etc. For example, the condition component may include the following: “IF source IP address of packet  200  is “User A” AND description field of packet  200  is “Urgent”. The action component includes a description of the action(s) that need to be executed upon satisfaction of the condition component. For example, the action component may contain the following: “THEN forward a copy of packet  200  to User B and User C AND set priority of packet  200  to “1”. 
     In an alternative embodiment of the present invention, shown in FIGS. 6 b - 6   d , NMD  600  may have different structures. Instead of including the condition and action components, NMD  600  may include pointers to other databases. For example, the condition component may include at least one pointer to a Filter Database  640  (shown in FIG. 6 c ) which stores filters. For example, the condition component may include the following: “IF Filter A AND Filter B”. Filters A and B include pointers to Filter Database  640  which stores a description of Filter A (e.g., “source IP address is “User A””) and Filter B (e.g., “description field is “Urgent””). 
     Similarly, the action component may include at least one pointer to an Action Database  680  (shown in FIG. 6 d ) which stores a description of action(s) that can be taken. For example, the action component may include the following: “THEN Action I AND Action II”. Actions I and II include pointers pointing to Action Database  680  where descriptions of Action I and II are stored (e.g., Action I: “send a copy of packet  200  to User B and User C” and Action II: “set priority of packet  200  to “1”). 
     After NMD  600  is created/updated, arrangement  100  may begin initialization of network  50  by determining enabled components of network  50  that have a controller  130  and are currently enabled (i.e., active) (step  305 ). Alternatively, a list of the enabled components may be provided to arrangement  100 . Then, arrangement  100  transmits NMD  600  to the enabled components of network  50  (step  315 ). NMD  600  may be stored in memory device  120  and/or further memory device  180  of the enabled components. The first phase may be executed by arrangement  100  periodically (preferably, when network&#39;s  50  usage is at its lowest level) and/or every time when NMD  600  is updated. 
     After the completion of the first phase (step  320 ), the second phase, shown in FIG. 5, begins with packet  200  being received by controller  130  (step  405 ). Then, controller  130  initiates a Packet Classification Engine (“PCE”) which may be implemented as a software application (stored, e.g., together with the software driver and executed by a processor or the like) or as hardware. 
     First, the PCE determines the fields of packet  200  (step  410 ). The fields of packet  200  are matched against the condition component of the query(ies) stored in NMD  600  (step  415 ). If the condition component is satisfied, controller  130  executes the action component (step  420 ). For example, if packet  200  contains “User A” in source IP address and “Urgent” in description field, then controller  130  would forward a copy of packet  200  to Users B and C, and set priority of packet  200  to “1”. Packet  200  would be forwarded by controller  130  to its destination (step  425 ). 
     If the condition component is not satisfied, controller  130  can simply forward packet  200  to its destination (step  425 ). Those skilled in the art would appreciate that the method may be utilized if packet  200  is generated by arrangement  100  and/or if packet  200  is received by controller  130  from a particular component of network  50 . 
     An advantageous feature of the present invention is that controller  130  may add, delete and/or change any field of packet  200 . For example, the action component may include an instruction to set priority of packet  200  to “1”. If packet  200  does not have a priority field, then, as shown in FIG. 3 b , arrangement  100  would add an additional field  280  (e.g., the priority field) to, e.g., layer  2  header  210  and set it to “1”. Similarly, controller  130  may delete and/or edit the additional field  280  or any other fields of packet  200  in real-time or periodically. 
     Another advantageous feature of the present invention is that the query of NMD  600  may be dynamically (i.e., in real-time) added, deleted and/or changed as a function of a predetermined procedure. In addition, a particular query of NMD  600  may add, delete or update another query of NMD  600 . 
     Furthermore, the PCE may be completely or partially disabled or may be activated only according to a predetermined procedure. If the PCE is completely disabled, controller  130  may be acting, e.g., as a conventional NIC. 
     An advantage of the present invention is that it may provide intelligence to the conventional NICs by allowing to simplify deployment and management of a number of network functions. In addition, the present invention greatly enhances the performance and manageability of the conventional NICs. Consequently, performance, control, and remote management of network  50  may be optimized. 
     The present invention adds a flexible and extensible architecture to controller  130  and the PCE. The PCE also enables network management functions from both local and remote management stations (i.e., from arrangement  100  and the enabled components of network  50 ). Furthermore, the present invention allows a flexible classification of packet  200  based on any combination of the fields of packet  200 . All of that can be achieved without significant changes in conventional network applications or conventional network protocol. 
     In addition, utilizing controller  130  with further processor  140  and further memory device  180  allows for a faster transmission of packet  200  to and from arrangement  100 . 
     Furthermore, the present invention allows a traffic prioritization within network  50 . Movement of packets  200  within network  50  may be controlled (i.e., prioritized) by assigning at least one priority value to each packet  200 . For example, a particular packet  200  may receive a predetermined priority based on at least one predetermined condition, e.g., source address and/or destination address (e.g., all packets  200  from user X to user Y will receive a priority  1 ). Network  50  will “treat” packet  200  according to its priority. 
     In addition, the traffic prioritization ensures that a mission-critical and delay-sensitive packet  200  gets to its destination in a timely manner. Controller  130  may prioritize packet  200  using a type-of-service field in the Internet Protocol Suite (Internet RFC 1349, July 1992), differentiated services for Internet Protocol Suite (see Definition of the Differentiated Services Fields in IPv4 and IPv6 Headers, Internet Draft, &lt;draft_iepf_diffsew_headers — 04.txt&gt;, Oct.    19 ,  1998   and the Institute of Electrical and Electronics Engineers, Inc. (“IEEE”) 802.1p priority. IEEE 802.1p “Standard for Local and Metropolitan Area Networks—Supplement to Media Access Control (MAC) Bridges: Traffic Class Expediting and Dynamic Multicast Filtering” has been incorporated into IEEE Std 802.1D-1998). 
     The present invention also provides for an intelligent monitoring of network  50 . Controller  130  may control and monitor network  50  by collecting statistical information on the movement of packets  200  within network  50 . The statistical information may include, e.g., information on a number of packets  200  received from a particular user and/or arrangement  100 . Also, the present invention allows the tracking of the enabled components of network  50  that have controller  130 . 
     Furthermore, the present invention allows a remote configuration and control of network  50 . Components of network  50  may be configured and re-configured remotely using controller  130 , NMD  600  and the method according to the present invention. The present invention eliminates the need to individually configure each particular component of network  50 . Otherwise, the network coordinator would have to configure, e.g., only arrangement  100 , and then update NMDs  600  of all of the enabled components. 
     The policies and/or resources of network  50  may be flexibly and instantaneously adjusted based on the network usage, e.g., as determined by statistical information. For instance, if the network coordinator notices that a particular component of network  50  is overloaded, the network coordinator may allocate additional components to the particular component. Such allocation can be done by adjusting NMD  600  and providing that information to all enabled components of network  50 . The adjustments may be done in real-time (i.e., instantaneously, e.g., as soon as any predetermined changes in the pattern of packets&#39;  200  movements are detected) or periodically. 
     Controller  130  also provides a support, e.g., for Remote Monitoring (“RMON”) counters or the like. (See Remote Network Monitoring Management Information Base, Internet RFC 1757, February 1995; and Remote Network Monitoring Management Information Base, version 2, Internet RFC 2021, January 1997). 
     In addition, the present invention allows an easy introduction of the network policies to control traffic of a particular component of network  50  based on predetermined criteria. 
     The present invention also facilitates a creation of, e.g., a virtual network (“VN”) such as a Virtual Local Area Network (“VLAN”) and/or a Virtual Wide Area Network (“VWAN”). The virtual network may be created by generating a query for NMD  600 . For instance, the query may include the following: if packet  200  is received from User A and a description field is “VN Alpha”, then controller  130  must forward a copy of packet  200  to every member of the VN Alpha; the VN Alpha includes users X, Y, Z. When packet  200  is received by controller  130  upon satisfaction of the above-described exemplary condition component, a copy of packet  200  will be forwarded to users X, Y, Z. In addition, the present invention provides support for VN tagging (e.g., IEEE 802.1Q-1998). (See, IEEE, “Frame Extension for Virtual Bridge Local Area Network (VLAN) Tagging on 802.3 Network,” reported in IEEE Std. 802.1Q). 
     Several embodiments of the present invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the present invention.