A NETWORKING ELEMENT ADAPTED TO RECEIVE AND OUTPUT ALSO PREAMBLES OF DATA PACKETS OR FRAMES
The present application hereby claims priority under 35 U.S.C. §119 on US patent publication number 60/340,984 filed December 7, 2001 , the entire contents of which are hereby incorporated by reference.
The present invention relates to a networking element, such as an Ethernet switch, router, or repeater, which is adapted to receive non-trivial preambles of data packets or frames and to output these - such as as parts of the same or other data packets or frames.
In a first aspect, the invention relates to a networking element adapted to receive and output data packets or frames, the element comprising:
- one or more input ports or means for receiving a packet or frame comprising a data part and a preamble part, one or more output ports for outputting at least the data part of a received packet or frame, means for outputting the preamble part of a received packet or frame.
Network units may be any unit used for networking, such as Ethernet/ATM switches, routers, bridges, repeaters, hubs, Network Interface Cards or computers.
The primary feature of the invention is the fact that the preamble, which in Ethernet has been originally used for receiver synchronization, is now both received and output by the networking element. This preamble may comprise valuable information relating to the packet, the transmitting networking element, information for the present or a subsequent networking element - or simply be part of a side band channel being a communication channel "piggy backing" on the Ethernet packets.
Thus, it should be clear that the preamble is not a part of the packet or frame originally used for holding data or addressing information (such as MAC or IP addresses in Ethernet packets). In Ethernet or IEEE 802.3 packets, the preamble is the 7 bytes of alternating "1"'s and "0"s preceding the addressing or routing information.
In the present context, a data packet or frame may be any type of data packet or frame having a preamble and a data part, such as packets or units conforming to a standard having one or more address fields, at least one data field and a header having a predetermined bit pattern. Standards of this type may be the Ethernet standard, the standards of IEEE 802.1 , 802.3, Token Ring, or FDDI.
The preferred networking element has a plurality of output ports and means for determining from which output port to output at least the data part of a received packet or frame. A networking element of this type may be a switch, router, repeater, or hub and which is connected to each port to a computer or network (spanning from a single computer to the WWW).
In that situation, the determining means may be adapted to perform the determination on the basis of: - an identity of the input port at which the first data packet or frame was received, information comprised in the data part of the first data packet or frame, and/or information comprised in the preamble part - where the outputting means could then be adapted to output the data packet or frame from the output port determined (including the preamble).
In a number of situations, it may be desired to also have means for altering the preamble part prior to outputting. This may both be the situation when the information in the preamble relates to the packet (such as in a multicast packet providing information as to where copies have been sent or are to be sent) or relates to the networking element (for providing other networking elements with a status or other information).
This altering could be provided by performing an algorithm on information from the preamble and providing the result of the algorithm in the altered preamble.
An interesting embodiment is one comprising means for determining from which port to output a preamble part received as part of a first data packet or frame.
Thus, the data packet or frame received is now taken as comprising two separate parts, which may be routed or switched independently of each other. This is an advantage when
the information in the preamble is not related to the rest of the packet and is desired to take a different route than the rest of the packet. This may be the case when the preamble relates to managing information (for managing network elements) or an independent communication channel.
In this situation, the element preferably further comprises means for adding the preamble part to a data part received as part of a second data packet or frame to be output from the same output. Thus, the preamble part will "piggy back" different data parts before and after the routing/switching in the networking element.
As is the case with the data part, the preamble determining means could be adapted to perform the determination on the basis of:
an identity of the input port at which the first data packet or frame was received, information comprised in the preamble part, and/or information comprised in the data part of the first data packet or frame.
The identity of the input port may be used when a specific route through a network is desired. This may be the case when managing the network.
The preamble part may itself comprise routing information as to where to go - and the determining means may have a look-up table quite as is known for normal Ethernet switching.
The receiver/transmitter of the actual data part may also define where to send the preamble part - even though the data and preamble parts are not going to the same recipient. This receiver/transmitter may be seen in the MAC addresses or IP addresses - or higher-level addressing/routing information of the packet or frame. Preambles to or from a predetermined MAC/IP address may be predetermined to go to a given recipient - or to follow a given route.
An interesting embodiment has means for providing information relating to a data packet or frame received, means for providing an altered preamble part by replacing at least part of the preamble part of the received packet or frame with at least part of the information
provided, and wherein the outputting means are adapted to output at least the altered preamble part.
And especially when the outputting means are adapted to output the received data packet or frame including the altered preamble part, the packet transmitted may comprise e.g. routing information for use in subsequent networking element or statistical information or the like for later use.
In one embodiment, the outputting means are adapted to combine a plurality of preamble parts before outputting. Thus, if the preamble parts actually form part of a larger data portion or even a stream of data, this portion or stream may be assembled (such as timed, error checked or the like) prior to outputting. This outputting may not be via a normal packet or frame I/O port of the networking element by via a special purpose output of the networking element.
Similarly to that, the present element may comprise means for receiving additional information, to divide the additional information into a plurality of additional information parts, and to provide altered preambles of received data packets or frames by replacing at least part of each preamble part of the received data packets or frames by at least one additional information part, wherein the outputting means are adapted to output at least the altered preamble parts. This is a similar communication in the opposite direction.
This additional data could be data packets or frames, which are simply divided and transmitted as side band information in order to utilize the bandwidth on the communication medium between two networking elements. If too many frames or packets desire transmission, part of these may be divided and put into the preambles of others. In that manner, more frames or packets are transmitted on the same communication link.
The additional information may be managing information between networking element by which a manager pushes information to a networking element or requests information or via which the networking element provides information to the manager.
A second aspect of the invention relates to a method of receiving and outputting a data packet or frame, the method comprising:
receiving a packet or frame comprising a data part and a preamble part, outputting at least the data part of a received packet or frame, outputting the preamble part of a received packet or frame.
Again, the method may comprise determining from which output port to output at least the data part of a received packet or frame.
Then, the determining step may be performed on the basis of: an identity of the input port at which the first data packet or frame was received, information in the data part of the first data packet or frame, and/or information in the preamble part - where the outputting step then could comprise outputting the data packet or frame from the output port determined, (including the preamble)
The method could also comprise altering the preamble part prior to outputting.
An interesting embodiment further comprises determining from which port to output a preamble part received as part of a first data packet or frame. This determining step could be performed on the basis of:
an identity of the input port at which the first data packet or frame was received, information comprised in the preamble part, and/or - information comprised in the data part of the first data packet or frame.
The method preferably comprises adding the preamble part to a data part received as part of a second data packet or frame to be output from the same output.
As described above, the outputting means may be adapted to combine a plurality of preamble parts before outputting.
Also, the method may comprise receiving additional information, dividing the additional information into a plurality of additional information parts, and providing altered preambles of received data packets or frames by replacing at least part of each preamble part of the
received data packets or frames by at least one additional information part, wherein the outputting step comprises outputting at least the altered preamble parts.
An interesting embodiment is one which comprises providing information relating to a data packet or frame received, providing an altered preamble part by replacing at least part of the preamble part of the received packet or frame with at least part of the information provided, and outputting at least the altered preamble part. Preferably, then, the outputting step comprises outputting the received data packet or frame including the altered preamble part.
In the following, the invention will be described with reference to the drawing wherein:
Fig. 1 illustrates standard Ethernet frame,
Fig. 2 illustrates the frame of Fig. 1 with an altered header position comprising additional data,
Fig. 3 illustrates the data frame of Fig. 2 now also comprising error correction data, and
Fig. 4 is an overall block diagram of the networking element according to the invention.
Fig. 1 illustrates a data frame in accordance with the Ethernet standard used for transmitting data for example through a network such as a local area network (LAN), metropolitan area network (MAN), wide area network (WAN) or an internetwork (Internet). Ethernet is a widely spread communication medium compatible with a wide multiplicity of types of central processing units. Further, the Ethernet is a good and cheap alternative to normal central processing unit busses such as PCI based solutions, when several physically widely distributed chips or system elements need to be controlled.
The data frame, shown in Fig. 1 and designated in its entirety by reference numeral 50, comprises several separate fields. The first field designated the header or the 'Preamble' field generally carries a 7 BYTE sequence of alternating "1" and "0" values originally used for synchronization between receiver and transmitter. The 'Preamble' field serves to give devices in a network time to detect the presence of a signal of a new data frame on the network.
A start frame delimiter designated by 'S' and following the 'Preamble' field in Fig. 1 provides one BYTE of a particular bit sequence recognised by devices in the network as a beginning of a new data frame.
A destination MAC address designated by 'DA' and following the 'S' field of the data frame shown in Fig. 1 comprises a 6 BYTE address identifying the device or devices that are to receive the data frame.
A source MAC address designated by 'SA' and following the 'DA' field of the data frame shown in Fig. 1 comprises a 6 BYTE address identifying the device originating the data frame.
The IEEE 802.3 standard permits the source and destination address fields to have a length of either 2 BYTES or 6 BYTES, but virtually all Ethernet implementations used today apply the 6 BYTE address. A destination address 'DA' may specify either an address of a single receiving device, a multicast address of a multiplicity of devices, or a broadcast address identifying all devices in a network.
A length/type field designated by T and following the 'SA' field shown in Fig. 1 comprises 2 BYTES indicating either the length of the subsequent number of BYTES of the following MAC client data field or the nature of the MAC client protocol (protocol type). The value of the length/type field determines when the length/type field should be understood as a length of the MAC client data field and when the length/type field should be understood as a type of the MAC client protocol.
As described above the MAC client data field designated by 'DATA' in Fig. 1 follows the T field and contains the data to be transferred from the originating device to the receiving device or devices. The 'DATA' field has a maximum length of 1500 BYTES and a minimum length of 46 BYTES. In case the 'DATA' field is shorter than 46 BYTES padding is incorporated so as to obtain a 'DATA' field having the minimum length.
A frame check sequence designated by *FCS' and following the 'DATA' field shown in Fig. 1 comprises a 4 BYTE cyclical redundancy check (CRC) value used for error checking. As a source device assembles a data frame, it performs a CRC calculation on all the bits in the data frame from the destination MAC address through possible padding (that is, all
fields except the preamble, start frame delimiter, and frame check sequence). The source device stores the calculated value in the 'FCS' field and thus transmits the value as part of the data frame. When the data frame is received at the destination device or devices, then the receiving device performs an identical calculation and checks if the received value is equal to the new calculated value. If the calculated value does not match the value in the 'FCS' field, the receiving device will assume an error has occurred
In the present context, the preamble part of the packet will be the "preamble" and any additional information 71 (See below) as well as any corresponding error check information 92. The addressing part(s) S, DA, SA, T (as well as any higher level addressing information such as IP addresses) will not form part of the preamble and may be considered part of the data part if not denoted a routing part by itself.
In Fig. 2, part(s) of the preamble or header of the standard frame 50 - the altered frame being identified by 70 - has been replaced by additional data 71. In this manner, synchronization may still be possible using the smaller header - but especially when using higher bandwidth communication these headers are, in fact, not used whereby this replacement has no other effect than more data being carried by the frame 70. Due to the fact that the header/preamble is easily re-established after transmission, the data 71 may be retrieved from the transmitted frame 70 and the header/preamble re-established before further transmission or use of the frame (the unaltered or re-established frame being named 50).
It is desired that the additional information 71 , as the data portion of the frame, is protected by error protection information. Thus, as may be seen in Fig. 3, error detection data 92 may be added to the frame 70, now identified by 90. These error detection data 92 are calculated on the basis of the additional data 71 and optionally any other part(s) of the frames 50, 70, or 90. This calculation is predetermined so that a receiving means may perform the same calculation on the same data in order to determine whether this data has been transferred correctly. As may be seen, also these error detection data 92 are positioned in the header/preamble in order to not alter any other part of the frame 90 - including the overall length of the frame 90 compared to the frames 50 and 70.
In the presently preferred embodiment, a total of 5 bytes of additional data 71 are introduced into the header or preamble and 1 bytes of error check data 92, determined as a CRC of the additional data 71 is used.
Fig. 4 illustrates an overall description of an Ethernet switch embodying the invention. The switch 10 comprises four I/O ports 12, a switching core 14 adapted to receive the data parts (including any routing or addressing information), to determine from which port to output the data part and to route the data part to that port for outputting.
A preamble routing element 16 is provided for receiving the preambles of the data packets or frames received and for determining from which port, if any, to output the preamble.
Means 18 are provided for separating the preamble and data parts of the received data packets or frames and for reassembling these prior to outputting.
The means 14 and 16 may perform their determinations in one of a number of manners:
the means 14 may determine the output port on the basis of: o the identity of the input port, o information in the data part (primarily of the routing information in the data part), and/or o information derived from the preamble part of the packet - transferred from the means 16 via arrow 22 - the means 16 may determine the output port on the basis of: o the identity of the input port, o information in the preamble part, and/or o information derived from the data part of the packet - transferred from the means 16 via arrow 22.
Also, the part 16 may perform an altering of the preamble part prior to outputting. This altering may be so as to inform subsequent networking elements of a status of the present networking element or so as to inform the subsequent networking elements of a status of the data part - such as for use during a multicast of the packet for subsequent
networking elements to know to which other elements to send the packet - or which to not send it to.
A sideband channel 20 is also provided for e.g. receiving a stream of data or additional data of any kind, where the means 16 divides this, if required, into smaller parts, determined from which port to output the data and transmits corresponding preambles (or data for introduction into preambles) to the corresponding means 18 which will then introduce the preambles or data in data parts received from the means 14 to that output.
The channel 20 may also operate in the opposite direction where preambles or data received by the means 16 is found to be output on the channel 20 whereby it is transmitted thereto by the means 16- optionally first assembled into larger data packets or frames - or into a stream of data.