Introduction To TCPnIP
Introduction To TCPnIP
You don’t need to know the layers just the idea that it is layered
TCP/IP Network Model
• Different view – 5 layers
– Layer 1 : Physical
– Layer 2 : Link
– Layer 3 : Network
– Layer 4 : Transport
– Layer 5 : Application
TCP/IP Network Model
A Comparison of the OSI and TCP/IP Reference
Models
A Comparison of the OSI and TCP/IP Reference
Models
Both are based on the concept of a stack of independent
protocols. Also, the functionality of the layers is roughly
similar.
22Bytes20Bytes20Bytes 4Bytes
64 to 1500 Bytes
IP
• Responsible for end to end transmission
• Sends data in individual packets
• Maximum size of packet is determined
by the networks
– Fragmented if too large
• Unreliable
– Packets might be lost, corrupted,
duplicated, delivered out of order
IP addresses
• 4 bytes
– e.g. 163.1.125.98
– Each device normally gets one (or more)
– In theory there are about 4 billion available
• But…
Routing
• How does a device know where to send
a packet?
– All devices need to know what IP
addresses are on directly attached
networks
– If the destination is on a local network,
send it directly there
Routing (cont)
• If the destination address isn’t local
– Most non-router devices just send
everything to a single local router
– Routers need to know which network
corresponds to each possible IP address
Allocation of addresses
• Controlled centrally by ICANN
– Fairly strict rules on further delegation to
avoid wastage
• Have to demonstrate actual need for them
• Organizations that got in early have
bigger allocations than they really need
IP packets
• Source and destination addresses
• Protocol number
– 1 = ICMP, 6 = TCP, 17 = UDP
• Various options
– e.g. to control fragmentation
• Time to live (TTL)
– Prevent routing loops
0 4
IP Datagram
8 16 19 24 31
Vers Len TOS Total Length
Identification Flags Fragment Offset
TTL Protocol Header Checksum
Source Internet Address
Destination Internet Address
Options... Padding
Data...
Field Purpose
Source Port 16-bit port number identifying originating application
Destination Port 16-bit port number identifying destination application
Length Length of UDP datagram (UDP header + data)
Checksum Checksum of IP pseudo header, UDP header, and data
Typical applications of UDP
– Where packet loss etc is better handled by
the application than the network stack
– Where the overhead of setting up a
connection isn’t wanted
• VOIP
• NFS – Network File System
• Most games
TCP
• Reliable, full-duplex, connection-
oriented, stream delivery
– Interface presented to the application
doesn’t require data in individual packets
– Data is guaranteed to arrive, and in the
correct order without duplications
• Or the connection will be dropped
– Imposes significant overheads
Applications of TCP
• Most things!
– HTTP, FTP, …
Time Expires
Retransmit Packet1
Timer Start Timer Receive Packet 1
Send AXK 1
Receive ACK 1
Cancel Timer
IPv6
• 128 bit addresses
– Make it feasible to be very wasteful with
address allocations
• Lots of other new features
– Built-in autoconfiguration, security options,
…
• Not really in production use yet
Ethernet
• Computer <-> Computer communication on same
network
• Each device has unique MAC address (48-bit)
example: 00-C0-4F-48-47-93
Ethernet Packet:
Preamble Dest. Source Type Data CRC
address address
Protocol
1. ARP request broadcast on Ethernet
2. Destination host ARP layer responds
DHCP
• Dynamic Host Configuration Protocol
– Used to tell a computer what IP address to use
– Device broadcasts a request from IP 0.0.0.0
• If it had an IP address before, asks for the same one
again
– Server (or relay) on local network responds telling
it which to use (or ignores it, or tells it go away)
• “Lease time” telling it how long that IP will be valid for
• Device requests renewal of lease after ¾(?) elapsed