Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
578,89 KB
Nội dung
Chương Giao thức TCP NỘI DUNG ❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP ❍ Cấu trúc segment ❒ Truyền tải số liệu tin cậy ❒ Điều khiển luồng (flow control) ❒ Quản lý liên kết ❒ Kiểm soát nghẽn ❒ Kiểm soát nghẽn TCP Chương 4-Giao thức TCP 3-2 Tổng quan TCP ❒ RFCs: 793, 1122, 1323, 2018, 2581 ❒ point-to-point: ❍ Một truyền thu ❒ Song cơng hồn tồn: ❍ Luồng số liệu chạy hai chiều kết nối ❒ Kết nối có hướng (connection-oriented): ❒ Tin cậy, giữ thứ tự ❒ Cơ chế ống dẫn (pipeline): ❍ Kiểm soát nghẽn điều khiển luồng, cài đặt cửa sổ ❒ Sử dụng đệm truyền nhận Ứng dụng socket door ghi data Ưng dụng đọc data TCP đệm truyền TCP đệm thu ❍ Bắt tay thông qua tra đổi thông điệp điều khiển ❒ Điều khiển luồng: ❍ Máy phát không làm tràn đệm máy thu socket door segment Chương 4-Giao thức TCP 3-3 Cấu trúc TCP segment URG: urgent data, báo có data khẩn segment data pointer ACK: ACK # hợp lệ PSH: chuyển data lên RST, SYN, FIN: Thiết lập kết nối Internet checksum (như UDP) 32 bits source port # dest port # sequence number Đếm theo byte số liệu acknowledgement number head not UA P R S F len used checksum Receive window Urg data pointer Options (chiều dài thay đổi) Số byte (# bytes) Máy thu sẵn sàng nhận Số liệu ứng dụng (chiều dài thay đổi) Chương 4-Giao thức TCP 3-4 Chỉ số báo nhận ACK TCP xem toàn khối số liệu dòng byte liên tục Chỉ số segment thứ tự dòng byte byte phần data segment Chỉ số báo nhận ACK segment số byte dòng byte mà máy gửi segment chờ Chương 4-Giao thức TCP 3-5 Ví dụ ứng dụng Telnet Khái niệm: ❒ Piggyback ❒ Cumulative ACK Server Client User Gõ ký tự ‘C’ Seq=4 2, AC K=79, d 79, A = q e S Nhận 'C' phản hồi với data trống ata = ‘C’ = ‘C’ a t a 3, d CK=4 Nhận 'C' truyền lại ‘C’ Seq=4 3, ACK =80 Giả sử client bắt đầu với 42 Server bắt đầu với 79 time Chương 4-Giao thức TCP 3-6 Tham số RTT Timeout (1) Giá trị timeout? Tính RTT? ❒ Phải lớn thời gian ❒ Đo lường thời gian từ truyền hành trình RTT (round trip time) ❍ RTT thay đổi segment đến nhận ACK ❒ Thời gian thay đổi > trung bình ❒ Quá ngắn? ❒ Quá dài? Chương 4-Giao thức TCP 3-7 Tham số RTT Timeout (2) EstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT ❒ Exponential weighted moving average ❒ Ảnh hưởng mẫu khứ giảm nhanh theo hàm mũ ❒ Giá trị tiêu biểu là: α = 0.125 Chương 4-Giao thức TCP 3-8 Ví dụ RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 350 RTT (milliseconds) 300 250 200 150 100 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) SampleRTT Estimated RTT Chương 4-Giao thức TCP 3-9 Tham số RTT Timeout (3) Cài đặt timeout ❒ EstimtedRTT cộng với “gia số an toàn” ❍ EstimatedRTT thay đổi nhiều -> gia số lớn ❒ Trước hết xác định độ lệch mẫu so với EstimatedRTT: DevRTT = (1-β β)*DevRTT + β*|SampleRTT-EstimatedRTT| (giá trị tiêu biểu β = 0.25) Sau gán giá trị timeout interval: TimeoutInterval = EstimatedRTT + 4*DevRTT Chương 4-Giao thức TCP 3-10 Nguyên nhân phí tổn: kịch ❒ Một router, đệm hữu hạn ❒ sender truyền lại gói bị Host A λin : số liệu nguồn λout λ'in : số liệu nguồn+ data truyền lại Host B Bộ đệm hữu hạn Chương 4-Giao thức TCP 3-32 Nguyên nhân phí tổn: kịch = λ out in ❒ Chỉ truyền lại mất: ❒ Luôn luôn: λ λ > λout in ❒ Truyền lại gói trễ (khơng mất) làm cho tải đầu vào so với truyền lại có R/2 λout R/2 λ in lớn R/2 λin a R/2 λout λout λout R/3 λin b R/2 R/4 λin R/2 c Phí tổn nghẽn: ❒ Truyền lại nhiều ❒ Truyền lại không cần thiết: liên kết mang nhiều gói Chương 4-Giao thức TCP 3-33 Nguyên nhân phí tổn: kịch (1/2) ❒ Bốn sender ❒ Các đường qua nhiều node Điều xảy λ in λ gia tăng? in ❒ timeout/truyền lại Host A λout λin : data nguồn λ'in : data nguồn + data truyền lại Bộ đệm hữu hạn Host B Chương 4-Giao thức TCP 3-34 Nguyên nhân phí tổn: kịch (2/2) H o s t A λ o u t H o s t B Phí tổn khác: ❒ Khi gói bị hủy, dung lượng truyền lên cho gói lãng phí! Chương 4-Giao thức TCP 3-35 Các giải pháp End-end congestion control: Network-assisted congestion control: ❒ Khơng có phản hồi tường ❒ Các router thông báo cho minh từ mạng ❒ Các host xét triệu chứng gói trễ ❒ TCP dùng cách host ❍ Bit định nghẽn (SNA, DECbit, TCP/IP ECN, ATM) ❍ Tốc độ sender nên truyền vào lúc Chương 4-Giao thức TCP 3-36 NỘI DUNG ❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP ❍ Cấu trúc segment ❒ Truyền tải số liệu tin cậy ❒ Điều khiển luồng (flow control) ❒ Quản lý liên kết ❒ Kiểm soát nghẽn ❒ Kiểm soát nghẽn TCP Chương 4-Giao thức TCP 3-37 Kiểm soát nghẽn TCP ❒ Giải pháp: tăng tốc độ truyền (window size), thăm dị băng thơng Thăm dị băng thơng congestion window size hữu dụng xảy gói ❍ additive increase: tăng CongWin lên MSS sau RTT (nhận báo nhận) phát data ❍ multiplicative decrease: giảm cửa sổ nửa CongWin thấy data congestion window 24 Kbytes 16 Kbytes Kbytes time time Chương 4-Giao thức TCP 3-38 Chi tiết kiểm soát nghẽn TCP ❒ Máy phát giới hạn truyền theo: LastByteSent-LastByteAcked ≤ CongWin ❒ Sơ bộ, rate = CongWin Bytes/sec RTT ❒ CongWin động,thay đổi theo tình trạng nghẽn mạng (hàm số nghẽn) Nhận thức nghẽn: ❒ Sự kiện mất= timeout hay ack trùng ❒ Máy phát giảm tốc (CongWin) sau kiện Ba chế: ❍ AIMD: additive increase-multiplicative decrease ❍ ❍ slow start Đàm phán sau kiện timeout Chương 4-Giao thức TCP 3-39 TCP Slow Start (1/2) ❒ Khi bắt đầu, CongWin = MSS ❍ ❍ Ví dụ: MSS = 500 bytes RTT = 200 msec Tốc độ khởi động = 20 kbps ❒ Băng thông khả dụng có lẻ lớn nhiều so với MSS/RTT ❍ Muốn nhanh chóng đạt tốc độ cao Chương 4-Giao thức TCP 3-40 TCP Slow Start (2/2) ❒ Gia tăng tốc độ nhanh ❍ ❍ Gấp đôi CongWin sau RTT Được thực sau lần nhận ACK RTT chóng theo hàm mũ phát kiện data đầu tiên: Host A Host B segmen t segmen ts segmen ts ❒ Tóm lại: tốc độ ban đầu chậm tăng nhanh theo hàm mũ time Chương 4-Giao thức TCP 3-41 Hiệu chỉnh (1/2) Hiệu chỉnh cửa sổ nghẽn tốc độ tăng kích thước tùy theo triệu chứng (sự kiện thị) nghẽn ❒ Sau ACK trùng: ❍ CongWin giảm 1/2 ❍ Sau window tăng tuyến tính ❒ Sau kiện timeout: ❍ CongWin = MSS; ❍ window tăng theo hàm mũ ❍ Đến ngưỡng (Threshold) tăng tuyến tính Lý ACK trùng có lẻ mạng cịn có khả chuyển phát segment timeout tín hiệu tình trạng nghẽn Chương 4-Giao thức TCP 3-42 Hiệu chỉnh (2/2) Câu hỏi đặt ra: nên chuyển từ tăng theo hàm mũ sang tăng theo tuyến tính? Khi CongWin đạt 1/2 giá trị trước có timeout xảy Thực hiện: ❒ Dùng ngưỡng (Threshold) ❒ Khi có kiện nghẽn, gán Threshold = CongWin/2 (giá trị cửa sổ nghẽn hành trước có timeout) Chương 4-Giao thức TCP 3-43 Tóm tắt giải thuật kiểm soát nghẽn TCP ❒ Khi CongWin < Threshold, máy phát chạy slow- start , cửa sổ tăng nhanh theo hàm mũ ❒ Khi CongWin > Threshold, máy phát chạy theo congestion-avoidance, cửa sổ tăng tuyến tính ❒ Khi có ACK trùng nhau, gán ngưỡng 1/2 cửa sổ hành gán lại cửa sổ ngưỡng (=1/2 cửa sổ hành ❒ Khi có timeout gán ngưỡng CongWin/2 gán lại CongWin = MSS Chương 4-Giao thức TCP 3-44 Chương 4-Giao thức TCP 3-45 HẾT CHƯƠNG Chương 4-Giao thức TCP 3-46 ... t a 3, d CK =4 Nhận 'C' truyền lại ‘C’ Seq =4 3, ACK =80 Giả sử client bắt đầu với 42 Server bắt đầu với 79 time Chương 4- Giao thức TCP 3-6 Tham số RTT Timeout (1) Giá trị timeout? Tính RTT? ❒... tuyến tính ❒ Khi có ACK trùng nhau, gán ngưỡng 1/2 cửa sổ hành gán lại cửa sổ ngưỡng (=1/2 cửa sổ hành ❒ Khi có timeout gán ngưỡng CongWin/2 gán lại CongWin = MSS Chương 4- Giao thức TCP 3 -44 Chương. .. CongWin/2 gán lại CongWin = MSS Chương 4- Giao thức TCP 3 -44 Chương 4- Giao thức TCP 3 -45 HẾT CHƯƠNG Chương 4- Giao thức TCP 3 -46