Difference between revisions of "Assignment: IP-ICMP-ARP Applications"

From Embedded Xinu
Jump to navigation Jump to search
(New page: Category:Networking With Xinu = Overview = This assignment is part of the Networking With Xinu track for professors that are Teaching With Xinu and it is intended to be complet...)
 
 
(12 intermediate revisions by the same user not shown)
Line 11: Line 11:
  
 
Upon completion of the assignment the students' implementation should have all the required shell commands properly implemented and well tested.
 
Upon completion of the assignment the students' implementation should have all the required shell commands properly implemented and well tested.
===== Required Assignment Parts =====
+
 
* shell command: 'arp'
+
==== Required Assignment Parts ====
* shell command: 'ethstat'
+
===== Shell Command Descriptions =====
* shell command: 'ping'
+
* ''arp'' prints out the arp table or performs the modification specified via an option.
* shell command: 'snoop'
+
* ''ping'' uses the ICMP protocol's mandatory ECHO_REQUEST datagram, attempting to elicit an ECHO_RESPONSE from a host or gateway.
===== Optional Assignment Parts =====
+
* ''snoop'' displays packet information for incoming and outgoing network packets.
 +
 
 +
===== Shell Command Options =====
 +
* ''arp''
 +
** options for: adding entry, removing entry, sending request and clearing the table
 +
** add help option that prints usage
 +
* ''ping''
 +
** options for: count of pings to be sent and time to live of packets
 +
** add help option that prints usage
 +
* ''snoop''
 +
** option for: dumping a packet in hex
 +
** add help option that prints usage
 +
 
 +
==== Optional Assignment Parts ====
 
* respond to received traceroute packets with the proper ICMP packet
 
* respond to received traceroute packets with the proper ICMP packet
  
Line 22: Line 35:
  
 
== Student Outcomes ==
 
== Student Outcomes ==
Upon completion of this assignment students should understand how to implement various shell commands that interact with the underlying network interface.  Implementing the shell commands should give the student a better grasp of how the protocol's actually work and how various user commands, that they have used elsewhere, disguise this reality.
+
Upon completion of this assignment students should understand how to implement various shell commands that interact with the underlying network interface.  Implementing the shell commands should give the student a better grasp of how the various protocols actually work and how user commands, that they have used elsewhere, disguise this reality.
  
 
== Potential References ==
 
== Potential References ==
Line 28: Line 41:
 
* [http://www.ietf.org/rfc/rfc791.txt Internet Protocol - RFC]
 
* [http://www.ietf.org/rfc/rfc791.txt Internet Protocol - RFC]
 
* [http://www.ietf.org/rfc/rfc792.txt Internet Control Message Protocol - RFC]
 
* [http://www.ietf.org/rfc/rfc792.txt Internet Control Message Protocol - RFC]
*  
+
* [[wikipedia:Address Resolution Protocol | Address Resolution Protocol - Wiki Page]]
 
* [[wikipedia:Internet Protocol | Internet Protocol - Wiki Page]]
 
* [[wikipedia:Internet Protocol | Internet Protocol - Wiki Page]]
 
* [[wikipedia:Internet Control Message Protocol | Internet Control Message Protocol - Wiki Page]]
 
* [[wikipedia:Internet Control Message Protocol | Internet Control Message Protocol - Wiki Page]]

Latest revision as of 02:25, 19 December 2008

Overview

This assignment is part of the Networking With Xinu track for professors that are Teaching With Xinu and it is intended to be completed in groups of two or three.

Preparation

A new tar-ball is provided with a solution to the previous assignment. If your solution is similar to the one presented, you may choose to continue on with it; but it is suggested that you untar the new project files in a fresh working directory:

   tar xvzf <tar-ball location>

Shell Commands

We have implemented three protocols within our networking portion of Embedded Xinu. In this assignment we will add shell commands to create useful interaction with those protocols. We will be adding four shell commands: arp, ping, snoop and ethstat.

Upon completion of the assignment the students' implementation should have all the required shell commands properly implemented and well tested.

Required Assignment Parts

Shell Command Descriptions
  • arp prints out the arp table or performs the modification specified via an option.
  • ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram, attempting to elicit an ECHO_RESPONSE from a host or gateway.
  • snoop displays packet information for incoming and outgoing network packets.
Shell Command Options
  • arp
    • options for: adding entry, removing entry, sending request and clearing the table
    • add help option that prints usage
  • ping
    • options for: count of pings to be sent and time to live of packets
    • add help option that prints usage
  • snoop
    • option for: dumping a packet in hex
    • add help option that prints usage

Optional Assignment Parts

  • respond to received traceroute packets with the proper ICMP packet

If you choose not to implement the optional assignment parts then placing test case code within the shell's 'test' command will allow you to run one or more tests on your implementation at run-time. Optional portions to an assignment may be required portions of a later assignment.

Student Outcomes

Upon completion of this assignment students should understand how to implement various shell commands that interact with the underlying network interface. Implementing the shell commands should give the student a better grasp of how the various protocols actually work and how user commands, that they have used elsewhere, disguise this reality.

Potential References