|
|
A connection in the ATP protocol is established between two endpoints, which are identified by content ID’s. Endpoints could migrate or temporarily disappear from the network and the data segments and acknowledgments should continue to flow between them. For the sake of simplicity of presentation, we assume that all connections are simplex. Extension to the full-duplex case is straightforward.
A typical communication
scenario is shown in the figure above. A source endpoint (Src), with
content ID S, establishes a connection with a destination endpoint (Dst),
with content ID D (Step 1). When the destination endpoint migrates to a new node
(Step 2), the ATP layer on the old node spawns an agent that acts, at the
ATP layer, on behalf of the destination to buffer any received data and to send
acknowledgments. The ATP agents on the new and old nodes cooperate to make the
migration transparent to the source endpoint. Similarly, when the source
endpoint migrates (Step 3), the ATP layer on the old node spawns an agent to
take care of sending any data in the buffer and to receive acknowledgments. The
ATP agents on the new and old nodes cooperate to make the migration transparent
to the destination endpoint. The migration step can be performed multiple times
and there can be multiple agents working for the same endpoint at any time. The ATP layer of the
source endpoint, whether it is in the original node or any other agent, can take
the decision to participate actively in the connection or to wait passively for
the destination to pull the data. In the former case, the node publishes itself
as AS while in the latter the node publishes itself as PS (where AS
and PS are IDs that are derived from a content ID, S). Since the
operations of the source and destination are decoupled, the default mode of the
agents acting on behalf of the source is to be in the active mode, e.g. agents AS:0
and AS:4 in the figure above. Agents acting on behalf of the destination
in receiving data should buffer this data until the destination appears on the
new node. Therefore, these agents should be in the passive mode until the
destination reappears and requests the buffered data, e.g. agent PD:8 in
the figure above. A sender in the passive mode can arbitrarily choose the length
of the data to be sent before waiting for another pull or the requester can
determine the desired length (or its limit) in the pull message. Each agent has a unique
name composed of the original content ID plus the starting sequence number of
the data it is responsible for. For example, AS:4 denotes an agent for
the source endpoint in the active mode responsible for the segments starting
from sequence number 4. This naming of the agents is supported by the underlying
IBN where different instances (agents) of the same content S are identified by
the sequence number of the starting segment the agent is responsible for. More
details are in the technical report #... Back to Top |
Department of Computer Science Last changed: February 20, 2004 |