DOC PREVIEW
CMU CS 15441 - Network Layer Forwarding and Routing

This preview shows page 1-2-3-4 out of 11 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

OverviewPreliminariesSupport CodeProject Updates and AnnouncementsWork DirectoryYour AssignmentNetwork LayerRouting DaemonDistance Vector RoutingImplementationGrading CriteriaGeneral InformationRough Grade BreakdownYour Project SubmissionLate Submissions and ExtensionsCode Requirements and RestrictionsProject WriteupHand-in ProcedureGetting StartedGetting HelpSuggestions15-441 Project 2, Fall 2004Network Layer Forwarding and RoutingOut: Mon, 27 Sep 2004Due: Mon, 25 Oct 2004, 11:59pmLead TAs: Pratyusa Manadhata, Arvind Kannan1 OverviewWhile Project 1 gave you experience with the application layer in networking, this project willgive you experience with one of the lower layers of the networking stack. Specifically, you willdesign and implement forwarding and routing in an IP-capable network layer.Note that Project 3 depends s ignificantly on Project 2. To successfully complete Project 3,you will need the facilities that you implement in Project 2 (forwarding). It is vital that youkeep this in mind w hen choosing your p roject p artn er, and while working on the project.2 Preliminaries2.1 Suppor t CodeAs you know, a network layer is not useful in isolation. At minimum, we need a link layerbelow the network layer, and transport layer above the network layer. We also need facilitiesfor configuring the network.In the “real-world”, the lower layers (link and physical) would be provided by hardware. Tosimplify your task in this project, however, we provide a machine simulator which implementsthese layers and the trans port layer as part of a Unix process. To further simplify your task,we also provide a socket library. The socket library, as you will recall f rom Project 1, is theinterface between network applications and the operating system’s networking co de.The relationship between these components is illustrated in Figure1. The TFTP server andTFTP client are included as examples of network applications. The gray box in the machinesimulator is the component which you must implement. The white boxes are components thatwe p rovide.Details about the machine simulator, including information about how to compile your com-ponents with the components that we provide, are given in the simulator handout.The project directory for this p roject is:/afs/cs/academic /class/15441-f04/project21SimulatorSocket LayerTransport LayerLink Layer Physical LayerNetwork LayerTFTP Server TFTP ClientFigure 1: Components of the network stack.In this handou t, we will use $ PDIR to d en ote this directory. The simulator libraries andheader files are under $PDIR/lib and $PDIR/inclu de resp ectively. For your convenience, weprovide you a template f or the code that you can start with. This includes Makefile, skeletondefinitions of some important structures, skeleton prototypes of some interface functions, etc.All the template files are in $PDIR/templ ate/kernel. Copy the template directory into yourworking space and get started with programming. $PDIR/utils contains utilities to help youin debugging your code. Read the README file under the directory to learn how to us e thoseutilities.2.2 Project Updates and AnnouncementsWe reserve the right to change the support code as the project progresses to fix any bugs andto introduce new features that will help you debug your code. We will post information aboutsuch changes to the course bboard. Please m ake sure that you are subs cribed to the bboard.We will assume that all students in the class will read and be aware of all information posted tothe bboard.2.3 Work DirectorySo that we can gauge your progress, please use your handin directory as your work dir ectory forthis project. If, for some reason, you really cannot work in your handin directory, p lease copyyour files to your handin directory periodically (twice a week).3 Your AssignmentThere are two m ain parts to Project 2. These are: the network layer and the routing daemon.We explain our requirements for each of these components below.2Destination Interface1.1.1.2 11.1.2.2 2Table 1: Forwarding table at Node 1Destination Interface1.1.1.1 11.1.2.2 1Table 2: Forwarding table at Node 23.1 Network LayerIn the first part of the project, you will implement basic network layer functionalities.The networklayer for this project will be modeled after IPv4 [3]. The network layer provides an ad dressingmechanism, and the ability to forward packets between no des. Your network layer must provideboth of these facilities. For addressing, we require that your network layer use IPv4 addresses.Section 4.1.4 of the text book describes datagram forwarding in IP. T he forwarding tableentries consist of (destination IP, interface) pair. Note that this is different f rom the forwardingtable entries described in the text book. The prototype for forwarding table entries is givenin $PDIR/template/kernel/rtable.h. In the example network given in the simulator hand-out, the forwarding tables at the nodes 1, 2 and 3 are given in Table1, Table 2 and Table 3respectively.When your forwarding layer receives a packet, it will look for an exact match of destinationIP in the forwarding table, and send the packet on the interface obtained from the forwardingtable entry.The network layer for this project will be mo deled after IPv4. Your implementation does notneed to handle IP fragmentation, multicast, IP header options, and type-of-service (ToS). Youare, however, responsible to correctly set, handle, and verify IP version number, IP header length,IP packet length, time to live (TTL), protocol number, checksum, and source and destinationaddresses. The id entification field is used to uniquely identify each IP packet sent by a host. Itis typically used for fragmentation and reassembly. Although we do not ask you to implementfragmentation, you should set the identification field according to the specification. A simpleheuristic such as “incrementing by one each time a packet is sent” is sufficient for our purposes.Destination Interface1.1.2.1 11.1.1.2 1Table 3: Forwarding table at Node 33Section 2.4.2 of the text book has an example implementation of Internet checksum algorithm,which you may use in this project. Prototypes of the IP functions that you n eed to implementare provided in $ PDIR/template/ipforward.h.The simulator transport layer does not support ICMP. Hence, in case of an error, yourforwarding layer will drop the p acket and write an error message to stderr, instead of s en dingan ICMP packet.In the first part of the project,


View Full Document

CMU CS 15441 - Network Layer Forwarding and Routing

Documents in this Course
lecture

lecture

34 pages

lecture

lecture

38 pages

lecture

lecture

18 pages

lecture

lecture

28 pages

lecture

lecture

11 pages

Lecture

Lecture

64 pages

lecture

lecture

10 pages

lecture

lecture

19 pages

Lecture 6

Lecture 6

43 pages

Exam

Exam

14 pages

lecture

lecture

38 pages

Debugging

Debugging

23 pages

lecture

lecture

60 pages

review

review

27 pages

lecture

lecture

12 pages

The Web

The Web

28 pages

Lecture

Lecture

40 pages

lecture

lecture

42 pages

lecture

lecture

9 pages

lecture

lecture

10 pages

lecture

lecture

49 pages

lecture

lecture

26 pages

Project

Project

5 pages

lecture

lecture

40 pages

lecture

lecture

9 pages

lecture

lecture

41 pages

lecture

lecture

32 pages

lecture

lecture

36 pages

lecture

lecture

34 pages

lecture

lecture

45 pages

lecture

lecture

26 pages

lecture

lecture

6 pages

lecture

lecture

51 pages

Project

Project

16 pages

lecture

lecture

44 pages

lecture

lecture

13 pages

lecture

lecture

42 pages

lecture

lecture

36 pages

Project

Project

13 pages

Project

Project

33 pages

lecture

lecture

43 pages

lecture

lecture

49 pages

Load more
Download Network Layer Forwarding and Routing
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Network Layer Forwarding and Routing and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Network Layer Forwarding and Routing 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?