- Purpose
- Some History
- IP Network Structure
- IP Addressing and Naming
- The Internet Protocols
- Implementing IPs
- To develop a network that is
- Robust in the presence of partial failures.
- Scalable and autonomous.
- Supports interoperability and resource sharing.
- licklider and clark at mit, 1962 - the galactic network
- paul baran at rand, 1964 -
survivable communications
- donald davies at npl, 1965 - the packet
- arpa, 1968 - the money starts to flow
- The great cloud, a network of networks.
- Hosts connected to an internet
- An IP address is a 32-bit unsigned integer.
- Usually specified as a dotted quad: four bytes separated by
periods.
- 3432551685 = 204*2563 + 152*2562 + 149*2561 + 5
= 204.152.149.5
- An IP address has a network-id part and a host-id part.
- There are five IP address classes, A through E.
- Classes A to C have 7-, 14- and 21-bit network-id sizes.
- A multicast class D has a 28-bit group id.
- A class E address is unstructured and reserved.
- An IP address references an interface, not a host.
- A Multi-homed host has more than one IP address.
- Routers and gateways are of multi-homed hosts.
- IP addresses aren't convenient.
-
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
- The IP protocols don't understand host names.
- Name resolution translates from host names and IP addresses.
- A large and ever growing set of protocols.
- Data transport - IP, UDP, TCP.
- Network management - ICMP.
- Routing management - OSFP, BGP.
- Known as IP.
- IP is a datagram protocol.
- It's message oriented
- It offers unreliable service.
- Best-effort delivery, messages may get lost.
- Messages may be corrupted.
- Messages may delivered out of order.
- IP is a connectionless service.
- Known as UDP.
- UDP is multiplexed IP.
- IP is delivered to hosts, UDP is delivered to processes on a host.
- A UPD port number is a 16-bit, unsigned integer.
- Ports 0 to 1023 are the well-known ports; echo (7), telnet (23), www (80)
- Ports 1024 to 49151 are registered ports; license managers (autodesk - 1422);
database connects (sybase - 1498)
- Ports 49151 to 65535 are dynamic and temporary.
- See
/etc/services
for details.
- An endpoint address is an (IP address, port number) pair.
- Usually written IPA:PNO; for example
www.monmouth.edu:80
.
- full duplex - the same connection communicates in both directions.
- Known as TCP
- TCP offers a reliable, byte-stream connection.
- Byte streams do not preserve message boundries.
- Reliable - bytes put in one end come out the other end; the meaning
of reliable is tricky.
- The connection is full duplex.
- TCP is multiplexed by port numbers too.
- The TCP port numbers are identical to, but separate from, UDP port
numbers.
-
www.monmouth.edu:80
is ambiguous: is it TCP or UDP?
- Known as ICMP.
- Provides 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.
- End user's don't see them.
- See rfc 792.
- ICMP messages don't escape the IP protocol stack.
- Implemented on top of IP.
- A network of networks; transport level networking.
- A five-level protocol stack.
- IP, UDP are pretty much the same and easy (relatively) easy to
implement.
- Send
- Receive
- Demultiplex (for UDP).
- Deliver
- Implementing TCP is hard.
- There are four stages to worry about.
- Connection set-up.
- Reliable communication.
- Congestion control
- Connection tear down.
- Connection set-up negotiates and initializes state at both ends of the
connection.
- Establish a connection between two endpoints; agree to various
parameters (sequence number, maximum segment size)
- The legendary three-way handshake.
- Data transfer is reliable.
- Reliability means the proper bytes in the proper order.
- 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.
- And 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
- 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.
- IP is an end-to-end protocol.
- IP Addressing is two stage.
- IP addresses and fully qualified domain names.
- UDP and TCP are the main IP.
- UDP and TCP demultiplex to processes.
- UDP provides a datagram service.
- TCP provides a reliable byte-stream service.
- "Reliable" only stretches so far.
This page last modified on 30 January 2003.