A Brief Overview of the Internet


Referencs:

  1. Internet for Historians sections 1.1-1.4. (local copy 8/31/00)
    by Professor Richart T. Griffiths of the Leiden University Historical Institute
  2. Appendix on Binary Numbers


The internet is a worldwide network of computers with the property that each computer can send data to and receive data from any other computer on the internet.

A brief history of the internet

The idea of connecting computers via phone lines or some other long distance network was first tested in 1965 when two university researchers, Larry Roberts and Thomas Merrill, connected a computer in Massachusetts with one in California using a phone line and demonstrated that they coould run programs and receive data on the remote machines. A key idea behind this research was that the computers would communicate by breaking up their data into many small packets and sending these packets individually. If any packets were lost (due to background noise on the line), they could easily be resent.

This experiment led directly to a Defense Advanced Research Projects Agency (DARPA) proposal in 1967 to build the ARPANET, which is a military precursor of the internet. In 1968 a group led by Frank Heart at BBN in Boston won the government contract to build the initial ARPANET hardware. In 1969, the initial ARPANET was constructed and consisted of four computers: three in California and one in Utah. In 1972, Roberts wrote the first email program, and email quickly became the most frequently used network application. In 1973, Vint Cerf and Robert Kahn proposed a new set of communication rules for the computer networks called TCP/IP (Tranmission Control Protocol/ Internet Protocol) which allowed users to implement a wide range of network applications including network telephony, email, and network disk sharing. The ARPANET was converted to a TCP/IP net in 1983 at which point it was split into two nets: the MILNET for military applications and the ARPANET for civilian applications. Throughout the 70's several other networks were developed. These included CSNET (connecting Computer Science Departments), USENET (connecting UNIX computers), and BITNET (connecting academic mainframe computers).

The 80s saw the rapid prolifieration of PC's and workstations combined into small local area networks (LANs) and these LANs came to be added to the ARPANET in greater numbers, resulting in a rapid growth of the internet. Also, in 1985, the NSFNET was formed by the National Science Foundation with the stipulation that a university could connect to this network only if it provided access to all scholars at the institution, not just the science departments. Another important development during the 1980's was the connection of networks into a single internet all using the TCP/IP protocol for communication. The 90's saw the birth of the World Wide Web and the rapid expansion of the internet both in terms of size and in terms of its use by the general population.

Internet Addressing: domain names and IP addresses

The internet currently consists of somewhat more than 25 million computers although this number grows every month (and actually oscillates minute by minute for reasons that will become clear). Each computer on the internet has a unique identification number called its IP address (for Internet Protocol). An IP number consists of a sequence of four numbers in the range 0-255. For example, a typical IP address at Brandeis in 1999 is 129.64.2.10, where the numbers in the IP address are separated by periods by convention. This is the dotted decimal form of an IP address.

IP addresses are actually stored on the computer and transmitted as 32 bit long binary numbers. Please read the appendix on binary numbers to learn about binary numbers and how they are used to represent decimal numbers.

Most computers on the internet also have an identifying name known as a domain name. For example, the domain name for the main Brandeis web server is www.brandeis.edu and its IP address is 129.64.99.138 (as of 8/31/2000). The relationship between domain names and IP addresses is available on the net from computers known as domain name servers.

The internet actually consists of a large number of networks which are seamlessly interconnected. For example, the Local Area Network (LAN) at Brandeis University consists of a few thousand computers. These computers are all directly connected to the internet and have IP addresses of the form

129.64.xxx.yyy where xxx and yyy are numbers in the range 0-255. Conversely, any IP address of this form refers to the Brandeis LAN. Thus, the Brandeis LAN can expand to include up to 256 x 256 = 65536 computers which can all be simultaneously directly connected to the internet. This method of allocating IP addresses in blocks is widely used today.

Large organizations (such as national governments) typically are allocated all IP addresses of the form

AAA.xxx.yyy.zzz where the first dotted decimal (AAA) determine the organization and the last three (xxx, yyy, zzz) specify a computer in that organization. These are the class A subnets and each such subnet can have up to 256 x 256 x 256 computers (which is about 16 million).

Class B subnets have IP addresses with the following form:

AAA.BBB.xxx.yyy where the first two dotted decimal digits (AAA,BBB) determine the subnet while the last two (xxx,yyy) specify a computer in that subnet. Brandeis is a class B subnet with 65536 IP addresses. At Brandeis, each dorm is allocated a fixed number of IP addresses and when a student connects to the internet from their dorm room, their computer is temporarily assigned an IP address. Because of these temporary IP addresses the actual number of computers on the internet grows and shrinks during the day.

