GB2398700A - Sampling address portion of packet before it enters a router - Google Patents
Sampling address portion of packet before it enters a router Download PDFInfo
- Publication number
- GB2398700A GB2398700A GB0304044A GB0304044A GB2398700A GB 2398700 A GB2398700 A GB 2398700A GB 0304044 A GB0304044 A GB 0304044A GB 0304044 A GB0304044 A GB 0304044A GB 2398700 A GB2398700 A GB 2398700A
- Authority
- GB
- United Kingdom
- Prior art keywords
- address
- router
- packet
- data
- look
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/40—Wormhole routing
Abstract
When a data packet is received 14,15 at a router, the address portion of the packet is sampled 16,17,18 and sent to a programmable logic device 29 which looks it up in the look-up table of memory device 30 and determines an onward transmission path. Determination of the transmission path is performed whilst the remainder of the packet loads into memory 22. The address may be an IP address and the look-up means may compare the address in parts, with each respective part of the local address, in such a way that once a difference is noted, the difference value is used to generate a number, different values of which relate to different routing information depending upon which part of the target address differs from the local address. Two flags may be used in memory 22 to indicate loading, loaded, unloaded and empty states and more than one memory may be used for storing the packets (RAM A-D, fig.3).
Description
ROUTERS
This invention relates to routers. In particular, it relates to routers for routing Internet traffic. This invention primarily relates to routers provided in the vicinity of an end terminal or local area network for routing traffic either to a local terminal, or to another node in the local area network or onward to external Internet addresses.
The bandwidth or speed of an Internet connection is usually determined by the size of the connection bandwidth but the actual bandwidth achieved is dependent upon, inter alla, the speed of the various components of the network. One ofthe components that does tend to introduce delays, and therefore limit bandwidth, is a router. A router, for a local area network, or at a users terminal, receives data packets from me Internet and forwards them on to a users' terminal (generally a personal computer, PDA, interactive TV, mobile telephone and so on) the data is not intended for that address, it routes them onto another node in a local area network if the terminal is part of a local area network or onto another Internet node for onward distribution ultimately to another address on the Internet. The router also directs outgoing signals from a terminal to nodes on the local area network or
wider afield.
Referring to Figure 2, a typical TCP/IP data packet transmitted by an electronic system such as the Internet comprises several parts, transmitted serially. The first part 1 (as received, from right to left in the figure) provides the IP address of the target, ie the address where the packet is destined for. As is well-known, under present Internet protocol, an IP : À : : : À À À ::. :: ::. ::. .e address comprises four parts in the form A.B.C.D, where A, B. C or D may be any value between O and 255. This represents the unique address of the device or terminal and is generally geographical. The subsequent part of the TCP/IP packet represents the originating address or 'from' address 2. This is then followed by the binary data itself 3 which is typically up to 65 Kb and this then followed by various error correction information 4.
Presently known router designs require an entire packet to be received by the router, which can take time in itself. The router then analyses the entire packet to determine the target address and uses various techniques to determine whether the data is intended for a local terminal, a local node or for onward transmission. The packet is then reassembled and transmitted onwards accordingly. All of this takes time and is complex. Whilst it is adequate for slower bandwidth systems, it begins to become a problem if a higher bandwidth system are required.
For an optical system of data transmission, very high bandwidth may be obtained of 600 Mb/s or more and it is particularly important in these very high bandwidth systems that the router does not introduce bottlenecks or delays. The present invention arose in an attempt to provide an improved router, particularly for high bandwidth systems. 1
According to the present invention there is provided a router comprising means for receiving data packets; means for sampling an address portion of the data packet before the packet enters the router; hardware look-up means for comparing the address with a look-up À À À À À . . ::. :: ::e::. he table while the packet is being entered into the router and means for establishing an onward transmission path to a local terminal or other node depending upon the results of the look up.
According to the present invention there is farther provided a router comprising means for inputting a data packet; means for sampling and/or separating an addressed portion of the packet before it enters the router; means for establishing the next destination for the packet before or whilst the data packet is being loaded into the router and means for onwardly transmitting the packet, with address data, accordingly.
Preferably, the invention comprises at least one means for receiving a data packet; means for extracting an address from the packet; memory means for storing and subsequently transmitting the packet to a programmable logic device; means for receiving the sample for simultaneously receiving the sampled address data and comparing this with previously stored address data indicative of local and other transmission nodes; means for determining an onward transmission address for the data packet depending upon the results of the look-up, and two or more transmission ports, to which the packet is subsequently transmitted depending upon the look-up result.
Preferably, the temporary memory means comprises first in first out (FIFO) means.
The look-up table preferably comprises IF address information. If the sampled address differed in other than a local part, then the packet is automatically transferred to a À À À. : : À À : :-e:.. :.
suitable output port where it can be ultimately transferred outwards to the Internet.
The programmable logic device may alternatively comprise a plurality of selected memories, where subsequent ones of subsequent packets of data are applied to each memory in turn whilst the address data for that packet is analysed.
The invention further provides a router including means for extracting a target address of a data packet, comparing it to a local address, selecting an onward path based on the comparison, and routing the packet to an output in accordance with the selection.
There is also provided a router including a plurality of memories into which data packets are temporarily stored.
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 shows a router; Figure 2 shows a packet of data; Figure 3 shows an alternative router; Figure 4 shows a mesh network of nodes; Figure 5 is an explanatory diagram; and Figure 6 shows a look-up means.
Figure 1 shows a router arrangement at or in the vicinity of an end user who has a terminal 10 and a data output 11 (such as a modem, Ethernet port, etc) and input 12 for receiving data from the Internet. A routing arrangement comprises a router 13 in the form À . ...
À . . À À À À À e À À - 5 of a programmable logic device and receiving inputs from the output 11 from the computer and also from at least one data receiver 14, 15. These are adapted to receive signals over telephone lines or wirelessly, or may be optical receivers for optical network or optical mesh networks, as described in a co-pending patent application of the applicant. In the figure, three inputs 1 1, 14 and 15 are shown to the router but more or less than this may be used. Each of the inputs are connected to the router by means of a first respective device 16, 17 or 18 which serves to copy, or sample (i.e. extract), the initial target address part of a data packet. Usually the extraction will involve coping the address. It will be recalled from above, that a data packet on the Internet has a first part which represents the target address in IP format. From this, the signal is passed to a respective temporary memory 19, 20, 21, preferably in the form of respective FIFO devices which receive each packet and then transmits them, in the order received, to the router 13. The PLD 13 includes a RAM 22 into which received data is stored and transmits data to a selected one of two or more transmitters 23, 24 and 12. Note that transmitter 12 is actually the input to the local terminal so that a data packet intended for the local terminal is 'transmitted' to that terminal. Each transmitter is connected through a respective FIFO RAM 26, 27, 28.
The sample or separated address data is supplied to a programmable logic device 29 which receives data from a look-up table stored in a RAM 30.
In operation, when a data packet arrives at, say, receiver 14 the target address part of it is copied at 16 and transmitted to the PLD. The remainder ofthe packet is then passed to the FIFO. The PLD 29 then compares the received address (which is in IP format À . . . À À À À a À À a e.e,.e - 6 A.B.C.D.) with local address data stored in the RAM.
As shown in Figure 6, each part of the address A,.B,.C.D,. is compared with the local address AL.BL.CL.DL. Thus, if the local address is 10.53.6. 259, and the target address is 10.53.6.231, then the comparison is as follows: Local Address 10.53.6.259 Target Address 10.53.6.231 subtract 0. 0. 0. * = DIFFERENT The different value of the Target Address 231 is then sent to the RAM 30.
The RAM includes a look-up table which provides a code, typically an eight bit digital number, in response to an inputted number. For example, the number, in response to entered address 231, is 10110010. As shown in the figure, each pair of digits of this number represents routing information for a difference in a different one of the groups A, B. C and D of the four part IP address A.B.C.D.
The PLD, knowing that the difference is in part D (generally, the most local part), therefore uses the last two digits, l O. of the eight bit number N. It contains data that maps binary 10 with an outport Port 2, eg Tx23.
If the difference had been in group C, ie say the Target Address was 10. 65.231.259, then the value 231 would again be sent to the RAM 30. The same eight bit number would e.' À,, i.. ..
be output but the digits used by the PLD 29 to determine the routing information would be those labelled CC, ie 00.
In general, part of the local Target Address is analysed, each part at a time, first at part A. If different, then the 'A' address is transmitted to the RAM, and no further comparison need be done on the address. If the 'A' part is the same, then the 'B' address is compared. If different, then the 'B' value is forwarded to the RAM. If the same, then the C' part is compared, and so on. If all parts are the same, then the Target Address is the local address and the data packet can be routed directly to the local terminal.
Similar methods may be used for other transmission protocols, as will be appreciated.
Referring to Figure 4, a local network or mesh is shown and in this example eight nodes are shown, having addresses from 00000001 to 00001000 and node 00001000 has a direct connection to the Internet. If a data packet arrives at node 110 and, after the comparison, the address at parts A, B and C of the TCP/IP routing address structure differ, then the packet is deemed to be intended for a further destination on the Internet and so is routed to a transmitter which is directly connected to the Internet, this may be for example transmitter 24 in Figure 1. If it differs only at group D, ie is a local address, then the group D value is compared with the PLD and RAM are used as above and the PLD is provided with routing information representative of the respective transmitter 23 or 24, representative of paths P. and P2 from node A in the figure. So, if the address at node A is " '."2.. ',; - 8 OOOOOlOO and the destination address is 0000011 [(node B) , then the PLD and look-up table provides information that the packet must be passed to the relevant transmitter that transmits over path Pi (note that the routing system described is particularly useful for optical mesh systems having a plurality of transmitters and receivers as described in the applicant's co-pending application no....). If the destination address is OOOO0110, representing node C, then the look-up table includes information that this must be sent on a different transmission path, P2. If the destination address is OO000100, ie node D, then the quickest transmission path from node A to node D is via node B. The look-up table therefore contains information that the message must be routed on path PI to node B. At node B. a different look-up table is provided. The PLD and look-up table knows that the packet must be passed on path P3.
Accordingly, a very simple and quick look-up method in which only quickly calculated differences in IP numbers are used to calculate different numbers which are directly used in a look-up table, is used to determine routing address.
The RAM 22 may be 24 bit or 32 bit, for example.
Figure 3 shows an alternative embodiment of a router. The RAM within the router is divided into four (or more) units, RAM A, RAM B. RAM C and RAM D. In this system, as each data packet arrives its address can be separated off as before and analysed at the PLD 39. This has an associated RAM 40 which again includes a look c À À . . . . . À À À À À À À À . . . . ..
À. À À . À . -9 - up table as before. Each data packet is then stored in a respect one of the different rams, RAM A to RAM D. Two flags are associated with each separate RAM module. These operate as follows.
When a data packet enters receiver RX 41 the receiver is connected to RAM A which receives the data and one of the flags, say flag B. is set to a value 1. So that at this stage, a first flag A is at 0 and flag B is at 1. The PLD then makes a direct connection to RAM 1 and sets flag A to read ON(I) so that at this stage flag A and flag B are both at level 1 or ON. The PLD then compares the address with the stored home address as before and gets a value from its RAM 40. The PLD sends information to the router which determines which transmitter is to be used and the packet from RAM A is then transmitted to this transmitter. At this time flag B is reset so that at this time flag A represents 1 and flag B represents 0. Finally, once all the data has been sent to transmitter Tx then flag A is reset so that both flags A and B are 0. This is shown schematically min Figure 5.
Accordingly, flag A essentially represents that RAM has data stored in it and flag B represents processing of that data.
The flags are used to determine which RAM a subsequent packet of data from any receiver 41, 42 or 43 may use so that as data is being processed in one RAM it can be stored into the next RAM. In effect, therefore, 01 loading for any RAM, flag section, represents 'a state', 11 represents 'loaded', 10 represents 'unloading' and 00 represents empty. Other means of representing different states may be used. Instead of the address À . . ..e À À À À À À À À À À . À À À À À À À À À À.. À ..e.. . À - 10 part being separated before the router, an arrangement as shown in Figure 3 may be used in which the address part is extracted after a packet end is loaded into each RAM. In this case, the data is loaded, the CPLD then chooses a memory area and after the data is loaded into the memory area, or while the packet is being loaded therein (since it is a FIFO device the beginning of a message can be extracted whilst the end is still being stored) the CPLD extracts the address and analyses it for the best route as described. The CPLD then forwards a (typically 8 bit) location word to an output part of the router which determines the best output for transmitting.
By using a number of RAMs as shown schematically in Figure 3, it is possible to analyse the data whilst stored in RAM. Parts of the data, other than the address part, may be analysed and this can be used to determine various useful aspects of the signal. For example, quality of service (QoS) data can be sent with the packet and this data can also be used to determine the route by which the packet is retransmitted. Accordingly, if a user pays a higher subscription rate for better quality of service, then data representative of this is included in the packet and this is analysed by PLD 39. This may then be transmitted directly to a faster transmitter, or if several packets are being received, the one with the higher QoS may be transmitted onward before the one with lower QoS. This can involved deliberately delaying the slower one by retaining it in its separate RAM longer. Many other factors may be analysed.
À e À À Àe À À e À À À À À À À À a À À À À À À À Àe À Àe.e a - 11
Claims (15)
1. A router comprising means for receiving data packets; means for sampling an address portion of the data packet before the packet enters the router; hardware look-up means for comparing the address with a lookup table while the packet is being entered into the router and means for establishing an onward transmission path to a local terminal or other node depending upon the results of the look-up.
2. A router as claimed in Claim 1, wherein the look-up means compares the address with a local address.
3. A router as claimed in Claim 2, wherein the look-up means compares the address in parts, with each respective part of the local address and, once a difference is noted, provides routing information based on this.
4. A router as claimed in Claim 1, wherein a difference value is used to generate a number, different digits of which relate to different routing information depending upon which part of the target address differs from the local address.
5. A router comprising means for inputting a data packet; means for sampling and/or separating an addressed portion of the packet before it enters the router; means for establishing the next destination for the packet before or whilst the data packet is being loaded into the router and means for onwardly transmitting the packet, with address data, e À - À e À À À À À À À À À À À À À À À À À À . À - 12 accordingly.
6. A router as claimed in Claim 3, comprising at least one means for receiving a data packet; means for extracting an address from the packet; memory means for storing and subsequently transmitting the packet to a programmable logic device; means for receiving the address data and comparing this with previously stored address data indicative of local and other transmission nodes; means for determining an onward transmission address for the data packet depending upon the results of the look-up, and two or more transmission ports, to which the packet is subsequently transmitted depending upon the look-up result.
7. A router as claimed in any preceding claim, wherein the temporary memory means comprises first in first out (FIFO) means.
8. A router as claimed in any preceding claim, wherein the look-up table comprises IP address information.
9. A router as claimed in any preceding claim, including a plurality of memories, packets of data being loaded into respective ones of the memories from one or more inputs, and including means for allocating packets to memories.
10. A router as claimed in Claim 9, including flag means for indicating one or more of the states LOADING, LOADED, UNLOADING and EMPTY for each memory.
À ..e À e e À . À e À e e.
Àe e ee. .. - 13
11. A router including means for extracting a target address of a data packet, comparing it to a local address, selecting an onward path based on the comparison, and routing the packet to an output in accordance with the selection.
12. A router as claimed in Claim 1 1, wherein the look-up means compares the address in parts, with each respective part of the local address and, once a difference is noted, provides routing information based on this.
13. A router as claimed in Claim 12, wherein a difference value is used to generate a number, different digits of which relate to different routing information depending upon which part of the target address differs from the local address.
14. A router including a plurality of memories into which data packets are temporarily stored.
15. A router substantially as hereinafter described was reference to, and as illustrated by, the accompanying drawings.
À À À À À À À À À À . À À À À À À À À À À À À À À À
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0304044A GB2398700A (en) | 2003-02-22 | 2003-02-22 | Sampling address portion of packet before it enters a router |
PCT/GB2004/000657 WO2004075490A1 (en) | 2003-02-22 | 2004-02-18 | Method for address table lookup |
EP04712100A EP1595366A1 (en) | 2003-02-22 | 2004-02-18 | Method for address table lookup |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0304044A GB2398700A (en) | 2003-02-22 | 2003-02-22 | Sampling address portion of packet before it enters a router |
Publications (2)
Publication Number | Publication Date |
---|---|
GB0304044D0 GB0304044D0 (en) | 2003-03-26 |
GB2398700A true GB2398700A (en) | 2004-08-25 |
Family
ID=9953462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB0304044A Withdrawn GB2398700A (en) | 2003-02-22 | 2003-02-22 | Sampling address portion of packet before it enters a router |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1595366A1 (en) |
GB (1) | GB2398700A (en) |
WO (1) | WO2004075490A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1718008A3 (en) * | 2005-04-28 | 2006-12-20 | Fujitsu Ten Limited | Gateway apparatus and routing method |
EP1798904A1 (en) | 2005-12-14 | 2007-06-20 | Denso Corporation | Network gateway and communication frame relaying method |
EP1916813A3 (en) * | 2006-10-27 | 2008-05-07 | Fujitsu Ten Limited | Gateway apparatus and data transfer control method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
JPH0998189A (en) * | 1995-09-29 | 1997-04-08 | Toshiba Corp | Network repeater system |
US20020163916A1 (en) * | 1996-12-16 | 2002-11-07 | Oskouy Rasoul Mirzazadeh | In-line packet processing |
-
2003
- 2003-02-22 GB GB0304044A patent/GB2398700A/en not_active Withdrawn
-
2004
- 2004-02-18 EP EP04712100A patent/EP1595366A1/en not_active Withdrawn
- 2004-02-18 WO PCT/GB2004/000657 patent/WO2004075490A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
JPH0998189A (en) * | 1995-09-29 | 1997-04-08 | Toshiba Corp | Network repeater system |
US20020163916A1 (en) * | 1996-12-16 | 2002-11-07 | Oskouy Rasoul Mirzazadeh | In-line packet processing |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1718008A3 (en) * | 2005-04-28 | 2006-12-20 | Fujitsu Ten Limited | Gateway apparatus and routing method |
US7787479B2 (en) | 2005-04-28 | 2010-08-31 | Fujitsu Ten Limited | Gateway apparatus and routing method |
EP1798904A1 (en) | 2005-12-14 | 2007-06-20 | Denso Corporation | Network gateway and communication frame relaying method |
EP1916813A3 (en) * | 2006-10-27 | 2008-05-07 | Fujitsu Ten Limited | Gateway apparatus and data transfer control method |
US8265087B2 (en) | 2006-10-27 | 2012-09-11 | Fujitsu Ten Limited | Gateway apparatus and data transfer control method |
Also Published As
Publication number | Publication date |
---|---|
GB0304044D0 (en) | 2003-03-26 |
WO2004075490A1 (en) | 2004-09-02 |
EP1595366A1 (en) | 2005-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5487064A (en) | Network layer packet structure | |
US7218632B1 (en) | Packet processing engine architecture | |
US7593406B2 (en) | Multi-layered packet processing device | |
US6842453B1 (en) | Method and apparatus for implementing forwarding decision shortcuts at a network switch | |
US8699500B2 (en) | Method and apparatus to perform network routing | |
US5570084A (en) | Method of loose source routing over disparate network types in a packet communication network | |
JP3737517B2 (en) | Method and apparatus for filtering multicast packets based on a transparent intermediate system on a LAN | |
US6532229B1 (en) | Low cost link aggregation method and system | |
CN100473054C (en) | Network device and method for disposing grouping | |
US20030007489A1 (en) | Data extraction system for packet analysis | |
EP0597487A2 (en) | Asynchronous transfer mode communication system | |
US6212185B1 (en) | Multiple network address resolution | |
US7751319B2 (en) | Method and processor for classifying data packet units | |
JP2000253058A (en) | Transfer destination decision processor | |
US6658003B1 (en) | Network relaying apparatus and network relaying method capable of high-speed flow detection | |
US10110715B2 (en) | Providing efficient routing of an operations, administration and maintenance (OAM) frame received at a port of an ethernet switch | |
US6081532A (en) | Bridging apparatus for traffic filtering in communication networks | |
US8050262B2 (en) | System and method for parsing frames | |
US6901073B2 (en) | Encapsulation method and apparatus for communicating fixed-length data packets through an intermediate network | |
US6147991A (en) | Scalable high speed packet switch using packet diversion through dedicated channels | |
US6466578B1 (en) | Scaleable data network router | |
CA2278447A1 (en) | Method and apparatus to translate data streams among multiple parties | |
US5740172A (en) | Method for searching a packet transmission path in a broadband information and communication system | |
GB2398700A (en) | Sampling address portion of packet before it enters a router | |
US6671277B1 (en) | Network relaying apparatus and network relaying method capable of high quality transfer of packets under stable service quality control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |