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[]
Type | Purpose |
0 | Storage of data (CLIENT<---->MIRROR Interaction) |
1 | Retrieval of data (CLIENT<---->MIRROR Interaction) |
2 | Creation of a mirror node (MIRROR<---->MIRROR Interaction) |
3 | Validation (CLIENT<---->MIRROR OR MIRROR<---->MIRROR) |
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
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
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