The present invention relates generally to computer networks, and more particularly to controlling network traffic.
Networks provide communications from one node located on a network to other nodes located on the network. The nodes are typically personal computers, workstations, file or print servers, or any other suitable device and utilize the network to communicate information to other nodes on the network. For example, a workstation on a network may communicate with a server or a printer over the network. In a more basic network, a sensor may communicate information to a base computer which may communicate information to a mechanical actuator. The base computer may communicate with a variety of sensors and a mechanical actuator to perform a desired operation.
Those skilled in the art will appreciate that they are many different types of networks. For example, the network may be a Local Area Network (LAN). The nodes on the LAN may communicate with other LANs via, for example, a Wide Area Network (WAN). To provide routing of the data within a network and to various other connected networks, the network may use equipment to facilitate routing of data. For example, switches, routers, hubs, or bridges may be used to transmit and communicate data between nodes and networks.
The network may use one or more protocols to allow the nodes to receive and transmit data. One of the most commonly used protocols is Ethernet. Ethernet allows nodes to package and transmit data to a desired node, and, once received, unpackage the data at the desired node.
A process control network (PCN) is a communications network that is used to transmit instructions and data between control and measurement nodes and equipment. Ethernet switches are part of a process control network and act as conduits to transfer packets of data within process control network nodes. Ethernet switches logically partition these packets to travel directly between their source and their destination.
Each node on a network has a unique network address called a data link control (DLC) address or media access control (MAC) address. Sending the packets directly to the desired media access control address increases security as users at varying nodes are less apt to access other user's data. By sending the packets directly to the desired location and reducing the number of packets on other segments, the overall performance and efficiency is improved. Process control networks place a high emphasis on expedient and deterministic throughput of data, while minimizing internal and external interference. Detail of process control networks are disclosed in, for example, ANSI/ISA-95.00.01-2000 Enterprise-Control System Integration Part 1: Models, ANSI/ISA 2000) and ANSI/ISA-95.00.02-2001 Enterprise-Control System Integration Part 2: Object Model Attributes: Object Model Attributes, ANSI/ISA 2001), as well as, A Reference Model for Computer Integrated Manufacturing (CIM) (Theodore J. Williams et al., 2d ed., Instrument Society of America 1989).
Accordingly, an efficient and effective system and method is needed for ensuring that the process control network is not interfered with by internal or external elements, preventing timely flow of critical data. In addition, systems and methods are needed increase the overall efficiency of a network by reducing the volume of non-critical data through the network or halting the flow of this non-critical data until a better suited time.
It is, therefore, an objective of the present invention to provide devices, systems, and methods to monitor network traffic in a process control network.
In one embodiment, a network traffic monitoring device may allow network packets to be passed on to the media access controller if one of the following conditions is achieved: the relevant data matches the predetermined criterion or the predetermined threshold of packets has not been reached. In another embodiment, the network traffic monitoring device is an ingress to a Level 1 network and contains a filter that may be implemented using a field programmable gate array. In still another embodiment, the network traffic monitoring device may select relevant data from a group comprising: critical network housekeeping, network redundancy data, and process control mission data. In yet another embodiment, the network traffic monitoring device may signal an administrator if the relevant data does not match the predetermined criteria and a predetermined amount of non-critical packets have been transmitted.
The above and other objectives and advantages of the present invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference numbers refer to like parts throughout, and in which:
Network link 100, as shown in
Packets 101 of data may be stored in a standardized Ethernet frame format including the following seven fields: preamble (PRE) 112, start-of-frame delineator (SOF) 114, destination address (DA) 116, source addresses (SA) 118, length/type 120, data payload 122, and frame check sequence (FCS) 124, as shown in
Preamble (PRE) 112 consists of six bytes of data and is an alternating pattern of ones and zeros that tells the receiving node that a frame is coming, and provides a means to synchronize the frame-reception portions of receiving physical layers with the incoming bit stream. Start-of-frame delineator (SOF) 114 may include one byte of data and is an alternating pattern of ones and zeros, ending with two consecutive 1-bits indicating that the next bit is the left-most bit in the left-most byte of the destination address. Destination address (DA) 116 may include six bytes of data and identifies which station(s) should receive the frame. The left-most bit in the destination address (DA) field may indicate whether the address is an individual address (indicated by a 0) or a group address (indicated by a 1). The second bit from the left may indicate whether destination address (DA) 116 is globally administered (indicated by a 0) or locally administered (indicated by a 1). Source address (SA) 118 may include six bytes and identifies the sending station. Source address (SA) 118 is generally an individual address and the left-most bit in the SA field is generally “0”. Length/type 120 may include two bytes of data and indicates the length/type packet data. Data payload 122 is a sequence of “n ” bytes of any value, where “n ” is less than or equal to a set amount of bytes. If the length of data payload 122 field is less than 46 bytes, data payload 122 field may be extended by adding a filler (a pad) sufficient to bring the data field length to 46 bytes. Frame check sequence (FCS) 124 may include four bytes of data and contains a 32-bit cyclic redundancy check (CRC) value, which is created by sending media access controller (MAC) 108 and is recalculated by receiving media access controller (MAC) 108 to check for damaged frames. Frame check sequence (FCS) 124 is generated over the destination address (DA) 116, source address (SA) 118, length/type 120, and data payload 122 fields.
The physical media connection (PHY) 104 allows the frame packet 101 to travel from the physical hardware to the network media access controller (MAC) 108. The physical media connection (PHY) 104 may also be defined based on the hardware type and network interface. According to an exemplary embodiment, the physical media connection (PHY) 104 provides packets 101 and control signals to a filter 106. The filter 106 is placed between the physical media connection (PHY) 104 and the media access controller (MAC) 108 and accepts the packet 101 and control signals from the physical media connection (PHY) 104 and calculates, via a position identifier, the position in the data payload 122 of the indicators of the critical information within the data payload 122.
The filter 106, as shown in
After the filter 106 passes on the critical packets and the predetermined amount of non-critical packets for the given period to a media access controller (MAC) 108, the filter 106 may withhold any packets 101 that could potentially interfere with the data flow to or within the process control network 110. According to another exemplary embodiment of the present invention, the filter 106 may drop or eliminate any non-critical packets that could potentially harm the efficient operation and packet flow of the process control network 110. Another embodiment of the present invention may have the filter 106 notify an administrator if any packets 101 are being held or eliminated before being passed along to the media access controller (MAC) 108 of the process control network 110 as shown in
The traffic counter 206 may be used in a variety of ways. For example, the traffic counter 206 may be used to determine all traffic that is passed to the process control network 110 or only a defined set of traffic passed to the process control network 110, for example, non-critical packets that are needed for operation.
The filter 106 may also have a watchdog 210. The watchdog 210 may be utilized to alert other network components or a network administrator of the status of the filter 106 or network traffic. For example, the watchdog 210 may alert a network administrator that the network traffic threshold has been reached and the filter 106 is dropping packets.
The filter 106 may be implemented using a hardwired circuitry or a Field Programmable Gate Array (FPGA) program to perform the desired operations. Architecturally in terms of hardware, the filter 106 may also include a processor, memory, and one or more input and output interface devices. A local interface may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface may include address, control, and/or data connections to enable appropriate communications among the components of a network.
The systems and methods may also be incorporated in software used with a computer or other suitable operating device of the filter. The software stored or loaded in the memory may include one or more separate programs, each of which comprises an ordered listing of executable instructions for implementing the methods and systems of the invention. The software may work in conjunction with an operating system. The operating system essentially controls the execution of the computer programs, such as the software stored within the memory, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The system and method may also include a Graphic User Interface (GUI) to allow the administrator or user to enter constraints associated with the filter 106 managing network traffic.
After the present invention determines the location of relevant data, the relevant data may be compared to the predetermined criterion (block 306). If the relevant data matches the predetermined criterion for critical control data, the packet 101 is passed to the media access controller (MAC) 108 of the process control network 110 (block 310). If the relevant data does not match the predetermined criterion for critical control data, but matches the criterion for data important to operation and the limit in non-critical, operational data flow has not been reached, the packet 101 is counted (block 308) and passed to the media access controller (MAC) 108 of the process control network 110 (block 310). If the limit in non-critical, operational data flow has been reached, the filter may drop the packet 101 or use other method discuss herein. All data that does not meet the critical or non-critical, operational criterion may be dropped.
The filter 106 determines if the packet 101 is a critical packet associated with the process control network 110 or if the packet 101 is a non-critical, operational packet (block 408). If the packet 101 is a critical packet (“Yes ” branch of block 408), the packet 101 is transmitted to the media access controller (MAC) 108 of the process control network 110 (block 410). If the packet 101 is a non-critical, operational packet (“No ” branch of block 408), the packet 101 is counted and added to the amount of non-critical network traffic (block 412). The counter 206 may be used to count only non-critical, operational network traffic as described in this exemplary embodiment or the counter 206 may also be used to count all traffic critical and non-critical, in which case the counting action may occur prior to determining if the packet 101 includes critical or non-critical data.
The filter 106 determines if a process control network traffic threshold has been received (block 414). If the threshold of non-critical, operational network traffic has not been received (“No ” branch of block 412), the packet 101 is transmitted to the media access controller (MAC) 108 of the process control network 110 (block 410). If the threshold of non-critical, operational network traffic has been exceeded (“Yes” branch of block 412), the non-critical packet may be stored in a queue (block 414). The queue may be a First In First Out (FIFO) queue. Once the network traffic received by the process control network 110 is below the threshold, the first packet in the buffer 208 is sent to the media access controller (MAC) 108 (block 410).
Persons skilled in the art will appreciate that the present invention can be practiced by other than the described examples and embodiments, which are presented for purposes of illustration rather than of limitation and that the present invention is limited only by the claims that follow.