Application Layer Virtual Routing
- A cartoon demostration application is good.
Main Reference:Route Information Protocol
- DV routing:
- Bellman-Ford algorithm
- RIP hop count metric
- split horizon, route poisoning, holddown
- Timers
- Update
- Invaild
- Flush
- Holddown
- RIPv2 message
- request
- response
-
listenUDPThread
event driven
-
routerWatchThread
determine whether to remove a router
-
updateThread
-
mainThread
- How to send and receive data? check the buffer regularly.
- Is it necessary to maintain the route table?
No explicit status
Package: Hello, LSU, broadcast, normal, traceRoute, echo
Broadcast: RPF
features:
- multi-path
- tackle with routing loops, using md5
Timers:
- hello
- dead
- connect with routers
- receive the LS from routers
- execute the Floyd algorithm
- send the corresponding forwarding table to each router
How to connect the routers?
- routers send LS packet periodically
- set a dead interval How to store the map?
How to send the forwarding table?
- Triggered update and periodically
Using Twisted!
- connect with the server
- connecting with the neighbours
- send the LS to the server
- receive the forwarding from the server
How to connect to the server?
- periodically and at the beginning
How to connect to the neighbours?
- send hello to the neighbours at the beginning and periodically
- Overview
- Algorithm
- Protocol Specification
- Flow
- Timer
- Message Format
- Protocol Extension
- Deal with the disadvantages of origin DV and LS
- DV: infinite count
- LS: multi-path, looping
- TraceRoute
- Deal with the disadvantages of origin DV and LS
- Implementation
- Result
- Conclusion