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.