Bài giảng Mạng máy tính - Nguyễn Cao Đạt - Chương 3: Tầng truyền tải (Bài giảng 1)

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

 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

pdf39 trang | Chuyên mục: Mạng Máy Tính | Chia sẻ: dkS00TYs | Lượt xem: 2324 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Mạng máy tính - Nguyễn Cao Đạt - Chương 3: Tầng truyền tải (Bài giảng 1), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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 
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 
cộng dồn 
tổng 
tổng kiểm tra 
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 
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 
22 
Tạo đường ống: tăng hiệu suất s/d 
bít đầu tiên được truyền, t = 0 
sender receiver 
RTT 
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 
ACK tới, gửi gói 
tiếp theo, t = RTT + L / R 
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 
U 
sender 
= 
.024 
30.008 
= 0.0008 
microsecon
ds 
3 * L / R 
RTT + L / R 
= 
Tăng hiệu suất 
lên gấp 3! 
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 
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 
 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 
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 
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 
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 
25 
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 
26 
GBN in 
action 
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 
27 
Lặp lựa chọn 
 người nhận xác nhận các gói tin nhận được một 
cách riêng lẻ 
 nhớ tạm các gói tin, nếu cần, để đảm bảo trật tự của 
chúng khi đẩy lên tầng trên 
 người gửi chỉ lại gói tin với những gói tin mà chưa 
nhận được ACK 
 người gửi đếm thời gian cho mỗi gói tin chưa được ACK 
 cửa sổ người gửi 
 N STT liên tục 
 hạn chế STT của các gói đã gửi mà chưa được 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 
28 
Lặp lựa chọn: cửa sổ của n/gửi và n/nhậ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 
29 
Lặp lựa chọn 
dữ liệu từ trên: 
 nếu STT tiếp theo nằm trong 
cửa sổ, gửi gói tin 
timeout(n): 
 gửi lại gói n, bật lại bđtg 
ACK(n) trong 
[sendbase,sendbase+N]: 
 đánh dấu gói n đã nhận 
được 
 nếu n là gói chưa ACK nhỏ 
nhât, tăng cửa sổ lên STT 
chưa ACK tiếp theo 
n/gửi 
n thuộc [rcvbase, rcvbase+N-1] 
 gửi ACK(n) 
 lộn-trật-tự: bộ nhớ tạm 
 đúng-trật-tự: đẩy (đồng thời đẩy 
các gói trong bộ nhớ tạm, đúng 
trật tự), tăng cửa sổ lên số gói 
tiếp theo chưa nhận được 
n thuộc [rcvbase-N,rcvbase-1] 
 ACK(n) 
ngoài ra: 
 bỏ qua 
n/nhậ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 
30 
Ví dụ: Lặp lựa chọn trong thực tế 
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 
31 
Lặp lựa chọn: 
 vấn đề 2 mặt 
Ví dụ: 
 STT: 0, 1, 2, 3 
 kích thước cửa sổ=3 
 người nhận thấy không 
có gì khác biệt giữa 2 
kịch bản! 
 gửi nhầm bản sao dữ 
liệu như là bản mới 
trong (a) 
Q: mối liên hệ nào giữa stt 
và kích thước 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 
32 
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 
 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 
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 
33 
TCP: Tổng quát RFCs: 793, 1122, 1323, 2018, 2581 
 dữ liệu full-duplex: 
 dữ liệu di chuyển theo 2 hướng 
trong cùng một kết nối 
 MSS: kích thước đoạn tối đa 
 định hướng kết nối: 
 bắt tay (trao đổi các th/đ điều 
khiển) khởi tạo trạng thái của 
ng/gửi, ng/nhận trước khi trao 
đổi dữ liệu 
 lưu lượng đc kiểm tra: 
 n/ gửi sẽ không làm tràn người 
nhận 
 điểm-tới-điểm: 
 1 n/gửi, 1 n/nhận 
 luồng byte tin cậy, theo 
