19
1 Computer Networks EE357 Transport Layer-Part 1 Haiming Jin The slides are adapted from those provided by Prof. Romit Roy Choudhury.

ComputerNetworks - jhc.sjtu.edu.cn

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ComputerNetworks - jhc.sjtu.edu.cn

1

Computer NetworksEE357

Transport Layer-Part 1

Haiming Jin

The slides are adapted from those provided by Prof. Romit Roy Choudhury.

Page 2: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-2

Chapter 3: Transport LayerOur goals:r understand principles

behind transport layer services:m multiplexing/demultiplexingm reliable data transferm flow controlm congestion control

r learn about transport layer protocols in the Internet:m UDP: connectionless transportm TCP: connection-oriented

transportm TCP congestion control

Page 3: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-3

Chapter 3 outline

r 3.1 Transport-layer services

r 3.2 Multiplexing and demultiplexing

r 3.3 Connectionless transport: UDP

r 3.4 Principles of reliable data transfer

r 3.5 Connection-oriented transport: TCPm segment structurem reliable data transferm flow controlm connection management

r 3.6 Principles of congestion control

r 3.7 TCP congestion control

Page 4: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-4

Transport services and protocolsr provide logical communication

between app processes running on different hosts

r transport protocols run in end systems m sender: breaks app messages into

segments, passes to network layer

m receiver: reassembles segments into messages, passes to app layer

r more than one transport protocol available to appsm Internet: TCP and UDP

applicationtransportnetworkdata linkphysical

logical end-end transportapplicationtransportnetworkdata linkphysical

Page 5: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-5

Transport vs. network layer

r network layer: logical communication between hosts

r transport layer: logical communication between processes m relies on, enhances, network

layer services

Household analogy:12 kids sending letters to 12 kidsr processes = kidsr app messages = letters in

envelopesr hosts = housesr transport protocol = Ann to Billr network-layer protocol = postal

service

Page 6: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-6

Internet transport-layer protocols

r reliable, in-order delivery (TCP)m congestion control m flow controlm connection setup

r unreliable, unordered delivery: UDPm no-frills extension of “best-

effort” IP

r services not available: m delay guaranteesm bandwidth guarantees

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical network

data linkphysical

logical end-end transport

Page 7: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-7

Chapter 3 outline

r 3.1 Transport-layer services

r 3.2 Multiplexing and demultiplexing

r 3.3 Connectionless transport: UDP

r 3.4 Principles of reliable data transfer

r 3.5 Connection-oriented transport: TCPm segment structurem reliable data transferm flow controlm connection management

r 3.6 Principles of congestion control

r 3.7 TCP congestion control

Page 8: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-8

Multiplexing/demultiplexing

application

transport

network

link

physical

P1 application

transport

network

link

physical

application

transport

network

link

physical

P2P3 P4P1

host 1 host 2 host 3

= process= socket

delivering received segmentsto correct socket

Demultiplexing at rcv host:gathering data from multiplesockets, enveloping data with header (later used for demultiplexing)

Multiplexing at send host:

Page 9: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-9

How demultiplexing worksr host receives IP datagrams

m each datagram has source IP address, destination IP address

m each datagram carries 1 transport-layer segment

m each segment has source, destination port number

r host uses IP addresses & port numbers to direct segment to appropriate socket

source port # dest port #

32 bits

applicationdata

(message)

other header fields

TCP/UDP segment format

Analogous to airport shuttles

Shuttles MUX passengers and take themto downtown -- DeMUX at different locations

Page 10: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-10

Connectionless demultiplexing

r Create sockets with port numbers:

DatagramSocket mySocket1 = new DatagramSocket(99111);

DatagramSocket mySocket2 = new DatagramSocket(99222);

r UDP socket identified by two-tuple:

(dest IP address, dest port number)

r When host receives UDP segment:m checks destination port number

in segmentm directs UDP segment to socket

with that port number

r IP datagrams with different source IP addresses and/or source port numbers directed to same socket

Page 11: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-11

Connectionless demux (cont)DatagramSocket serverSocket = new DatagramSocket(6428);

ClientIP:B

P2

clientIP: A

P1P1P3

serverIP: C

SP: 6428DP: 9157

SP: 9157DP: 6428

SP: 6428DP: 5775

SP: 5775DP: 6428

SP provides “return address”

Page 12: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-12

Connection-oriented demux

r TCP socket identified by 4-tuple: m source IP addressm source port numberm dest IP addressm dest port number

r recv host uses all four values to direct segment to appropriate socket

r Server host may support many simultaneous TCP sockets:m each socket identified by its

own 4-tuple

r Web servers have different sockets for each connecting clientm non-persistent HTTP will have

different socket for each request

Page 13: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-13

Connection-oriented demux (cont)

ClientIP:B

P1

clientIP: A

P1P2P4

serverIP: C

SP: 9157DP: 80

SP: 9157DP: 80

P5 P6 P3

D-IP:CS-IP: AD-IP:C

S-IP: B

SP: 5775DP: 80

D-IP:CS-IP: B

= process= socket

Page 14: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-14

Connection-oriented demux: Threaded Web Server

ClientIP:B

P1

clientIP: A

P1P2

serverIP: C

SP: 9157DP: 80

SP: 9157DP: 80

P4 P3

D-IP:CS-IP: AD-IP:C

S-IP: B

SP: 5775DP: 80

D-IP:CS-IP: B

= process= socket

Page 15: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-15

Chapter 3 outline

r 3.1 Transport-layer services

r 3.2 Multiplexing and demultiplexing

r 3.3 Connectionless transport: UDP

r 3.4 Principles of reliable data transfer

r 3.5 Connection-oriented transport: TCPm segment structurem reliable data transferm flow controlm connection management

r 3.6 Principles of congestion control

r 3.7 TCP congestion control

Page 16: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-16

UDP: User Datagram Protocol [RFC 768]

r “no frills,” “bare bones” Internet transport protocol

r “best effort” service, UDP segments may be:m lostm delivered out of order to

appr connectionless:

m no handshaking between UDP sender, receiver

m each UDP segment handled independently of others

Why is there a UDP?r no connection establishment

(which can add delay)r simple: no connection state at

sender, receiverr small segment headerr no congestion control: UDP can

blast away as fast as desired

Page 17: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-17

UDP: morer often used for streaming

multimedia appsm loss tolerantm rate sensitive

r other UDP usesm DNSm SNMP

source port # dest port #

32 bits

Applicationdata

(message)

UDP segment format

length checksumLength, in

bytes of UDPsegment,including

header

Page 18: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-18

UDP checksum

Sender:r treat segment contents as

sequence of 16-bit integersr checksum: addition (1’s

complement sum) of segment contents

r sender puts checksum value into UDP checksum field

Receiver:r compute checksum of received

segmentr check if computed checksum equals

checksum field value:m NO - error detectedm YES - no error detected. But

maybe errors nonetheless? More later ….

Goal: detect “errors” (e.g., flipped bits) in transmitted segment

Page 19: ComputerNetworks - jhc.sjtu.edu.cn

Transport Layer 3-19

UDP checksum