程序代写代做代考 dns Transport Layer

Transport Layer

All material copyright 1996-2012
J.F Kurose and K.W. Ross, All Rights Reserved

George Parisis
School of Engineering and Informatics

University of Sussex

Transport Layer 3-2

Transport Layer
objectives:
v  understand principles

behind transport layer
services:
§ multiplexing,

demultiplexing
§  reliable data transfer
§  flow control
§  congestion control

v  learn about Internet
transport layer protocols:
§ UDP: connectionless

transport
§ TCP: connection-oriented

reliable transport
§ TCP congestion control

Transport Layer 3-3

Outline
v  transport-layer services
v  multiplexing and demultiplexing
v  connectionless transport: UDP
v  principles of reliable data transfer
v  connection-oriented transport: TCP

§  segment structure
§  reliable data transfer
§  flow control
§  connection management

v  principles of congestion control
v  TCP congestion control

Transport Layer 3-4

Transport services and protocols
v  provide logical

communication between app
processes running on
different hosts

v  transport protocols run in
end systems
§  send side: breaks app

messages into segments,
passes to network layer

§  rcv side: reassembles
segments into messages,
passes to app layer

v  more than one transport
protocol available to apps
§  Internet: TCP and UDP

application
transport
network
data link
physical

application
transport
network
data link
physical

Transport Layer 3-5

Transport vs. network layer

v  network layer: logical communication between
hosts

v  transport layer: logical communication between
processes
§  relies on, enhances, network layer services

Transport Layer 3-6

Internet transport-layer protocols
v  reliable, in-order

delivery (TCP)
§  congestion control
§  flow control
§  connection setup

v  unreliable, unordered
delivery: UDP
§ no-frills extension of

“best-effort” IP
v  services not

available:
§ delay guarantees
§ bandwidth guarantees

application
transport
network
data link
physical

application
transport
network
data link
physical

network
data link
physical

network
data link
physical

network
data link
physical

network
data link
physical

network
data link
physical

network
data link
physical

network
data link
physical

Transport Layer 3-7

Outline
v  transport-layer services
v  multiplexing and demultiplexing
v  connectionless transport: UDP
v  principles of reliable data transfer
v  connection-oriented transport: TCP

§  segment structure
§  reliable data transfer
§  flow control
§  connection management

v  principles of congestion control
v  TCP congestion control

Transport Layer 3-8

Multiplexing/demultiplexing

process

socket

use header info to deliver
received segments to correct
socket

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

multiplexing at sender:

transport

application

physical

link

network

P2 P1

transport

application

physical

link

network

P4

transport

application

physical

link

network

P3

Transport Layer 3-9

How demultiplexing works

v  host receives IP datagrams
§  each datagram has source IP

address, destination IP address
§  each datagram carries one

transport-layer segment
§  each segment has source,

destination port number
v  host uses IP addresses &

port numbers to direct
segment to appropriate
socket

source port # dest port #
32 bits

application
data

(payload)

other header fields

TCP/UDP segment format

Transport Layer 3-10

Connectionless demultiplexing
v  recall: created socket has

host-local port #:
DatagramSocket mySocket1
= new DatagramSocket(12534);

v  when host receives
UDP segment:
§  checks destination port

# in segment
§ directs UDP segment to

socket with that port #

v  recall: when creating
datagram to send into
UDP socket, must
specify
§ destination IP address
§ destination port #
IP datagrams with
same dest. port #, but
different source IP
addresses and/or
source port numbers
will be directed to same
socket at dest

Transport Layer 3-11

Connectionless demux: example
DatagramSocket
serverSocket = new
DatagramSocket

(6428);

transport

application

physical

link

network

P3
transport

application

physical

link

network

P1

transport

application

physical

link

network

P4

DatagramSocket
mySocket1 = new
DatagramSocket
(5775);

DatagramSocket
mySocket2 = new
DatagramSocket
(9157);

source port: 9157
dest port: 6428

source port: 6428
dest port: 9157

source port: ?
dest port: ?

source port: ?
dest port: ?

Transport Layer 3-12

Connection-oriented demux
v  TCP socket identified

by 4-tuple:
§  source IP address
§  source port number
§ dest IP address
§ dest port number

v  demux: receiver uses
all four values to
direct segment to
appropriate socket

v  server host may
support many
simultaneous TCP
sockets:
§ each socket identified

by its own 4-tuple
v  servers have different

sockets for each
connecting client

Transport Layer 3-13

Connection-oriented demux: example

transport

application

physical

link

network

P3
transport

application

physical

link

P4

transport

application

physical

link

network

P2

source IP,port: A,9157
dest IP, port: B,80

source IP,port: B,80
dest IP,port: A,9157

host: IP
address

A

host: IP
address

C

network

P6 P5
P3

source IP,port: C,5775
dest IP,port: B,80

source IP,port: C,9157
dest IP,port: B,80

three segments, all destined to IP address: B,
dest port: 80 are demultiplexed to different sockets

server:
IP

address
B

Transport Layer 3-14

Connection-oriented demux: example

transport

application

physical

link

network

P3
transport

application

physical

link

transport

application

physical

link

network

P2

source IP,port: A,9157
dest IP, port: B,80

source IP,port: B,80
dest IP,port: A,9157

host: IP
address

A

host: IP
address

C

server:
IP

address
B

network

P3

source IP,port: C,5775
dest IP,port: B,80

source IP,port: C,9157
dest IP,port: B,80

P4

threaded server

Transport Layer 3-15

Outline
v  transport-layer services
v  multiplexing and demultiplexing
v  connectionless transport: UDP
v  principles of reliable data transfer
v  connection-oriented transport: TCP

§  segment structure
§  reliable data transfer
§  flow control
§  connection management

v  principles of congestion control
v  TCP congestion control

Transport Layer 3-16

UDP: User Datagram Protocol [RFC 768]

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

v  “best effort” service, UDP
segments may be:
§  lost
§  delivered out-of-order to app

v  connectionless:
§  no handshaking between

UDP sender, receiver
§  each UDP segment handled

independently of others

v  UDP use:
§  streaming multimedia apps

(loss tolerant, rate sensitive)
§  DNS
§  SNMP

v  reliable transfer over UDP:
§  add reliability at application

layer
§  application-specific error

recovery!

Transport Layer 3-17

UDP: segment header

source port # dest port #
32 bits

application
data

(payload)

UDP segment format

length checksum

length, in bytes of
UDP segment,

including header

v  no connection
establishment (which
can add delay)

v  simple: no connection
state at sender, receiver

v  small header size
v  no congestion control:

UDP can blast away as
fast as desired

why is there a UDP?

Transport Layer 3-18

UDP checksum

sender:
v  treat segment contents,

including header fields, as
sequence of 16-bit integers

v  checksum: addition (one’s
complement sum) of
segment contents

v  sender puts checksum
value into UDP checksum
field

receiver:
v  compute checksum of received

segment
v  check if computed checksum

equals checksum field value:
§  NO – error detected
§  YES – no error detected.
§  But maybe errors

nonetheless?

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

Transport Layer 3-19

Internet checksum: example

example: add two 16-bit integers
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 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 0
1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sum
checksum

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

Transport Layer 3-20

Summary
v  principles behind transport layer services:

§ multiplexing, demultiplexing
§ reliable data transfer

v  UDP