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 đủ
ppt 37 trang myanh 22220 Free
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:

  • pptbai_giang_mang_may_tinh_chapter_3_transport_layer_part_i_ho.ppt