Bài giảng Mạng máy tính - Chapter 3: Transport Layer (Part I) - Hồ Phương Đắc
Chapter 3: Transport Layer
Chapter goals:
Chapter Overview:
understand principles
behind transport layer
services:
transport layer services
multiplexing/demultiplexing
connectionless transport: UDP
multiplexing/demultiplex
principles of reliable data
ing
transfer
reliable data transfer
flow control
congestion control
connection-oriented transport:
TCP
reliable transfer
flow control
connection management
instantiation and
implementation in the
Internet
principles of congestion control
TCP congestion control
3: Transport Layer
3a-1
Transport services and protocols
provide logical communication
application
transport
between app’ processes
network
data link
network
data link
physical
running on different hosts
physical
twork
link
phal
transport protocols run in
end systems
network
data link
physical
network
data link
physical
transport vs network layer
services:
network
ta link
sical
network layer: data transfer
between end systems
application
transport
network
data link
physical
transport layer: data
transfer between processes
relies on, enhances, network
layer services
3: Transport Layer
3a-2
Transport-layer protocols
Internet transport services:
application
transport
network
data link
physical
reliable, in-order unicast
network
data link
physical
delivery (TCP)
twork
link
phal
congestion
network
data link
physical
flow control
connection setup
network
data link
physical
unreliable (“best-effort”),
unordered unicast or
network
ta link
sical
multicast delivery: UDP
application
transport
network
data link
physical
services not available:
real-time
bandwidth guarantees
reliable multicast
3: Transport Layer
3a-3
Multiplexing/demultiplexing
Recall: segment - unit of data
Demultiplexing: delivering
exchanged between
received segments to
transport layer entities
correct app layer processes
aka TPDU: transport
protocol data unit
receiver
P3
P4
application-layer
data
M
M
application
transport
network
segment
header
P1
M
P2
M
application
transport
network
application
transport
network
segment
H
M
t
segment
H
n
3: Transport Layer
3a-4
Multiplexing/demultiplexing
Multiplexing:
gathering data from multiple
32 bits
app processes, enveloping
data with header (later used
for demultiplexing)
source port # dest port #
other header fields
multiplexing/demultiplexing:
based on sender, receiver
port numbers, IP addresses
application
data
source, dest port #s in
each segment
(message)
recall: well-known port
numbers for specific
applications
TCP/UDP segment format
3: Transport Layer
3a-5
Multiplexing/demultiplexing: examples
source port: x
dest. port: 23
Web client
server B
host A
host C
source port:23
dest. port: x
Source IP: C
Source IP: C
Dest IP: B
source port: x
dest. port: 80
Dest IP: B
source port: y
dest. port: 80
port use: simple telnet app
Source IP: A
Dest IP: B
source port: x
dest. port: 80
Web
Web client
host A
server B
port use: Web server
3: Transport Layer
3a-6
UDP: User Datagram Protocol [RFC 768]
“no frills,” “bare bones”
Internet transport
Why is there a UDP?
protocol
no connection
“best effort” service, UDP
establishment (which can
segments may be:
add delay)
lost
simple: no connection state
delivered out of order
at sender, receiver
to app
small segment header
connectionless:
no congestion control: UDP
can blast away as fast as
desired
no handshaking between
UDP sender, receiver
each UDP segment
handled independently
of others
3: Transport Layer
3a-7
UDP: more
often used for streaming
32 bits
multimedia apps
source port # dest port #
loss tolerant
rate sensitive
Length, in
bytes of UDP
segment,
including
header
checksum
length
other UDP uses
(why?):
DNS
SNMP
Application
data
reliable transfer over UDP:
(message)
add reliability at
application layer
application-specific
UDP segment format
error recover!
3: Transport Layer
3a-8
UDP checksum
Goal: detect “errors” (e.g., flipped bits) in transmitted
segment
Receiver:
Sender:
treat segment contents
as sequence of 16-bit
integers
checksum: addition (1’s
complement sum) of
segment contents
sender puts checksum
value into UDP checksum
field
compute checksum of
received segment
check if computed checksum
equals checksum field value:
NO - error detected
YES - no error detected.
But maybe errors
nonethless? More later ….
3: Transport Layer
3a-9
Principles of Reliable data transfer
important in app., transport, link layers
top-10 list of important networking topics!
characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
3: Transport Layer
3a-10
Reliable data transfer: getting started
rdt_send(): called from above,
(e.g., by app.). Passed data to
deliver to receiver upper layer
deliver_data(): called by
rdt to deliver data to upper
send
side
receive
side
udt_send(): called by rdt,
to transfer packet over
unreliable channel to receiver
rdt_rcv(): called when packet
arrives on rcv-side of channel
3: Transport Layer
3a-11
Reliable data transfer: getting started
We’ll:
incrementally develop sender, receiver sides of
reliable data transfer protocol (rdt)
consider only unidirectional data transfer
but control info will flow on both directions!
use finite state machines (FSM) to specify
sender, receiver
event causing state transition
actions taken on state transition
state: when in this
state
state
“state” next state
uniquely determined
by next event
event
actions
1
2
3: Transport Layer
3a-12
Rdt1.0: reliable transfer over a reliable channel
underlying channel perfectly reliable
no bit erros
no loss of packets
separate FSMs for sender, receiver:
sender sends data into underlying channel
receiver read data from underlying channel
3: Transport Layer
3a-13
Rdt2.0: channel with bit errors
underlying channel may flip bits in packet
recall: UDP checksum to detect bit errors
the question: how to recover from errors:
acknowledgements (ACKs): receiver explicitly tells sender
that pkt received OK
negative acknowledgements (NAKs): receiver explicitly
tells sender that pkt had errors
sender retransmits pkt on receipt of NAK
human scenarios using ACKs, NAKs?
new mechanisms in rdt2.0 (beyond rdt1.0):
error detection
receiver feedback: control msgs (ACK,NAK) rcvr->sender
3: Transport Layer
3a-14
rdt2.0: FSM specification
sender FSM
receiver FSM
3: Transport Layer
3a-15
rdt2.0: in action (no errors)
sender FSM
receiver FSM
3: Transport Layer
3a-16
rdt2.0: in action (error scenario)
sender FSM
receiver FSM
3: Transport Layer
3a-17
rdt2.0 has a fatal flaw!
What happens if
Handling duplicates:
ACK/NAK corrupted?
sender adds sequence
number to each pkt
sender doesn’t know what
happened at receiver!
sender retransmits current
pkt if ACK/NAK garbled
san’t just retransmit:
possible duplicate
receiver discards (doesn’t
deliver up) duplicate pkt
What to do?
sender ACKs/NAKs
stop and wait
receiver’s ACK/NAK? What
if sender ACK/NAK lost?
Sender sends one packet,
then waits for receiver
response
retransmit, but this might
cause retransmission of
correctly received pkt!
3: Transport Layer
3a-18
rdt2.1: sender, handles garbled ACK/NAKs
3: Transport Layer
3a-19
rdt2.1: receiver, handles garbled ACK/NAKs
3: Transport Layer
3a-20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Chapter 3: Transport Layer (Part I) - Hồ Phương Đắc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_mang_may_tinh_chapter_3_transport_layer_part_i_ho.ppt

