This invention relates generally to data communications, and, more particularly to a method and system for real-time reassembly of Asynchronous Transfer Mode (ATM) data.
In general terms, a computer network is a collection of end systems (also known as nodes) interconnected through one or more communication links. Generally, the end systems both send data (messages) to other end systems on the network and receive data sent by other end systems on the network.
Among available digital switching technologies, Asynchronous transfer mode (ATM) provides a promise of greater integration of services and increased flexible utilization of the network. Asynchronous transfer mode (ATM) configured networks allow high-speed data, voice and video communications to be conducted between endpoint computer systems. ATM networks, which are based on the transmission of fixed-length data packets, have proven to be extremely useful because they combine the benefits of both a switched network (i.e., constant transmission delay, guaranteed capacity) and a packet switched network (i.e., flexibility and efficiency for intermittent traffic).
In applications utilizing ATM, messages at a source are first broken up into these fixed length packets (ATM cells), transmitted, and then reassembled at a destination. ATM cells are 53 bytes long. They consist of a 5-byte header (containing an identifier of data flow which implicitly identifies the source address and the destination address) and a 48-byte information field. The header of an ATM cell contains all the information the network needs to relay the cell from one node to the next over a pre-established route. User data is contained in the remaining 48 bytes.
ATM uses a concept of virtual networking (or channels) to pass traffic between two locations, establishing virtual connections between a pair of ATM end-systems which are needed to connect a source with a destination. These connections are termed “virtual” to distinguish them from dedicated circuits. For any message, ATM cells always traverse the same path from source to destination. However, ATM does not have to reserve the path for one user exclusively. Any time a given user is not occupying a link, another user is free to use it.
ATM connections exist only as sets of routing tables held in each network node, switch, or other intermediate system, based on the virtual circuit identifier (VCI) and virtual path identifier (VPI) contained in the cell header. When a virtual path is established, each node (or switch) is provided with a set of lookup tables that identify an incoming cell by header address, route it through the node to the proper output port, and overwrite the incoming VCI/VPI with a new one that the next node along the route will recognize as an entry in its routing table.
The cell is thus passed from switch to switch over a prescribed route, but the route is “virtual” since the facility carrying the cell is dedicated to it only while the cell traverses it. Two cells that are ultimately headed for different destinations may be carried, one after the other, over the same physical wire for a common portion of their journey.
Typically, an ATM Network Interface Card (NIC) and accompanying software are provided within the sending (or receiving) endpoint computer systems to transmit (or receive) the cells of a message over a virtual circuit. On the receiving end of the ATM network is another endpoint computer. This endpoint computer also includes a NIC that receives the incoming cells in the same order as they were transmitted. As the cells are received, it is the task of NIC and/or processor to reassemble the cells into the original message.
Conventional NICs can be described according to the reassembly method utilized. In one reassembly method, the NIC provides receives cells, places the received cells in a FIFO buffer, processes the cell information, and provides the processed cell information to the system memory. The NIC manages reassembly buffers in system memory, sending a received cell to the appropriate buffer based on its virtual circuit identifier and thereby reassembling the message. However, it is the responsibility of the user (and the device driver) to provide sufficient system bus bandwidth so that a substantially fixed rate of transfer (between the NIC and the system memory) is maintained. This type of reassembly is used, for example, in the IDT77252 product available from Integrated Device Technology Inc. of Santa Clara, Calif. Another reassembly method attempts to reduce the burden on the interconnecting devices and buses by providing enough memory on-board the NIC to store a complete message before transfer. Thus, with this type of NIC the entire message is reassembled in the NIC's local memory and then is transferred at one time from the NIC to the host memory.
In the reassembly techniques described in U.S. Pat. No. 6,097,734, reassembled cells are collected in groups of variable (programmable) size and sent to the host computer.
In the above described techniques, the reassembly does not occur in real-time. In order to monitor the performance of the network, an instrument utilizing real-time reassembly is desirable since such an instrument would introduce minimal delays in the transmission through the network. There is a need for methods and systems for reassembling, in real-time, the data received over an ATM network.
It is therefore an object of this invention to provide methods and systems for the real-time reassembly of data received over an ATM network.
It is a further object of this invention to provide systems for the real-time reassembling of messages from cells received over multiple ATM links.