thứ tự: 
 ko “biên giới giữa th/điệp” 
 được tạo đường ống: 
 kiểm tra tắc nghẽn TCP và 
lưu lượng q/đ kích thước 
cửa sổ 
 bộ nhớ tạm gửi & nhận 
socket
door
TCP
send buffer
TCP
receive buffer
socket
door
segment
application
writes data
application
reads data
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 
34 
Cấu trúc đoạn TCP 
cổng nguồn cổng đích 
32 bits 
dữ liệu 
tầng ứng dụng 
(độ dài thay đổi) 
số thứ tự 
số xác nhận 
cửa sổ nhận 
Urg data pnter tổng kiểm tra 
F S R P A U 
độ dài 
m.đầu 
ko 
dùng 
phần phụ (độ dài thay đổi) 
URG: dữ liệu khẩn cấp 
(hầu như ko sử dụng) 
ACK: ACK # 
valid 
PSH: đẩy dữ liệu 
(hầu như ko sử dụng) 
RST, SYN, FIN: 
khởi tạo K/N 
(thiết lập, kết thúc) 
số byte 
ng/nhận sẵn 
sàng nhận 
tính theo 
byte dữ liệu 
(không theo số 
đoạn!) 
tổng kiểm tra 
Internet 
(như trong 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 
35 
TCP STT và số ACK 
STT (sequence number): 
 số thứ tự trong luồng 
byte của byte đầu tiên 
trong đoạn 
ACKs: 
 là STT của byte tiếp 
theo mà sẽ nhận được 
từ máy bên kia 
 ACK cộng dồn 
Hỏi: làm sao xử lý những 
đoạn không đúng thứ tự 
 đáp: TCP ko chỉ rõ – 
công việc của nhà hiện 
thực 
Máy A Máy B 
ng/dùng 
gõ 
„C‟ 
máy A xác 
nhận việc 
nhận „C‟ 
máy B xác 
nhận việc 
nhận „C‟, 
gửi lại „C‟ 
t/gian 
kịch bản telnet đơn giả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 
36 
Thời gian xoay vòng và thời gian chờ TCP 
Hỏi: thiết lập giá trị thời gian 
chờ TCP như thế nào? 
 dài hơn RTT 
 nhưng RTT thay đổi 
 quá ngắn: thời gian chờ non 
 không cần thiết phải truyền 
lại 
 quá dài: phản ứng chậm cho 
việc mất đoạn 
Hỏi: làm sao để đo RTT? 
 SampleRTT: đo thời gian từ 
khi truyền gói tin đi và nhận 
được ACK 
 bỏ qua truyền tải lại 
 SampleRTT sẽ thay đổi, muốn 
RTT đo được “mướt hơn” 
 lấy giá trị trung bình của 
những lần đo gần nhất, 
không chỉ giá trị hiện thời 
của SampleRTT 
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 
37 
Thời gian xoay vòng và thời gian chờ 
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT 
 trung bình động có trọng số hàm mũ 
 ảnh hưởng của giá trị cũ giảm nhanh theo hàm mũ 
 giá trị thông dụng:  = 0.125 
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 
38 
Ví dụ đo RTT: 
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
R
T
T
 (
m
il
li
se
co
n
d
s)
SampleRTT Estimated RTT
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 
39 
Thời gian xoay vòng và thời gian chờ 
Thiết lập t/g chờ 
 EstimtedRTT + “biên an toàn” 
 EstimatedRTT thay đổi với biên độ lớn -> biên an toàn lớn 
 đầu tiên đo độ biến thiên của EstimatedRTT so với SampleRTT : 
TimeoutInterval = EstimatedRTT + 4*DevRTT 
DevRTT = (1-)*DevRTT + 
 *|SampleRTT-EstimatedRTT| 
(thông thường,  = 0.25) 
 sau đó thiết lập khoảng t/g chờ: 

File đính kèm:

  • pdfBài giảng Mạng máy tính - Nguyễn Cao Đạt - Chương 3 Tầng truyền tải (Bài giảng 1).pdf
Tài liệu liên quan