CS558 Sylabus

### Flooding:

• Flooding

• Flooding:

 Flooding = the basic algorithm to perform broadcasting without the use of routing tables

(If you can use routing tables, there is a more efficient algorithm called: reverse path broadcasting)

• The Flooding algorithm:

 ``` Initial flooding operation: Select TTL = "large enough" (depends on network topology); Send packet with TTL value to all neighbor nodes; Flooding forwarding algorithm: Node receives a packet on link L; Set TTL = TTL - 1; if ( TTL > 0 ) { Send packet with new TTL on all links except link L; } else { Drop packet; } ```

Example: Flooding

• Reliable Flooding

• Reliable flooding:

• Reliable flooding = a more efficient flooding algorithm

• Nodes must maintain:

 A lastest "version" number (similar to a send sequence number)

• A node will only forward a flood message that has a newer (larger) version number than its current version number

• Example:

• Result of the flooding operation

• Recall that:

 Flooding will broadcast some information to all nodes in the network

• Suppose:

The result will be:

 Every node will know the link costs of every link in the network.

• Example:

• Network:

• After the flooding is done, each node will have this information:

 ``` Distance matrix To: From A B C D E ------+--------------------------------- A | * 5 10 * * B | 5 * 3 11 * C | 10 3 * 2 * D | * 11 2 * 3 E | * * * 3 * ```

The matrix contains the cost of all the links

• Every node in the network will have the same information

• Each node will next run the well-known Dijkstra Algorithm on the graph to find the shortest paths.