Patent ID: 7554982

Claim:
A communication terminal for use in a communication network formed by a plurality of communication terminals that communicate with each other, the plurality of communication terminals having respective identifiers (IDs), the communication terminal being one of the plurality of communication terminals, the communication terminal comprising: a communication control unit controlling operations of the communication terminal, the operations including transmitting data to the plurality of communication terminals and receiving data from the plurality of communication terminals; a source and destination analyzer for analyzing received data to obtain the IDs of a source terminal and a destination terminal of the received data; a neighboring terminal ID analyzer for analyzing the received data to obtain the ID of a neighboring terminal from which the data was directly received; an expiration time storage unit for storing an initial value of a relay time, the initial value being greater than zero; and a routing control cache for holding at least one destination terminal ID and an associated relay terminal ID, and an associated relay time, and decrementing the associated relay time as time elapses; wherein the communication control unit adds the ID of the source terminal obtained by the source and destination analyzer and the ID obtained by the neighboring terminal ID analyzer to the routing control cache as a new destination terminal ID and associated neighboring relay terminal ID if they are not already stored in the routing control cache as a destination terminal ID and associated neighboring relay terminal ID, also writing the initial value of the relay time in the routing control cache in association with the new destination terminal ID and neighboring relay terminal ID, compares the ID of the destination terminal obtained by the source and destination analyzer with the at least one destination terminal ID stored in the routing control cache to decide whether to route the received data toward the destination terminal, restores the associated relay time held in the routing control cache to the initial value if the source terminal of the received data and the ID of the neighboring terminal are already stored in the routing control cache as a destination terminal ID and associated neighboring relay terminal ID, deletes a destination terminal ID and associated neighboring relay terminal ID from the routing control cache when the associated relay time reaches zero, relays the received data to all neighboring terminals having IDs held in the routing control cache as relay terminal IDs in association with the ID of the destination terminal of the received data, and abandons the received data if the ID of the destination terminal of the received data is not held in the routing control cache as a destination terminal ID.