hương 3: Mục lục 3.1 Các dịch vụ tầngtruyền tải 3.4 Sự truyền tải hướng 3.2 Sự dồn và tách kết nối : TCP 3.3 Sự truyền tải không kết cấu trúc đoạn tin nối: UDP 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 Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 Chương 3: Tầng Truyền Tải © 2011 3
Trang 1Trường Đại Học Bách Khoa Tp.HCM Khoa Khoa Học và Kỹ Thuật Máy Tính
ThS NGUYỄN CAO ĐẠT E-mail:dat@cse.hcmut.edu.vn
Bài giảng Mạng máy tính
Trang 2Bài giảng 7: Tầng truyền tải (tt)
Tham khảo:
Chương 3: “Computer Networking – A top-down approach”
Trang 3 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
Trang 4Truyền tải dữ liệu tin cậy TCP
ng/gửi TCP đơn giản:
bỏ qua các ack trùng lặp
bỏ qua kiểm tra lưu lượng, kiểm tra tắc nghẽn
Trang 5Các sự kiện phía người gửi TCP:
khúc trước đó chưa được ACK
cập nhật danh sách các gói
đã được ACK chạy lại bđtg nếu như còn
Trang 6ng/gửi TCP
(đơn giản hóa)
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum
loop (forever) {
switch(event)
event: nhận được dữ liệu từ ứng dụng tầng trên
tạo ra đoạn TCP với STT NextSeqNum
if (bđtg không chạy)
khởi chạy bđtg
đẩy đoạn xuống IP
NextSeqNum = NextSeqNum + length(data)
Ví dụ:
• SendBase-1 = 71;
y= 73, vậy người nhận cần 73+ ;
y > SendBase, vì vậy có thêm dữ liệu được ack
Trang 7TCP: các kịch bản truyền tải lại
= 100
Trang 8TCP: các kịch bản truyền tải lại (tt)
Trang 9Tạo ACK trong TCP [RFC 1122, RFC 2581]
Sự đến của khúc sai-thứ-tự với
STT cao hơn STT mong đợi
Ngay lập tức gửi một ACK cộng dồn, xác nhận cả hai đoạn dữ liệu đúng thứ tự
Ngay lập tức gửi một ACK lặp , chỉ rõ STT của byte mong đợi tiếp theo
Trang 10Truyền lại nhanh
tương đối dài:
sẽ bị trị hoãn lâu trước khi
gửi lại gói bị mất
truyền lại nhanh: gửi lại khúc dữ liệu trước khi bộ đếm thời gian hết hạn
Trang 12
sự kiện: nhận được ACK, với trường ACK có giá trị y
if (y > SendBase) { SendBase = y
if (không có khúc nào chưa được ACK) khởi động bộ đếm thời gian
} else { tăng bộ đếm số ACK cho y trùng
if (số ACK trùng = 3) { gửi lại khúc với STT y }
Trang 13 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
Trang 14Kiểm soát lưu lượng trong TCP
side of TCP connection has a receive buffer:
tốc độ: điều chỉnh tốc
độ gửi sao cho phù hợp với tốc độ đọc của tiến trình nhận
kiểm soát LL
Trang 16 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
Trang 17Socket clientSocket = new
Trang 18Bước 2: chủ nhận được FIN, phản
hồi với ACK Đóng kết nối, gửi
Trang 19Quản lý kết nối TCP (tt)
Bước 3: khách nhận được FIN,
phản hồi với ACK
Bước vào trạng thái “chờ
có đếm thời gian” – sẽ phản hồi bằng ACK với những FIN nhận được
Step 4: chủ , nhận được ACK
Trang 20Quản lý kết nối TCP (tt)
chu kì sống của
khách TCP
chu kì sống của chủ TCP
Trang 21 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
Trang 22Các nguyên tác kiểm soát tắc nghẽn
Tắc nghẽn:
Trang 23Nguyên nhân/thiệt hại của tắc nghẽn: 1
Máy A
lin : dữ liệu gốc
Máy B
Trang 24Nguyên nhân/thiệt hại của tắc nghẽn: 2
Trang 25nguyên nhân/thiệt hại của tắc nghẽn: 3
luôn luôn:
truyền lại “tối ưu” chỉ khi có mất mát:
sự truyền lạiretransmission của các gói trễ (không mất) làm cho
lớn hơn (so với tr/hợp tối ưu) với cùng một
Trang 26nguyên nhân/thiệt hại của tắc nghẽn: 4
Trang 27nguyên nhân/thiệt hại của tắc nghẽn: 5
Một thiệt hại khác của tắc nghẽn:
H o s
t
A
H o s
t B
l
o u t
Trang 28Các phương án tiếp cận đối với kiểm soát tắc
tắc nghẽn được cho là xảy ra
nếu máy đầu cuối phát hiện có
tốc độ cụ thể mà người gửi nên dùng
Hai phương án tiếp cận rộng:
Trang 29Ví dụ nghiên cứu: kiểm soát tắc nghẽn ATM ABR
ABR: tốc độ bit cho phép:
ng/gửi giảm xuống tốc độ
đảm bảo tối thiểu
ô RM (quản lý tài nguyên) :
gửi bởi ng/gửi, chen lẫn với các
CI bit: biểu hiện tắc nghẽn (nặng)
các ô RM được gửi lại cho ng/gửi bởi ng/nhận mà ko có thay đổi gì
Trang 30Ví dụ nghiên cứu: kiểm soát tắc nghẽn ATM
ABR
BCM tắc nghẽn có thể giảm giá trị ER trong ô RM
ER sẽ được thiết lập bằng với tốc độ hỗ trợ tối thiểu của tất cả BCM trên đường đi từ nguồn-tới-đích
nếu ô dữ liệu tới trước ô RM chứa bit EFCI bật, người gửi bật bit CI trong ô RM rồi gửi lại
Trang 31 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
Trang 32KSTN TCP: tăng hệ số cộng, giảm hệ số nhân
8 Kbytes
16 Kbytes
24 Kbytes
congestion window
P/pháp: tăng tốc độ truyền tải (kích thước cửa sổ), thử băng
thông khả dụng, tới khi xuất hiện mất gói
tăng hs cộng: tăng CongWin lên 1 MSS mỗi RTT đến khi
Trang 33RTT Bytes/sec
Trang 34vận tốc theo hệ số mũ đến khi xuất hiện mất gói
Trang 35TCP Bắt đầu chậm (tt)
vận tốc theo hệ số mũ đến
khi xuất hiện mất gói :
nhân đôi CongWin mỗi RTT
thực hiện bởi tăng lên 1
CongWin cho mỗi ACK nhận
được
chậm nhưng tăng lên
nhanh theo hàm mũ
Máy A
Máy B
Trang 36Cải thiện: phỏng đoán mất gói
trùng:
sau đó tăng tuyến tính
chờ”:
tăng theo hàm mũ
tăng tới ngưỡng cuối cùng
trước khi mất gói, sau đó tăng tuyến tính
mạng có khả năng phân phối vài khúc dữ liệu
tình hình tắc nghẽn đáng báo động hơn
Triết lí:
Trang 37được ½ giá trị của
nó trước khi xảy ra
“hết t/g chờ”
Hiện thực:
Giá trị ngưỡng biến thiên
Khi mất gói, g/t ngưỡng được gán
bằng ½ của CongWin ngay trước khi
Trang 38Tóm tắt: KSTN TCP
tránh-tắc-nghẽ, cửa sổ tăng tuyến tính
CongWin gán bằng Threshold
Trang 39CongWin = CongWin + MSS,
If (CongWin > Threshold) chuyển trạng thái sang “CA”
Nhân đôi CongWin mỗi RTT
Tránh tắc
nghẽn (CA)
nhận được ACK cho những dữ liệu chưa ack
CongWin = CongWin+MSS * (MSS/CongWin)
Tăng theo cấp số cộng, dẫn đến tăng CongWin lên 1 MSS mỗi RTT
SS hoặc CA Phát hiện
mất gói do
có “trùng 3 ACK”
Threshold = CongWin/2, CongWin = Threshold,
chuyển trạng thái sang “CA”
Hồi phục nhanh, sử dụng giảm theo hệ số nhân
CongWin không giảm nhỏ hơn 1 MSS
SS hoặc CA Hết t/g chờ Threshold = CongWin/2,
CongWin = 1 MSS, chuyển trạng thái “SS”
Chuyển sang SS
Trang 40Thông lượng TCP
sổ và RTT là bao nhiêu?
bỏ qua bắt-đầu-chậm
xuống W/2RTT
Trang 41Tương lai TCP: TCP qua các “đường ống dài, rộng”
Gbps
L RTT
MSS
22 1
Trang 42Sự công bằng trong TCP
đường kết nối cổ chai với băng thông R, mỗi phiên phải có được vận tốc trung bình là R/K
kết nối TCP 1
bộ định tuyến
cổ chai tải trọng R k/n
TCP 2
Trang 43Tại sao TCP lại công bằng?
Hai kịch bản cạnh tranh:
Tăng cấp số cộng tạo độ dốc 1, as throughout increases
Giảm theo cấp số nhân giảm thông lượng một cách cân xứng
tránh tắc nghẽn: tăng cấp số cộng mất gói: giảm cửa sổ xuống 1/2 tránh tắc nghẽn: tăng cấp số cộng mất gói: giảm cửa sổ xuống 1/2
Trang 44 gửi âm thanh/phim ảnh ở
một vận tốc cố định, chấp nhận mất gói
tương tự như TCP
Sự công bằng và các kết nối TCP song song
Trang 45Chương 3: Tổng kết
dịch vụ 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