Skip navigation
The Australian National University

Laboratory 2 - Networks


The aim of this lab is to discuss the material covered in the lectures on the Application Layer Protocols HTTP, SMTP, MIME and VOIP, and Networks. If time permits, to also get some hands on experience with some linux networking commands and subversion, which is required for submitting your assignments.



Please go through the slides for the lectures on Application Layer Protocols and Networks. As well, go through chapters 11 (HTTP-424:426, Email-416:419, VOIP-416:419 and VOIP-421:423). Note down any questions that you may have and bring it up at the end of the discussion session.

You should be able to answer the following questions, if you have gone through the slides and the relevant reading material:

  1. What approaches are taken by browsers to decide whether or not to use a cached page?
  2. What is MIME and why is it useful?
  3. What are the roles of SIP and RTP in VOIP?
  4. Discuss the advantages and disadvantages of using forward, open and reverse proxies.

The following questions are for discussion:

  1. Why is caching useful? Can all pages be cached? What are some of the limitations?
  2. Why are cookies useful? What are some of the security implications? What can you do to protect yourself?
  3. How is mail transmitted from a sender to a receiver? What protocols are used? Discuss how an SMTP session works.

Linux Networking Commands

Using telnet to send mail

In this part, you will use telnet to send mail to either yourself or to your fellow student sitting next to you in the lab.

Run the following commands:

telnet 25
Telnet will respond with:
Connected to
Escape character is '^]'.
220 ESMTP Postfix
You then send a HELO
HELO (followed by your machine name or some greeting)
The response is:
Send the sender and recipient email addresses, one after the other.
MAIL FROM:<your email address>
The response is:
250 2.1.0 Ok
You send:
RCPT TO:<your email address or your friends email address>
The response is:
250 2.1.5 Ok
You send:
The response is:
354 End data with <CR><LF>.<CR><LF>
Type in your message header, followed by a blank line, then your message body, followed by a '.' in a line by itself. For example:
From: "Your name" <your email address>
To: "Your friends name" <friends email address>
Subject: <subject title>

Message content, as appropriate
The server responds with:
250 2.0.0 Ok: queued as <some number>
This indicates that the message has been queued for delivery. You then type:
to end the telnet session. Ask you friend to check their mail, to see if the mail that you sent has arrived.

The route command

Run the following command:

route -n
How many interfaces are there? Do you understand the different parts of the output? Use the man page to figure out the output.

Version Control

As subversion is going to be used to submit your assignments, you will need to become familiar with this tool. Subversion is a centralized version control system - also called source control management (SCM) system - used for managing changes to documents, source code and other files. The documents and their revisions are stored in a repository on a central server, and users check out working copies of the repository to make changes on their local machines. It is really useful to use a version control tool for all your work, be it work done by yourself or in a group. It allows you to track changes and revert to earlier versions, when required. It is essential for collaborative projects.

Image source:

Do the following exercises. Do not worry if you don't complete all of them in the lab. You can try them later at home or in the next lab. You only really need to know how to checkout a repository, add your files and do a commit. You may find it easier to use a GUI based subversion client than by typing in the commands in a terminal. The following exercises give you a good grounding in using subversion (perhaps more than what is required).


Please go through the wikipedia page on version control.

In this exercise we will use the subversion version control system to demonstrate the advantages of using version control in your daily work. Read the Red Bean Book for a very good introduction to subversion. In particular, read the first two chapters.

Getting help

Subversion is already installed on the student system. Log on to the system using your uni ID and password. Open a terminal window. We will use command line to type subversion commands. The subversion command line client is called svn. Type:

    svn help
and see what you get. This gives you access to the client's documentation. Now type:
    svn help checkout
This gives you the details of the checkout command.

Checking out a working copy of your assignment repository

We now create a working copy of your assignment repository, which is where you will do all work related to assignment 1. We do this as follows:
    svn checkout --username your-uni-id

Note: XX is your group number

This will create a directory called A1GrpXX under our home folder.

Do some work

Make this our current directory by:
    cd A1GrpXX
Make a directory called test as follows:
    mkdir test
Schedule this directory to be added to the repository:
    svn add test
Commit the changes:
    svn commit test
This will open up an editor and ask you for a message to go with the commit. Enter an appropriate message and complete the commit. Change directory to test:
    cd test
Create two files called test1 and test2 using your favourite editor, with some content. Schedule these for addition to the repository. Examine your changes:
    svn status
Commit the files. Note the revision numbers. Make some changes to one of the files and use svn status to examine the status of the files.

Making changes and recovery

Change one of the files. Use the svn diff command to see your changes. Commit this file.

Change the other file. Now, use the svn revert command to go back to the last committed version of the file.

Delete one of the files. Now, use the svn update command to get back the deleted file. Note that this can work at the directory level as well.

Use the svn log command to get a log of the changes committed to the repository. You can use svn log test1 to look at the changes for test1. The version numbers are also listed in the log. Use svn update -r to revert to a particular revision of a file. Run svn help update to get the documentation for the update command.

Try some other commands listed in Chapter 2 of the Red Bean Book. Place some of your own files under version control. You can use the svn import command to bring existing directories under version control. Chapter 2 of the book has an example.

Using a GUI based svn client

You can use a GUI based client for this purpose, instead of entering commands using a terminal. Some of the popular GUI clients for different operating systems are detailed in the Assignments page. The one that you can use in your lab is rapidSVN. Look under "Applications/Programming" to find this application. Use it to do some of the above tasks.

Windows commands and their Linux equivalents

For those who are a little rusty on Windows or Linux, the following table lists Windows commands and their Linux equivalent.

dir/wls -a

Updated:  Thu Mar 12 15:51:52 AEDT 2015 / Responsible Officer:   JavaScript must be enabled to display this email address. / Page Contact:   JavaScript must be enabled to display this email address.