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
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:
- 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).pdf