Mirror Protocol

A. Mirror nodes will be used for the following purposes:
 * Storage of data
 * Retrieval of data
 * Creation of mirror nodes

B. A Packet will comprise of multiple fields, viz.:
 * Special Identification Value(for our protocol)
 * Type (Refer to Table T1)
 * Purpose Specific Details
 * Packet Sequence Number
 * Source IP Address
 * Destination IP Address
 * Source MAC Address
 * Destination MAC Address
 * Data Length
 * Data

C. 'Type' will hold any one of the following values, based on the process to be performed by the initiating node.

Table T1
D. Algorithms:

1) Storage
 * Select : a MIRROR node from the list
 * LABEL A:;
 * Send : Packet Type 3
 * Check : Whether connection can be established
 * if(connection==AVAILABLE)
 * Check availability of space
 * if(space==AVAILABLE)
 * Send : Packet Type 0;
 * Start : Storage Process
 * }
 * else
 * Select : Next MIRROR node in the list
 * Goto : LABEL A
 * }
 * }
 * Stop : Storage Process
 * Free : N/W Connection
 * }
 * Stop : Storage Process
 * Free : N/W Connection

2) Retrieval


 * Select : a MIRROR node from the list
 * LABEL A;
 * Send : Packet Type 3
 * Check : whether connection can be established
 * if(connection==AVAILABLE)
 * Send : Data packet Type 1;
 * Start : Retrieval Process
 * }
 * else
 * Select : Next MIRROR node in the list
 * Goto : LABEL A
 * }
 * Stop : Retrieval Process
 * Free : N/W Connection
 * Stop : Retrieval Process
 * Free : N/W Connection

3) Creation of a mirror node


 * Select : a MIRROR node from the list
 * LABEL A;
 * Send : Packet Type 3
 * Check : whether connection can be established
 * if(connection==AVAILABLE)
 * Check : Availability of space
 * if(space==AVAILABLE)
 * Send : Data packet Type 2;
 * Start : Mirror creation process
 * }
 * else
 * Select : Next MIRROR node in the list
 * Goto : LABEL A
 * }
 * }
 * Stop : Mirror creation process
 * Free : N/W Connection
 * }
 * Stop : Mirror creation process
 * Free : N/W Connection