3.1. PROBLEM ILLUSTRATION
In previous work, most researchers use network latency or network delay as the measurement for host distance. In our work, we introduce hop-based solution as another viewpoint that is different from previous works. Network latency is calculated alone with a path from one host to another host, therefore, there exist some edges will be calculated more than ones so that this situation could be improved. In addition, the network latency is calculated more than ones, therefore, there exist redundant message transmission over the transmission path. We illustrate an example in Figure 7. There exist a overlay network include host A, host B and host C. Host B is the neighbor of host A and host C is the neighbor of host B. Host A resides on network node 1, host B resides on network node 4 and host C resides on network node 5. network node 2 and 3 might be router or gateway. We suppose host A send a message to host C via host B according to the overlay network in Figure 7. The message will be sent from network node 1Æ network node 2Æ network node 3Æ network node 4Æ network node 3 Æ network node 5. Therefore, we can find the revisit edges between network node 3 and network node 4. This might cause erroneous judgement of optimized topology.
Figure 7 : An Example of Revisit Path
A B C
Overlay Network Topology
Underlying Network Topology
1 2 3 4
5
3.2. OVERLAY TOPOLOGY IMPROVEMENT SCHEME 3.2.1. NETWORK HOP TRACER MECHANISM
Based on our observation, we introduce network hop-based counting and detect the revisit edges along the query path to make the overlay network topology-aware. In practical, we can use network diagnose tool, traceroute or tracert, to explore the network path. These tools can trace the network address from source host to destination host so that the network hop can be recognized. Figure 8 is an example of that using traceroute tool from Minghsin University to Yahoo homepage.
Figure 8 : traceroute tool Example from Minghsin University to Yahoo
Because query message is delivered from source host to destination host via some intermediate hosts, therefore, in order to obtain network hop information we design a tracerHop-K algorithm that is extended from the mechanism of traceroute or tracert tool to explore network hops between two hosts. Message delivery path is based on peer-to-peer overlay network topology, so the virtual delivery path is according to peer’s connectivity in peer-to-peer overlay network. Each intermediate host on the path will execute tracerHop-K to get the network hop information to next host and then reply the network information to source host alone the message delivery path. For example, host A will have network hop information 1Æ2Æ3Æ4, and host b will have 4Æ3Æ5 and reply to host A. Figure 9 is an example of network hop information gathering process and Figure 10 is the illustration of the tracerHop-K algorithm.
Figure 9 : Network Hop Tracer Example
A B C
Overlay Network Topology
Underlying Network Topology
1 2 3 4
5
Hop information between B and C
tracerHop-K message Hop information
between A and B
tracerHop-K message
Figure 10 : tracerHop-K Algorithm INPUT : ADDRdest, K
OUTPUT : INFOhop
IF ADDR!= ADDRdest AND K > 0 HOSTnextÅ FIND(TABLEhost) INFOhopÅ traceroute(HOSTnext)
K Å K - 1 IF K > 0
SEND(HOSTnext)
3.2.2. HOPK-BASED OPTIMIZATION SCHEME
In order to have topology-aware peer-o-peer overlay network, the host connection relationship that forming the peer-to-peer overlay network need to take underlying network information into account. Because peer-to-peer overlay network is a distributed architecture, each host is self-organized and self-managed so that having global underlying network information in peer-to-peer overlay network is a difficult process. Therefore, in our research we also use the similar concept that using local information to estimate global optimized topology. Each host will send a tracerHop-K message to have local network hop information within K host away from source host in peer-to-peer overlay network. After gathering the network hop information within the range of overlay network hop K, the host will construct an argument network topology which are connecting with peer-to-peer overlay network host and underlying network routers. Figure 11 is the example of argument network topology with 2 hops. The host with wathet blue color is the host that constructing the argument network topology for topology improvement. The host with red color is 1 hop from the wathet blue host and the host navy blue color is 2 hop from the wathet blue host. The black nodes are the router between adjacent hosts in peer-to-peer overlay network.
Figure 11 : Argument Network Topology Example
When the host constructs the argument network topology, the host will detect the repeat edges or cycle edges in the argument network topology and add the final host in the path to the host’s neighbor. Figure 12 is the algorithm of the HopK-Based optimization scheme. The algorithm will be executed in each host of peer-to-peer overlay network periodically.
In general, the overall network is a summation of transmission delay, queuing delay, propagation delay and processing delay. Equation (1) is the formula that describes the overall network delay of peer-to-peer overlay network.
∑ ∑
∑ ∑
= + + += n im host n mi t q p pro
network D D D D D
D 1 1 (1)
Dnetwork is the overall network delay of peer-to-peer overlay network. Dhost is the network delay with respect to host of peer-to-peer overlay network. Dt is the transmission delay, Dq is the queuing delay, Dp is the propagation delay and Dpro is the processing delay. Because our method is to reduce the revisit edges when transmitting messages over peer-to-peer overlay network, the number of pass through router and the redundant messages are decreased. So the transmission delay, queuing delay, propagation delay and processing delay are decreased.
Therefore, we can derive the result after using HopK-Based Optimization Scheme is better than before using HopK-Based Optimization Scheme simply.
Figure 12 : HopK-Based Optimization Scheme function detect(PATHa->b)
begin
for each HOSTi in PATHa->b
if HOSTi<>HOSTa and HOSTi<>HOSTb
if predecessor(HOSTi) == successor(HOSTi) return true
else
return false end
function Topology_Optimization begin
for each INFOhop in Argument_Topology T for each HOSTi in INFOhop
if detect(PATHHOST->HOSTi)
add HOSTi as HOST’s neighbor break
end