Advanced Operating System

profilermandadapu
Assignment1.pdf

9/8/2021 https://learn-us-east-1-prod-fleet02-xythos.content.blackboardcdn.com/5ec72d7c8382c/8331524?X-Blackboard-Expiration=163113480000…

https://learn-us-east-1-prod-fleet02-xythos.content.blackboardcdn.com/5ec72d7c8382c/8331524?X-Blackboard-Expiration=1631134800000&X-Blackb… 1/2

CSCI 5531 - Fall 2021 Assignment 1 Due: 09/24/2021 11:59PM

Description: ------------ In this assignment you are to build a client/server-based Routing Information Protocol (RIP) simulator. 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 routers you only have to write a single program for the routers and run it up to 10 times. Each of these routers will run as an independent router, not connected to the network until instructed to do so by a server program. 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 client should connect to the other clients directly.

Scenario: --------- The server will start running, and it will be connected to the 10 client processes representing each one of the routers. Then the server will go into a loop and accept input from the user. The input from the user is going to instruct the server to tell client routers to either connect to each others, or to have a link between 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. 3. Quit

Upon selecting 1. Then the server will ask the user to input the router numbers and link numbers, and keep 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 ... etc Enter routers and a link: end

Now you can see what the network will look like

R1---1----R2 | | | | 2 3 | | | | R3 R4

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

9/8/2021 https://learn-us-east-1-prod-fleet02-xythos.content.blackboardcdn.com/5ec72d7c8382c/8331524?X-Blackboard-Expiration=163113480000…

https://learn-us-east-1-prod-fleet02-xythos.content.blackboardcdn.com/5ec72d7c8382c/8331524?X-Blackboard-Expiration=1631134800000&X-Blackb… 2/2

algorithm described in the book. Upon receiving the instructions from the server, each client will run the RIP algorithm, and build it's own table. Upon building the table and completing the process, each of the routers should print their table.

How do you know when to stop the RIP algorithm, that's when all tables don't change as a result of routers exchanging tables with neighboring routers.

Upon selecting option 2. the link between two routers will go down, that should be reflected in the table 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 table exchange between them. This should trigger other routers to exchange tables because their tables have changed. Once the 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 separate window on a Linux machine. By the way, the option to run this on multiple machine can should also work.

Good Luck