assignment - Project 2 - Routing Protocols UC Berkeley EE...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Project 2 - Routing Protocols UC Berkeley EE 122, Fall 2011 Version 0.2 Due: October 24, 2011, 11:59:59pm The goal of this project is for you to learn to implement distributed routing algorithms, where all routers run an algorithm that allows them to transport packets to their destination, but no central authority determines the forwarding paths. You will implement code to run at a router, and we will provide a routing simulator that builds a graph connecting your routers to each other and simulated hosts on the network. To get started, you will implement a learning switch , which learns the location of hosts by monitoring traffic. At first, the switch simply broadcasts any packet it receives to all of its neighbors. For each packet it sees, it remembers for the sender S the port that the packet came in on. Later, if it receives packets destined to S , it only forwards the packet out on the port that packets from S previously came in on. Recall from class that a learning switch is not a very effective routing technique: it breaks when the network has loops, cannot adapt to routing failures, and is not guaranteed to find efficient paths. Hence you will then implement a RIP -like distance vector protocol to provide stable, efficient, loop-free paths across the network. Routers share the paths they have with their neighbors, who use this information to construct their own forwarding tables . Simulation Environment You can download the simulation environment with full documentation at: http://inst.eecs.berkeley.edu/~ee122/fa11/project_2.tgz Below we describe only the classes you will need to implement. Your LearningSwitch and RIPRouter will extend the Entity class. Each Entity has a number of ports, each of which may be connected to another neighbor Entity . Entities send and receive Packet s to and from their neighbors. The Entity superclass has six functions that will be relevant to you (there are a number more that you can feel free to peek at, but these should be sufficient to complete the assignment): class Entity(__builtin__.object)| | handle_link_down(self, port, entity) | Called by the simulator when the Entity self is disconnected | from another entity. | port - port number that was disconnected. | entity - Entity to which it was previously connected. | (You definitely want to override this function.) 1 http://en.wikipedia.org/wiki/Bridging_(networking) 2 http://en.wikipedia.org/wiki/Routing_Information_Protocol 1 2
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
| | handle_link_up(self, port, entity) | Called by the simulator when the Entity self is connected to | another entity. | port - port number that is now connected. | entity - other Entity that is now connected. | (You definitely want to override this function.)
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 5

assignment - Project 2 - Routing Protocols UC Berkeley EE...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online