In this assignment you are to build a client/server-based Routing Information Protocol (RIP)
Your program should support up to 10 routers, each router will be represented by a process that is
performing the same tasks (running the RIP algorithm). This means that even though you’ll have 10
you only have to write a single program for the routers and run it up to 10 times. Each of these
will run as an independent router, not connected to the network until instructed to do so by a server
Once the server program sends a message to a specific router process, then the router will become
part of the
network and therefore run the RIP algorithm.
Therefore, you only have to write 2 programs, a client program and a server program. However each
connect to the other clients directly.
The server will start running, and it will be connected to the 10 client processes representing each
the routers. Then the server will go into a loop and accept input from the user. The input from the
going to instruct the server to tell client routers to either connect to each others, or to have a
two routers go down.
So, here’s the menu that will run until the user hits quit:
1. Connect 2 router to a network
2. Bring a link down.
Upon selecting 1. Then the server will ask the user to input the router numbers and link numbers, and
asking for these connections until the user input the work ‘end’
Enter routers and a link: R1 1 R2 <—– This means connect router 1 to router 2 over link 1
Enter routers and a link: R1 2 R3 <—– This means connect router 1 to router 3 over link 2
Enter routers and a link: R2 3 R4 <—– This means connect router 2 to router 4 over link 3
Enter routers and a link: end
Now you can see what the network will look like
At this point the server will instruct each client router how it is connected. Once this information
is sent to
each router, then the server will instruct all clients to run the routing information protocol
described in the book. Upon receiving the instructions from the server, each client will run the RIP
build it’s own table. Upon building the table and completing the process, each of the routers should
How do you know when to stop the RIP algorithm, that’s when all tables don’t change as a result of
exchanging tables with neighboring routers.
Upon selecting option 2. the link between two routers will go down, that should be reflected in the
corresponding to each of the routers connected via the link. So, the user will do the following:
Enter a link to bring down: 3
At this point, the routers connected via link 3 will update their tables accordingly, and start a
between them. This should trigger other routers to exchange tables because their tables have changed.
tables don’t change any more, then each router should print its own table to the screen.
I would recommend that each router is run in a separate window, and the server should also run in a
window on a Linux machine. By the way, the option to run this on multiple machine can should also
Assignment status: Solved by our experts