TCP/IP
Lecture 2 cs193i Internet Technologies Summer 2004 Stanford University
Announcements
Lab #1 due Wednesday HW #1 assigned Extra perl session tomorrow
Tuesday, June 29, 2:15-3:05pm, Skilling 193 Broadcast live on E2, Stanford Online
Silas Thursday office hours moved to Wednesday this week
Sweet Hall, 6:30-8:30pm
Communicating with Anyone
Hows the weather in Seattle, Mar?
[email protected] Ethernet
Network
Tokenring
[email protected]
MSN Messenger
Local Area Network (LAN)
High speed, data network over small region
LAN 1
Few thousand meters Ethernet FDDI Token ring Packets routed based on physical address (MAC)
Network technologies:
Ethernet
Tokenring
Data link layer
LAN 2
Local Area Network (LAN)
High speed, data network over small region
LAN 1
Few thousand meters Ethernet FDDI Token ring Packets routed based on physical address (MAC)
Network technologies:
Ethernet
?
Tokenring
Data link layer
LAN 2
Connecting Below Internet Level
Hub
Center of star topology In Ethernet, multiport repeater or concentrator
Connects 2 networks of same technology extended LAN Filters/forwards/floods based on MAC Link layer - frames Connects 2+ networks packet-switched network Reduces collisions
Bridge
Hub
Ethernet
Ethernet
Bridge
Switch
Ethernet
CISCOSYSTEMS
Ethernet
CISCOSYSTEMS
T3
CISCOSYSTEMS
STS-N
Switch
Connecting at the Internet Level
Router
Originally gateway Forwards packets based on network layer info (IP) Separate broadcast domains In each domain, IP packet encapsulated in domainspecific packet
Ethernet
CISCOSYSTEMS
Ethernet
CISCOSYSTEMS
Router
CISCOSYSTEMS
Tokenring
Internet Society
Governing body for Internet since 1992
http://www.isoc.org
Domain names and addresses assigned
Upper level: Internet Assigned Numbers Authority Regional:
Latin America / Caribbean Asia Pacific America Europe
How Does Everyone Work Together?
Networks
MCI Worldcom, Sprint, Earthlink, Exchange points provide connections between networks Network Access Points open access policies
Build national or global networks Lease space at NAPs Sell bandwidth to regional NSPs Regional NSP sell bandwidth to ISP
Network Service Provider
Internet Service Provider sells bandwidth to end users
How Does Everyone Work Together?
OSI Reference Model for Network Design
Application (Layer 7) Presentation Session Transport Network Data Link Physical (Layer 1)
OSI vs. TCP/IP Stack
Layering: FTP Example
Application Presentation Session Transport
TCP IP Ethernet FTP ASCII/Binary
Application
Transport Network Link
Network
Link Physical
The 7-layer OSI Model
The 4-layer Internet model
Internet Protocol
Protocol Stack
App Transport Network Link TCP / UDP IP
Data Hdr
TCP Segment
Hdr
Data
IP Datagram
IP Datagram
Header 10101011101010101010010101010100101010100 11010010101010010101111111010000011101111 10100001011101010100110101011110100000101 00100000000010101000011010000111111010101 ......... 1011011001010100011001001010110 Data
IP Addresses
4 8-bit numbers (Hierarchical)
18.26.0.1
network 32-bits host
Specifies both network and host Number of bits allocated to specify network varies Three classes:
A B host 1 0 net host 110 C net host
0 net
1 7
24 bits
14
16 bits
21
8 bits
IP Addresses
IP (Version 4) Addresses are 32 bits long IP Addresses Assigned Statically or Dynamically (DHCP) IPv6 addresses are 128 bits long
IP Address Space
Originally, 3 Classes
A, B, C
Problem
Classes too rigid (C too small, B too big)
Solution
Subnetting (e.g. within Stanford) Classless Interdomain Routing (CIDR)
Subnetting
IP Address plus subnet mask (netmask) IP Addr: 171.64.15.82 Netmask: 0xFFFFFF00 (111...1100000000)
First
24 bits are the Subnet ID (the neighborhood) Last 8 bits are Host ID (the street address)
Can be written as Prefix + Length
171.64.15.0/24
or 171.64.15/24
Subnetting at Stanford
To: cenic.net
dcl-rtr
171.64.1.132
171.64.74.0/24
171.64.1.132/30
171.64.1.133 171.64.1.161 171.64.1.178 bbr2-rtr 171.64.74.1 Gates- rtr
Stanford Class B Address
171.64.0.0/16
171.64.1.160/27
171.64.74.58
yuba
171.64.1.152 To: cogentco .com border-rtr 171.64.1.145
171.64.1.144/28
IP Routing
Routers are not omniscient
Next-Hop
Hop-by-Hop Thus IP makes no guarantees
except to try its best (Best Effort) packets may get there out of order, garbled, duplicated may not get there at all! Unreliable datagram service
IP Routing Hop-by-Hop
128.17.20.1
R2 R3 R4
e.g. 128.9.16.14 => Port 2
Prefix
65/8 128.9/16 128.9.16/20 128.9.19/24 128.9.25/24 128.9.176/20 142.12/19
Next-hop
128.17.16.1 128.17.14.1 128.17.14.1 128.17.10.1 128.17.14.1 128.17.20.1 128.17.16.1
Port
3 2 2 7 2 1 3
1 R1 2 3
128.17.16.1
Forwarding/routing table
How a Router Forwards Datagrams
Classless Interdomain Routing (CIDR)
232-1
Classless Interdomain Routing (CIDR)
128.9.0.0
65/8
128.9/16 142.12/19
216
232-1
128.9.16.14
Classless Interdomain Routing (CIDR)
128.9.19/24
128.9.25/24 128.9.16/20 128.9.176/20
128.9/16
232-1
128.9.16.14
Classless Interdomain Routing (CIDR)
128.9.19/24 128.9.25/24 128.9.16/20 128.9.176/20 128.9/16
232-1
128.9.16.14
Five Minute Break
Network Programs
host ping traceroute nslookup
Summary of IP
Connectionless/Datagram Unreliable/Best Effort
Transmission Control Protocol
Protocol Stack
App Transport Network Link TCP / UDP IP
Data Hdr
TCP Segment
Hdr
Data
IP Datagram
Characteristics
Connection-Oriented Reliable Byte-Stream Flow Control (aka Congestion Control)
Three Phases
Establish Connection Data Transfer Terminate Connection
Establishing the Connection
(Active) Client
Syn
(Passive) Server
Syn + Ack Ack
Connection Setup 3-way handshake
Data Transfer
Byte 80
Byte 3 Byte 2 Byte 1 Byte 0 Byte 80
Byte 3 Byte 2 Byte 1 Byte 0
Host A
Host B
Data Transfer
Byte 80
TCP Data
Byte 3 Byte 2 Byte 1 Byte 0
Byte 3 Byte 2 Byte 1 Byte 0
Host A
TCP Data
Byte 80
Host B
Maintaining the Connection
IP Data
TCP Data TCP Hdr
IP Hdr
0
Src port
15
Dst port
31
Sequence #
Ack Sequence #
URG ACK PSH RST SYN FIN
HLEN 4 RSVD 6
Flags
Window Size
Src /dst port numbers and IP addresses uniquely identify socket
Checksum
Urg Pointer
(TCP Options)
TCP Data
Terminating the Connection
(Active) Client
Fin
(Passive) Server
(Data +) Ack Fin Ack
Connection Close/Teardown 2 x 2-way handshake
Connection-Oriented Reliable Byte-Stream Flow Control (aka Congestion Control)
Reliability & Flow Control
Sequence numbers & Acknowledgements (ACKs)
Receiver detects Corrupt, Lost, Duplicated, Out-oforder Tell sender which packets it has received correctly Sender can resend
In Flight Window (Window Size)
Sender only has N unacknowledged packets in
Sending a Message
Leland.Stanford.edu Ron
Transport Layer
Application Layer
Arachne.Berkeley.edu Leslie
O.S.
D H
Data
Header
Data
Header
O.S.
D H
Network Layer
Link Layer
Connection-Oriented Reliable Byte-Stream Flow Control (aka Congestion Control)
UDP
Protocol Stack
App Transport Network Link TCP / UDP IP
Data Hdr
TCP Segment
Hdr
Data
IP Datagram
User Datagram Protocol (UDP)
Like TCP, in the Transport Layer Characteristics
Connectionless,
Datagram, Unreliable
Adds only application multiplexing/demultiplexing and checksumming to IP Good for Streaming Media, Real-time Multiplayer Networked Games, VoIP
Summary
IP is the basis of Internetworking TCP builds on top of IP adds reliable, congestion-controlled, connectionoriented byte-stream. UDP builds on top of IP allows access to IP functionality