Finally, the class C subnets have the form

AAA.BBB.CCC.xxx in which the first three fields of the IP address (AAA,BBB,CCC) are specified and the last field can vary, these subnet provide 256 IP addresses.

Ports, Sockets, and Services

The computers on the internet interact in a wide variety of ways, but their interaction is nonetheless restricted. It would not be wise to allow any computer on the internet to have full access to every other computer on the net because an unscrupulous user might decide to delete all of your disk files or to otherwise use your computer without permission.

To get around this problem, the internet is modelled on an abstract view of the net in which each computer specifies exactly what kinds of interactions it will allow. These types of interactions are called services and each computer on the net can offer up to 65536 services.

These services are specified by a number from 0 to 65535 called a port. Typically, the ports with numbers under 1024 are reserved for system services (such as email and web page serving), but anyone is free to offer any service they please on ports numbered greater than 1024.

A computer that offers a service to another computer is called a server and a computer that requests a service is called a client. It is typical for computers on the internet to be both clients and servers and the same time. The communication between client and server is initiated by the client by specifying the IP address of the server computer and the port number of the service to be provided. If the specified computer is offering that service, then a special connection called a socket is created. The socket allows the two computers to send data back and forth between themselves.

Common Services on the net

Some of the more common system services are listed below. Each service has a set of rules governing how the client and server interact. These rules are called protocols and they simply represent the conventions that the two computers will use when communicating on that port. You can access some of these ports from Linux using the telnet command.

For example, here we access the "date" service on port 13 of the CS server

    % telnet www.cs.brandeis.edu 13
    Trying 129.64.2.3...
    Connected to diamond.cs.brandeis.edu.
    Escape character is '^]'.
    Thu Aug 31 15:55:41 2000
    Connection closed by foreign host.

Here we access the "echo" service, which is mainly used to see whether the link is working correctly.

    % telnet www.cs.brandeis.edu 7 
    Trying 129.64.2.3...
    Connected to diamond.cs.brandeis.edu.
    Escape character is '^]'.
    This is the echo port
    This is the echo port
    bye bye
    bye bye
    ^]
    telnet> quit
    Connection closed.

Here we access the HTTP service and request the web page "~cs2a" from the server "www.cs.brandeis.edu"

    % telnet www.cs.brandeis.edu 80 
    Trying 129.64.2.3...
    Connected to diamond.cs.brandeis.edu.
    Escape character is '^]'.
    GET /~cs2a/index.html HTTP/1.0
    
    HTTP/1.1 200 OK
    Date: Thu, 31 Aug 2000 20:21:23 GMT
    Server: Apache/1.3.4 (Unix)
    Last-Modified: Wed, 23 Aug 2000 21:32:40 GMT
    ETag: "4962a3-217-39a442f8"
    Accept-Ranges: bytes
    Content-Length: 535
    Connection: close
    Content-Type: text/html
    
    <HTML>
    <TITLE>Brandeis University, Intro to Computers, CoSci 2a, Aut 99</TITLE>
    <BODY bgcolor="#ffffff">
    <META HTTP-EQUIV="Refresh" CONTENT="1; URL=http://www.cs.brandeis.edu/~tim/Classes/Aut00/CS2a/">
    
    The Home page for CS2a has moved to
    <A HREF="http://www.cs.brandeis.edu/~tim/Classes/Aut00/CS2a/">
    http://www.cs.brandeis.edu/~tim/Classes/Aut00/CS2a
    </A>
    <p>
    You can click
    <A HREF="http://www.cs.brandeis.edu/~tim/Classes/Aut00/CS2a/">
    here
    </A>
    to get to that page.
    <p>
    Sorry for the inconvenience.
    <p>
    Tim Hickey
    
    </BODY>
    </HTML>

    Connection closed by foreign host.

The HTTP protocol is the language used by web browsers to get web pages, images, applets, movies, and other data from webservers. The request is typically a GET or a PUT command followed by a description of what data is requested and what version of the protocol the browser understands. The server then sends back several lines of header information including the content type (which is text/html for web pages) followed by the actual data itself.


Suggestions for Further Reading:

  1. A Brief History of the Internet Leiner, et.al.
  2. Internet Timeline: 1945-1998. from PBS
  3. Connected: An Internet Encyclopedia, Programmed Instruction Course by Brent Baccala
  4. livinginternet.com -- an internet history site by Bill Stewart

Click here to see a list of all visitors to this webpage since 8/30/01:
JScheme/SSSP Hit counter