COMP 3000 Lab 7 2011

From Soma-notes
Revision as of 20:47, 20 November 2011 by Soma (talk | contribs) (→‎Part A)

A few guidelines:

  • Submit your solutions for both Part A and Part B via WebCT by Sunday, November 27th at 11:30 PM.
  • Please answer using a single text file (with a .txt extension). Do not submit doc, docx, pdf, or other formats. Also, please do not submit an archive (zip, tarball, rar) of multiple text files, just upload one. (Please don't just cut and paste your work into a text box on webct.) Anything other than a single text file will receive -1 points
  • Show all your work. If you find an answer by browsing code, explain your search path (e.g., I searched for X, which led me to source file Y, where I found function Z.) Also, list any websites or individuals you consult.
  • Do all of the following on a Linux system. Ubuntu Linux is guaranteed to work, but other Linux systems should work. Note that *BSD systems, including MacOS X, will produce different answers for several of the following questions.
  • Note that the tools from Lab 2 in particular may be of use here...

Part A

  1. Run ifconfig. For all configured interfaces except loopback, there should be an "inet" address, a "HWaddr" (hardware) address, and perhaps even an "inet6" address. Each of these addresses identifies the computer within a certain context. In what context are each of these addresses used? Specifically, for what protocol is the address used, and what other computers can access this one using this address? (Ignore NAT issues.)
  2. How could you use netcat (nc) to listen on port 9200 and write received data to the file /tmp/foo?
  3. What does tracepath slashdot.org return?
  4. How can you get netstat to return a list of all current TCP connections and open ports, listed using numeric IP addresses (rather than DNS hostnames)?
  5. How could I use lsof to find all of the processes accessing the directory /home?

Part B

  1. [2] Why does tracepath return "no reply" sometimes?
  2. [3] nc uses very few (three on Ubuntu 11.10) when actually receiving data on the network. (The other system calls are for setup and for ending the connection.) What are those few system calls, and what do each of them do?
  3. [2] What file does netstat access to find out about current TCP connections on Linux? And, what is the difference between this file and the output of netstat, in syntax and semantics? Be specific.
  4. [2] What does lsof sometimes get a "permission denied" error when run as a regular user? Specifically, what files is it trying to access, and why are these protected?