47
TCP/IP

TCP/IP. TCP/IP Protocol Suite (1) Physical layer Data-link layer –PPP, ARP, RARP Network layer – IP, ICMP, IGMP, BootP Transport layer _ TCP, UDP, RTP

Embed Size (px)

Citation preview

TCP/IP

TCP/IP Protocol Suite (1)

Physical layerData-link layer –PPP, ARP, RARPNetwork layer – IP, ICMP, IGMP, BootPTransport layer _ TCP, UDP, RTPApplication layer – http, smtp, ftp

TCP/IP Protocol Suite (2)

Point-to-Point Protocol (PPP): a link layer protocol used in the Internet Address Resolution Protocol (ARP): IP address Ethernet addressReverse Address Resolution Protocol (RARP): Ethernet address IP addressBootstrap Protocol (BOOTP): function is similar to RARP, but using UDP messages, and was extended to DHCP (Dynamic Host Configuration Protocol)

TCP/IP Protocol Suite (3)

Internet Control Message Protocol (ICMP) : monitor or test the InternetInternet Group Management Protocol (IGMP) : manage the membership of IP multicast groupsReal-time Transport Protocol (RTP): provides end-to-end network transport functions suitable for applications transmitting real-time data

TCP/IP Protocol Suite (4)

http: HyperText Transfer Protocolsmtp: Simple Mail Transfer Protocolftp: File Transfer Protocol

Internet Protocol (IP)

Addressing Routing Fragmentation and Reassembly Quality of Service Multiplexing and Demultiplexing

Addressing

Need unique identifier for every host in the Internet (analogous to postal address)IP addresses are 32 bits longHierarchical addressing schemeConceptually … IPaddress

=(NetworkAddress,HostAddress)

Address ClassesClass A

Class B

Class C

0 netId hostId7 bits 24 bits

1 0 netId hostId14 bits 16 bits

1 1 0 netId hostId21 bits 8 bits

IP Address Classes (contd.)Two more classes 1110 : multicast addressing 1111 : reserved

Significance of address classes?

Why this conceptual form?

Addresses and Hosts

Since netId is encoded into IP address, each host will have a unique IP address for each of its network connectionsHence, IP addresses refer to network connections and not hostsWhy will hosts have multiple network connections?

Special Addresses

hostId of 0 : network addresshostId of all 1’s: directed (distant) broadcast

All 1’s : limited (local) broadcast

netId of 0 : this networkLoopback : 127.0.0.0Dotted decimal notation: IP addresses are written as four

decimal integers separated by decimal points, where each integer gives the value of one octet of the IP address.

Dotted decimal notation

11001010, 00100110, 01000000, 00000010

202.38.64.2

Exceptions to Addressing

Subnetting Splitting hostId into subnetId and hostId Achieved using subnet masks Useful for?

Supernetting (Classless Inter-domain Routing or CIDR) Combining multiple lower class address

ranges into one range Achieved using 32 bit masks and max prefix

routing Useful for?

Examples

Subnetting 192.168.1.0/24 – class C network 192.168.1.64/26 and 192.168.1.128/26 –

2 subnetworks with upto 62 stations each!

Supernetting 192.168.2.0/24 and 192.168.3.0/24 – 2

class C networks 192.168.2.0/23 – 1 super network with

upto 510 stations!!

Weaknesses

Mobility

Switching address classes

Notion of host vs. IP address

IP Routing

Direct If source and destination hosts are

connected directly Still need to perform IP address to physical

address translation. Why?

Indirect Table driven routing Each entry: (NetId, RouterId)

Default router Host-specific routes

IP Routing Algorithm

RouteDatagram(Datagram, RoutingTable)Extract destination IP address, D, from the datagram and compute the netID N

If N matches any directly connected network address deliver datagram to destination D over that network

Else if the table contains a host-specific route for D, send datagram to next-hop specified in table

Else if the table contains a route for network N send datagram to next-hop specified in table

Else if the table contains a default route send datagram to the default router specified in table

Else declare a routing error

Routing Protocols

Interior Gateway Protocol (IGP) Within an autonomous domain RIP (distance vector protocol), OSPF

(link state protocol)

Exterior Gateway Protocol (EGP) Across autonomous domains BGP (border gateway protocol)

IP Fragmentation

The physical network layers of different networks in the Internet might have different maximum transmission unitsThe IP layer performs fragmentation when the next network has a smaller MTU than the current network

MTU = 1500 MTU=500

IP fragmentation

IP Reassembly

Fragmented packets need to be put together

Where does reassembly occur?

What are the trade-offs?

Multiplexing

Web Email MP3

TCP UDP

IP

Web Email MP3

TCP UDP

IP

IP datagrams IP datagrams

IP Header

Used for conveying information to peer IP layers

Application

Transport

IP

DataLink

Physical

Application

Transport

IP

DataLink

Physical

IP

DataLink

Physical

IP

DataLink

Physical

Source Destn

Router Router

IP Header (contd.)16 bit total length

4 bit version

4 bit hdrlength

16 bit identification

8 bit TTL 8 bit protocol 16 bit header checksum

3 bitflags

32 bit source IP address

32 bit destination IP address

13 bit fragment offset

Options (if any) (maximum 40 bytes)

data

8 bitTOS

Internet Protocol (IP): Recap

Addressing Routing Fragmentation and Reassembly Quality of Service Multiplexing and Demultiplexing

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP)

End-to-end transport protocolResponsible for reliability, congestion control, flow control, and sequenced deliveryApplications that use TCP: http (web), telnet, ftp (file transfer), smtp (email), chatApplications that don’t: multimedia (typically) – use UDP instead

Ports, End-points, & Connections

