Number of host computers on the Internet
^
|
100,000,000 | 16,000,000
| #
10,000,000 | #
| 1,100,000 #
1,000,000 | # #
| # #
100,000 | # #
| 28,000 # #
10,000 | # # #
| # # #
1,000 | # # #
| 213 # # #
100 | # # # #
| # # # #
+----+----+----+----+---->
'81 '87 '92 '97
Machines have two names: a mnemonic English name
truffle.bh.andrew.cmu.eduand a 4-byte IP address
128.2.124.147The IP address is used to describe the destination of a message.
(Note: Four bytes only allows about 4x10^9 hosts. A proposal is in progress to switch to 16 bytes, allowing 3.4x10^38 hosts.)
Obviously a host can't store translations for every other host!
Each domain has a domain name server to translate mnemonic names to hosts or subdomains.
________.________
/ / \ \
_____edu___ com gov uk
/ \ | | |
_____cmu_____ ou dec sandia ac
/ | \
cs andrew mcs
| | |
sp bh www-pgss
| |
gs88 truffle
Conceptually, translation proceeds top-down. Actually, caching allows bottom-up translation.
The Internet is a network of networks.
/--------\ /------------\
| CMU CS | ---- | CMU Andrew |
\--------/ \------------/
\ /
\ /-----\ /
| PSC |
\-----/
|
/-----\ /----\
| MCI | ---- | OU |
\-----/ \----/
Each network can deliver messages within itself directly. Messages between networks must find their way - without a map!
Messages are divided into packets of about 1,024 bytes each.
Networks have gateways, computers that route messages between networks.
/---------\ /------------\
| CMU CS | | CMU Andrew |
| | --- gw.cs --- |
| gs88.sp | | truffle.bh |
\---------/ \------------/
|
rtrbone.net
|
/------\ /-------\
| | | PSC |
| Pitt | -- pitt-ip-fddi -- | |
| | | mario |
\------/ \-------/
|
nss5.psc
|
/-------\
| MCI |
\-------/
Packets travel gateway to gateway until reaching destination network.
Each gateway has a routing table telling where to send packets.
/----------\
| 10.*.*.* | rest of
\----------/ Internet
| |
| 10.0.0.5 /----------\
o | 40.*.*.* |
| 20.0.0.5 \----------/
| |
/----------\ 20.0.0.6 30.0.0.6 /----------\ 30.0.0.7 | 40.0.0.7
| 20.*.*.* | -------- o -------- | 30.*.*.* | -------- o
\----------/ \----------/
if destination network is route to ----------------------------------- 20.*.*.* destination machine 30.*.*.* destination machine 10.*.*.* 20.0.0.5 40.*.*.* 30.0.0.7 default 30.0.0.7
Periodically gateways tell their neighbors about the best routes they know to destination networks.
When a gateway receives this information, it updates its routing table and forwards information about ayn changes to its neighbors.
Gateways provide best-effort delivery: they try to route packets but may occassionally drop some.
Reasons for dropping a packet include
Packet drops are frequent (50% not uncommon). The endpoints negotiate and resend until all packets make it.