20-755: The Internet Lecture 5: Internetworking II - PowerPoint PPT Presentation

About This Presentation
Title:

20-755: The Internet Lecture 5: Internetworking II

Description:

ETH. IP. TCP. ETH. Protocol layers used to connect host H1 ... ETH. IP. 376. MTU=1500. MTU=4500. MTU=532. MTU=1500. Lecture 5, 20-755: The Internet, Summer 1999 ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 44
Provided by: camp77
Learn more at: http://www.cs.cmu.edu
Category:

less

Transcript and Presenter's Notes

Title: 20-755: The Internet Lecture 5: Internetworking II


1
20-755 The InternetLecture 5 Internetworking II
  • David OHallaron
  • School of Computer Science and
  • Department of Electrical and Computer Engineering
  • Carnegie Mellon University
  • Institute for eCommerce, Summer 1999

2
Todays lecture
  • IP Internetworking with routers (50 min)
  • Break (10 min)
  • UDP, TCP (35 min)

3
Typical computer system
Keyboard
Mouse
Printer
Modem
Processor
Interrupt controller
Serial port controller
Parallel port controller
Keyboard controller
Local/IO Bus
Network adapter
Video adapter
Memory
IDE disk controller
SCSI controller
SCSI bus
disk
Network
Display
disk
cdrom
4
IP Internetworking with routers
  • IP is the most successful protocol ever developed
  • Keys to success
  • simple enough to implement on top of any physical
    network
  • two tin cans and a string.
  • rich enough to serve as the base for
    implementations of more complicated protocols and
    applications.
  • The IP designers never dreamed of something like
    the Web.
  • rough consensus and working code
  • solid implementable specs.

The Hourglass Model, Dave Clark, MIT
5
Internet protocol stack
Berkeley sockets interface
User application program (FTP, Telnet, WWW, email)
Reliable byte stream delivery (process-process)
Unreliable best effort datagram delivery (process-
process)
User datagram protocol (UDP)
Transmission control protocol (TCP)
Internet Protocol (IP)
Network interface (ethernet)
Unreliable best effort datagram delivery (host-ho
st)
hardware
Physical connection
6
IP service model
  • IP service model
  • Delivery model IP provides best-effort delivery
    of datagram (connectionless) packets between two
    hosts.
  • IP tries but doesnt guarantee that packets will
    arrive (best effort)
  • packets can be lost or duplicated (unreliable)
  • ordering of datagrams not guaranteed
    (connectionless)
  • Naming scheme IP provides a unique address
    (name) for each host in the Internet.
  • Why would such a limited delivery model be
    useful?
  • simple, so it runs on any kind of network
  • provides a basis for building more sophisticated
    and user-friendly protocols like TCP and UDP

7
IP datagram delivery Example internet
Network 1 (Ethernet)
H1
H2
H3
H7
H8
R3
Network 2 (Ethernet)
Network 4 (Point-to-point)
R1
R2
Network 3 (FDDI)
H4
H5
H6
8
IP layering
Protocol layers used to connect host H1 to host
H8 in example internet.
H1
R1
R2
R3
H8
TCP
TCP
IP
IP
IP
IP
IP
ETH
ETH
FDDI
FDDI
P2P
P2P
ETH
ETH
9
Encapsulating IP datagrams in Ethernet
IP datagram
IP datagram header
IP datagram data
Ethernet frame
Ethernet frame header
IP datagram header
IP datagram data
The same idea is used for other types of physical
networks
10
IP packet format
0
4
8
16
19
31
Ver
Hlen
TOS
Length
Datagram ID
Flags
Offset
VER IP version HL Header length (in 32-bit
words) TOS Type of service (unused) Length Datagra
m length (max 64K B) ID Unique datagram
identifier Flags xxM (more fragmented
packets) Offset Fragment offset TTL Time to
Live Protocol Higher level protocol (e.g., TCP)
TTL
Protocol
Checksum
Source IP address
Destination IP address
Options (variable)
Data
11
Fragmentation and reassembly
  • Different networks types have different maximum
    transfer units (MTU).
  • A problem can occur if packet is routed onto
    network with a smaller MTU.
  • e.g. FDDI (4,500B) onto Ethernet (1,500B)
  • Solution break packet into smaller fragments.
  • each fragment has identifier and sequence number
  • Destination reassembles packet before handing it
    up in the stack.
  • alternative would be to reassemble when entering
    network with larger MTU
  • Sender can disable fragmentation using flag.

