OREGON INSTITUTE OF TECHNOLOGY

Computer Systems Engineering Technology Department

CST 415 - Computer Networks

 

Description

In this final project , you will build the UDP layer of the protocol stack. Your end system should be able to play packet "ping-pong" with your lab partners system. In addition, you will program your packet "ping-pong" system to work on top of a commercial UDP layer using a standard interface definition (such as sockets). Choose a private port number and show your UDP layer is compatible with a commercial UDP implementation.

The MAC header looks like:

The IP header that look like:

           0               1                 2             3   
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...
| Data
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Example Internet Datagram Header
 
In this lab you will manipulate the UDP packet information contained in the "Data" or "Payload" portion of the IP Datagram packet.


UDP

UDP packets are User Datagram Protocol packets.

UDP format

Make sure to look up the port numbers and report the assigned port, when applicable. Also, dump the UDP payload contents.

Suggested Port Numbers to look for:

Port Number

Service

80

HTTP

69

tftp

1025

network blackjack

7

echo

25

smtp

666

doom

137

Net Bios Name Service

2049

NFS

5190

AOL

5191

AOL1

5192

AOL2

5193

AOL3

22600

Quake Game Server

27500

Quake World

27015

Halflife

28910

Heretic2

27910

Quake 2

27960

Quake 3 Arena Server

31337

Backorifice

Programming Requirements

Packet Dump:

You must print out the following information as extracted from the incoming packet looking up and printing out four commonly seen ports.

     ETHER:  ----- Ether Header -----
     ETHER:
     ETHER:  Packet 1
     ETHER:  Packet size = 210 bytes
     ETHER:  Destination = 8:0:20:1:3d:94,
     ETHER:  Source      = 8:0:69:1:5f:e,
     ETHER:  Ethertype = 0800 (IP) (Note: Here it prints either ARP, IP, or UNKNOWN)
     ETHER:

     IP:   ----- IP Header -----
     IP:
     IP:   Version = 4
     IP:   Header length = 20 bytes
     IP:   Type of service = 00
     IP:         ..0. .... = routine
     IP:         ...0 .... = normal delay
     IP:         .... 0... = normal throughput
     IP:         .... .0.. = normal reliability
     IP:   Total length = 196 bytes
     IP:   Identification 19846
     IP:   Flags = 0X
     IP:   .0.. .... = may fragment
     IP:   ..0. .... = more fragments
     IP:   Fragment offset = 0 bytes
     IP:   Time to live = 255 seconds/hops
     IP:   Protocol = 17 (UDP)
     IP:   Header checksum = 18DC
     IP:   Source address = 128.10.26.116 monkey.cs.purdue.edu
     IP:   Destination address = 128.10.3.100 xinuserver.cs.purdue.edu
     IP:

     UDP:  ----- UDP Header -----
     UDP:
     UDP:  Source port = 1023
     UDP:  Destination port = 2049 (NFS) (Note:write name of service that uses this port)
     UDP:  Length = 176
     UDP:  Checksum = 0

--------------- ASCII Dump - Hex ------------------------------------ ASCII Dump - ASCII -----------------------

Also, make the correct modifications to your command options to allow the toggling of these additional types of packets.

UDP Ping-pong:

You must show your "ping-pong" implementation running on top of your UDP layer works with a "ping-pong" implementation running on top of the commercial UDP implementation.

Project Requirements Summary:

  1. Acquire the packet buffer and parse and label:
    1. Layer 2 (Ethernet) - Done in the first lab.
    2. Layer 3 (IP) - Done in the second lab.
    3. Layer 3 (ARP) - Done in the third lab.
    4. Layer 4 (ICMP) - Done in the fourth lab.
    5. Layer 4 (UDP)
      1. Source Port
      2. Destination Port
      3. Message Length
      4. UDP Checksum
  2. Hex Dump Packet.
  3. Comercial Protocol Stack Ping-Pong
    1. Put your Ping-Pong on a commercial protocol stack
    2. Play packet ping-pong
      1. Commerical - partner commercial
      2. Commercial - partner non commercial
      3. Non commercial - partner commercial