ROUTING OF DATA PACKETS BELOW THE IP-LEVEL IN A PACKET-SWITCHED COMMUNICATION NETWORK
FIELD OF INVENTION
The present invention relates to the field of communication networks and more specifically to a router, a communications network comprising such a router, a method and a computer program product according to the preamble of claim 1, 16, 17, 18 and 30 respectively.
DESCRIPTION OF RELATED ART
A communications network is a group of computers that are connected by communications facilities for the purpose of providing computer users with an avenue of communicating and transferring information electronically. A communications network can be a local-area network (LAN) consisting of only a few computers within a small area, or it can be a wide-area network (WAN) consisting of many computers distributed over a vast geographical area.
A router (or bridge) is an intermediary device for expediting message delivery within a communications network. Within a LAN, a router receives messages and forwards them to their correct destinations via the most cfficiendy available route. Within a WAN having several interconnected sets of LANs, a router serves a somewhat different function by acting as a link among these several sets of LANs, enabling messages to be sent from one set of LANs to another.
Various computers within a network are coupled to a router through its ports (i.e., locations for passing data in and out of a data-processing device). As a router receives a data packet from one computer intended for another computer(s) within a communications network, the router compares the destination address (address of the receiving computer) provided within the data packet to a stored address/port list. This address/port list indicates which port(s) within the router is
associated with the receiving computer(s). The router then directs the data frame to the appropriate port(s) coupled to the receiving computer (s).
Under prior art, an address/port list may be provided to a router beforehand, or the router may develop the address/port list on a dynamic basis. Such address/port lists are stored within the router and are accessed upon the receipt of a data frame. The router then compares the destination address of the data frame to each item within the address/port list until a match is obtained. Generally, each new search through the address/port list begins at the top of the address/port list and proceeds sequentially through the destination addresses until a match is found. If there are a very large number of destination addresses in the address/port list, communications within the computer network may be slowed down considerably due to this bottleneck at the router. Furthermore, the routers will have to keep a huge list of addresses constantly updated. The time is now closing in to a point where the actual connection speed between the routers is faster than the routers can handle.
EP-A-0426911 discloses an example routing management system in which each node includes a dynamic routing table containing a plurality of machine identifiers and, for each, the next place in the network to which a message for that machine should be directed. The system of EP-A-0426911 requires a database of machine listings, including update and routing information for each machine. The update information identifies the parts of the system which need to be updated to maintain consistency if some part of the machine's database entry is changed, including information as to which nodes require their dynamic routing tables to be updated in response to a change to that entry. All relevant nodes are sent updated routing information. The amount of information that must be held by each node and the overhead in updating that information arc both considerable.
Therefore, there is a need for an improved routing method and a communications network that provides faster routing and a reduced amount of processing power required in the network routers.
It is desirable here to refer to the layered architecture structure of networks, for later reference. International architecture standards have been, and arc being, developed to promote commonality and heterogeneous interoperability for all users of information technology and communications. A significant aspect of these standards is the international standards for Open Systems Interconnection (OSI) and the Systems Network Architecture (SNA). OSI and SNA both define seven- layer communications architectures in which each layer makes use of the sendees of the layer below and provides services to the layer above.
The lower three layers of the OSI and SNA communication architectures (the "transport service providers") include transmission subnetworks such as X.25 packet switching networks, LANs, ISDN, WANs, and other network and link layer protocols. Subnetworks will generally be divisible from the whole network into separate administrative units known as "cells", cell names generally being important for inter-cell communications. The networks may be highly complex, with many intermediate nodes being involved in any data transmission between source and destination nodes. Layer 1 of the architecture is the physical connections between adjacent nodes, wires or wireless along which electrical signals pass.
Layer 2 is the data link control layer, providing fixed path configurations (point-to- point connections, multipoint connections and LANs) and possibly link-layer flow control and link-layer error-recovery. Layer 2 may also provide multi-path routing between intermediate nodes
Layer 3 is the network layer and provides a subnetwork (e.g. LAN, ISDN) for multi-path routing between source and destination nodes and provides flow control within the subnetwork (e.g. multiplexing, segmenting). Layer 3 also provides internetworking links between the subnetworks.
The transport control layer 4 oversees communication across multiple underlying transport facilities. Source-to-destination transport reliability (e.g. by enciphering of data or sequence numbering) and flow control are provided by layer 4. OSI layer 4 (and the top of layer 3) corresponds to the position in the layered structure of common communications protocols such as TCP/IP (Transmission Control Protocol/Internet Protocol suite of protocols).
Layer 5 is a data exchange layer providing a set of common signals used by applications for synchronization and regulation of the data exchange. Layer 6, the presentation services layer, interprets API verbs and converts data where communicating end users require different syntax and formats.
Layer 7 is the layer providing immediate service support for applications (called the application services layer in OSI and transaction services layer in SNA). Layer 7 provides file transfer, directory services, store-and-forward messaging, and system management.
Hereafter, the terminology of OSI is used to identify different layers of the network architecture. This use of terminology specific to a particular layered network architecture model is used for simplicity and to aid understanding and should not be interpreted as a limitation on the applicability of the present invention
SUMMARY OF THE INVENTION
Accordingly, it is an object of the present invention to unravel the above- mentioned problem.
This is achieved by the method, the computer program product, the router and the communications network described in the independent claims.
Thanks to that the routers name its connections with different binary numbers, so- called connection indicators and these connection indicators are used as a path when routing a data packet, on a level below the IP level, from a source router to a destination router, a faster routing and a reduced amount of processing power in the network routers provided.
Preferred embodiments of the invention are defined in the dependent claims 2-15, and 19-29.
Further scope of applicability of the present invention will become apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a schematic communications network comprising routers. Figure 2 shows a router comprising a number of connections. Figure 3 shows a complete path, which is described by a number of directions and a terminator. Figure 4 illustrates a reverse path. Figure 5 shows a packet comprising a path, payload data and a reverse path.
Figure 6 shows the packet to be sent from router A to router I when it has arrived to router A Figure 7 shows the packet to be sent from router A to router I when it is sent from router A to router B. Figure 8 shows the packet to be sent from router A to router I when sent from router B to router E.
Figure 9 shows the packet to be sent from router A to router I when it has been processed by router I and is handed over to the IP level.
Figure 10 shows the source IP address and the path to be stored in a list in a router. Figure 11 shows an instruction path.
DESCRIPTION OF PREFERRED EMBODIMENTS
The present invention relates to a transmission protocol, which protocol applies to layer 2 and especially to layer 3 according to the above-mentioned layered architecture structure of networks. Instead of routing packets based on their destination address, packets are switched through the network based on the path between A and B. The protocol is accordingly intended to work beneath the Internet Protocol (IP), which resides at layer 4.
Figure 1 shows a schematic communications network, using IP comprising the routers A-I. Each router names it's connections, i.e. ports, with different binary numbers. The number of bits used to name the connections at a router, varies between the routers. A router comprising many connections requires more bits than a router with only a few connections. E.g. the router A has three connections, indicated by 111, 011, and 010 and router C has two connections indicated by 01 and 10. Preferably, all connection indicators of one router has the same number of bits. A path is described by these direction indicators, for example the path between router A and D is 011,010, i.e. out from router A at connection number 011 leads to router B and out from router B at connection number 010 leads to router D.
The path is included in the packet header such that the first bits of the packet to be sent indicate the path to the destination. When a packet arrives at a specific router, the router only has to look at the first bits of the packet to see through which connection the packet shall be forwarded, and remove these bits from the
packet. As mentioned above, the number of bits depends on the number of connections at the specific router. The router also adds the return path at the end of the packet, i.e. indicates the number of the connection through which the packet arrived to the router.
Since the router A originally sending the packet doesn't know the path to the destination router I, the path has to be found. This is performed by routing the first packet on the IP level in the same way as in traditional IP routers. The low level protocol according to the invention adds the reverse path as the packet is routed through the network. When the packet reaches its destination, the destination router I associates the source IP address, i.e. A's IP address to the reverse path and adds them to a list in router I. When a response packet is sent in the opposite direction from I to A, the destination IP address, i.e. As IP address is checked against the list and the path back is found. The packet is then switched through the network based on that path. When the response packet reaches the destination router A, it associates the source IP address, i.e. I's IP address to the obtained reverse path and adds them to router A's list. From this point all further packets between A and I will be switched through the network without the need for high level IP routing.
The path between two routers is described by a number of directions, see Figure 2. Each direction is a binary number, a so-called direction indicator, telling the particular router in which direction to send the packet. Direction indicators consisting of all zeros (000...0) and all ones (111...1) are reserved.
For example, a direction with all zeros indicates that the packet is an instruction to the router (see error handling below).
For example, a direction with all ones tells the router to use IP routing to determine where to send the packet. This is used on two different occasions, when the path is unknown and when the packet has reached it's final destination and shall be handed over to the protocol above.
A complete path is described by a number of directions and a terminator. This is illustrated in Figure 3. The terminator can be used by the router to determine the length of the path descriptor, i.e. where in the message the path terminates. The terminator is a number of ones and one zero at the end and the length of the terminator contains at least twice as many bits the maximum number of bits in a single connection indicator, which makes the terminator unique. Figure 3 describes the path from router A to router I, via the routers B, E and G referred to in Figure 1. It is to be noted that, the last bits (two bits, in this example) in the path tell the destination router to hand the packet up to the IP level.
Figure 4 illustrates the reverse path, i.e. from router I to router A, via the routers G, E and B in Figure 1. The reverse path is created in the same way, except that all bits are reversed, including the terminator. The bits are reversed because the lengths of the individual destinations can vary and if added in normal bit order it would be impossible for the destination router to reverse the path back to normal. The reverse terminator is unique in the same way as the non-reversed, if read backwards.
In the process of routing, the router removes the direction indicator of the connection to the next router from the header of the packet. The router also and adds the direction indicator, of the connection from which connection the packet arrived to the router, to the tail of the packet, before sending the packet to it's next destination. E.g. a packet arriving to router G from router E and is to be routed to router I removes the direction indicator Oi l (connection out from router G) from the packet header and adds the direction indicator 001 (incoming connection number to router G. In this way the packet always stays the same length if all the connection indicators of a router contains the same number of bits. By removing from the head and adding to the tail the switching delay can be reduced to one modulation time (i.e. one bit), this is possible when the destination connection is not busy.
Figure 5 shows a packet comprising a path, payload data and a reverse path. To optimize switching speed the packets can have a fixed length.
To find the path from router A to router I and back again, in Figure 1, traditional IP routing is used. How this is performed will now be described more in detail.
Router A checks the destination IP address, at the IP level, i.e. the 4rd layer, which IP address is indicated in the packet header and finds that the packet shall be forwarded to router B. Router A adds the direction indicator of the connection through which it arrived to the router A, i.e. the path back, to the tail of the packet, i.e. Ill and sends the packet to B. The packet now comprises an empty path, the terminator (T), the payload the reverse terminator (RT) and the reverse path 111. The path back is in this case 111, i.e. all ones, since this is the final destination for a packet going in the opposite direction.
Router B receives the packet and finds an empty path. This triggers router B to ask the IP level for the destination. Router B finds that the packet shall be sent to router E. Router B leaves the path empty but adds the direction indicator of the path back, to the tail of the packet. I.e. 001 which is the connection number through which the packet arrived to router B. Router B sends the packet to router E with an empty path, T, the payload, RT and, the reverse path in reverse bit order. The path back is now RT111100.
Router E receives the packet and finds an empty path. This triggers router E to ask the IP level for the destination. Router E finds that the packet shall be sent to router G. Router E leaves the path empty but adds the direction indicator, of the path back, to the tail of the packet. I.e. 001 which is the connection number through which the packet arrived to router E. Router E sends the packet to router G with an empty path, T, the payload, RT and, the reverse path in reverse bit order. The path back is now RT111100100.
Router G receives the packet and finds an empty path. This triggers router G to ask the IP level for the destination. Router E finds that the packet shall be sent to router I. Router G leaves the path empty but adds the direction indicator, of the path back, to the tail of the packet. I.e. 001 which is the connection number through which the packet arrived to router G. Router G sends the packet to router I with an empty path, T, the payload, RT and, the reverse path in reverse bit order. The path back is now RT111100100100.
Router I receives the packet and finds an empty path. This triggers router I to ask the IP level for the destination. Router I finds that the packet has reached its destination. Router I now adds the path back, to the tail of the packet. I.e. 10 which is the connection number through which the packet arrived to router I. Router I creates a new entry in a list with the source IP address of the packet and the reverse path. In normal bit order the path back to A is lOOOlOOlOOllllT.
When a response packet from router I to router A is received the path is picked up from the list and added to the header of the packet. The packet is then switched through the network without involving the IP level. When the packet reaches router A it adds the source IP of the new packet and it's reverse path to it's list. All packets between A and I can now be sent through the network without involving the IP level.
When sending a subsequent packet from router A to router I and when the destination IP and the associated path is found in the list of router A, the packet can be routed on a level below the IP. The path is picked up and added to the header of the packet. Figure 6 shows such a packet inside router A.
Figure 7 shows the packet to be sent from router A to router I when it is sent from router A to router B. Before sending the packet out through the connection
011 of router A to router B as indicated by the path, router A removes the destination indicator 011 that points to B, referred to as 601 in Figure 6, and adds
the reverse path, i.e. Ill, to the tail of the packet, referred to as 702 in Figure 7. The reverse destination indication is 111 since this is the final destination of a packet in the opposite direction. (It is added in reverse bit order.)
Figure 8 shows the packet to be sent from router A to router I when sent from B to E. Before sending the packet out through the connection Oil of router B to router E as indicated by the path, router A removes the destination indicator Oil that points to B, referred to as 701 in Figure 7, and adds the reverse path, i.e. 001, to the tail of the packet. The reverse destination indicator is 100 when added in reverse order and is referred to as 802 in Figure 8.
The same process is repeated in all routers on the path to router I. When the packet reaches router I, the router finds that the next destination is all ones (11) which means that the packet shall be handed over to the IP level for further processing. Figure 9 shows the packet to be sent from router A to router I when it has been processed by router I and is handed over to the IP level.
The reverse path now describes the path back to the source IP address of the packet. The reverse path is extracted by looking for the reverse terminator from the tail of the packet and forward. When the terminator is found, the length of the reverse path can be determined. All bits in the reverse path are reversed to get a normal forward path. The result is stored in a list together with the source IP address of the packet. Figure 10 shows the source IP address and path to be stored in a list in router I.
When a packet is sent in the opposite direction router I looks up the destination IP address in the list and finds the path to router A. The path is added to the header of the packet and the packet is switched through the network.
To avoid multiple packet losses caused by the use of invalid paths, the network may comprise a way to remove old and invalid paths.
The first step to ensure that the paths in the list are valid is to introduce a timeout that removes paths that have not been used for a certain time. This forces the network to route the next packet to that IP address on the IP level.
A second mechanism uses the reverse path to send a message back to the first router that the path is invalid. In an example, the connection 100 from router E to G in Figure 1 is down or overloaded. A packet switched through the network from router A to I, with the path shown in Figure 6, would reach router E but since connection 100 is not available the packet can't be transmitted to router G. In this case router E sends a remove instruction back to router A, by using the reverse path in the packet from router A to router I, as shown in Figure 11. Note that the path ends with the reserved direction 000, informing router A to treat the packet as an instruction.
The method is implemented by means of a computer program product comprising the software code means for performing the steps of the method. The computer program product is run on a computer stored in the routers within the communications network. The computer program is loaded direcdy or from a computer usable medium, such as a floppy disc, a CD the Internet etc.