12
Fragmentation example
H1
R1
R2
R3
H8
TCP
TCP
IP
IP
IP
IP
IP
ETH
ETH
FDDI
FDDI
P2P
P2P
ETH
ETH
ETH
IP
1400
FDDI
IP
1400
P2P
IP
512
ETH
IP
512
P2P
IP
512
ETH
IP
512
P2P
IP
376
ETH
IP
376
MTU4500
MTU532
MTU1500
MTU1500
13
Fragmentation example (cont)
start of header
identx
m1
offset0
First packet
rest of header
512 data bytes
start of header
identx
m1
offset512
Second packet
rest of header
512 data bytes
start of header
identx
m0
offset1024
Third packet
rest of header
376 data bytes
14
Internet addresses
  • Each host h has a physical address P(h) and a
    unique IP address I(h).
  • IP addresses contain a network part and a host
    part

3 classes of addresses
0
1
2
8
16
24
31
Class A (128 nets, 16 M hosts/net)
network(7)
host (24)
0
Class B (16 K nets, 65 K hosts/net)
network (14)
host (16)
1
0
network (21)
host (8)
1
1
0
Class C (2 M nets, 256 hosts/net)
15
Example Internet addresses
Host IP Number Class Network cs.cmu.edu 128.2.22
2.173 B 0x0002 cmu.edu 128.2.35.186 B 0x0000 cs
.stanford.edu 171.64.64.64 B 0x2640
att.com 192.128.133.151 C 0x008085
0
1
2
3
4
8
16
24
31
network
host
0
Class A
network
host
1
0
Class B
network
host
1
1
0
Class C
16
IP Datagram Forwarding
  • Forwarding the process of copying an input
    packet from an input port to an output port.
  • Routing the process of building the tables on
    each router that allow the correct output port to
    be determined (beyond our scope)
  • Key points
  • Every IP datagram contains the IP address of the
    destination.
  • Network part of IP address uniquely identifies a
    single physical network.
  • All hosts and routers with same network field in
    address are on the same physical network.
  • Every physical network on the Internet has a
    router connected to at least one other physical
    network.

17
IP Forwarding Algorithm
Algorithm for host S sending to host D
if (NetworkNum(S) NetworkNum(D))
deliver packet directly to D / IP-gtphysical
mapping via ARP / else deliver packet to
default router
Algorithm for router receiving packet for host D
NextHop lookup(NetworkNum(D)) if (NextHop is
an interface) deliver packet directly
to D using interface NextHop else if
(NextHop ! ltundefinedgt) deliver packet
to NextHop (a router) else deliver
packet to default router
Forwarding table consists of (NetworkNum, NextHop)
pairs
18
IP Forwarding example
NetworkNum NextHop 1 R3 2 R1 3 Interface
1 4 Interface 0
Router R2 forwarding table
19
ARP Address resolution protocol
  • Initially
  • Hosts S and D on the same network with IP
    addresses I(S) and I(D) and physical addresses
    P(S) and P(D).
  • Problem
  • Given I(D), host S wants to discover P(D).
  • Solution
  • Host S broadcasts triple (I(S), P(S), I(D),???)
    on network.
  • Host D (and only host D) responds with tuple
    (I(S), P(S), I(D), P(D))
  • Both sender and receiver maintain a software
    cache of IP to physical mappings.
  • Time out old entries

(I(S), P(S), I(D), ???)
S
D
(I(S), P(S), I(D), P(D))
S
D
20
Subnetting
  • Problem IP addressing scheme makes inefficient
    use of addresses
  • Partial solution subnetting
  • physical network part of address identifies a
    virtual physical network to the external world.
  • use some of the high order host bits to
    identify local physical networks within the
    virtual physical network.

