- purpose - a network that
- is robust in the presence of partial failures
- is scalable and autonomous
- supports interoperability and resource sharing
- history -
- paul baran at rand, 1964 -
survivable communications
- donald davies at npl, 1965 - the packet
- robert kahn at bbn-mit, 1969 - successful response to arpa's rfp
- structure - the great cloud
- hosts connected to an internet
- addressing
- addresses are 32-bit unsigned integers - dotted quad
- an ip address has two parts - network id + host id
- five address classes - a through e
- a through c - network id size
- d - 28-bit group id
- e - unstructured
- an ip address references an interface, not a host - a host may have
more than one ip address (routers, gateways); multi-homed hosts
- dotted-quad notation - a.b.c.d
- naming - from ip address to more convenient names
-
www.monmouth.edu
= 204.152.149.5
- a three-part hierarchy - domain (.edu), organization (monmouth), host
(www); organizations may establish more levels
- fully-qualified domain names
- name resolution - translating between host names and ip addresses
- the ip protocols don't understand host names
- the internet protocol - ip
- a datagram protocol - message oriented
- unreliable service - best-effort delivery; packets may get lost, be
corrupted, be delivered out of order
- connectionless
- the user datagram protocol - udp
- ip multiplexed in the host; unreliable, connectionless
- a 16-bit, unsigned port number
- ports 0 to 1023 - well-known ports; echo (7), telnet (23), www (80)
- ports 1024 to 49151 - registered; license managers (autodesk - 1422);
database connects (sybase - 1498)
- ports 49151 to 65535 - dynamic
- see
/etc/services
- an endpoint address - an (ip address, port number) pair; ip:pair
- full duplex - can communicate in both directions over the same
connection
- the transmission control protocol - tcp
- a reliable byte stream protocol
- byte stream - not message oriented
- reliable - bytes put in one end come out the other end; the meaning
of reliable is tricky
- connection-oriented
- tcp is multiplexed by port numbers too - the same port address space
- full duplex
- the internet control message protocol - icmp
- out-of-band, network oriented messages
- network errors - host unreachable, invalid port numbers
- congestion control - source quench
- trouble shooting - echo
- interrupted transport - expired ttl, no fragment failure
- see rfc 792
- uses ip
- implementation
- a network of networks - transport level networking
- a five-level protocol stack - physical, data-link, network (ip + icmp),
transport (tcp + udp), application (mail, www)
- ip, udp - pretty much the same and easy; receive, demultiplex (for
udp), deliver
- tcp - hard
- set-up
- establish a connection between two endpoints; agree to various
parameters (sequence number, maximum segment size)
- the legendary three-way handshake - latency; the syn bit
- communication
- two main requirements - reliability and congestion control
- reliability - the proper bytes in the proper order; sequence
numbers
- each byte is tagged with a sequence number - conceptually, anyway
- each receiver returns to the sender the largest sequential
sequence number received - the acknowledgment or ack
- received at the receiver, not delivered to the application
- reliability comes from time-outs and retransmissions - so does
wretched performance
- reliability must deal with out-of-order delivery, lost packets,
greatly delayed packets
- congestion control - at the hosts (flow control) and in the network
(congestion control)
- windows - advertised buffer space; window size; a
surprisingly flexible approach
- flow control
- receiver window - how much willing to receive; part of the tcp
packet header
- sender window - how much able to send
- congestion control - drive the network to the edge of
performance, but not over
- two issues - ramping up and staying put
- staying put - additive increases, multiplicative back-offs
- ramping up - slow start, multiplicative increases
- the point here is that data-stream delivery is herkey-jerkey
- tear-down
- duplex communication makes this counter-intuitive
- four-way handshake, two on each side; the fin bit
- must wait for packets to drain out of the network
This page last modified on 3 February 2004.