Lecture - 13
Download
Report
Transcript Lecture - 13
Overview
This Lecture
» Internet Protocols (4)
» Source: chapter 15
This Lecture
» TCP/UDP (1)
» Source: chapter 17
Next Lecture
» TCP/UDP (2)
» Source: chapter 17
TELE202 Lecture 13 TCP/UDP (1)
1
Lecturer Dr Z. Huang
Transport layer
The transport layer is at the heart of
the whole protocol hierarchy
» It is the first layer which does not involve
intermediate nodes. It just involves end-toend communication.
» Its task is to provide a reliable, cost-effective
data transport from the source machine to
the destination machine, independent of the
physical networks in use
» There are two types of transport services:
connection-oriented and connectionless,
similar to the corresponding network services
TELE202 Lecture 13 TCP/UDP (1)
2
Lecturer Dr Z. Huang
Transport layer
Functions of transport layer
» Connection management
– set-up and release connections
» Flow and error control
» Error detection
Why error detection is needed in
transport layer, given the data link
layer has done it hop by hop?
» Intermediate nodes/routers may cause errors
while processing packets
The software within the transport
layer that does the work is called the
transport entity
TELE202 Lecture 13 TCP/UDP (1)
3
Lecturer Dr Z. Huang
Transport layer
Why are there two distinct layers,
i.e., network and transport layers?
» Network layer is part of the communication
subnet and is run by the carriers
» The network layer may offer connectionoriented service which may be unreliable
» The users have no control over the subnet, so
the only possibility to improve the quality of
service is to put another layer on top of the
network layer
» The transport service interface for the higher
layer can be designed to be independent of
the network service interface, which may
vary considerably from network to network
» The primary function of the transport layer
can be regarded as enhancing the quality of
service provided by the network layer
Transport Protocol Data Unit
(TPDU) is used to name the messages
sent between transport entities
TELE202 Lecture 13 TCP/UDP (1)
4
Lecturer Dr Z. Huang
Transport layer
Transport layer uses primitives,
provided by network layer, to send
and receive data
» Transport entities use NL_send(TPDU,
NL_address) and NL_recv(TPDU) to
send/receive TPDU
» TPDU is put in the payload of network packet
which is put in the payload of data link frame
» TPDU in TCP is called TCP segment, packet
in IP is called IP packet
TELE202 Lecture 13 TCP/UDP (1)
5
Lecturer Dr Z. Huang
QoS
Quality of Service (QoS) should be
supported in the transport layer
QoS can be charaterized by a
number of parameters, such as the
parameters in flow specification
» Throughput, transit delay, error ratio
The transport service allows the user
to specify preferred and minimum
unacceptable values for these
parameters at the time a connection
is set up
Some of the parameters also apply to
connectionless transport
It is up to the transport layer to
examine these parameters, and
depending on the kind of network
services available to it, determine
whether it can provide the required
service
TELE202 Lecture 13 TCP/UDP (1)
6
Lecturer Dr Z. Huang
QoS negotiation
The transport user makes a proposal
on some QoS parameters
The transport layer may immediately
realize that some of them are
unacceptable and report failure
(together with the reasons) to the
users
If the transport layer can not achieve
the desired goal (e.g. 600 Mbps
throughput), but it can achieve a
lower but still acceptable one
(150Mbps), it then sends the lower
rate and the minimum acceptable
rate to the destination
The destination machine may change
the QoS to an acceptable level or
reject the connection attempt
Finally the originating transport user
is informed of the result
TELE202 Lecture 13 TCP/UDP (1)
7
Lecturer Dr Z. Huang
Transport service
Two main differences between the
transport service and the network
service
» The network service is intended to model the
service offered by real (unreliable) networks,
while the (connection-oriented) transport
service is reliable
» The network service is used only by the
transport entities, while the transport service
is used by application programs directly and
must be convenient and easy to use
The transport service provides
(interface) primitives to allow
application programs to access the
transport service
»
»
»
»
»
LISTEN: wait for a connection
CONNECT: initiate a connection
SEND: send data
RECEIVE: get data or wait for data
DISCONNECT: initiate a release
TELE202 Lecture 13 TCP/UDP (1)
8
Lecturer Dr Z. Huang
Example
Example
» consider an application with a server and a
number of remote clients
TELE202 Lecture 13 TCP/UDP (1)
9
Lecturer Dr Z. Huang
Transport layer operation
Connection establishment
» The server executes a LISTEN primitive,
which blocks the server until a client turns up
» A client executes a CONNECT primitive,
which blocks the client , and send a TPDU
(encapsulating the information of the
connection request) to the server via the
underlying network layer
» When the TPDU arrives at the server side,
the transport entity checks to see that the
server is blocked on a LISTEN (i.e. interested
in handling a connection request).
» It then unblocks the server and sends a
CONNECTION ACCEPTED TPDU back to
the client
» When this TPDU arrives at the client side, the
client is unblocked and the connection is
established
Addressing
» When an application process wishes to set up
a connection to a remote application process,
it must specify which one to connect to
» The method normally used is to define
transport addresses to which processes can
listen for connection requests
» In Internet, transport addresses are (IP
address, local port) pairs
TELE202 Lecture 13 TCP/UDP (1)
10
Lecturer Dr Z. Huang
Transport layer operation
Data exchange
» Either party can do a (blocking) RECEIVE to
wait for the other party to do a SEND
» When the DATA TPDU arrives, the receiver
is unblocked
» As long as both sides can keep track of whose
turn it is to send, this scheme works fine
» Each TPDU sent will be (eventually)
acknowledged. These acknowledgements,
timers, and re-transmissions are managed by
the transport entities using the network layer
protocol and are not visible to the transport
users
Connection release
» Asymmetric disconnection: either transport
user can issue a DISCONNECT primitive,
which results in a DISCONNECT TPDU
being sent to the remote transport entiry.
Upon arrival, the connection is released
» Symmetric disconnection: when one side does
a DISCONNECT, that means it has no more
data to send, but is still willing to accept data
from its partner. A connection is released
when both sides have done a DISCONNECT
TELE202 Lecture 13 TCP/UDP (1)
11
Lecturer Dr Z. Huang
Problems in connection setup
Simple connection (two-way
handshake)
» Entity 1 send a TPDU to entity 2, saying
“good morning, I would like to talk with a
process with port number pn”
» Entity 2 receives the TPDU and ask the
process if it accept the request
» If the process agrees, entity 2 sends a TPDU
saying “ok, you can talk now”, and
connection is established
Problem with establishing a
connection occurs when the subnet
can lose, store, and duplicate packets
Consider the following scenario
» A user establishes a connection with a bank
» Sends messages telling the bank to transfer a
large amount of money to the account of a not
entirely trustworthy person
» And then releases the connection
What happens if all packets in the
above process are duplicated and
stored in the subnet?
TELE202 Lecture 13 TCP/UDP (1)
12
Lecturer Dr Z. Huang
Solution for connection problem
Unique sequence number
» To avoid the problem, each TPDU uses a
sequence number and is acknowledged
» The sequence number is determined using a
counter and ensured to be different from the
sequence number or acknowledged number
of existing TPDU wandering in the network
Three-way handshake protocol
» Transport entity A transmits a connection
request (in a TPDU) which is accompanied by
different sequence number x
» When entity B receives the request, it sends A
a connection acceptance TPDU
acknowledging the sequence number x and
initiates a new sequence number y
» Entity A acknowledges the acceptance with
the sequence number y
TELE202 Lecture 13 TCP/UDP (1)
13
Lecturer Dr Z. Huang
Examples
How three-way handshaking can
prevent false connection requests
TELE202 Lecture 13 TCP/UDP (1)
14
Lecturer Dr Z. Huang
Disconnect
Asymmetric release is abrupt and
may result in data loss
Symmetric release
» One way to avoid data loss is to use
symmetric release, in which each direction is
released independently of the other
» A host can continue to receive data even after
it has sent a DISCONNECT TPDU
The symmetric release acts as below
» A says:”I am done. Are you done too?”
» If B responds:”I am done too. Bye.”
» Then the connection can be safely released
This way does not always work
TELE202 Lecture 13 TCP/UDP (1)
15
Lecturer Dr Z. Huang
Disconnect
The two-army problem
» A white army is encamped in a valley
» On both of the surrounding hillsides are blue
armies
» The white army is larger than either of the
blue armies alone, but together they are
larger than the white army
» If either blue army attacks by itself, it will be
defeated, but if the two blue armies attack
simultaneously, they will be victorious
» The communication medium between the two
blue armies is to send messengers on foot
down into the valley, where they might be
captured and the message lost
» The question is, does a protocol exist that
allows the blue armies to win absolutely?
– The answer is that NO.
TELE202 Lecture 13 TCP/UDP (1)
16
Lecturer Dr Z. Huang
Disconnect
The same answer applies to the
absolutely safe disconnection
» Just substitute “disconnect” for “attack”. If
neither side is prepared to disconnect until it
is convinced that the other side is prepared to
disconnect too, the disconnection will never
happen
In practice, one is usually prepared
to take more risks when releasing
connections than attacking white
armies, so the situation is not entirely
hopeless
TELE202 Lecture 13 TCP/UDP (1)
17
Lecturer Dr Z. Huang
Disconnect
Three-way handshake combined with
a timer
» Timer is used: if there is no TPDU from the
other party for some time, disconnect anyway
» The protocol can fail if the initial DR and n
retransmissions are all lost: the sender will
give up and delete the connection, while the
other side knows nothing about the attempts
to disconnect and is still fully active
» This situation is called half-open connection
TELE202 Lecture 13 TCP/UDP (1)
18
Lecturer Dr Z. Huang
Summary
Concepts
»
»
»
»
»
»
Transport layer
Transport entity
Transport address
TPDU
QoS
Two-army problem
Differences between transport layer
and network layer
Connection establishment and
release
» three-way handshake protocol for connection
establishment
» Three-way handshake combined with timer
for connection release
TELE202 Lecture 13 TCP/UDP (1)
19
Lecturer Dr Z. Huang