Top Banner
Transport Layer peterl
16

Transport Layer

Feb 24, 2016

Download

Documents

avian

Transport Layer. peterl. application transport network data link physical. application transport network data link physical. logical end-end transport. Transport level. handle data from multiple sockets, add transport header (later used for demultiplexing). - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Transport  Layer

Transport Layer

peterl

Page 2: Transport  Layer

Transport level

applicationtransportnetworkdata linkphysical

logical end-end transport

applicationtransportnetworkdata linkphysical

Page 3: Transport  Layer

Transport Layer 3-3

Multiplexing/demultiplexing

process

socket

use header info to deliverreceived segments to correct socket

demultiplexing at receiver:handle data from multiplesockets, add transport header (later used for demultiplexing)

multiplexing at sender:

transport

application

physicallinknetwork

P2P1

transport

application

physicallinknetwork

P4transport

application

physicallinknetwork

P3

Page 4: Transport  Layer
Page 5: Transport  Layer

UDP: segment header

source port # dest port #

32 bits

applicationdata (payload)

UDP segment format

length checksum

Page 6: Transport  Layer

Transport Layer 3-6

Internet checksum: example

example: add two 16-bit integers1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

Note: when adding numbers, a carryout from the most significant bit needs to be added to the result

Page 7: Transport  Layer

TCP segment structure

source port # dest port #

32 bits

applicationdata (variable length)

sequence number

acknowledgement numberreceive window

Urg data pointerchecksum

FSRPAUheadlen

notused

options (variable length)

Page 8: Transport  Layer

Transport Layer 3-8

TCP 3-way handshake

SYNbit=1, Seq=x

choose init seq num, xsend TCP SYN msg

ESTAB

SYNbit=1, Seq=yACKbit=1; ACKnum=x+1

choose init seq num, ysend TCP SYNACKmsg, acking SYN

ACKbit=1, ACKnum=y+1

received SYNACK(x) indicates server is live;send ACK for SYNACK;

this segment may contain client-to-server data received ACK(y)

indicates client is live

SYNSENT

ESTAB

SYN RCVD

client state

LISTENserver state

LISTEN

Page 9: Transport  Layer

Transport Layer 3-9

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt3.0 in action

Page 10: Transport  Layer

Transport Layer 3-10

rdt3.0 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout/ delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0send ack0

(detect duplicate)

Page 11: Transport  Layer

Usertypes

‘C’

host ACKsreceipt

of echoed‘C’

host ACKsreceipt of‘C’, echoesback ‘C’

simple telnet scenario

Host BHost A

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

TCP seq. numbers, ACKs

Page 12: Transport  Layer

Usertypes

‘C’

host ACKsreceipt

of echoed‘C’

host ACKsreceipt of‘C’, echoesback ‘C’

simple telnet scenario

Host BHost A

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

TCP seq. numbers, ACKs

Page 13: Transport  Layer

Go Back N

Page 14: Transport  Layer

Selective Repeat

Page 15: Transport  Layer

TCP segment structure

source port # dest port #

applicationdata (variable length)

sequence number

acknowledgement numberreceive window

Urg data pointerchecksum

FSRPAUheadlen

notused

options (variable length)

Page 16: Transport  Layer