A better way for us to start visualizing the Internet is as an
opaque cloud to which hosts connect.
The Internet and two hosts, a client and a server.
The power of the Internet is from respecting
the end-to-end principle
We will spend this lecture looking inside the cloud.
Growth of the Internet
In the following table, the number of computers estimates the
number of hosts on the Internet. The number of managers refers to the
number of managers in charge of critical, central Internet
architecture.
Number of Computers
Number of Managers
1980
10^2
1
1990
10^5
10^1
2000
10^7
10^2
2005
10^8
10^3
Source: Comer, Douglas E. Internetworking with TCP/IP. 5th ed. p9.
The Internet and the tools to access it take shape.
Internet architecture is too large for one committee, new task
forces (like IRTF and IETF) are formed in 1989.
A (Very) Short History of the Internet: 1990s
Tim Berners-Lee
Ted Nelson
The World Wide Web
Basic Ideas
The success of the Internet is due in large part to:
openness,
internetworking, and
end-to-end principle
Openness means that communication standards are freely
available, and can be used to develop new, application-level
protocols (called encapsulation).
Internetworking is important because it allows little networks
with many different designs to be connected to one another.
Information is communicated inside a network
via routing.
There are protocols for routing inside a network, but also
for routing between networks.
Critical to growing the Internet, a large internal network
can be added to the Internet with internetworking, adding many
new endpoints to the Internet as a whole.
End-to-end argument is that the value of the network is at the
edges, where the hosts are. Keep the cloud as transparent as
possible.
Circuits can accomodate more than one connection
through multiplexing
Analog signals can be multiplexed by using multiple frequencies
Digital signals can be multiplexed, too. For example,
time-division multiplexing
Packet Switching
Kleinrock's thesis (1961)
Break up a digital message into small datagrams
Can be connectionless or connection-oriented (we'll return to
this when we talk about routing
Instead of hard multiplexing divisions, bandwidth allocated
as-needed
Sometimes results in collisions
To visualize a collision, imagine people talking on
a party
line. Two people have a good protocol for avoiding
collisions in a phone call (conversational structure). A third
person may jump in, introducing a collision (two people talking
at once). To resolve this, the two persons speaking at the same
time may wait some small amount of time then retry their
statement, waiting longer each time they talk at the same
time.
This is essentially the same technique used for resolving
collisions on shared Ethernet, called exponential
backoff.
Benefits:
Less bandwidth waste
Adapts better to failures because it doesn't relly on
pre-configured circuits
Drawbacks:
Although circuits can be expensive to set up, the
communications are fast, and furthermore can be
guaranteed. Packet-switched networks can be slower to route
packets and can't guarantee bandwidth
Ethernet
Application of packet switching
Not first packet signaling technology
Metcalfe developed AlohaNet, a precursor to Ethernet, in 1972
He pushed for vendor-neutral Ethernet standards in 1979
Very important for open-ness of early Internet development
Was also profitable
Metcalfe started 3com
Multiplexing
Signal without strict coordination
Wait for acknowledgement
If collision: wait random time then retry
Shared Media?
Collisions happen because multiple machines force charge on
the same wire
Modern Ethernet is typically switched with no shared media,
each host has its own dedicated wire to a switch
Cables Over the Years
What is the Internet made of? Cables? What about
wireless?
2^8 * 2^8 * 2^8 - 2 = 16,777,214 possible hosts in domain
IP Address Exhaustion
Classful addressing wastes addresses. Class C restricts an
organization to 254 hosts, yet the next class, Class B, allocates over
65,000 host addresses! How to cope with this problem?
The Internet Protocol (IP) handles addressing between two
hosts
Routers handles getting packets from host to host, a process
called routing (or forwarding)
Not all packets have to be routed
IP datagrams between two hosts on the same physical network
are either sent over shared media or directly switched from
source to destination
Because subnets have same IP prefix, it's efficient to tell
if a packet can be send directly to destination
Between two hosts are routers
We sometimes refer to the paths between two routers as
"hops"
One (sometimes innaccurate) way to measure the speed of a connection between two hosts is to examine how many hops are between them
Ethernet packets have a time-to-live (TTL), which is
decreased for each hop; a packet is discarded when its
TTL=0
Routers typically determine best path by number of hops to
get to a destination network
For most packet-switched networks, routes can be changed
dynamically per datagram
Routers can silently drop datagrams without notifying anyone
When TTL=0
Usually: due to congestion in router
Routing: Survivability
It is not true that the Internet was designed to survive nuclear war
But, it is pretty reslient; why?
TCP/IP
Ethernet datagrams can be lost or arrive out of order
TCP
remediates this issue
TCP is...
reliable
stream-oriented
connection-oriented
TCP provides...
An end-to-end abstraction of communication over Internet
A layer that hides Ethernet errors and shows only errors
from hosts
TCP and Encapsulation
7-Layer OSI Model
Communication on the Internet can be divided up into layers
Each layer is encapsulated in the previous layer
TCP gives us segments, which consist of all packets sent between
hosts, put in correct order
For example, HTTP, the protocol of the Web, is encapsulated in
TCP to establish a reliable stream between a client and a web
server.
We've looked inside the cloud, but with TCP we can let IP and
Ethernet handle those details, and go back to thinking of the
Internet as two hosts and a cloud.
Another Tool Break
nslookup
ping
traceroute
Try encapsulating application protocol in TCP with telnet