Assignment #3 Routing and Network Analysis CIS3210 Computer Networks University of Guelph Part I Written (50%): 1. Given the network graph diagram above where the nodes represent routers and the weights represent costs to forward traffic between routers, solve the routes from every node to each other node in the network using both Dijsktra s algorithm and the Bellman-Ford algorithm. The Dijsktra s approach should include a table showing all of the steps /iterations of the algorithms as shown below:
Update: Please use the above graph for the Bellman-Ford algorithm since the larger graph in the first part of the question requires too much space and time for provide the solution. If you have already completed the question with the first graph, or still wish to do so, you may receive a bonus of up to 5% (for a potential final grade of 105%) For the Bellman-Ford algorithm, a series of tables should be shown to demonstrate how the algorithm converges to a solution. In this case, show the routing tables for each node in the network from initialization to convergence. A sample of what should be included is also shown below:
2. For the following questions, use a Wireshark capture of ICMP packets over a real network. In order to generate ICMP traffic, the traceroute tool will be used. Make sure the tool you have allows for sending various sized datagrams. For instance in Linux you can issue the command traceroute google.ca 2000 to send 2000 byte datagrams to google.ca. Start capturing traffic with Wireshark and then issue a traceroute with size 56 bytes, one with size 2000 bytes and one with 3500 bytes. After you have capture the ICMP packets, when answering the questions you may printout parts of your trace to include with your answer or do a screen capture and attach this to your document. a) What is the IP address of your computer b) Within the IP packet header what is the value in the upper layer protocol field? c) How many bytes are in the IP header? How many bytes are in the payload of the IP Datagram? Explain how you determined the number of payload bytes d) Has the IP Datagram been fragmented? Explain how you determined whether or not the datagram has been fragmented. e) Which fields in the IP datagram always change from one datagram to the next within the series of ICMP messages sent by your computer? f) Which fields stay constant? Which fields must stay constant? Which fields must change? Why? g) Describe the pattern you see in the values in the Identification field of the IP datagram h) In the ICMP-TTL-exceeded replies to your computer from the first hop router, what is the value in the Identification field and TTL field? i) Do these values remain unchanged for all of the ICMP-TTL-exceeded replies sent to your computer by the nearest (first-hop) router? Why? j) Find the first ICMP Echo Request message that was sent by your computer after you changed the packet size from 56 to 2000. Has the message been fragmented across more than one IP datagram? If not, what size do you need to change it to before you notice fragmenentation? k) Examine the first fragment of the fragmented datagram. What information in the IP header indicates that the datagram has been fragmented? What information in the IP header indicates whether this is first fragment rather than a latter fragment? l) Examine the second fragment. What information in the IP header indicates that this is not the first datagram fragment. Are there more fragments? How can you tell? m) What fields change in the IP header between the first and second fragment? n) Now find the ICMP Echo Request message after you changed the size to 3500 bytes. How many fragments were created from the original datagram? o) What fields change in the IP header among the fragments?
Part II Network Simulation (50%): In order to examine how routing choices affect the performance in a network, simulation will be used because it allows us to study arbitrarily sized networks without the cost of all of the equipment. For this portion of the assignment, there are two options. You can implement the simulation yourself or you can use an existing tool which already has routing algorithms implemented. If you use another tool, check with me first to see if it is okay to use. The ns2 and ns3 will be demonstrated in the lectures and are okay to use without checking first. The remainder of the instructions will be geared towards programming your own simulation, but will also apply to the simulation tools as well. The simulation itself should be a discrete event simulation. Important events in the simulation should appear in a queue and are processed in order by their timestamp. Each event changes the state of the simulation when it is processed. For example this could be a sample event queue: 1. Time: 0.01 Event: Traffic Originates at Node 10 2. Time: 0.03 Event: Traffic Originates at Node 3 3. Time 0.05 Event: Traffic arrives at Node 9 from Node 10 As events are processed by the simulator, new events are added based on the actions that should occur. Event #3 in the queue was added as an action after the initial traffic arrived at node 10. Based on the routing decision, the traffic is forwarded to node 9. Note the delay that occurs between the events. You will need to invent a delay for route computation time, and a delay for the time it takes to transmit from one node to another. Details about this will be covered in class. Traffic originates at nodes using a Poisson distribution which will also be covered in class. The network should have at least 25 nodes, arranged in a grid. At the start of the simulation, random nodes should be selected as the source and destination. The simulation should generate at least 10,000 source packets before it completes a single run. There are two important measurements that can be taken to determine how well the routing is performing. 1. Average time from source to destination ( average end-to-end delay) 2. Number of packets successfully delivered / total number of packets sent (average packet delivery ratio) At least two routing protocols should be studied for this experiment. If you are developing the simulation yourself, you can do something simple like nearest neighbour (just select the nearest neighbour to the destination at each hop) and random (just pick a random neighbour). If you are using an existing tool, many routing algorithms are already implemented so just pick at least two. Lastly, you should vary some aspect of the simulation in order to study how change affects the network. You may wish to vary the inter-arrival rate of traffic (how fast packets are sent into the network on average). You may also wish to vary the size of the network or the number of source / destination pairs in the network. In any case, your choices should be documented and justification should be given on why your choice was made.
Deliverables: 1. Routing tables for question 1, relevant Wireshark trace information for question 2. 2. All of your simulation code if you have developed your own simulation 3. The simulation scenario file + information on what version of the tool you used if you used a tool 4. A written report of the experiment, which is specified in more detail below Report Details: The report should contain several sections, similar to the other assignments including: Introduction, Problem Specification, Simulation Details, Performance Evaluation, Conclusions and References. Again, you are not required to stick with only these headings for your report. In the problem specification you may wish to predict which routing algorithm may perform better in which situations and try to prove this with your simulations. If you are using existing simulation tools, this may require some background reading about how the existing routing protocols work, along with references to any information to discover. In the simulation details, you should include diagrams of your network topology, information about simulation parameters such as inter- arrival rates, any assumed queuing / transmission / propagation delays (if you implemented your own simulation). You should also include details about your routing algorithms here. The performance evaluation section should use tables and graphs to demonstrate what happens in your experiment. Be sure to draw conclusions based on the results found and if you wish suggest future directions for what else could be studied to learn more. Due Date: Monday, November 28 th, 2011