Internet Basics

Understanding a URL

URL syntax for a Network (Internet-style) item:


Examples of common protocols:

Components of a Universal Resource Locator (URL):

Note that the host name part of a URL is not case-sensitive.

Understanding an Internet E-Mail address

Syntax for an Internet email address:


Examples of email addresses:

Note that the host name part of a mail address is not case-sensitive.

Computer Addresses and Names

Much of the connecting done between machines on the Internet happens between computers labelled by numbers, not names. These numbers are called "IP" (Internet Protocol) numbers. To establish a connection between the machines, the friendly, human-readable names must be turned into numbers. Tables of these name-to-number maps typically reside on computers that serve as Domain Name Servers (DNS).

  1. Computer names are hierarchical, separated by periods, with the most specific components on the left and the most general, large domains on the right, e.g. "  There is no fixed limit to the depth of the hierarchy; however, more than four levels is uncommon.
    1. There are a fixed number of "top level" domains, e.g. .gov, .edu, .com, .ca, .hu, .jp, .us, etc.  (New ones are being added in 2001.)
    2. Each domain gets control of the naming scheme used inside it and can use any naming convention it likes, e.g.,,, etc.
    3. Name servers only need to know how to find the name servers of the next level in the name tree - no server needs to know the whole tree.
  2. IP numbers are also hierarchical; however, the most specific parts of the IP number are on the right, and the most general, large network components are on the left, e.g. "".  The IP numbers written this way are often said to be in "dotted quad" form.  Two machines on the same network may have numbers such as and  Their DNS names might be  and
  3. Name servers "cache" name requests for a period of time (the "time to live").  Subsequent requests for the same name are served from the cache until the entry expires, then a fresh request is made to update the cache.

Unix Networking Commands

Most Unix commands that handle machine names will accept either the name of a computer or its IP address in dotted-quad form.  (The mail programs require you to put the dotted-quad in square brackets to use it as a domain name, e.g. alleni@[].)  Numbers change often as machines move between networks; names are more reliable.

  1. ping: sends a packet request for an "echo" to the remote machine; shows how long the travel time took
    $ ping
    $ ping
  2. traceroute: traces the network route taken by a connection between this machine and a remote machine; shows the route and the time taken to get to each machine along the route
    $ traceroute
  3. host: for a particular host, displays information about the IP addresses and MX (mail exchange) records stored in the DNS for that host.
    $ host
    nslookup and dig are similar to host but more complex.
  4. telnet creates an insecure text TCP connection to another machine. You can change which port you want on the remote machine by giving it as a second argument on the telnet command line.
    $ telnet smtp
    Don't use insecure telnet to log in; use the secure ssh instead.
  5. ftp is an insecure way to transfer files.  Don't use this for anything sensitive except anonymous FTP downloads.
    $ ftp
  6. ssh is a Secure Shell program that uses encryption and PKI to safely connect across the Internet.  Use this instead of telnet.
    $ ssh -l abcd0123
  7. scp is a Secure Copy program that uses encryption and PKI to safely transfer files across the Internet.  Use this instead of ftp.
    $ scp foo.txt