L p Transportớ 1
Ch ng 3ươ
L p Transportớ
Computer Networking:
A Top Down Approach
Featuring the Internet
,
3
rd
edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.
All material copyright 1996-2006
J.F Kurose and K.W. Ross, All Rights Reserved
Slide này được biên dịch sang tiếng Việt theo
sự cho phép của các tác giả
L p Transportớ 2
Ch ng 3: L p Transportươ ớ
Mục tiêu:
❒
hiểu các nguyên
tắc đằng sau các
dịch vụ lớp
transport:
❍
multiplexing/demultipl
exing
❍
truy n d li u tin c yề ữ ệ ậ
❍
đi u khi n lu ngề ể ồ
❍
đi u khi n t c ngh nề ể ắ ẽ
❒
nghiên cứu về các
giao thức lớp
Transport trên
Internet:
❍
UDP: v n chuy n không k t ậ ể ế
n i (connectionless)ố
❍
TCP: v n chuy n h ng k t ậ ể ướ ế
n i (connection-oriented)ố
❍
đi u khi n t c ngh nề ể ắ ẽ TCP
Transport Layer 3-3
Ch ng 3: N i dung trình bàyươ ộ
❒
3.1 Các dịch vụ
lớp Transport
❒
3.2 Multiplexing
và demultiplexing
❒
3.3 Vận chuyển
không kết nối:
UDP
❒
3.4 Các nguyên lý c a ủ
vi c truy n d li u tin ệ ề ữ ệ
c yậ
❒
3.5 Vận chuyển
hướng kết nối: TCP
❍
c u trúc phân đo nấ ạ
❍
truy n d li u tin c yề ữ ệ ậ
❍
đi u khi n lu ngề ể ồ
❍
qu n lý k t n iả ế ố
❒
3.6 Các nguyên lý c a ủ
đi u khi n ề ể t c ngh nắ ẽ
❒
3.7 Điều khiển tắc
nghẽn TCP
3.1 Các d ch v l p Transportị ụ ớ
L p Transportớ 4
L p Transportớ 5
Các d ch v và giao th c ị ụ ứ
Transport
❒
cung cấp truyền thông
logic chạy trên các host
khác nhau
❒
các giao thức transport
chạy trên các hệ thống
đầu cuối
❍
phía g i: c t các thông đi p ử ắ ệ
ng d ng thành các ứ ụ đo nạ ,
chuy n cho l p networkể ớ
❍
phía nh n: tái k t h p các ậ ế ợ
đo n thành các thông đi p, ạ ệ
chuy n cho l p applicationể ớ
❒
có nhiều hơn 1 giao thức
transport dành cho các
ứng dụng
❍
Internet: TCP và UDP
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
l
o
g
i
c
a
l
e
n
d
-
e
n
d
t
r
a
n
s
p
o
r
t
L p Transportớ 6
L p Transport v i l p networkớ ớ ớ
❒
lớp network:
truyền thông
logic giữa các
host
❒
lớp transport:
truyền thông
logic giữa các
tiến trình
❍
d a vào và làm n i b t ự ổ ậ
các d ch v l p ị ụ ớ network
Tình huống tự nhiên
tương tự:
12 đứa trẻ gửi thư đến
12 đứa trẻ khác
❒
các tiến trình = các
đứa trẻ
❒
các thông điệp = thư
trong bao thư
❒
các host = các gia
đình
❒
giao thức transport =
Ann và Bill
❒
giao thức lớp network
= dịch vụ bưu điện
L p Transportớ 7
Các giao th c l p transport trên ứ ớ
Internet
❒
tin cậy, truyền
theo thứ tự (TCP)
❍
đi u khi n t c ngh nề ể ắ ẽ
❍
đi u khi n lu ngề ể ồ
❍
thi t l p k t n iế ậ ế ố
❒
không tin cậy,
truyền không theo
thứ tự: UDP
❍
m r ng c a giao th c IPở ộ ủ ứ
❒
không có các dịch
vụ:
❍
b o đ m trả ả ễ
❍
b o đ m bandwidthả ả
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
l
o
g
i
c
a
l
e
n
d
-
e
n
d
t
r
a
n
s
p
o
r
t
3.2 Multiplexing và
demultiplexing
L p Transportớ 8
L p Transportớ 9
Multiplexing/demultiplexing
application
transport
network
link
physical
P1
application
transport
network
link
physical
application
transport
network
link
physical
P2
P3
P4
P1
host 1
host 2
host 3
= ti n trình ế= socket
v n chuy n các đo n đã nh n ậ ể ạ ậ
đ c đ n đúng socketượ ế
Demultiplexing t i host nh n:ạ ậ
thu nh t d li u t nhi u ặ ữ ệ ừ ề
socket, đóng gói d li u v iữ ệ ớ
header (s dùng sau đó choẽ
demultiplexing)
Multiplexing t i host g i:ạ ử
L p Transportớ 10
Demultiplexing làm vi c nh th ệ ư ế
nào
❒
host nhận các IP
datagrams
❍
m i datagram có đ a ch IP ỗ ị ỉ
ngu n và IP đíchồ
❍
m i datagram mang 1 đo n ỗ ạ
c a l p transportủ ớ
❍
m i đo n có s port ngu n ỗ ạ ố ồ
và đích
❒
host dùng địa chỉ IP &
số port để điều hướng
đoạn đến socket thích
hợp
port # ngu nồ port # đích
32 bits
d li u ng d ngữ ệ ứ ụ
(thông đi p)ệ
các header fields khác
d ng th c đo n TCP/UDPạ ứ ạ
L p Transportớ 11
Demultiplexing không k t n iế ố
❒
Tạo các sockets với
các số port:
DatagramSocket mySocket1 = new
DatagramSocket(12534);
DatagramSocket mySocket2 = new
DatagramSocket(12535);
❒
UDP socket được xác
định bởi bộ 2:
(địa chỉ IP, số port đích)
❒
Khi host nhận đoạn
UDP:
❍
ki m tra port đích trong ể
đo nạ
❍
đi u h ng đo n UDP đ n ề ướ ạ ế
socket nào phù h p v i s ợ ớ ố
port đó
❒
IP datagrams với địa
chỉ IP nguồn và/hoặc
số port khác nhau có
thể được điều hướng
đến cùng socket
L p Transportớ 12
Demultiplexing không k t n i ế ố
(tt)
DatagramSocket serverSocket = new DatagramSocket(6428);
Client
IP:B
P2
client
IP: A
P1
P1
P3
server
IP: C
SP: 6428
DP: 9157
SP: 9157
DP: 6428
SP: 6428
DP: 5775
SP: 5775
DP: 6428
SP cung c p “đ a ch tr v ”ấ ị ỉ ở ề
L p Transportớ 13
Demultiplexing h ng k t n iướ ế ố
❒
TCP socket được
xác định bởi bộ 4:
❍
đ a ch IP ngu nị ỉ ồ
❍
s port ngu nố ồ
❍
đ a ch IP đíchị ỉ
❍
s port đíchố
❒
host nhận dùng cả
4 giá trị trên để
điều hướng đoạn
đến socket thích
hợp
❒
Host server có thể
hỗ trợ nhiều TCP
socket đồng thời:
❍
m i socket đ c xác đ nh ỗ ượ ị
b i b 4 c a nóở ộ ủ
❒
Web server có các
socket khác nhau
cho mỗi kết nối từ
client
❍
k t n i HTTP không b n ế ố ề
v ng s có socket khác ữ ẽ
nhau cho m i yêu c uỗ ầ
L p Transportớ 14
Demultiplexing h ng k t n i ướ ế ố
(tt)
Client
IP:B
P1
client
IP: A
P1
P2
P4
server
IP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P5
P6
P3
D-IP:C
S-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:C
S-IP: B
L p Transportớ 15
Demultiplexing h ng k t n i: ướ ế ố
Threaded Web Server
Client
IP:B
P1
client
IP: A
P1
P2
server
IP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P4
P3
D-IP:C
S-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:C
S-IP: B
3.3 V n chuy n không k t n i: ậ ể ế ố
UDP
L p Transportớ 16
L p Transportớ 17
UDP: User Datagram Protocol [RFC 768]
❒
giao thức Internet
transport “đơn giản
hóa”
❒
dịch vụ “best effort”,
các đoạn UDP có thể:
❍
m t mátấ
❍
v n chuy n không th t ậ ể ứ ự
đ n ng d ngế ứ ụ
❒
connectionless (không
kết nối):
❍
không b t tay gi a bên ắ ữ
nh n và bên g i UDPậ ử
❍
m i đo n UDP đ c qu n ỗ ạ ượ ả
lý đ c l pộ ậ
Có UDP để làm gì?
❒
không thiết lập kết nối
(giúp có thể thêm
delay)
❒
đơn giản: không trạng
thái kết nối tại nơi
gửi, nơi nhận
❒
header của đoạn nhỏ
❒
không điều khiển tắc
nghẽn: UDP có thể gửi
nhanh nhất theo mong
muốn
L p Transportớ 18
UDP: (tt)
❒
thường dùng cho các
ứng dụng streaming
multimedia
❍
ch u m t mátị ấ
❍
c m nh n t c đả ậ ố ộ
❒
ngoài ra, UDP dùng
❍
DNS
❍
SNMP
❒
truyền tin cậy trên
UDP: thêm khả năng này
tại lớp application
❍
s a l iử ỗ
source port # dest port #
32 bits
d li u ữ ệ
ng d ngứ ụ
(thông đi p)ệ
d ng th c đo n UDPạ ứ ạ
length
checksum
Đ dài ộ
đo n UDPạ
bao g m cồ ả
header
L p Transportớ 19
UDP checksum
bên gửi:
❒
đối xử các nội dung
đoạn như một chuỗi
các số nguyên 16-bit
❒
checksum: bổ
sung(tổng bù 1) của
các nội dung đoạn
❒
đặt giá trị checksum
vào trường UDP
checksum
bên nhận:
❒
tính toán checksum của
đoạn đã nhận
❒
kiểm tra giá trị trên
có bằng với giá trị
trong trường checksum:
❍
NO – có l i x y raỗ ả
❍
YES – không có l i. ỗ
❍
Nh ng có th còn l i khác ư ể ỗ
n a?ữ
Xem ti p ph n sau ….ế ầ
M c tiêu:ụ ki m tra các “l i” (các bit c đã b t lên) ể ỗ ờ ậ
trong các đo n đã truy nạ ề
L p Transportớ 20
Ví d Checksumụ
❒
Lưu ý
❍
Khi c ng các s , m t bit nh phía cao nh t có th s ộ ố ộ ớ ở ấ ể ẽ
ph i thêm vào k t quả ế ả
❒
Ví dụ: cộng hai số nguyên 16-bit
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
bit dư
t ngổ
checksum
3.4 Các nguyên lý c a vi c ủ ệ
truy n d li u tin c yề ữ ệ ậ
L p Transportớ 21
L p Transportớ 22
Các nguyên lý truy n d li u tin ề ữ ệ
c yậ
❒
quan trọng trong các lớp application, transport, link
❒
là danh sách 10 vấn đề quan trọng nhất của mạng
❒
các đặc thù của kênh truyền không tin cậy sẽ xác định sự phức
tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
L p Transportớ 23
Các nguyên lý truy n d li u tin ề ữ ệ
c yậ
❒
quan trọng trong các lớp application, transport, link
❒
là danh sách 10 vấn đề quan trọng nhất của mạng
❒
các đặc thù của kênh truyền không tin cậy sẽ xác định sự phức tạp của giao thức
truyền dữ liệu data transfer protocol (rdt)
L p Transportớ 24
Các nguyên lý truy n d li u tin ề ữ ệ
c yậ
❒
quan trọng trong các lớp application, transport, link
❒
là danh sách 10 vấn đề quan trọng nhất của mạng
❒
các đặc thù của kênh truyền không tin cậy sẽ xác định sự phức tạp của giao thức
truyền dữ liệu data transfer protocol (rdt)
L p Transportớ 25
Truy n d li u tin c yề ữ ệ ậ
bên
g iử
bên
nhận
rdt_send(): đ c g i b i l p ượ ọ ở ớ
app. Chuy n d li u c n truy n đ n ể ữ ệ ầ ề ế
l p cao h n bên nh nớ ơ ậ
udt_send(): đ c g i b i ượ ọ ở
rdt, đ truy n các gói trên ể ề
kênh không tin c y đ n n i ậ ế ơ
nh nậ
rdt_rcv(): đ c g i khi gói đ n ượ ọ ế
kênh bên nh nậ
deliver_data(): đ c g i ượ ọ
b i ở rdt đ truy n d li u ể ề ữ ệ
đ n l p cao h nế ớ ơ