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.
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.
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
Large organizations (such as national governments) typically are allocated all IP addresses of the form
Class B subnets have IP addresses with the following form:
Finally, the class C subnets have the form
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.
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.