- All hosts on same physical network have same
subnet number. - There is exactly one subnet mask
per subnet. - All hosts on subnet configured with
this mask (ifconfig)
21
IP forwarding with subnetting
Algorithm on a host
D1 SubnetMask destination IP address if (D1
MySubnetNum) deliver datagram directly to
destination else deliver datagram to default
router
Algorithm on a router
for each forwarding table entry
ltSubnetNum,SubnetMask,NextHopgt D1 SubnetMask
destination IP address if (D1 SubnetNum)
if (NextHop is an interface)
deliver datagram directly to destination
else deliver datagram to NextHop (a
router)
22
Subnetting example
subnet mask 255.255.255.128 subnet number
128.96.34.0
128.96.34.1
128.96.34.15
H1
R1
subnet mask 255.255.255.128 subnet number
128.96.34.128
128.96.34.130
128.96.34.129
128.96.34.139
R2
H2
128.96.33.1
128.96.33.14
subnet mask 255.255.255.0 subnet number
128.96.33.0
H3
SubnetNum SubnetMask NextHop 128.96.34.0 255.25
5.255.128 interface 0 128.96.34.128 255.255.255.1
28 interface 1 129.96.33.0 255.255.255.0 R2
forwarding table for R1
23
IPv6
  • Also called Next Generation IP and IPng
  • Extends address space from 32 bits to 128 bits
  • Hierarchical address space

3
48
010
registryID
providerID
SubscriberID
SubnetID
InterfaceID
  • neat feature
  • embedded InterfaceID allows host to assign itself
    an IP address!

24
IPv6 packet format
4
8
16
24
31
Ver
Pri
FlowLabel
Ver IP version (6) Pri/Flowlabel Quality of
Service) PayloadLen packet len (max
64KB) NextHdr optional/encapsulated header
type HopLimit same as TTL in IPv4 Source
Address 128-bit source addr Dest Address 128-bit
dest addr
PayloadLen
NextHdr
HopLimit
Source Address
Destination Address
Optional header examples fragmentation
(44) authentication (51) TCP (6)
Next header/data
25
Converting from IPv4 to IPv6
  • Not possible to have a flag day
  • Must upgrade incrementally
  • dual stack operation
  • IPv6 nodes run both IPv4 and IPv6 protocol stacks
  • IP tunneling
  • IP packet sent as payload of another IP packet
  • networking communitys version of indirection!

IPv4 network
IPv6 router
IPv6 router
IPV6
IPV6
IPV4
IPV4
IPV6
IPV6
26
Break time!
27
Todays lecture
  • IP Internetworking with routers (50 min)
  • Break (10 min)
  • UDP, TCP (35 min)

28
UDP User datagram protocol
Berkeley sockets interface
User application program (FTP, Telnet, WWW, email)
Reliable byte stream delivery (process-process)
Unreliable best effort datagram delivery (process-
process)
User datagram protocol (UDP)
Transmission control protocol (TCP)
Internet Protocol (IP)
Network interface (ethernet)
Unreliable best effort datagram delivery (host-ho
st)
hardware
Physical connection
29
UDP User datagram protocol
  • Extends IP to provide process-to-process
    (end-to-end) datagram delivery
  • Mechanism for demultiplexing IP packets
  • Based on port abstraction
  • Process identified by lthost, portgt pair.

SrcPort
DstPort
CheckSum
Length
Data
30
TCP Transmission Control Protocol
Berkeley sockets interface
User application program (FTP, Telnet, WWW, email)
Reliable byte stream delivery (process-process)
Unreliable best effort datagram delivery (process-
process)
User datagram protocol (UDP)
Transmission control protocol (TCP)
Internet Protocol (IP)
Network interface (ethernet)
Unreliable best effort datagram delivery (host-ho
st)
hardware
Physical connection
31
TCP Transmission control protocol
  • Uses IP to provide reliable process-to-process
    byte stream delivery.
  • stream orientation
  • sender transfers ordered stream of bytes
    receiver gets identical stream
  • virtual circuit connection
  • stream transfer analogous to placing phone call
  • sender initiates connection which must be
    accepted by receiver.
  • buffered data transfer
  • protocol software free to use arbitrary size
    transfer units
  • unstructured streams
  • stream is a sequence of bytes, just like Unix
    files
  • full duplex
  • concurrent transfers in both directions along a
    connection

32
TCP functions
  • Connections
  • Sequence numbers
  • Sliding window protocol
  • Reliability and congestion control.

Source Port
Dest. Port
Sequence Number
Acknowledgment
Hlen/Flags
Window
D. Checksum
Urgent Pointer
Options..
33
Connections
  • Connection is a fundamental TCP communication
    abstraction.
  • data sent along a connection arrives in order
  • implies allocation of resources (buffers) on
    hosts
  • The endpoint of a connection is a pair of
    integers
  • (IP address, port)
  • A connection is defined by a pair of endpoints
  • ((128.2.254.139, 1184), (128.10.2.3, 53))

