Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
Bài giảng
Mạng máy tính
ThS. NGUYỄN CAO ĐẠT
E-mail:
Bài giảng 6: Tầng truyền tải
Tham khảo:
Chương 3: “Computer Networking – A top-down approach”
Kurose & Ross, 5th ed., Addison Wesley, 2010.
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
2
Chương 3: Tầng truyền tải
Mục tiêu:
hiểu rõ các nguyên
tắc đằng sau các dịch
vụ của tầng truyền
tải:
dồn/tách
truyền tải dữ liệu tin
cậy
kiểm soát lưu lượng
kiểm soát tắc nghẽn
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
tìm hiểu về các giao thức
tầng truyền tải trong
Internet:
UDP: truyền tải không kết nối
TCP: truyền tải hương kết nối
Kiểm soát tắc nghẽn trong
TCP
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
3
Chương 3: Mục lục
3.1 Các dịch vụ tầng-truyền
tải
3.2 Sự dồn và tách
3.3 Sự truyền tải không kết
nối: UDP
3.4 Sự truyền tải hướng
kết nối : TCP
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
quản lý kết nối
3.5 Các nguyên lý của
kiểm soát tắc nghẽn
3.6 Kiểm soát tắc nghẽn
trong TCP
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
4
Giao thức và dịch vụ truyền tải
cung cấp một kênh liên lạc luận lý
giữa các tiến trình ứng dụng trên
những máy khác nhau
các giao thức truyền tải chạy trên các
máy đầu cuối
phía gửi: chia thông điệp của ứng
dụng thành những đoạn
(segment), đẩy xuống tầng mạng
phía nhận: ráp lại các đoạn thành
thông điệp hoàn chỉnh, đẩy lên
tầng ứ/d
các giao thức truyền tải
Internet: TCP và UDP
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
ứng dụng
truyền tải
mạng
liên kết dl
vật lý
ứng dụng
truyền tải
mạng
liên kết dl
vật lý
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
5
Tầng truyền tải s/v Tầng mạng
tầng mạng: kênh liên lạc
luận lý giữa các máy
tầng truyền tải: kênh liên
lạc luận lý giữa các tiến
trình
phụ thuộc vào, củng cố các
dịch vụ tầng mạng
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
Ví dụ tương đồng – chủ
gia đình:
12 đứa trẻ gửi thư cho 12
đứa
tiến trình = đứa trẻ
thông điệp ứ/d = thư
trong phong bì
máy tính = nhà
giao thức truyền tải =
Ann và Bill
giao thức mạng = dịch
vụ bưu điện
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
6
Các giao thức tầng truyền tải trong Internet
giao gói tin tin cậy, có trật tự
(TCP)
giao gói tin không tin cậy,
không có trật tự (UDP)
kiểm soát tắc nghẽn
kiểm soát lưu lượng
thiết lập kết nối
một sự mở rộng của IP “nỗ lực
hết sức”
những dịch vụ chưa sẵn sàng:
đảm bảo độ trễ
đảm bảo băng thông
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
ứng dụng
truyền tải
mạng
liên kết dl
vật lý
mạng
liên kết dl
vật lý
mạng
liên kết dl
vật lý
mạng
liên kết dl
vật lý mạng
liên kết dl
vật lý
mạng
liên kết dl
vật lý
mạng
liên kết dl
vật lý
ứng dụng
truyền tải
mạng
liên kết dl
vật lý
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
7
Chương 3: Mục lục
3.1 Các dịch vụ tầng-truyền
tải
3.2 Sự dồn và tách
3.3 Sự truyền tải không kết
nối: UDP
3.4 Sự truyền tải hướng
kết nối : TCP
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
quản lý kết nối
3.5 Các nguyên lý của
kiểm soát tắc nghẽn
3.6 Kiểm soát tắc nghẽn
trong TCP
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
8
Dồn/Tách
Dồn ở máy gửi:
thu thập dữ liệu từ nhiều
socket, đóng bao dữ liệu với
phần mào đầu (được sử dụng
sau này để tách)
Tách ở máy nhận:
chuyển các đoạn nhận được tới
đúng các socket
= socket
= tiến trình
ứng dụng P3
P1
P1 dụng
ứng
truyền tải
truyền tải
mạng
mạng
liên kết
liên kết
vật lý
vật lý
host 1
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
P2
P4 ứng dụng
truyền tải
mạng
liên kết
vật lý
host 2
host 3
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
9
Phương pháp tách làm việc ntn?
máy nhận gói tin IP
mỗi gói tin có địa chỉ IP
nguồn, địa chỉ IP đích
mỗi gói tin mang một đoạn
dữ liệu tầng truyền tải
mỗi đoạn có địa chỉ và cổng
của máy nhận (đích)
máy dùng địa chỉ IP và số cổng
để chuyển hướng đoạn dữ liệu
sang socket thích hợp
32 bits
cổng nguồn #
cổng đích #
các trường khác
dữ liệu của
ứng dụng
(th. điệp)
định dạng đoạn dữ liệu TCP/UDP
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
10
Sự tách không kết nối
Tạo các socket với các cổng:
DatagramSocket mySocket1 = new
DatagramSocket(12534);
DatagramSocket mySocket2 = new
DatagramSocket(12535);
Socket UDP được xác định
bởi cặp:
(địa chỉ IP đích, số cổng đích)
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
Khi máy nhận được một
đoạn UDP:
kiểm tra số cổng đích trong
đoạn dữ liệu
chuyển hướng đoạn UDP tới
socket với số cổng đó
Gói tin IP với địa chỉ IP
nguồn khác nhau và/hoặc
số nguồn khác nhau được
chuyển tới cùng một
socket
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
11
Sự tách không kết nối (tt)
DatagramSocket serverSocket = new DatagramSocket(6428);
P2
SP: 6428
DP: 9157
khách
IP: A
P1
P1
P3
SP: 9157
DP: 6428
SP: 6428
DP: 5775
chủ
IP: C
SP: 5775
DP: 6428
khách
IP:B
SP cung cấp “địa chỉ phản hồi”
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
12
Sự tách hướng kết nối
Socket TCP được xác định
bởi 4 nhân tố:
đ/c IP nguồn
số cổng nguồn
đ/c IP đích
số cổng đích
máy nhận dùng cả 4 giá trị
trên để định hướng đoạn
dữ liệu tới đúng Socket phù
hợp
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
Máy chủ có thể hỗ trợ
đồng thời nhiều socket
TCP:
mỗi socket được định danh
bởi 4 nhân tố của nó
Máy chủ Web có nhiều
socket khác nhau cho mỗi
khách kết nối tới
HTTP không ổn định sẽ có
một socket riêng biệt cho
mỗi người dùng
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
13
Sự tách hướng kết nối (tt)
P1
P2 P1
P3
P4 P5 P6
SP: 5775
DP: 80
S-IP: B
D-IP:C
SP: 9157
Khách
IP: A
DP: 80
S-IP: A
D-IP:C
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
SP: 9157
Chủ
IP: C
DP: 80
S-IP: B
D-IP:C
Khách
IP:B
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
14
Sự tách hướng kết nối: Máy chủ Web chia luồng
P1
P2 P1
P3
P4
SP: 5775
DP: 80
S-IP: B
D-IP:C
SP: 9157
khách
IP: A
DP: 80
S-IP: A
D-IP:C
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
SP: 9157
chủ
IP: C
DP: 80
S-IP: B
D-IP:C
khách
IP:B
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
15
Chương 3: Mục lục
3.1 Các dịch vụ tầng-truyền
tải
3.2 Sự dồn và tách
3.3 Sự truyền tải không kết
nối: UDP
3.4 Sự truyền tải hướng
kết nối : TCP
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
quản lý kết nối
3.5 Các nguyên lý của
kiểm soát tắc nghẽn
3.6 Kiểm soát tắc nghẽn
trong TCP
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
16
UDP: User Datagram Protocol
giao thức truyền tải Internet
protocol “không phức tạp”, “giản
thiểu”
dịch vụ “nỗ lực tối đa”, đoạn
UDP có thể:
bị mất
được giao không đúng trật tự
cho ứng dụng
không-kết-nối:
không có bắt tay giữa người
gửi và người nhận UDP
mỗi đoạn UDP được xử lý độc
lập với những đoạn khác
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
[RFC 768]
Tại sao cần có UDP?
không thiết lập kết nối (giảm
độ trễ)
đơn giản: không có các
trạng thái kết nối ở người
gửi và người nhận
đoạn mào đầu của đoạn nhỏ
không có kiểm soát tắc
nghẽn: UDP có thể truyền đi
với tốc độ tối đa
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
17
UDP (tt)
thường được dùng cho
các ứng dụng đa phương
tiện trực tuyến
khả năng chịu mất gói
độ dài, của
đoạn UDP,
dễ thay đổi tốc độ
những cách dùng
UDP khác
DNS
SNMP
truyền tải tin cậy qua
UDP: bổ sung tính tin cậy
ở tầng ứng dụng
cơ chế kiểm soát lỗi
thuộc tầng ứng dụng!
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
bao gồm cả
mào đầu
32 bits
cổng nguồn #
cổng đích #
độ dài
tổng kiểm tra
Dữ liệu
ứng dụng
(thông điệp)
định dạng đoạn UDP
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
18
Tổng kiểm tra UDP (checksum)
Mục đích: phát hiện “lỗi” (vd: nhảy bit) trong đoạn dữ
liệu được truyền tải
Người gửi:
xem đoạn nội dung dữ liệu
như là một chuỗi gồm
những số nguyên 16-bit
tổng kiểm tra (TKT): cộng
(tổng bù 1) của nội dung
của đoạn
người gửi đặt giá trị tổng
kiểm tra vào trường “tổng
kiểm tra- checksum” UDP
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
Người nhận:
tính tổng kiểm tra của đoạn
nhận được
kiểm tra xem TKT tính được có
bằng giá trị trong trường TKT
ko:
Ko – phát hiện ra lỗi.
Có – ko phát hiện ra lỗi.
nhưng vẫn có thể có lỗi
? tìm hiểu sau
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
19
Ví dụ TKT Internet
Ghi chú
Khi cộng các số, số nhớ (nếu có) của bít có thứ hạng cao
nhất cần phải được cộng dồn 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
cộng dồn
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
tổng 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
tổng kiểm tra 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
20
Các giao thức tạo đường ống
Tạo đường ống: người gửi cho phép gửi liên tục nhiều
gói tin mà không nhất thiết phải đợi cho đến khi gói
tin đó được xác nhận.
dải của các số thứ tự phải tăng lên
nhớ tạm tại người gửi và người nhận
Hai mô hình chung của giao thức tạo đường ống: quay-lại-N, lặp-
lựa-chọn
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
21
Tạo đường ống: tăng hiệu suất s/d
sender
receiver
bít đầu tiên được truyền, t = 0
bit cuối cùng được truyền, t
=L/R
bit đầu tiên tới
bít cuối cùng tới, gửi ACK
bít cuối của gói thứ 2 tới, gửi ACK
bít cuối của gói thứ 3 tới, gửi ACK
RTT
ACK tới, gửi gói
tiếp theo, t = RTT + L / R
Tăng hiệu suất
lên gấp 3!
U
sender
=
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
3*L/R
RTT + L / R
=
.024
30.008
= 0.0008
microsecon
ds
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
22
Các giao thức tạo đường ống
Quay-lại-N: bức tranh lớn
Người gửi có thể có tới N
gói tin chưa có ACK trong
đường ống
Người nhận chỉ gửi các gói
ACK cộng dồn
Ko ACK nếu có một khoảng
trống
Người gửi có bộ đếm t/g
cho gói tin cũ nhất mà
chưa ACK
Lặp lựa chọn: bức tranh lớn
Người gửi có thể có tới N
gói tin chưa có ACK trong
đường ống
Người nhận ACK các gói
riêng lẻ
Người gửi duy trì bộ đếm
t/g cho mỗi gói tin chưa
ACK
Khi bộ đếm hết giờ thì gửi
lại chỉ những gói chưa ACK
Nếu bộ đếm t/g hết giờ thì
gửi lại tất cả các gói mà chưa
ack
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
23
Lặp lựa chọn: bức tranh lớn
Người gửi có thể có tới N gói tin chưa ACK trong
đường ống
Người nhận thực hiện ACK các gói riêng lẻ
Người gửi duy trì một bộ đếm thời gian cho mỗi gói
tin chưa ACK
Khi bộ đếm t/g hết giờ, chỉ gửi lại những gói tin chưa ACK
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
24
Quay-lại-N (Go back N)
Người gửi:
số thứ tự k-bit trong mào đầu của gói tin
cho phép “cửa sổ” lớn tới N gói tin liên tục chưa ack
ACK(n): ACK tất cả gói tin trước n, kể cả gói tin thứ n - “ACK cộng dồn”
có thể nhận được ACK trùng lặp
bộ đếm t/g cho mỗi gói tin đang trong quá trình gửi (chưa ack)
hết-giờ(n): gửi lại gói tin thứ n và tất cả gói tin có STT lớn hơn trong
cửa sổ
Trường Đại Học Bách Khoa Tp.HCM
Khoa Khoa Học và Kỹ Thuật Máy Tính
© 2011
MẠNG MÁY TÍNH CĂN BẢN
Bài giảng 1 - Chương 3: Tầng truyền tải
25