1. Field of the Invention
The present invention generally relates to a communication node and a communication route selecting method used for a communication system having plural communication routes between communication nodes.
2. Description of the Related Art
In a network such as an IP network using the Internet Protocol, plural routes exist between communication nodes. Typically, packet transmission routes in the IP network are managed with a routing protocol. For example, in a case where a route becomes unusable, a bypass route is searched for, then a routing table is changed, and then packet transmission is conducted with an alternative route (bypass route). Japanese Laid-Open Patent Application No. 6-14088 discloses a technology for establishing combinations of routes that can be altered in view of an upper layer protocol and a lower layer protocol when generating a connection in a connection oriented communication system.
Control by using the routing protocol requires time and it is difficult to quickly change routes according to communication status. When a change to a bypass route is delayed in such a case, packets may be lost. Loss of some packets might not significantly degrade communication quality in a case of non-real time data communications. However, in a case of real time data communications such as audio communications or television phone communications, loss of packets significantly affects communication quality. Although the invention disclosed in Japanese Laid-Open Patent Application No. 6-14088 may establish the most suitable route at the time of generating a connection, the connection is maintained in a constant state between the time of its establishment and the time of its release and it is not possible to realize quick route change in the middle of communications. Thus, there is still a concern regarding the above-described problem.
The present invention is conceived in view of the above-described problem and is aimed to provide a communication node and a communication method for quickly determining a suitable route for packet transmission.
It is a general object of the present invention to provide a communication node and a communication route selecting method that substantially obviate one or more of the problems caused by the limitations and disadvantages of the related art.
Features and advantages of the present invention will be set forth in the description which follows, and in part will become apparent from the description and the accompanying drawings, or may be learned by practice of the invention according to the teachings provided in the description. Objects as well as other features and advantages of the present invention will be realized and attained by a communication node and a communication route selecting method particularly pointed out in the specification in such full, clear, concise, and exact terms as to enable a person having ordinary skill in the art to practice the invention.
To achieve these and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, an embodiment of the present invention provides a communication node including: a communicating part connected to one or more communication ports; a deriving part configured to derive route candidates for transmitting a packet to a destination node with a connectionless oriented method; and a selecting part configured to select one of the communication ports to be used for transmitting the packet; wherein the deriving part includes a user designation logic part configured to derive one or more of the route candidates with a logic designated by a user, a connection data processing part configured to select one or more of the route candidates based on connection data of each route, and a part configured to exclude at least a route passing a destination port having an unknown medium access control (MAC) address from the route candidates, wherein the packet is transmitted from a communication port corresponding to the route that has not been excluded.
Furthermore, another embodiment of the present invention provides a route selecting method for selecting a route for transmitting a packet with a connectionless oriented method between one or more communication ports of each communication node, including: a step of deriving route candidates with a logic designated by a user; a step of deriving route candidates based on connection data of each route; and a step of excluding at least a route passing a destination port having an unknown medium access control (MAC) address from the route candidates; wherein the packet is transmitted from a communication port corresponding to a route that has not been excluded.
Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings.
In the following, embodiments of the present invention are described with reference to the accompanying drawings.
According to an embodiment of the present invention, when considering candidates of routes for transmitting packets, one or more route candidates are derived according to logic designated by a user (layer 4/5), one or more route candidates are selected based on connection data of each route (layer 3), at least a route passing a destination port having an unknown MAC address is excluded from the route candidates (layer 1, 2), and packets are transmitted from a communication port corresponding to the route that has not been excluded. Since a final route is determined by considering route candidates in various upper and lower layers, a highly reliable route can be suitably derived. Because selection is performed on routes according to a connectionless oriented method, the route can be quickly and alterably selected with respect to each packet.
The connection data may be managed in correspondence with each destination and each communication port. The connection data may be reported from an outside managing apparatus. The connection data may be updated at a constant cycle.
In a case where the connection data indicate that all of the communication ports cannot be used, a route corresponding to any one of the communication ports of the destination node is retained in the route candidates. Since the connection data do not necessarily match the actual conditions, packets may be actually transmittable even if the connection data are NG. Therefore, packets, being planned to be transmitted, are transmitted as much as possible (rather than being discarded). Accordingly, the amount of packets stored in a transmission buffer can be reduced as much as possible.
The logic designated by the user may include a criterion for determining a communication port to be selected so that the frequency in which the plural communication ports is the same. For example, the remainder obtained in a case of dividing a port number of a communication port with the total number of communication ports is associated to a route number.
The logic designated by the user may include a criterion for determining a communication port to be selected so that the frequency in which a specific communication port is used becomes higher.
Each communication node can communicate with each other. In the example shown in
The switch (SW) is also a router which transfers a packet(s) according to a routing table.
The managing apparatus (CONT) is for conducting maintenance and management with respect to each element in the communication system. The number of nodes, routes and the like is simply an example. The nodes, routes and the like may be used in any suitable number.
A connectionless oriented method is used in the communication system shown in
The communication ports (NIC: Network Interface Card) #0-#2 are physical ports used for packet communications.
The maintenance interface part (maintenance IF) is a physical port that is used when performing maintenance and/or management on the communication node X1 from outside the communication node X1.
The data receiving part 31 is for receiving packets received by each of the communication ports #0-#2 and routing the packets to a suitable processing element. More specifically, the processing element is, for example, the control data processing part 33 or the protocol processing part 34.
The data transmitting part 32 is for transmitting data to be transmitted to a transmission destination. In a case of transmitting the data to be transmitted, the data transmitting part 32 receives guidance regarding a transmission destination route from the route selecting part 35.
The control data processing part 33 is for processing control data received by the data receiving part 31. When the data to be transmitted are generated by the control data processing part 33, the data are transferred to the data transmitting part 32.
The protocol processing part 34 is for processing application data received by the data receiving part 31. When the data to be transmitted are generated by the protocol processing part 34, the data are transferred to the data transmitting part 32.
The route selecting part 35 is for determining an optimum route based on route candidates derived by the route candidate deriving part 36 and data regarding the packets to be transmitted and reporting the result of the determination to the data transmitting part 32.
The route candidate deriving part 36 is for deriving a route having the possibility of becoming the optimum route (route candidate) from various routes when transmitting packets to a given destination.
The user designation managing part 364 is for managing a route selection logic set (designated) by the user based on protocol data of an upper layer that is equal to or higher than layer 4. The route selection logic may be set in various ways. For example, a communication port can be determined for enabling packets to evenly flow in each communication port (NIC #0-#2) (in other words, so that bandwidth is evenly used). For example, a communication port may be selected according to a remainder of dividing a first lowest digit of a port number (decimal) of a protocol (e.g., UDP, GTP-U, SCTP) with the number of ports (in this example, 3).
For example, in a case where the port number of UDP is 6, the remainder of dividing 6 with 3 is 0. Therefore, route #0 is selected. In a case where the port number of UDP is 7, route #1 is selected. In a case where the port number of UDP is 8, route #2 is selected.
Alternatively, a specific communication port may be preferentially used. For example, the communication port may be used from an ascending order or from a descending order. Furthermore, the communication port may be selected according to a round robin method.
In any case, the user may select a route candidate based on logic or a rule that enables a route to be selected. In this embodiment of the present invention, the user designation managing part 364 does not discard the packets to be transmitted even in a case where there is no route matching the content designated by the user. In this case, it is assumed that at least one route or communication port matches the logic designated by the user.
The third usability determining part 3633 is for deriving a route candidate based on connection data with respect to each route. This process belongs to layer 3. As described above, a route may be designated by a combination of the communication port and the destination. The third usability determining part 3633 determines whether packets can be transmitted from the communication ports NIC #0-#2 to each destination node A, B, C. More specifically, the third usability determining part 3633, cooperating with the route connection monitoring part 366, transmits a detection signal (e.g., ping signal) from the communication node NIC #0 to the destination node A and determines whether an arrival confirmation or an affirmative response signal is received. If it is received, the route can be used (managed as an OK state). If it is not received, the route cannot be used (managed as an NG state). In this example, since three communication ports NIC #0-#2 with respect to each of the three destination nodes A, B, and C are subject to the detection, a total of nine detection results are obtained as shown in
Although connection data may be updated regularly or irregularly, connection data are typically reported at a constant period.
The third usability determining part 3633 does not discard the packets to be transmitted even in a case where all of the routes are NG. In this case, it is assumed that at least one route or communication port matches the logic designated by the user. This is because, in a case where connection data are not updated frequently (low frequency), it is possible that the routes may not be NG at the time of transmitting packets later on.
The second usability determining part 3632 also derives a route candidate based on connection data with respect to each route. This process also belongs to layer 3. The connection data used by the second usability determining part 3622 are reported from an upper level apparatus such as the managing apparatus (CONT) shown in
The same as the third usability determining part 3633, the second usability determining part 3632 does not discard the packets to be transmitted even in a case where all of the routes are NG. In this case, it is assumed that at least one route or communication port matches the logic designated by the user. This is because, in a case where connection data are not updated frequently, it is possible that the routes may not be NG at the time of transmitting packets later on.
The first usability determining part 3631 also derives a route candidate based on connection data with respect to each route. This process also belongs to layer 3. The connection data used by the first usability determining part 3631 are reported from an upper level apparatus such as the managing apparatus (CONT) shown in
The same as the second and third usability determining parts, the first usability determining part 3631 does not discard the packets to be transmitted even in a case where all of the routes are NG. In this case, it is assumed that at least one route or communication port matches the logic designated by the user. This is because, even if the connection status at the time of receiving a report from the managing apparatus is NG, it is possible that the connection status may not be NG at the time of transmitting packets later on.
The ARP resolution status monitoring part 362 is for determining whether an IP address and MAC address of a transmission destination is known and managing a relationship of the addresses. If the OP address and the MAC address of the transmission destination are unknown, packets cannot be transmitted to the corresponding port. Therefore, a route passing through an unknown port is excluded from the route candidates.
According to an embodiment of the present invention, in a case where a route including a port having an unknown address is found with the cooperation of the ARP processing part 365, an address (more specifically, MAC address) of the port becomes apparent and is updated in an address managing table to be used later on. This process may be conducted by using ARP (ARP: Address Resolution Protocol). Basically, with this method, a packet (ARP request) including an IP address subject to determination is broadcasted. The single node having the corresponding IP address sends a response to the transmission source together with its MAC address. In a case where the address necessary for packet transmission is known, it is handled as “ARP resolved”. In a case where the address necessary for packet transmission is unknown, it is handled as “ARP unresolved”. In a case where all route candidates with respect to a given destination node are unresolved, packets cannot be transmitted to the destination node. Therefore, the packets are discarded.
The NIC link status monitoring part 361 is for monitoring the link status of the connection end corresponding to each communication port (NIC) and determining whether the communication port and the connection end are physically connected. In the example shown in
For example, when deriving a suitable route candidate for a route from the communication node X to the communication node A, the route candidate deriving part 36 of the communication node X derives route candidates by using the user designation managing part 364 (layer 4/5). Although any of the communication ports can be used, in this embodiment of the present invention, a specific port is selected from the aspect of decentralizing the workload. In this embodiment of the present invention, a communication port (communication port #2 in the example shown in
Then, in the third usability determining part 3633 (layer 3-3), usability of routes is determined based on connection data measured by the node itself. In the example shown in
In the second usability determining part 3632 (layer 3-2), usability of routes is determined based on connection data reported from the managing apparatus. In the example shown in
In the first usability determining part (layer 3-1), usability of routes are determined based on connection data of each route reported from the managing apparatus. In the example shown in
In the ARP resolution status monitoring part 362 (layer 2), usability of routes is determined according to the status of knowing an address. In the example shown in
According to an embodiment of the present invention, measures are taken for revealing the MAC address of the ARP unresolved communication port. More specifically, an ARP request including an IP address corresponding to the unknown MAC address is broadcasted. Accordingly, a relationship between the IP address and the MAC address is obtained based on a response from a communication node corresponding to the IP address. This relationship is used for route searching for transmitting packets the next time. Although it is theoretically possible to add the revealed MAC address for the current route searching, it is not recommended from the aspect of shortening the delay time and selecting a suitable route.
In the NIC link status monitoring part 361 (layer 1), the routes are narrowed down to a final route based on the status of physical connection. In the example shown in
By comprehensively determining the route candidates derived by each processing part, a suitable route having a comparatively high reliability can be selected. For the sake of convenience, the processes performed by the processing parts are described above in an order from an upper layer to a lower layer. However, this is not a requisite. For example, the processes in layers 3-1, 3-2, and 3-3 may be performed in different order. Furthermore, the content of the route candidates for each processing part may be provided as a table for selecting an optimum route. As long as all of the route candidates for each processing part are comprehensively considered, other processes may be used.
Further, the present invention is not limited to these embodiments, but variations and modifications may be made without departing from the scope of the present invention.
This application is a U.S. continuation application filed under 35 USC 111(a) claiming benefit under 35 USC 120 and 365(c) of PCT application JP2006/305260, filed Mar. 16, 2006. The foregoing application is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2006/305260 | Mar 2006 | US |
Child | 12200412 | US |