(128.2.254.139, 1184)
(128.10.2.3, 53)
connection
34
Sequence space
  • Each stream split into a sequence of segments
    which are encapsulated in IP datagrams.
  • Each byte in the byte stream is numbered.
  • 32 bit value
  • wraps around
  • initial values selected at runtime
  • Each segment has a sequence number.
  • indicates the sequence number of its first byte
  • Detects lost, duplicate or out of order segments

35
TCP flow control mechanismsliding window
  • The purpose of flow control is to keep senders
    from flooding receivers with packets and filling
    up their memories.
  • Often confused with congestion control, which
    tries to keep the senders from flooding the
    network with packets.

36
Sliding window protocol (sender)
  • Sender maintains a window of unacknowledged
    bytes that it is allowed to send, and a pointer
    to the last byte it sent

current window
1 2 3 4 5 6 7 8 9 10 11 ...
byte stream
left
right
curr
Bytes through 2 have been sent and acknowledged
(and thus can be discarded) Bytes 3 -- 6 have
been sent but not acknowledged (and thus must be
buffered) Bytes 7 -- 9 have been not been sent
but will be sent without delay. Bytes 10 and
higher cannot be sent until the right edge of
window moves.
37
Sliding window protocol (receiver)
  • Receiver acknowledges receipt of a segment with
    two pieces of information
  • ACK the sequence number of the next byte in the
    contiguous stream it has already received
  • WIN amount of available buffer space.
  • ACK indicates that data was received correctly.
  • sender can increment left edge of window
  • sender can delete data to the left of the window.
  • WIN indicates that more buffer space was freed
    up.
  • sender can increment the right edge of its window
  • sender can transmit more data.

38
Sliding window protocol (example)
Sender
Receiver
Receivers buffer
Application does 2K write
0
4K
2K, SEQ 0
empty
ACK2K, WIN 2K
2K
Application does 3K write
2K, SEQ 2K
ACK4K, WIN 0
4K
Sender is blocked
Application reads 2K
ACK4K, WIN 2K
2K
Sender may send up to 2K
1K, SEQ 4K
2K
1K
39
Opening and closing connections
The three way handshake
Host 1
Host 2
Application does a connect to a socket on Host 2
J is the initial sequence number for messages
from Host 1 to Host 2. K is the initial sequence
number for messages from Host 2 to Host 1. SYN is
the synchronize flag
SYN, SEQ J, WIN 4K
ACK J 1, SYN, SEQ K, WIN 4K
ACK K1,
Application does a close on a connection
FIN, SEQ M
ACK M1
Host 2 replies with its own close. FIN is the
finish flag
FIN, SEQ N
ACK N1
40
Reliability and congestion control
  • Reliability
  • sender
  • saves segments inside its window
  • uses timeouts and sequence numbers in ACKS to
    detect lost segments.
  • retransmit segments it thinks are lost
  • receiver
  • uses sequence numbers to assemble segments in
    order
  • also to detect duplicate segments (how might
    this happen?)
  • Congestion control
  • sender maintains separate separate congestion
    window
  • uses smaller of the two windows
  • uses slow start algorithm to adaptively set
    congestion window size.

41
End-to-end data issues
  • Presentation formatting
  • must account for different data formats on
    different machines
  • different byte orders
  • different word sizes
  • Compression
  • data can be compressed/decompressed on the
    endpoints to save network bandwidth (beyond our
    scope)
  • Encryption
  • sensitive data can be encrypted/unencrypted on
    the endpoints.
  • Authentication
  • Receivers may want to verify that messages really
    do come from the sender.

42
Key themes in IP internetworking
  • Protocol layering
  • Way to structure complex system
  • Handle different concerns at different layers
  • Must cope with heterogeneous networks
  • Must cope with huge scale
  • Must cope with imperfect environment
  • Packets get corrupted and lost
  • No one has complete routing table
  • Too many hosts
  • Hosts continually being added and removed
  • In the future, they will start moving around
    (mobile computing)

43
Next time Programming the global IP Internet
Berkeley sockets interface
User application program (FTP, Telnet, WWW, email)
Reliable byte stream delivery (process-process)
Unreliable best effort datagram delivery (process-
process)
User datagram protocol (UDP)
Transmission control protocol (TCP)
Internet Protocol (IP)
Network interface (ethernet)
Unreliable best effort datagram delivery (host-ho
st)
hardware
Physical connection
Write a Comment
User Comments (0)
About PowerShow.com