This application is based on Japanese Patent Application No. 2005-143061 filed on May 16, 2005, the contents of which are hereby incorporated by reference.
1. Field of the Invention
The present invention relates to the configuration of a network and a data communications method and the like.
2. Description of the Related Art
Technology has become widespread in which a network is formed by connecting a plurality of information processing apparatuses (nodes) such as personal computers with communications lines, and data is exchanged among these information processing apparatuses. P2P (peer-to-peer) networks are particularly widely adopted in small-scale offices and the like because they can be constructed more simply than client-server networks.
However, in a P2P network, management of information relating to the configuration of the network and the like becomes more complicated as the number of information processing apparatuses in the network increases. Management is particularly likely to become complicated in the case of a pure P2P network, in which a managing apparatus (for example, such as a DHCP (Dynamic Host Configuration Protocol) server) is not present.
Accordingly, a method called “flooding is ordinarily used to obtain necessary node information. With this method, data is flowed like a flood to all of the nodes in the network. Each node obtains data that it requires, and discards data that it does not require.
In order to look up the attributes (such as IP address or host name) of all nodes, a method is also often used in which data that includes a predetermined command is transmitted (flooded) with a broadcast address as the destination. A node that has received the command data replies with its attribute information to the command source node according to that command.
Other than the above, methods such as those described in Japanese unexamined patent publication No. 2004-164625 and Japanese unexamined patent publication No. 2004-266622 have been proposed for data communications among a plurality of nodes. According to the method described in Japanese unexamined patent publication No. 2004-164625, when data has been propagated on the network, propagation history information is shared across at least the three generations of the data transmission source, the node itself, and the data transmission destination, and stored in each node. Thus, it is possible to track the data propagation path using the propagation history information.
According to the method described in Japanese unexamined patent publication No. 2004-266622, a terminal apparatus n transmits an information request to a server 5 when the terminal apparatus n starts driving and when an information request transmission command and address information are received from a terminal apparatus n−1. When the server 5 has received the information request from the terminal apparatus n, it manages storage of this terminal apparatus n, and transmits information and address information for a terminal apparatus n+1 to the terminal apparatus n. When the terminal apparatus n has received the information and address information for the terminal apparatus n+1 from the server 5, after transmitting an information request transmission command and its own terminal apparatus address information to the terminal apparatus n+1, the terminal apparatus n transmits the information received from the server 5 to the terminal apparatus n−1 from which it received the information request transmission command.
As stated above, P2P networking is used for exchanging content on the Internet and for configuring simple networks in small-scale offices. Thus, there are few scenarios in which information for all nodes is gathered. However, from the present time forward, from the viewpoint of security, tight management of all nodes will be strongly desired when networks are introduced in government and corporate offices and the like.
However, according to a conventional flooding method, when an inquiry is made to all nodes with respect to a particular item (for example, such as an IP address), because traffic is generated simultaneously, communications over the entire network are likely to be delayed. Also, there is a large load placed on the apparatus that is the source of the inquiry. In particular, the communications delay grows longer as the network increases in scale. Also, the load placed on the apparatus that is the source of the inquiry or on a specified apparatus such as a hub increases.
With the method described in Japanese unexamined patent publication No. 2004-164625, it is not possible to solve the above problems. With the method described in Japanese unexamined patent publication No. 2004-266622, when data such as video content is simultaneously delivered to a plurality of terminal apparatuses, the server load can be decreased. However, it is not possible to decrease the traffic when making an inquiry with respect to IP addresses and the like, or to decrease the load on the source of the inquiry.
In view of such problems, it is an object of the present invention to decrease the load placed on a specified apparatus that occurs when obtaining information for the nodes that configure a network more than with the conventional technology. Further, it is an object of the present invention to decrease the traffic that occurs when obtaining information for the nodes that configure the network more than with the conventional technology.
According to one aspect of the present invention, a communications method in a network configured by a plurality of nodes, includes directly associating each node with at least one other node, such that all of the nodes that configure the network are directly or indirectly related. When an instruction source node among the nodes that configure the network causes all of the other nodes to execute predetermined processing, the instruction source node transmitting an instruction to execute the predetermined processing, along with issued identifying information unique to that instruction, to another node with which the instruction source node is directly related, and the node that received the instruction, when it has not previously received identifying information expressing the same content as the identifying information received with the instruction, executing the predetermined processing according to the instruction, and transmitting the received instruction and identifying information to another node that is directly associated with the node.
According to the present invention, it is possible to decrease the load placed on a specified apparatus that occurs when obtaining information for the nodes that configure a network more than with the conventional technology. According to the invention, it is further possible to decrease the traffic that occurs when obtaining information for the nodes that configure the network more than with the conventional technology.
These and other characteristics and objects of the present invention will become more apparent by the following descriptions of preferred embodiments with reference to drawings.
As shown in
The terminal apparatuses 2 are apparatuses in which processing for data input and output between a terminal apparatus 2 and another apparatus is executed, such as a personal computer, workstation, or printer. Following is a description of an example in which a personal computer is used as a terminal apparatus 2.
As shown in
The communications interface 20e is a NIC (Network Interface Card), and is connected to any port of the switching hub 3 via a twisted pair cable. The image interface 20f is connected to a monitor, and outputs an image signal for displaying a screen to the monitor. The input interface 20g is connected to an input apparatus such as a keyboard or mouse, and inputs a signal that expresses the content of a user's operation from these input apparatuses.
As shown in
A host name (machine name), IP address, and MAC address are given to each terminal apparatus 2, in order to distinguish each terminal apparatus from other terminal apparatuses. IP addresses are given according to the rules of the network 1. MAC addresses are set in advance by the manufacturer of the communications interface 20e. Host names can be freely given by an administrator or the like of the network 1. In the present embodiment, a host name in the manner of “PC01”, “PC02”, . . . , is given to each terminal apparatus 2.
Also, these terminal apparatuses 2 are assumed to be disposed in a virtual space as shown for example by either
Following is a detailed description of the content of processing of each portion of the terminal apparatus 2 shown in
The data saving portion 211 saves data used by an OS, application software, or the like, data created by a user with application software, or various other data, as files. Other than such files, the data saving portion 211 stores identifying information for instruction data DT1 that has been received up to the present. Instruction data DT1 will be described later.
The connection table saving portion 212 saves a connection table TL that expresses a list of attributes such as the host name, IP address, and MAC address of other terminal apparatuses 2 that are associated with that terminal apparatus 2. For example, connection tables TL01 to TL04 as shown in
The command receiving portion 201 receives a command designated by a user operating a keyboard, mouse, or the like, and causes each portion to execute processing according to that command.
From among packets flowed through the network 1, the data receiving portion 202 receives packets necessary to that terminal apparatus 2.
The data analysis portion 203 extracts a portion of the necessary data from among the packets received and analyzes the contents of that data. Also, the data analysis portion 203 gives an instruction to each portion of the terminal apparatus 2 to execute processing according to the results of that analysis. For example, it gives an instruction to the data manipulating portion 207 to save data in the data saving portion 211, and gives an instruction to the data generating portion 204, the data updating portion 205, and the data transmitting portion 206 to generate data that responds with the attributes (such as the IP address) of the terminal apparatus 2 itself and to transmit that data to the source of the inquiry.
The data generating portion 204 generates data based on an instruction from the command receiving portion 201 or the data analysis portion 203. The data updating portion 205 updates existing data based on an instruction from the command receiving portion 201 or the data analysis portion 203. The data transmitting portion 206 converts data generated by the data generating portion 204 or updated by the data updating portion 205 to packets, and transmits the packets to another terminal apparatus 2 based on an instruction from the command receiving portion 201 or the data analysis portion 203.
The data manipulating portion 207 performs processing related to a file saved in the data saving portion 211 of that terminal apparatus 2, based on an instruction from the command receiving portion 201 or the data analysis portion 203.
The screen output portion 208 performs processing for displaying a screen for giving a message or instruction to a user who operates that terminal apparatus 2, a screen for a user to input a processing instruction, a screen for displaying the results of processing, and the like on a monitor.
Following is a detailed description of the content of processing of each portion in the terminal apparatuses 2 with reference to flowcharts and the like, for an example in which the user of a particular terminal apparatus 2 has designated a command to respond with the IP address and has designated a broadcast address as a parameter that indicates the executing entity for that command. Below, in order to distinguish the terminal apparatus 2 in which a command has been designated by a user, and that instructs that the processing of this command be executed, from other terminal apparatuses 2, that terminal apparatus is sometimes referred to as the “instruction source terminal apparatus 2M”.
In the instruction source terminal apparatus 2M, when the command receiving portion 201 has received the content of a command and a parameter specified by the user (#11 in
First, empty data in a format like that shown in
The MAC addresses or host names for the other terminal apparatuses 2 that were checked are written to a destination address portion FL1. The MAC address or host name for the instruction source terminal apparatus 2M itself are written to both a transmission source address portion FL0 and an instruction source address portion FL3. Identifying information (for example, such as a value combining the time and date that the user's designation was received and the identifying information for the instruction source terminal apparatus 2M) for distinguishing the current instruction data DT1 from previously generated instruction data DT1 is issued, and this is written to an identification data portion FL2. The command that has been designated by the user is written to a command data portion FL4. The IP address and the MAC address or host name for the instruction source terminal apparatus 2M itself are written to a response data portion FL5. In this manner, the instruction data DT1 is generated (#13).
The data transmitting portion 206 converts the instruction data DT1 that has been generated into packets and transmits that data to the address shown in the destination address portion FL1 for that instruction data DT1 (#14).
The packets of the instruction data DT1 that have been transmitted from the instruction source terminal apparatus 2M temporarily arrive at the switching hub 3. The switching hub 3 transmits these packets that have arrived to the terminal apparatus 2 connected to the port corresponding to the address shown in the destination address portion FL1. In this manner, the switching hub 3 fulfills a role of relaying data such as the instruction data DT1 to only a destination terminal apparatus 2. The transmission and reception of data between two terminal apparatuses 2, described later, is likewise performed via the switching hub 3.
In terminal apparatuses 2 other than the instruction source terminal apparatus 2, processing is performed with a procedure as shown in
As described later in
When the identifying information for the received instruction data DT1 is not equal to any identifying information for instruction data DT1 that has been previously received (No in #23), the data updating portion 205 adds the IP address and the MAC address or host name for the received instruction data DT1 to the response data portion FL5 for that instruction data DT1 (#24).
Further, a check is performed of whether or not a terminal apparatus 2 other than the terminal apparatus 2 that transmitted that instruction data DT1 (i.e., the terminal apparatus 2 shown in the transmission source address portion FL0 for that instruction data DT1) is shown in its own connection table TL (#25). When the result is that a terminal apparatus 2 was found (Yes in #26), processing is performed as follows in order to forward the instruction data DT1 to the terminal apparatus 2 that was found.
That is, when only one terminal apparatus 2 was found, the value of the destination address portion FL1 in the instruction data DT1 for that terminal apparatus 2 is rewritten to the MAC address or host name for the found terminal apparatus 2. When a plurality of terminal apparatuses 2 were found, their instruction data DT1 is duplicated to become the same as the number of terminal apparatuses 2, and the values of the respective destination address portions FL1 are rewritten to the MAC addresses or host names of the terminal apparatuses 2 that were found (#27). Then, the data transmission portion 206 transmits these sets of instruction data DT1 to the destinations that have been rewritten (#28).
On the other hand, when a terminal apparatus 2 was not found in Step #25 (No in #26), the data updating portion 205 rewrites the value of the destination address portion FL1 in the instruction data DT1 received in Step #21 to the value shown in the instruction source address portion FL3, i.e., a value that indicates the instruction source terminal apparatus 2M (#29). Then, the data transmitting portion 206 transmits that instruction data DT1 to the rewritten destination (#30).
Returning to
Whether or not instruction data DT1 is data that has returned is known by comparing the identifying information indicated in the identification data portion FL2 of the instruction data DT1 received from another terminal apparatus 2 in Step #15 to the identifying information for the instruction data DT1 transmitted by the instruction source terminal apparatus 2M itself in Step #14. That is, if the identifying information for both is the same, it can be judged that the instruction data DT1 is data that has returned.
Here, using for example a case in which four terminal apparatuses 2 (PC01 to PC04) are provided in the network 1 with a logical topology as shown in
In
When PC02 receives the instruction data DT1, the content of that instruction data DT1 is updated to instruction data DT1b by executing processing according to the command of the command data portion FL4. That is, the IP address and the like of PC02 itself are rewritten to the response data portion FL5. The terminal apparatuses 2 associated with PC02 itself, indicated in the connection table TL02 for PC02 itself (See
When PC03 receives the instruction data DT1b, same as in the case of PC02, by executing processing according to the command, PC03 writes the IP address and the like of PC03 itself to the response data portion FL5, rewrites the value of the transmission source address portion FL0 to the MAC address of PC03 itself, and rewrites the destination address portion FL1 to the MAC address of PC04 based on the connection table TL03 (see
When PC04 receives the instruction data DT1c, by executing processing according to a command, it writes the IP address and the like of PC04 itself to the response data portion FL5. Terminal apparatuses 2 other than PC03, which is the transmission source of the instruction data DT1c, are not shown in the connection table TL04 for PC04 (see
PC01 extracts the IP address and host name for each terminal apparatus 2 in the network 1 from the response data portion FL5 of the instruction data DT1 (DT1d) that has returned, and displays them on a monitor. This processing corresponds to the processing in #15 to #17 in
Next, using for example a case in which eight terminal apparatuses 2 (PC11 to PC18) are provided in the network 1 with a logical topology as shown in
In
The instruction data DT1α is relayed to each terminal apparatus 2 in the clockwise direction, PC11, PC12, PC13, and so on. At this time, the IP addresses and host names for the terminal apparatuses 2 are written in relay order one after another to the response data portion FL5 in the instruction data DT1α. The values for the transmission source address portion FL0 to command data portion FL4 are also appropriately updated as previously explained in
The set of instruction data DT1α and the set of DT1 pass each other at some point while being relayed to the terminal apparatuses 2. In the example in
In this way, the set of instruction data DT1α and the set of DT1β return to PC11. Then, PC 11 extracts the IP address and host name for each terminal apparatus 2 in the network 1 from the response data portion FL5 of these sets of instruction data DT1, and displays them on a monitor.
According to the present embodiment, when a particular terminal apparatus 2 obtains information indicating the IP addresses of all of the other terminal apparatuses 2, it is possible to lighten the load placed on the terminal apparatus 2 and the hub 3 more than with the conventional technology. Further, it is possible to decrease the traffic between the terminal apparatus 2 and the hub 3, so that the traffic over the entire network can be reduced more than with the conventional technology.
In the case of a regular graph as shown in
The present invention can also be applied in the case of a topology in which closed-loop sections and dead-end sections are intermingled, as shown in
According to the present embodiment, the instruction source terminal apparatus 2M, based on the instruction data DT1 that has been relayed through the other terminal apparatuses 2 and returned, can infer the associations among the terminal apparatuses 2, i.e., the logical topology of the network 1. Further, the terminal apparatus 2M can be used for purposes such as visualizing the topology from the results of that inference, finding a node one wishes to sever from the network, finding a defective node, or reconfiguring the topology in order to improve communications efficiency.
In the present embodiment, a command to respond with the IP address was included in the instruction data DT1, but other commands are also possible. For example, the command may be a command to respond with attributes such as the MAC address, host name, or operating system version. It may also be a command to transmit a public key, document data, image data, audio data, or the like to the instruction source terminal apparatus 2M.
Also, it may be a command to execute processing for a virus check, backup, or the like. Also, a command may be included to attach a file to the instruction data DT1, and to obtain that file. In these cases, a configuration may be adopted in which the processing results are written to the response data portion FL5 of the instruction data DT1 (see
In the present embodiment, a case was described, by way of example, in which a LAN was used as the network 1, but the present invention can also be applied in a network configured by connecting a plurality of network segments such as a LAN or the Internet via a router or the like (for example, such as an intranet or wide-area Ethernet), or in a virtual LAN or the like. The present invention can also be applied in a wireless LAN.
Other than the above, the configuration of all or a part of the network 1 or the terminal apparatus 2, the content of processing, the order of processing, the content of the tables, the topology, and the like can be appropriately modified in accordance with the gist of the present invention.
The present invention is suitably used for, particularly, managing a pure P2P network in which there is not a managing apparatus.
The invention may be embodied in other forms without departing from the spirit or essential characteristics thereof. The embodiments disclosed in this application are to be considered in all respects as illustrative and not limiting. The scope of the invention is indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are intended to be embraced therein.
Number | Date | Country | Kind |
---|---|---|---|
JP2005-143061 | May 2005 | JP | national |