Thus, an end-point is represented by (IP address,Port)Ports can be re-used between transport protocolsA connection is (SRC IP address, SRC port, DST IP address, DST port)Same end-point can be used in multiple connections

IP Layer

TCP UDP

http ftp smtptelnet

IP address

Protocol ID

A1 A2 A3

Transport

Port

TCP

Connection EstablishmentConnection Maintenance Reliability Congestion control Flow control Sequencing

Connection Termination

Fundamental Mechanism

Simple stop and go protocolTimeout based reliability (loss recovery)Multiple unacknowledged packets (W)

data

retx

ack

data

ack

data

Sliding Window Protocol: 1 2 3 4 5 6 7 8 9 10 11 12 ….

Active and Passive Open

How do applications initiate a connection?One end (server) registers with the TCP layer instructing it to “accept” connections at a certain portThe other end (client) initiates a “connect” request which is “accept”-ed by the server

Reliability (Loss Recovery)

Sequence NumbersTCP uses cumulative Acknowledgments (ACKs)

Next expected in-sequence packet sequence number

Pros and cons? Piggybacking

Timeout calculation Rttavg = k*Rttavg + (1-

k)*Rttsample

RTO = Rttavg + 4*Rttdeviation

ack

data

5

1234

34

3

1234

3

34

Congestion Control

Slow Start Start with W=1 For every ACK,

W=W+1Congestion Avoidance (linear increase) For every ACK, W = W+1/W

Congestion Control (multiplicative decrease) ssthresh = W/2 W = 1

Alternative: Fall to W/2 and startcongestion avoidance directly

Why LIMD? (fairness)• W=1

• 100 10 diff = 90• 1 1 diff = 0• Problem? – inefficient

• W=W/2• 100 10 diff = 90• 50 5 diff = 45• 51 6 diff = 45• 52 7 diff = 45• ..• 73 28 diff = 45• 37.5 14 diff = 23.5• ..• 61.75 38.25 diff = 23.5• 30.85 19.65 diff = 11.2• ..

Flow Control

Prevent sender from overwhelming the receiverReceiver in every ACK advertises the available buffer space at its endWindow calculation MIN(congestion control window, flow control window)

Sequencing

Byte sequence numbersTCP receiver buffers out of order segments and reassembles them laterStarting sequence number randomly chosen during connection establishment Why?

3

1234

3

34

1 given to app2 given to appLoss4 buffered (not given to app)

3 & 4 given to app4 discarded

Connection Establishment & Termination

3-way handshake used for connection establishmentRandomly chosen sequence number is conveyed to the other endSimilar FIN, FIN+ACK exchange used for connection termination

SYN

SYN+ACK

ACK

DATA

Server does passive open

Accept connection requestSend acceptance

Start connection

Active openSend connectionrequest

TCP Segment Format

HL

16 bit SRC Port 16 bit DST Port

32 bit sequence number

32 bit ACK number

16 bit window sizeresvd flags

16 bit urgent pointer16 bit TCP checksum

Options (if any)

Data

Flags: URG, ACK, PSH, RST, SYN,FIN

TCP Flavors

TCP-Tahoe W=1 adaptation on congestion

TCP-Reno W=W/2 adaptation on fast retransmit,

W=1 on timeout

TCP-newReno TCP-Reno + fast recovery

TCP-Vegas, TCP-SACK

TCP Tahoe

Slow-startCongestion control upon time-out or DUP-ACKs When the sender receives 3 duplicate ACKs for the same sequence number, sender infers a lossCongestion window reduced to 1 and slow-start performed againSimpleCongestion control too aggressive

TCP RenoTahoe + Fast re-transmitPacket loss detected both through timeouts, and through DUP-ACKsSender reduces window by half, the ssthresh is set to half of current window, and congestion avoidance is performed (window increases only by 1 every round-trip time)Fast recovery ensures that pipe does not become emptyWindow cut-down to 1 (and subsequent slow-start) performed only on time-out

TCP New-RenoTCP-Reno with more intelligence during fast recoveryIn TCP-Reno, the first partial ACK will bring the sender out of the fast recovery phase Results in timeouts when there are multiple lossesIn TCP New-Reno, partial ACK is taken as an indication of another lost packet (which is immediately retransmitted). Sender comes out of fast recovery only after all outstanding packets (at the time of first loss) are ACKed

TCP SACK

TCP (Tahoe, Reno, and New-Reno) uses cumulative acknowledgements When there are multiple losses, TCP Reno and New-Reno can retransmit only one lost packet per round-trip time What about TCP-Tahoe? SACK enables receiver to give more information to sender about received packets allowing sender to recover from multiple-packet losses faster

TCP SACK (Example)

Assume packets 5-25 are transmitted Let packets 5, 12, and 18 be lostReceiver sends back a CACK=5, and SACK=(6-11,13-17,19-25)Sender knows that packets 5, 12, and 18 are lost and retransmits them immediately

Other TCP flavors

TCP Vegas Uses round-trip time as an early-

congestion-feedback mechanism Reduces losses

TCP FACK Intelligently uses TCP SACK

information to optimize the fast recovery mechanism further

User Datagram Protocol (UDP)

Simpler cousin of TCP No reliability, sequencing, congestion control, flow control, or connection management! Serves solely as a labeling mechanism for demultiplexing at the receiver end Use predominantly by protocols that do no require the strict service guarantees offered by TCP (e.g. real-time multimedia protocols) Additional intelligence built at the application layer if needed

UDP Header

Src Port Dst Port

ChecksumLengthLength: length of header+ data (min = 8)

Recap

TCP Connection management Reliability Flow control Congestion control TCP flavors UDP