Step 2. Pinging after RIP convergence¶
We show how RIP is used for progressively building up the routing tables of the routers. In order to keep the discussion easy to digest, in this step, we do not introduce any changes in the network while the simulation is running, and we do not use the advanced RIP features.
If you would like to brush up your RIP knowledge, you can find a good discussion of the distance-vector algorithm and RIP in this section of L. Peterson and B. Davie’s superb book Computer Networks: A Systems Approach, now freely available online.
We use the same network configuration as the previous one, except that we start
the simulation with empty routing tables. The experiment is set up in
omnetpp.ini, in section
The configuration in
omnetpp.ini is the following:
[Config Step2] description = "Pinging after RIP convergence" network = RipNetworkA # adding default routes in all hosts *.configurator.config = xml("<config> \ <interface hosts='**' address='10.x.x.x' netmask='255.x.x.x'/> \ <autoroute sourceHosts='host*'/> \ </config>") *.configurator.addStaticRoutes = true # RIP parameters on routers *.router*.hasRip = true *.router*.rip.startupTime = uniform(0s,1s) # disable advanced features for now! *.router*.rip.ripConfig = xml("<config> \ <interface hosts='router*' mode='NoSplitHorizon' /> \ </config>") *.router*.rip.triggeredUpdate = false # Application parameters *.host0.numApps = 1 *.host0.app.typename = "PingApp" *.host0.app.destAddr = "host6" *.host0.app.startTime = 50s # turning on global ARP to focus on the RIP messages *.*.ipv4.arp.typename = "GlobalArp" # TODO: for some reasons GlobalArp does not work -> it seems to work now # Visualizer settings *.visualizer.interfaceTableVisualizer.displayInterfaceTables = true
Observe in the following video how routers inform their neighbours and progressively build their routing tables (as indicated by the appearance of blue and red arrows linking the routers). At the end of a few iterations, we see the same routing configuration as Step 1.