Professional Documents
Culture Documents
Computer Network
Programming
TCP/IP
IP Network Layer
Wenyuan Xu
Department of Computer Science and
Engineering
University of South Carolina
IP Datagrams
IP Datagram
1 byte
VERS
HL
1 byte
1 byte
Service
Datagram ID
TTL
Protocol
1 byte
Total Length
FLAG
Fragment Offset
Header Checksum
Source Address
Destination Address
Options (if any)
Data
IP Addresses
IP Addresses
IP
HostID
NetID
110
1110
8 bits
Class
Class AA
zz 128
128 possible
possible network
network IDs
IDs
zz over
over 16M
16M host
host IDs
IDs per
per network
network ID
ID
Class B
z16K possible network IDs
z64K host IDs per network ID
HostID
HostID
NetID
Class C
zover 2 million possible network IDs
zabout 256 host IDs per network ID
Multicast Address
8 bits
8 bits
8 bits
A Network ID is assigned to an
organization by a global authority.
IP Addresses
IP Addresses are usually shown in dotted
decimal notation:
1.2.3.4
00000001 00000010 00000011 00000100
cse.sc.edu is 129.252.138.8
Special IP addresses
localhost: 127.0.0.1
Subnet Addresses
Subnetting
router
10
NetID
Subnet 2
128.213.2.x
Subnet 3
128.213.3.x
SubnetID HostID
Subnetting
Subnet Mask
Subnet mask
IP Routing
255.
255.
255.
128
129.252.138.8
129.252.138.0
129.252.138.127
2007
129.252.138.0
Yes
Routing table
/sbin/route
Destination
Gateway
129.252.130.0 *
loopback
*
default
SWG130.cse.sc.edu
Genmask
255.255.255.0
255.0.0.0
0.0.0.0
Flags
U
U
UG
Metric Ref
0
0
0
0
1
0
Use
0
0
0
Iface
eth1
lo
eth1
2007
ARP
ARP conversation
Each host checks the request against its IP address - the right one
responds.
Ethernet Ethernet
D. addr S. addr type
op
Sender
Ethernet addr
Sender
IP addr
Target
Ethernet addr
Target
IP addr
Ethernet header
not me
Hi Green! Im 128.213.1.5, and my Ethernet
address is 87:A2:15:35:02:C3
Example routing
Proxy ARP
129.252.138.0
Ethernet header
op
129.252.138.0
129.252.10.0
H1 H2
H3
H4
H5
H6
H1 H2
H3
H4
H5
H6
E1 E2
E3
E4
E5
E6
E1 E2
E3
E4
E5
E6
129.252.138.3
Ethernet Ethernet
D. addr S. addr type
129.252.138.0
Sender
Ethernet addr
129.252.138.4
Sender
IP addr
129.252.138.6
Target
Ethernet addr
129.252.138.10
Target
IP addr
Ethernet Ethernet
size
D. addr S. addr
Ethernet header
S. IP addr
129.252.138.40
129.252.10.169
D.
IP addr.
IP header
CSCE515 Computer Network Programming
Data
RARP conversation
HEY - Everyone please listen!
My Ethernet address is
22:BC:66:17:01:75.
Does anyone know my IP address ?
not me
Services provided by IP
Connectionless Delivery (each datagram
is treated individually).
Unreliable (delivery is not guaranteed).
Fragmentation / Reassembly (based on
hardware MTU).
Routing.
Error detection.
IP Datagram
1 byte
VERS
HL
1 byte
1 byte
Service
Datagram ID
TTL
Protocol
1 byte
Fragment Length
FLAG
Fragment Offset
Header Checksum
Source Address
Destination Address
Options (if any)
Data
IP Datagram Fragmentation
IP header
78
type
15 16
31
code
checksum
payload
ICMP Message
20 bytes
CSCE515 Computer Network Programming
78
type(17 or 18)
15 16
31
checksum
code(0)
identifier
sequence number
subnet mask
Transportation
Layer
Process
Process Layer
Process
TCP
ICMP, ARP
&
RARP
Transport Layer
UDP
Network Layer
IP
Data-Link Layer
802.3
Ports
Ports
Host A
UDP
between processes
Process
Process
Process
Process
Process
Process
Datagram Delivery
Connectionless
Unreliable
Minimal
Host B
TCP
Transmission Control Protocol
TCP is an alternative transport layer
protocol supported by TCP/IP.
TCP provides:
Connection-oriented
Reliable
Full-duplex
Byte-Stream
Destination Port
Length
Checksum
Data
Connection-Oriented
Connection oriented means that a
virtual connection is established
before any user data is
transferred.
If the connection cannot be
established - the user program is
notified (finds out).
If the connection is ever
interrupted - the user program(s)
is finds out there is a problem.
Reliable
Byte Stream
Buffering
Full Duplex
TCP Ports
IP Demultiplexing
TCP
ICMP
TCP Segments
UDP
IGMP
IP
VERS
HL
Service
Fragment Length
Datagram ID
TTL
FLAG
Protocol
Fragment Offset
Header Checksum
data
Source Address
Destination Address
control
Data
15 16
Addressing in TCP/IP
31
Internet
Address
Protocol (UDP or TCP)
Port Number
sequence number
acknowledgment number
header
length
reserved
U A P R S F
R C S S Y I
G K H T N N
TCP checksum
20 bytes
window size
urgent pointer
TCP/IP Summary
hosts.
Reading:
TI
3,4,5,6,17 **
TCP/IP FAQ
Next Lecture:
Sockets
2007
Programming API