1
Introduction to TCP/IP
OSI and Protocol Stack
OSI Model
7th Application Layer 6th Presentation Layer Application Layer
OSI: Open Systems Interconnect
TCP/IP Hierarchy
Protocols
5th Session Layer 4th Transport Layer
3rd Network Layer 2nd Link Layer 1st Physical Layer Link Layer Transport Layer Network Layer
Link Layer : includes device driver and network interface card Network Layer : handles the movement of packets, i.e. Routing Transport Layer : provides a reliable flow of data between two hosts Application Layer : handles the details of the particular application
Packet Encapsulation
The data is sent down the protocol stack Each layer adds to the data by prepending headers
22Bytes 20Bytes 20Bytes
4Bytes
64 to 1500 Bytes
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. address
6bytes
Source address
6bytes
Type
Data
CRC
8bytes
2bytes
64 - 1500bytes
4bytes
MAC: Media Access Control
ARP : Address Resolution Protocol
ARP provides mapping
32bit IP address <-> 48bit MAC address 128.97.89.153 <-> 00-C0-4F-48-47-93
ARP cache
maintains the recent mappings from IP addresses to MAC addresses
Protocol 1. ARP request broadcast on Ethernet 2. Destination host ARP layer responds
IP: Internet Protocol
Unreliable connectionless datagram delivery service Responsible for routing of data through intermediate networks and computers
IP header: 1 :ICMP 6 :TCP 17 :UDP
0123
4567
11 8901
1111 2345
1111 6789
2222 0123
2222 4567
2233 8901
IP Routing
Source
Application
Destination
Application
Transport
Network Link
Router
Network Link
Transport Network Link
Routing Table Destination IP address IP address of a next-hop router Flags Network interface specification
ICMP : Internet Control Message Protocol
Used to report problems with delivery of IP Datagrams within an IP network Used by Ping, Tracerout commands ICMP Message
20bytes IP Header 4bytes ICMP Header ICMP Data
Types and Codes Type Code Checksum Echo Request (type=8, code=0) 1byte 1byte 2bytes Echo Reply(type=0, code=0) Destination Unreachable(type=3, code=0) Time Exceeded(type=11, code=0) : Time-to-Live =0
TCP : Transmission Control Protocol
Connection-Oriented, Reliable, Byte Stream Service
Protocol 1. Set up connection 2. Transfer data 3. Close connection
TCP Header Format
0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 Source Port Sequence Number Acknowledgement Number Data Offset
-
Destination Port
Window Urgent Pointer Options (0 to 10 Words of 32 Bits) TCP Payload
Checksum
TCP : State Diagram
10
TCP : Connection
11
Client Send SYN seq=x
Host
Client Send FIN seq=x
Host
Receive SYN +ACK segment Send ACK y+1
Receive SYN segment Send SYN seq=y, ACK x+1
Receive ACK segment Receive FIN + ACK segment Send ACK y+1
Receive FIN segment Send ACK x+1 Send FIN seq=y, ACK x+1 Receive ACK segment
Receive ACK segment
Establishing a TCP Connection
Closing a TCP Connection
TCP : Data transfer
Client Send Packet 1 Start Timer ACK would normally Arrive at this time Time Expires Packet Lost Host
12
Timer
Packet should arrive ACK should be sent
Timer
Retransmit Packet1 Start Timer Receive ACK 1 Cancel Timer
Receive Packet 1 Send AXK 1
HTTP : Hyper Text Transfer Protocol
Stateless Transaction Protocol Each transaction creates a new connection Steps in Transaction 1. Establish connection 2. Request Method <URL> <CR> 3. Response Response Code <Data> <CR> 4. Close connection
13
HTTP
Common Request Methods GET, PUT, POST Response Categories Informational :100 Successful :200 Redirection :300 Client Error :400 (eg. 404 Not found) Server Error :500
14
Example: Access www.ee.ucla.edu
Client Appl HTTP Transp TCP
Http request GET http://www.ee.ucla.edu<CR> Http response 200 <CR> <html file in MIME format> Initiate connection (hdshk) Package data (add TCP header) send http request packet Assemble response (break into several packets) Send http response packets Close connection (hdshk) send data to next hop ARP to provide IP/MAC translation Relay data
15
Server Appl HTTP Transp TCP
Net IP Link ethernet
Net IP Link ethernet Router(s)
Net IP Link ethernet
References
TCP/IP Illustrated, Volume 1 The Protocols by W. Richard Stevens (http://yenigul.net/tcpip) Internet Working with TCP/IP Volume 1 by Douglas E. Comer Sams Teach Yourself TCP/IP in 24 Hours by Joe Casad. Published by Sams. (http://www.informit.com)
16