A more complete appreciation of the present invention, any many of the attendant advantages thereof, will become readily apparent as the present invention becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings in which like reference symbols indicate the same or similar components, wherein:
Hereinafter a method of and an apparatus for selecting multiple routing protocols of the present invention are described with reference to the accompanying drawings, in which a wireless mesh network is illustrated. However, it should be understood that the following detailed description will apply equally to other wired/wireless networks.
As shown in
The client A 100-1 is connected to the client B 100-2 via a first route and to the Internet via a second route.
The first and second routes, through which the client A 100-1 is connected to the client B 100-2 and to the Internet, can be changed according to routing protocols used by the nodes 200 on the first and second routes.
That is, a respective node 200, which has a plurality of routing protocols installed therein, can acquire application (service) type information of the clients 100 to select a routing protocol adequate for the application type of the clients 100, thereby setting a suitable route.
Referring to
The routing processors 210-1 to 210-n can be implemented with software (e.g., programs) installed in hardware (e.g., a board or a chip), or with individual hardware units.
The routing table 211, the protocol selection table 221 and the system routing table 231 can be realized as a register, in the routing processors 210-1 to 210-n, the protocol selector 220 and the routing table manager 230, or stored in a separate storage area.
Different routing protocols are installed in the routing processors 210-1 to 210-n so that the individual routing processors 210-1 to 210-n can operate using the installed routing protocol to select a route to send a packet.
Examples of the routing protocol, installed in the routing processors 210-1 to 210-n, may include various types of routing protocols used in wireless networks, such as Destination Sequenced Distance Vector (DSDV), Dynamic Source Routing (DSR), Ad hoc On-demand Distance Vector (AODV) and Zone Routing Protocol (ZRP).
In the following detailed description of the present invention, it will be assumed that AODV, effective to route a relatively smaller packet, is installed in the first routing processor 210-1, and Fastest Transmission Time Selection (FTTS), effective to route a relatively larger packet, is installed in the second routing processor 210-2.
AODV, which is one of protocols widely known in the ad hoc network field, starts broadcasting a routing control message only in response to a route-setting request. FTTS is a variation of AODV.
Briefly describing the difference between AODV and FTTS, the routing metric of AODV is a hop number, but the routing metric of FTTS is a transmission time, defined as the reciprocal of the transmission rate.
In the case of AODV, an overlapping route request message is always discarded. In FTTS, the routing table 211 is updated when a route request message having a better routing metric is received.
FTTS is similar to the radio-metric ADOV specified in “IEEE 802.11s.”
When a respective routing processor 210 receives a route request message from the client 100 or a routing control message from an adjacent node 200, it selects a route according to the routing protocol and adds/updates corresponding route information to/in the routing table 211.
When the route information is added/updated to/in the routing table 211, the respective routing processor 210 broadcasts a routing-control message to adjacent nodes 200.
When the route information of the routing table 211, established by the respective routing processor 210, is added/updated, the routing table manager 230 adds/updates the route information to/in the system routing table 231.
That is, the routing table manager 230 collects the route information, which is stored in the routing tables 211 of the routing processors 210, and stores the collected route information in the system routing table 231.
The routing table manager 230 manages the system routing table 231 so that all of the route information stored in the respective routing tables becomes identical with the route information of the system routing table 231.
The protocol selector 220 acquires the types of routing protocols, installed in the respective routing processors 210, and when a route request message is received from the client 100, extracts application type information from the route request message and selects a protocol with reference to the protocol selection table 221.
The protocol selector 220 can store identification information of the respective routing processors 210 and type information of the routing protocols of the routing processors 210.
The protocol selector 220 can also extract the application type information from the header of a TCP/IP packet that is the route request message received from the client 100.
As shown in
In the following, a detailed description of the fields of the IP header and the TCP header has not been included since they are already defined in the communication protocol.
The protocol selector 220 can acquire the application type information, requested by the client 100, by extracting protocol field values or destination port address field values of the TCP header from the IP header of the packet that is the route request message.
The protocol selector 220 selects a routing protocol, suitable for the acquired application type information, from the protocol selection table 221.
As shown in
For example, the protocol selector 220 selects “FTP” as the application type information when the port value of the destination address field is “21,” and “FTTS” as a suitable routing protocol when the application type information is “FTP.”
The protocol selector 220 selects “TELNET” as the application type information when the port value of the destination address field is “23,” and AODV” as a suitable routing protocol when the application type information is “TELNET.”
The protocol selection table 221 can be constructed by a manager or a manufacturer of the nodes 200, so, that at least one routing protocol can be selected according to the features of packets (e.g., size and transmission interval), which are generated according to application types.
As illustrated in
For example, if the application type information of a route request message, received from the client 100, is “TELNET,” the protocol selector 220 transmits the route request message to the first routing processor 210-1 to activate the first routing processor 210-1. If the application type information is “FTTP,” the protocol selector 220 transmits the route request message to the second routing processor 210-2 to activate the second routing processor 210-2. If the application type information of route request messages is “TELNET” and “FTTP,” the protocol selector 220 transmits the route request messages to the first routing processor 210-1 and the second routing processor 210-2, respectively, to activate the first and second routing processors 210-1 and 210-2.
The routing table manager 230 establishes the system routing table 231 by collecting the type information of the routing tables of the routing processors 210.
As shown in
That is, the routing table manager 230 establishes the system routing table 231 by collecting the entries including routing information of the routing tables 211, such as destination, sequence, metric and next hop, and specifying the routing protocol types of the corresponding routing protocols 210.
When the routing information of a respective routing table 211 is added/updated, the routing table manager 230 adds/updates the routing information of the system routing table 231.
The nodes 200 of the wireless mesh network can be divided into an initial node that receives a route request message from the client 100 and an intermediate node that receives a routing control message from adjacent nodes (including the initial node).
That is, the protocol selector 220 acquires application type information of a route request message, received from the client 100, in order to select a routing protocol. In response to a routing control message received from an adjacent node 200, the protocol selector 220 acquires type information of a routing protocol from the routing control message and selects a routing protocol in order to determine a routing processor 210 to activate.
The routing control message shown in
Field values to be set into type fields are determined according to the type of routing control message shown in
In the present invention, since one node 200 can simultaneously activate a plurality of routing protocols, it is necessary that routing control messages to be broadcast to adjacent nodes 200 can be classified according to routing protocols.
As illustrated, the node 200 can set “0” in the type field “RP” of a routing protocol, in which route information is set, if the routing protocol is AODV but “1” in the type field RP of the routing protocol if the routing protocol is FTTP. Then, the node 200 can set a message type in the 6 bit type field and broadcast the routing protocol to the adjacent nodes 200.
The node 200 can define a type field value specifying the message type according to a routing protocol type in order to broadcast a routing control message to the adjacent nodes 200.
When the protocol selector 220 of an intermediate node 200 receives a routing control message from an adjacent node 200, it acquires type information of a routing protocol from the routing control message and selects a routing processor 210, where the corresponding routing protocol is installed.
The protocol selector 220 transmits the received routing control message to the selected routing processor 210, so that the selected routing processor 210 can set a route.
Then, the protocol selector 220 acquires application type information, requested from the route request message, and selects a suitable routing protocol from the protocol selection table 221.
The protocol selector 220 identifies the routing processor 210, where the selected routing protocol is installed, and activates the selected routing protocol.
If a plurality of route request messages are received, the protocol selector 220 can separately select routing protocols according to application type information of the received route request messages, and transmit the route request messages to corresponding routing processors 210 to simultaneously activate the routing processors 210.
The routing processor 210 sets a route according to the routing protocol and adds/updates routing information to/in the routing table.
When the routing information or the entry of the routing table 211 is added/updated, the routing table manager 230 explicitly adds/updates the type of the routing protocol of the added/updated entry to/in the system routing table 231.
Then, the routing processor 210 broadcasts a routing control message, including the type information of the routing protocol, to an adjacent node 200.
Then, the protocol selector 220 transmits the routing control message to a routing processor 210, in which the routing protocol having the acquired type information is installed, to activate the routing protocol.
If a plurality of routing control messages are received, the protocol selector 220 can transmit the routing request messages to corresponding routing processors 210 based upon the type information of routing protocols, which is acquired by the routing control messages, and thus simultaneously activate the routing processors 210.
When the routing control message is received, the routing processor 210 sets a route using the routing protocol and adds/updates route information to/in the routing table 211.
When the routing information or the entry of the routing table 211 is added/updated, the routing table manager 230 explicitly adds/updates the type of the routing protocol of the added/updated entry to/in the system routing table 231.
Then, the routing processor 210 broadcasts a routing control message, including the type information of the routing protocol, to another adjacent node 200.
When a route request message is received from the client 100, the protocol selector 220 selects a routing protocol based upon application type information and discerns whether or not an entry having the same destination address exists in the system routing table 231.
If the entry having the same destination address exists in the system routing table 231, the protocol selector 220 identifies the routing protocol type information of this entry. If the routing protocol type information of this entry is identical with the type information of the selected routing protocol, the protocol selector 220 transmits the route request message to the routing processor 210 to use the route information stored in the system routing table 231 without repeating a routing process.
If the destination addresses are the same but the type information of the routing protocols is not identical, the protocol selector 220 refers to the protocol selection table 221 to discern whether or not the type information of the routing protocol of the entry, searched from the system routing table 231, is reusable for the corresponding application type information.
As illustrated in
If the type information of the routing protocols of the entry, searched from the system routing table 231, is reusable, the protocol selector 220 uses route information stored in the system routing table 231.
When the wireless connector 240 receives a route request message from the client 100 or a routing control message from an adjacent node 200, it transmits the received message to the protocol selector 220.
Then, when the wireless connector 240 receives a packet, it searches the system routing table 231 for an entry according to the destination address of the packet and routes the packet according to the entry.
Referring to
In the protocol selection table 221, the routing protocol can be divided into “Primary,” “Reusable” and “Not Used” (unusable) types based upon packet characteristics according to application type information.
In S110, each node 200 acquires application type information and destination address information from a route request message that is received from the client 100. The node 200 can acquire application type information by extracting a protocol field value or a destination port address field value of a TCP header from an IP header of the route request message.
In S120, the node 200 selects a suitable routing protocol, based upon the acquired application type information, from the protocol selection table 221.
In S130, the node 200 discerns whether or not the system routing table 231 has an entry that is identical with the destination address of the route request message and the type information of the selected routing protocol.
If the system routing table 231 has the entry that is identical with the destination address of the route request message and the type information of the selected routing protocol, the node 200 uses the route information according to this entry in S140.
If the system routing table 231 does not have the entry that is identical with the destination address of the route request message and the type information of the selected routing protocol, the node 200 discerns whether nor there is an entry that is identical only with the destination address in S150.
In S160, if there is the entry that is identical only with the destination address, the node 200 identifies the type information of the routing protocol of this entry and discerns whether or not the type information of the routing protocol of this entry is reusable for the application type information, acquired from the route request message.
If the type information of the routing protocol of this entry is reusable for the application type information, the node 200 uses the type information according to this entry in S170.
If the type information of the routing protocol of this entry is not reusable for the application type information, the node 200 transmits the route request message to a routing processor 210, in which a routing protocol selected from the protocol selection table 221 is installed, to activate the routing processor 210 in S180.
Referring to
In the protocol selection table 221, the routing protocol can be divided into “Primary,” “Reusable” and “Not Used” types based upon packet characteristics according to the application type.
In S210, each node 200 collects route information, which is set according to a plurality of routing protocols, and establishes a system routing table 231 based upon the route information.
The node 200 establishes the system routing table 231 by generating an entry, which specifies type information of the corresponding routing protocols in the route information created by the routing protocols.
In S220, the node 200 discerns whether or not a route request message has been received from the client 100.
When the route request message has been received, the node 200 analyzes a header area of the route request message to acquire application type information thereof in S230.
In S240, the node 200 selects a routing protocol, suitable for the application type information, from the protocol selection table 221.
Then, the node 200 discerns whether or not route information, stored in the system routing table 231 has reusable route information in S250, and if there is the reusable route information, uses the corresponding route information in S260.
As an example, if an entry is identical with a destination address included in the route request message and type information of the selected routing protocol, or is identical with destination address information and includes type information of a routing protocol reusable for the application type information, the node 200 uses type information of this entry.
If the stored route information does not have reusable route information, the node 200 transmits the route request message to the routing processor 210, where the selected routing protocol is installed, to activate the routing processor 210 in S270.
In S280, the node 200 adds/updates route information, which is set by the activated routing processor 210 according to the routing protocol, to/in the system routing table 231 and broadcasts a routing control message to an adjacent node 200.
The node 200 transmits the type information of the routing protocol on the routing control message to the adjacent node 200 as mentioned above with reference to
When a plurality of route request messages are received from a plurality of clients 100 or a single client 100, an initial node 200 such as that mentioned above can select routing protocols, suitable for application type information of the respective route request messages, and simultaneously activate corresponding routing processors 210.
Referring to
In the protocol selection table 221, the routing protocol can be divided into “Primary,” “Reusable” and “Not Used” types based upon packet characteristics according to the application type.
In S310, each node 200 collects route information, which is set according to a plurality of routing protocols, and establishes a system routing table 231 based upon the route information.
The node 200 establishes the system routing table 231 by generating an entry, which specifies type information of the corresponding routing protocols in the route information created by the routing protocols.
The node 200 discerns whether or not a routing control message has been received from an adjacent node 200 in S320.
In S330, the node 200 acquires type information of a routing protocol from the received routing control message.
In S340, the node 200 transmits the routing control message to a routing processor 210, in which a routing protocol of the acquired type is installed, to activate the routing processor 210.
Then, in S350, the node 200 adds/updates route information, which is set by the activated routing processor 210 according to the routing protocol, to/in the system routing table 231, and broadcasts the routing control message to adjacent nodes 200.
When a plurality of routing control messages are received from one or more adjacent nodes 200, an intermediate node 200, such as that mentioned above, can simultaneously activate the routing processors 210 based upon type information of routing protocols, included in the respective routing control messages.
As set forth above, the present invention makes it possible to select a suitable routing protocol according to an application (service) type, which is requested from a client, in order to set an optimum route according to the application type in a network, thereby minimizing packet transmission delay and maximizing transmission efficiency.
Furthermore, when a new application is added to the network, it is also possible to select a routing protocol suitable for the new application.
Moreover, even if a plurality of route requests are received from a client, a plurality of routing protocols can be simultaneously activated to afford routes according to application types.
While the present invention has been shown and described in connection with exemplary embodiments, it will be apparent to those skilled in the art that modifications and variations can be made without departing from the spirit and scope of the present invention as defined by the appended claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 10-2006-0091820 | Sep 2006 | KR | national |