CSCI 5132 Internet Protocols

Spring 2004

Project Assignment No. 2

Initial Design due: March24th/26th, 2004

Program and final documentation due: April 7th/9th, 2004

Two person team project

This project will be carried out in groups of two people.

Each person will develop the ARP and IP Layers that will run on top of the Ethernet Card simulators developed in Program 1.

Person 1 in the team will develop the ARP and IP layers for the host computer(s). Person 2 will develop the ARP and IP layers for a router which will connect two Ethernet switch simulators.

Each person will need to write a user interface appropriate for his/her situation (Details below). Hosts will be interactive which will allow users to send data from a host to another host (in the same or in the other network). Router will just be an informational interface reporting the packets that are being received and re-routed to the screen.

Each host will have a hardware address and an IP address which will be assigned by the user running the simulation (no need for RARP). The router will have two hardware addresses and two IP addresses (one pair for each card). You do not need to implement routing protocols like RIP. You can load a static routing table from a file or enter it from the keyboard.

Each “network” will consist of an Ethernet switch simulator and at least two hosts (both instances of the program produced by person 1) and should be assigned a network ID (by virtue of using IP addresses for all hosts and router connected to the switch with the same netID).

User interface details.

For the router the user interface will just print to the screen a readable report every time a datagram is received and forwarded to the other network or discarded. It should include: source IP and destination IP addresses as well as the data carried by the datagram. This interface is simpler, but the IP layer of the router is slightly more complicated so it evens out.

For the hosts, you will need to provide a user level interface that will allow the user to:

a)Display in the screen when an IP datagram is received and its contents in a readable format.

b)Run a command to indicate that an IP datagram needs to be sent and allow the user to enter the data contents from the keyboard and indicate to which host the datagram needs to be sent by indicating the destination IP address (which could be the IP limited or directed broadcast address). The IP layer should calculate the checksum and store it in the packet.

c)(Optional) Run a command that indicates that a series of packets and associated IP destination addresses should be read from a file and transmitted, return to user interaction after the contents of the file are exhausted.

d)Run a command to indicate that a number of IP datagrams with dummy randomly generated data should be sent, choosing at random which host will be the destination.

You need to turn in a description of your design, including any class diagrams/algorithms, etc., as appropriate, as part of the documentation of your project. You also need to schedule a demo with the T.A. the week after the assignment is due.

GRADING:

  1. Show traffic from net 1 host to net 1 host.
  2. Show traffic from net 1 host (intended for net 2) get to router and forwarded and delivered to net 2 host.
  3. Show traffic from net 2 host to net 2 host.
  4. Show traffic from net 2 host (intended for net 1) get to router and is forwarded and delivered to net 1 host
  5. Show traffic from a host to a non existing host in same net
  6. Show traffic from a host to a non existing host in the other net
  7. Show traffic from a host to a non-existing network being “swallowed” by the router.
  8. Show broadcast traffic in same network
  9. Show directed broadcast traffic to the other network
  10. Show traffic from a host directed to the router.

Each part = 20 points  TOTAL 200 points  TOTAL / 2 = 100 per team member.

Note:

If you want to produce both programs by yourself you get 20 points extra credit minus 20 points penalty for not being able to work in a team… . In other words, you can work individually but you have to do all the work yourself for same credit.

Real Extra credit 1: (10 Points) Your simulation includes a router that connects THREE Ethernets (three switches.)

Real Extra credit 2: (20 Points) Include a host from each team member connected to every switch from each team member as follows:

2 hosts, one in each network – Team member 1

2 hosts, one in each network – Team member 2

Ethernet switch 1 – Team member 1

Router – Team member 2

Ethernet switch 2 – Team member 2

You also need to have a way for the user to indicate that a host/router should be disconnected from the Switch for a graceful termination of your simulation.

See picture in next page…