CS计算机代考程序代写 dns PowerPoint Presentation

PowerPoint Presentation

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-*
Transport Layer
objectives:
understand principles behind transport layer services:

multiplexing, demultiplexing
reliable data transfer
flow control
congestion control

learn about Internet transport layer protocols:

UDP: connectionless transport
TCP: connection-oriented reliable transport
TCP congestion control

Transport Layer

Transport Layer
3-*
Outline
transport-layer services
multiplexing and demultiplexing
connectionless transport: UDP
principles of reliable data transfer
connection-oriented transport: TCP

segment structure
reliable data transfer
flow control
connection management
principles of congestion control
TCP congestion control

Transport Layer

Transport Layer
3-*
Transport services and protocols
provide logical communication between app processes running on different hosts
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
more than one transport protocol available to apps

Internet: TCP and UDP

application
transport
network
data link
physical

logical end-end transport

application
transport
network
data link
physical

Transport Layer

Transport Layer
3-*
Transport vs. network layer
network layer: logical communication between hosts

transport layer: logical communication between processes

relies on, enhances, network layer services

Transport Layer

Transport Layer
3-*
Internet transport-layer protocols
reliable, in-order delivery (TCP)

congestion control
flow control
connection setup
unreliable, unordered delivery: UDP

no-frills extension of “best-effort” IP
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

logical end-end transport

Transport Layer

Transport Layer
3-*
Outline
transport-layer services
multiplexing and demultiplexing
connectionless transport: UDP
principles of reliable data transfer
connection-oriented transport: TCP

segment structure
reliable data transfer
flow control
connection management
principles of congestion control
TCP congestion control

Transport Layer

Transport Layer
3-*
Multiplexing/demultiplexing
process
socket

transport
application
physical
link
network
P2
P1

transport
application
physical
link
network
P4

transport
application
physical
link
network
P3

demultiplexing at receiver:
use header info to deliver
received segments to correct
socket

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

Transport Layer

Transport Layer
3-*

How demultiplexing works
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
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

Transport Layer
3-*
Connectionless demultiplexing
recall: created socket has host-local port #:

DatagramSocket mySocket1 = new DatagramSocket(12534);
when host receives UDP segment:

checks destination port # in segment
directs UDP segment to socket with that port #

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

Transport Layer
3-*
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

Transport Layer
3-*
Connection-oriented demux
TCP socket identified by 4-tuple:

source IP address
source port number
dest IP address
dest port number
demux: receiver uses all four values to direct segment to appropriate socket

server host may support many simultaneous TCP sockets:

each socket identified by its own 4-tuple
servers have different sockets for each connecting client

Transport Layer

Transport Layer
3-*
Connection-oriented demux: example

transport
application
physical
link
network
P3

transport
application
physical
link
P4

transport
application
physical
link
network
P2
host: IP address A
host: IP address C
network
P6
P5
P3
three segments, all destined to IP address: B,
dest port: 80 are demultiplexed to different sockets
server: IP address B

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

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

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

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

Transport Layer

Transport Layer
3-*
Connection-oriented demux: example

transport
application
physical
link
network
P3

transport
application
physical
link

transport
application
physical
link
network
P2
host: IP address A
host: IP address C
server: IP address B
network
P3
P4
threaded server

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

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

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

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

Transport Layer

Transport Layer
3-*
Outline
transport-layer services
multiplexing and demultiplexing
connectionless transport: UDP
principles of reliable data transfer
connection-oriented transport: TCP

segment structure
reliable data transfer
flow control
connection management
principles of congestion control
TCP congestion control

Transport Layer

Transport Layer
3-*
UDP: User Datagram Protocol [RFC 768]
“no frills,” “bare bones” Internet transport protocol
“best effort” service, UDP segments may be:

lost
delivered out-of-order to app
connectionless:

no handshaking between UDP sender, receiver
each UDP segment handled independently of others
UDP use:

streaming multimedia apps (loss tolerant, rate sensitive)
DNS
SNMP
reliable transfer over UDP:

add reliability at application layer
application-specific error recovery!

Transport Layer

Transport Layer
3-*
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
no connection establishment (which can add delay)
simple: no connection state at sender, receiver
small header size
no congestion control: UDP can blast away as fast as desired

why is there a UDP?

Transport Layer

Transport Layer
3-*
UDP checksum
sender:
treat segment contents, including header fields, as sequence of 16-bit integers
checksum: addition (one’s complement sum) of segment contents
sender puts checksum value into UDP checksum field

receiver:
compute checksum of received segment
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

Transport Layer
3-*
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
*
Kurose and Ross forgot to say anything about wrapping the carry and adding it to low order bit

Transport Layer
3-*
Summary
principles behind transport layer services:

multiplexing, demultiplexing
reliable data transfer
UDP

Transport Layer