Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
281,54 KB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG BÁO CÁO TIỂU LUẬN BÁO HIỆU VÀ ĐIỀU KHIỂN VÀ KẾT NỐI ĐỀ TÀI: KIỂM SOÁT TẮC NGHẼN TRONG GIAO THỨC TCP Giảng viên: Hồng Trọng Minh Nhóm 13 Lê Quang Minh Mai Quang Thái Nguyễn Thế Huy : B18DCVT288 : B18DCVT392 : B18DCVT200 : B18DCVT264 Nguyễn Việt Long Hà Nội 10/2021 I MỤC LỤC II I Tổng quan giao thức TCP Giao thức TCP III TCP giao thức tầng vận tải cung cấp dịch vụ truyền liệu tin cậy, sử dụng nhiều nguyên lý để đảm bảo truyền tính tin cậy: phát lỗi, đánh số thứ tự đoạn tin, chế xác nhận Giáo thức thuộc loại kết nối có hướng trước gửi liệu lớp ứng dụng, phải có thủ tục “bắt tay” nghĩ chúng phải gửi số đoạn tin đặc biệt để xác định tham số đảm bảo cho trình truyền liệu IV Đặc điểm - Định hướng kết nối: trước truyền liệu phải thực thủ tục thiết lập liên kết, sau truyền liệu xong hai bên hai bên gửi tín hiệu yêu cầu huỷ bỏ liên kết - Đánh số tuần tự: đoạn tin trước gửi phải đánh số tuần tự, dựa vào chế mà bên nhận xếp lại đoạn tin xác đồng thời phát đoạn tin bị thất lạc - Đảm bảo độ tin cậy: Lỗi xảy đoạn tin bị thất lạc nội dung đoạn tin bị thay đổi Trong hai trường hợp, TCP yêu cầu gửi lại - Điều khiển lưu lượng: lực xử lý máy tính có hạn định phụ thuộc tốc độ CPU, dung lượng nhớ, tốc độ đọc/ghi thiết bị lưu trữ, cần có chế điều khiển lưu lượng để bên nhận kịp xử lý đoạn tin gửi đến tránh tình trạng gói tin, tràn nhớ, Cấu trúc đoạn tin TCP V Đoạn tin giao thức TCP bao gồm trường: thông tin điều khiển liệu lớp ứng dụng Khi cần gửi tập tin lớn TCP chia thành đoạn tin có kích thước nhỏ kích thước tối đa đoạn liệu (MMS-Maximum Segment Size) VI 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 VII Source Port VIII IX HLEN reserved N s Destination Port Sequence Number Acknowledgment Number Control Bits Window N X - Source Port, Destination Port: trường số liệu cổng nguồn, số hiệu cổng đích để thực dịch vụ ghép/phân kênh liệu cho ứng dụng lớp - Sequence Number, Acknowledgement Number: trường số thứ tự SN 32 bit trường số biên nhận AN 32 bit hai bên gửi, nhận sử dụng việc cung cấp dịch vụ truyền liệu tin cậy - Leng Field: trường độ dài tiêu đề bit xác định độ dài phần thông tin điều khiển (đơn vị bytes), độ dài thay đổi phụ thuộc trường Options, trường rỗng chiều dài 5x4=20 bytes - ECN: Explicit Congestion Notification: sử dụng điều khiển tắc nghẽn - bit điều khiển: bit ACK sử dụng giá trị đặt trường biên nhận Các bit RST, SYN FIN sử dụng việc thiết lập hay đóng kết nối Bit PSH bật có dấu hiệu yêu cầu bên nhận phải chuyển liệu lên tầng Bit URG báo hiệu liệu đoạn tin thực thể tầng bên gửi tạo “khẩn cấp” Byte cuối liệu khẩn cấp xác định trỏ liệu khẩn 16 bit (ptr to urgent data) TCP phải báo cho tầng biết có liệu khẩn đặt trỏ vào cuối liệu khẩn - Window: trường độ lớn cửa sổ 16 bit sử dụng để kiểm sốt lưu lượng, số lượng byte liệu tối đa mà bên nhận chấp nhận - Checksumn: giá trị kiểm tra lỗi, tính phần bù tổng chuỗi 16 bit - Urgent Pointer: Vị trí byte cuối liệu khẩn cấp - Options: trường thay đổi tuỳ ý, sử dụng để bên gửi bên nhận thương lượng giá trị MMS giá trị gia tăng cửa sổ mạng cao tốc, lựa chọn nhãn thời gian Truyền liệu tin cậy XI Giao thức IP truyền gói tin mà khơng đảm bảo độ xác, thứ tự độ tồn vẹn liệu Các gói tin bị tràn định tuyến đến đích, đến sai thứ tự bit tron gói tin bị thay đổi Các đoạn liệu đặt gói tin IP để truyền qua mạng hồn tồn bi thay đổi giá trị Giao thức TCP tạo đường truyền liệu tin cậy giao thức IP không tin cậy Dịch vụ truyền liệu tin cậy TCP đảm bảo dịng liệu tới tiến trình nhận khơng có lỗi, liên tục, không trùng lặp theo thứ tự, nghĩa dòng byte nhận giống hệt dòng byte gửi TCP sử dụng chế phối hợp số tuần tự, xác nhận số ACK đồng hồ xác định thời gian hạn đoạn tin cần phải phản hồi Giao thức TCP biên nhận cho liệu nhận xác cách gửi lại số nhận đoạn tin chờ nhận (số đoạn tin nhận + 1) TCP thực việc gửi liên tục theo chế đường ống giúp bên gửi gửi nhiều đoạn tin lúc mà chưa cần biên nhận Cơ chế cho phép nâng cao đáng kể hiệu suất đường truyền, số lượng tối đa đoạn tin gửi chưa cần biên nhận phụ thuộc vào chế kiểm soát lưu lượng kiểm soát tắc nghẽn TCP Giả thiết kết nối TCP máy A B, liệu truyền từ A đến B Tại máy A, TCP lấy liệu tầng ứng dụng, đóng gói đoạn liệu chuyển cho tầng mạng Ngay sau chuyển đoạn tin cho tầng mạng, TCP khởi động đồng hồthời gian cho đoạn tin Thời gian đợi kết thúc mà chưa nhận biên nhận cho đoạn tin gửi sinh ngắt thời gian, máy A phải xử lý cách truyền lại đoạn tin tạo lên ngắt thời gian XIII Nhận đoạn tin chứa giá trị trường biên nhận ACK hợp lệ, thực thể TCP phía gửi phải định ACK lần nhận tức biên nhận cho đoạn tin gửi chưa biên nhận, ACK trùng lặp (biên nhận lại gói tin biên nhận) Với ACK bên gửi biết tất đoạn tin có số thứ tự không vượt giá trị biên nhận vừa nhạn được nhận bên phía nhận Khi đó, bên gửi cập nhật biến trạng thái TCP kiểm soát số thứ tự đoạn tin cuối mà cho nhận xác theo thứ tự phía nhận XIV. Các hành động đến từ bên nhận tóm tắt sau: XII Khi bên nhận TCP nhận đoạn tin có số thứ tự lớn số thứ tự thứ tự mong muốn, phát có đoạn trống dịng liệu tức thiếu đọan tin Giao thức TCP khơng sử dụng biên nhận phủ định nên biên nhận lại đoạn tin thứ tự cuối mà nhận (tạo ACK trùng lặp) Nếu bên gửi TCP nhận ACK trùng lặp cho đoạn tin, cho đoạn tin sau đoạn tin biên nhận ba lần bị lỗi Trong trường hợp này, TCP thực chế truyền lại nhanh gửi lại đoạn tin trước đồng hồ thời gian đoạn tin lỗi thực ngắt Điều khiển luồng XV Bên gửi Đoạn tin đến có số thứ tự số thứ tự mong muốn Tất liệu đến số thứ tự mong muốn biên nhận Khơng có khoảng trống liệu nhận Đoạn tin đến có số thứ tự số thứ tự mong muốn Đoạn tin đến trước đợi gửi biên nhận Khơng có khoảng trống liệu nhận Đoạn tin không thứ tự đến, có số thứ tự cao số thứ tự mong muốn Phát có khoảng trống liệu Đoạn tin đến lấp đầy phần toàn trống liệu nhận Bên nhận Đợi thời gian định khơng có đoạn tin gửi ACK với số biên nhận số thứ tự đoạn tin đến trước chờ + Ngay gửi ACK Ngay gửi ACK trùng lặp số thứ tự đoạn tin mong muốn nhận Ngay gửi ACK biên nhận cho khoảng đoạn liệu thứ tự lớn nhận Khi kết nối TCP nhận đoạn liệu, đặt chúng vào vùng nhớ tạm thời gọi đệm nhận Tầng ứng dụng đọc liệu từ đệm này, sau giải phóng đệm cho đoạn tin Trong số tình huống, tiến trình chưa kịp đọc liệu đệm dẫn đến tình trạng tràn đệm Để giải quyếtvấn đề TCP cung cấp dịch vụ kiểm sốt lưu lượng (flow control), thực chất q trình làm tương thích tốc độ gửi/nhận XVII Để kiểm soát lưu lượng, TCP bên gửi sử dụng biến Receive window Đây giá trị mà bên nhận báo cho bên gửi biết độ lớn vùng đệm trống Trong kết nối hai hướng, phía kết nối có giá trị RW phân biệt Giá trị RW động có ngĩa thay đổi thời gian kết nối Quản lý kết nối XVIII TCP thuộc loại giao thức kết nối có hướng, kết nối phải thực qua ba giai đoạn: thiết lập liên kết, truyền liệu huỷ bỏ liên kết Để thiết lập huỷ bỏ liên kết, tiến trình TCP thiết bị đầu cuối người sử dụng phải trao đổi đoạn tin đặc biệt 4.1 Thiết lập kết nối XIX Bước 1: máy khách gửi phân đoạn đầu tiên, phân đoạn SYN chưa số trình tự khởi tạo sử dụng để đánh số byte liệu gửi từ nguồn đến đích Phân đoạn báo cho máy chủ biết máy khách muốn thiết lập kết nối với số tham số định Phân đoạn khơng chứa số xác nhận khơng định nghĩa kích thước cửa sổ Kích thước cửa sổ có hiệu lực phân đoạn chứa số xác nhận XX Bước 2: máy gửi phân đoạn thứ hai, phân đoạn SYN ACK Phân đoạn có hai mục đích: xác nhận nhận phân đoạn cách sử dụng cờ ACK trường số xác nhận, số xác nhận số trình tự khởi tạo máy khách + 1; hai phân đoạn sử dụng phân đoạn khởi tạo cho máy chủ, chứa số trình tự khởi tạo để đánh số byte gửi máy chủ tới máy khách Thực chất hai phân đoạn gộp XXI Bước 3: máy khách gửi phân đoạn thứ ba, phân đoạn ACK Xác nhận phân đoạn thứ hai sử dụng cờ ACK trường số xác nhận Số xác nhận số trình tự khởi tạo máy chủ cộng + Máy khách định nghĩa kích thước cửa sổ máy chủ Phân đoạn thứ ba gửi kèm theo liệu 4.2 Giải phóng kết nối XXII Đóng kết nối xuất phát từ phía bất kỳ, kết nối hướng đóng, phía truyền liệu hướng khác Có bước để đóng kết nối: 1, Máy khách gửi phân đoạn thứ nhất, phân đoạn FIN 2, Máy chủ gửi phân đoạn thứ 2, phân đoạn ACK để thông báo nhận phân đoạn FIN từ máy khách Phân đoạn sử dụng số xác nhận, số trình tự phân đoạn FIN + 3, Máy chủ tiếp tục gửi liệu hướng máy chủ-máy khách Khi khơng cịn liệu truyền nữa, gửi phân đoạn thứ ba phân đoạn FIN 4, Máy khách gửi phân đoạn thứ tư phân đoạn ACK, thông báo nhận phân đoạn FIN từ máy chủ Phân đoạn chứa số xác nhận, số trình tự phân đoạn FIN máy chủ + XVI II Các nguyên tắc kiểm soát tắc nghẽn XXIII Trên thực tế, mát gói tin lưu lượng mức đệm định tuyến mạng trở nên tắc nghẽn Truyền lại gói điều trị triệu chứng củatắc nghẽn mạng (mất lớp truyền tải cụ thể phân đoạn) không xử lý nguyên nhân gây tắc nghẽn mạng — nhiều nguồn cố gắng gửi liệu với tốc độ cao Để điều trị nguyên nhân gây tắc nghẽn mạng, cần có chế để điều chỉnh người gửi đối mặt với tình trạng tắc nghẽn mạng XXIV Trong phần này, xem xét vấn đề kiểm soát tắc nghẽn nội dung tổng quát, tìm cách hiểu tắc nghẽn điều xấu, tắc nghẽn mạng thể hiệu suất mà ứng dụng lớp nhận nhiều phương pháp tiếp cận thực để tránh phản ứng lại tắc nghẽn mạng Cái nghiên cứu chung kiểm sốt tắc nghẽn phù hợp vì, với truyền liệu đáng tin cậy nằm danh sách “top ten” vấn đề quan trọng việc nhập mạng Phần sau chứa nghiên cứu chi tiết kiểm soát tắc nghẽn TCP thuật toán Nguyên nhân chi phí tắc nghẽn XXV Bắt đầu kiểm sốt tắc nghẽn cách xem xét ba tình phức tạp gia tăng tắc nghẽn xảy Trong trường hợp, xem xét lý tắc nghẽn xảy từ đầu phải trả giá tắc nghẽn (về nguồn lực không sử dụng đầy đủ hiệu suất mà hệ thống cuối nhận được) Chúng không (chưa) tập trung vào cách phản ứng tránh tắc nghẽn thay tập trung vào vấn đề đơn giản hiểu điều xảy máy chủ tăng tốc độ truyền mạng trở nên tắc nghẽn XXVI Tình 1: Hai người gửi, định tuyến có đệm vơ hạn Chúng ta bắt đầu cách xem xét có lẽ kịch tắc nghẽn đơn giản có thể: Hai máy chủ (A B) có kết nối chia sẻ bước nhảy nguồn điểm đến, hình sau: XXVII XXVIII Unlimited shared output link buffers XXIX XXX Figure 3.43 ♦ Congestion scenario 1; Two connections sharing a single hop with iníinite buffers XXXI Giả sử ứng dụng máy chủ A gửi liệu vào kết nối (ví dụ: truyền liệu đến giao thức cấp độ truyền tải thông qua ổ cắm) mức trung bình tốc độ Tin byte / giây Những liệu nguyên theo nghĩa đơnvị liệu gửi vào ổ cắm lần Giao thức cấp độ truyền tải giao thức đơn giản Dữ liệu đóng gói gửi đi; khơng có lỗi khơi phục (ví dụ: truyền lại), kiểm sốt luồng, kiểm sốt tắc nghẽn thực Bỏ qua chi phí bổ sung thêm thông tin tiêu đề lớp vận chuyển lớp thấp hơn, tốc độ mà Máy chủ A cung cấp lưu lượng truy cập đến định tuyến trường hợp Lin byte / giây Máy chủ B hoạt động tương tự chúng tơi giả định đơn giản gửi với tốc độ Lin byte / giây Các gói từ Máy chủ A B qua định tuyến qua liên kết gửi chia sẻ dung lượng R Bộ định tuyến có đệm cho phép lưu trữ gói đến tỷ lệ gói đến vượt khả liên kết Trong kịch này, giả sử định tuyến có lượng khơng gian đệm vô hạn XXXII XXXIII Figure 3.44 ♦ Congeslion scenario 1: Throughput and delay as a íunction of host sending rate XXXIV XXXV Hình 3.44 vẽ biểu đồ hiệu suất kết nối Máy chủ A theo kịch thứ Biểu đồ bên trái vẽ thông lượng cho kết nối (số byte thứ hai người nhận) hàm tốc độ gửi kết nối Để gửi tỷ lệ từ đến R/2, thông lượng người nhận với mức gửi người gửi tỷ lệ — thứ người gửi gửi nhận người nhận với độ trễ hữu hạn Tuy nhiên, tốc độ gửi R/2, thông lượng R/2 Trên giới hạn thông lượng hệ việc chia sẻ dung lượng liên kết hai kết nối Liên kết đơn giản khơng thể chuyển gói đến người nhận trạng thái ổn định tỷ lệ vượt R/2 Bất kể Máy chủ A B đặt tốc độ gửi họ cao đến mức nào, họ không thấy thông lượng cao R/2 10 LXXXVI • Thăm dị băng thơng Với ACK đường dẫn từ nguồn đến đích không bị tắc nghẽn kiện mát đường dẫn bị tắc nghẽn, chiến lược TCP để điều chỉnh tốc độ truyền tăng tốc độ để đáp ứng với ACK đến kiện mát xảy ra, thời điểm đó, q trình truyền tỷ lệ giảm xuống Do đó, người gửi TCP tăng tốc độ truyền để thăm dị tốc độ bắt đầu tắc nghẽn, lùi lại từ tốc độ đó, sau bắt đầu thăm dị lại để xem tốc độ bắt đầu tắc nghẽn có thay đổi hay khơng Lưu ý mạng khơng có báo hiệu rõ ràng trạng thái tắc nghẽn — ACK kiện mát đóng vai trị tín hiệu ngầm định — người gửi TCP hoạt động thông tin cục không đồng từ người gửi TCP khác 2.4 Người gửi nên sử dụng thuật toán để thay đổi tốc độ gửi LXXXVII Với tổng quan kiểm soát tắc nghẽn TCP, chúng tơi xem xét chi tiết thuật toán kiểm soát tắc nghẽn TCP tiếng, mô tả lần [Jacobson 1988] tiêu chuẩn hóa [RFC 5681] Thuật tốn có ba thành phần chính: (1) Khởi động chậm (Slow start) (2) Tránh tắc nghẽn (Congestion Avoidnce) (3) Khôi phục nhanh (Fast Recovery) LXXXVIII Khởi động chậm tránh tắc nghẽn thành phần bắt buộc TCP, khác cách chúng tăng kích thước cwnd để đáp ứng với ACK nhận Chúng ta thấy việc khởi động chậm làm tăng kích thước cwnd nhanh (bất chấp tên gọi nó!) tránh tắc nghẽn LXXXIX Khôi phục nhanh phương pháp khuyến nghị, không bắt buộc, người gửi TCP 2.4.1 Slow Start (Khởi động chậm) XC Khi kết nối TCP bắt đầu, giá trị cwnd thường khởi tạo thành giá trị nhỏ MSS [RFC 3390], dẫn đến tốc độ gửi ban, đầu khoảng MSS / RTT Ví dụ: MSS = 500 byte RTT = 200 msec, tốc độ gửi ban đầu kết khoảng 20 kbps XCI Vì băng thơng khả dụng cho người gửi TCP lớn nhiều so với MSS / RTT, người gửi TCP muốn tìm lượng băng thơng khả dụng cách nhanh chóng Do đó, trạng thái khởi động chậm, giá trị cwnd MSS tăng MSS đoạn truyền ghi nhận lần 23 XCII XCIII Figure 3.50 ♦ TCP slow slart XCIV XCV Trong ví dụ Hình 3.50, TCP gửi phân đoạn vào mạng chờ xác nhận Khi xác nhận đến, người gửi TCP tăng cửa sổ tắc nghẽn lên MSS gửi hai phân đoạn có kích thước tối đa Các phân đoạn sau xác nhận, với người gửi tăng cửa sổ tắc nghẽn lên MSS cho phân đoạn xác nhận, đưa cửa sổ tắc nghẽn MSS, v.v Quá trình dẫn đến việc tăng gấp đôi tốc độ gửi RTT Do đó, tốc độ gửi TCP bắt đầu chậm tăng theo cấp số nhân trongquá trình truyền XCVI Nhưng tăng trưởng theo cấp số nhân kết thúc? XCVII +) Đầu tiên, có kiện mát (tức tắc nghẽn) thời gian chờ, người gửi TCP đặt giá trị cwnd thành bắt đầu lại trình khởi động chậm Nó đặt giá trị biến trạng thái thứ hai, ssthresh (viết tắt “ngưỡng khởi động chậm”) thành cwnd / — nửa giá trị giá trị cửa sổ tắc nghẽn phát tắc nghẽn XCVIII +) Cách thứ hai bắt đầu chậm kết thúc gắn trực tiếp với giá trị ssthresh Vì ssthresh nửa giá trị cwnd lần cuối phát tắc nghẽn, nên liều lĩnh tiếp tục nhân đơi cwnd đạt đến vượt qua giá trị ssthresh Do đó, giá trị cwnd ssthresh, trình khởi động chậm kết thúc TCP chuyển sang chế độ tránh tắc nghẽn 24 XCIX Như thấy, TCP tăng cwnd cách thận trọng độ chế tránh tắc nghẽn C +) Cách cuối mà khởi động chậm kết thúc phát ba ACK trùng lặp, trường hợp TCP thực truyền lại nhanh chuyển sang trạng thái khôi phục nhanh, thảo luận bên 2.4.2 Congestion Avoidance (Tránh tắc nghẽn) CI Khi chuyển sang trạng thái tránh tắc nghẽn, giá trị cwnd xấp xỉ nửa giá trị lần cuối gặp phải tắc nghẽn gần đến giá trị tắc nghẽn Do đó, thay tăng gấp đơi giá trị cwnd RTT, TCP áp dụng cách tiếp cận thận trọng tăng giá trị cwnd MSS / RTT [RFC 5681] Điều thực theo số cách Một cách tiếp cận phổ biến người gửi TCP tăng cwnd theo byte MSS (MSS / cwnd) xác nhận đến CII Ví dụ: MSS 1.460 byte cwnd 14.600 byte, 10 phân đoạn gửi RTT Mỗi ACK đến (giả sử ACK phân đoạn) tăng kích thước cửa sổ tắc nghẽn lên 1/10 MSS đó, giá trị cửa sổ tắc nghẽn tăng thêm MSS sau ACK tất 10 phân đoạn nhận CIII Nhưng gia tăng tuyến tính tính tránh tắc nghẽn (MSS / RTT) nên kết thúc? CIV Thuật toán tránh tắc nghẽn TCP hoạt động tương tự hết thời gian chờ xảy trường hợp khởi động chậm: Giá trị cwnd đặt thành MSS giá trị ssthresh cập nhật thành nửa giá trị cwnd kiện mát xảy Tuy nhiên, nhớ lại kiện mát xác nhận kiện ACK trùng lặp ba lần CV Trong trường hợp này, mạng tiếp tục phân phối số phân đoạn từ người gửi đến người nhận (như việc nhận ACK trùng lặp) CVI Vì vậy, hoạt động TCP loại kiện mát nghiêm trọng so với tổn thất định thời gian chờ: TCP giảm nửa giá trị cwnd (thêm MSS để có biện pháp tốt để tính đến ba ACK trùng lặp nhận được) ghi lại giá trị ssthresh nửa giá trị cwnd nhận ba ACK trùng lặp Trạng thái phục hồi nhanh sau nhập 2.4.3 Fast Recovery (Phục hồi nhanh) CVII Trong khôi phục nhanh, giá trị cwnd tăng thêm MSS cho ACK trùng lặp nhận cho phân đoạn bị khiến TCP vào trạng thái khôi phục nhanh CVIII Cuối cùng, ACK đến để thông báo phân đoạn bị thiếu, TCP vào trạng thái tránh tắc nghẽn sau xả bớt cwnd Nếu kiện thời gian chờ 25 xảy ra, khôi phục nhanh chuyển sang trạng thái khởi động chậm sau thực hành động tương tự khởi động chậm tránh tắc nghẽn: Giá trị cwnd đặt thành MSS giá trị ssthresh đặt thành nửa giá trị cwnd kiện mát xảy 26 CIX Khôi phục nhanh giải pháp khuyến nghị nên sử dụng, không bắt buộc TCP [RFC 5681] Điều thú vị phiên TCP, gọilà TCP Tahoe, cắt vô điều kiện cửa sổ tắc nghẽn thành MSS bước vào giai đoạn khởi động chậm sau kiện ACK biết nhờ thời gian chờ ba lần trùng lặp Phiên TCP, TCP Reno, tích hợp khả phục hồi nhanh CX CXI Fĩgure 3.52 * Evolutĩon QF TCP'5 congeslĩcm winJow [Tcĩhcie and Renữ) CXII CXIII Trong hình này, ngưỡng ban đầu MSS Trong tám vòng truyền đầu tiên, Tahoe Reno thực hành động giống hệt Cửa sổ tắc nghẽn tăng nhanh theo cấp số nhân khởi động chậm chạm ngưỡng vòng truyền thứ tư Cửa sổ tắc nghẽn sau tăng lên theo tuyến tính kiện ACK trùng lặp ba lần xảy ra, sau vòng truyền Lưu ý cửa sổ tắc nghẽn 12 * MSS kiện mát xảy Giá trị ssthresh sau đặt thành 0,5 * cwnd = * MSS CXIV Trong TCP Reno, cửa sổ tắc nghẽn đặt thành cwnd = * MSS sau phát triển tuyến tính CXV Trong TCP Tahoe, cửa sổ tắc nghẽn đặt thành MSS tăng theo cấp số nhân đạt đến giá trị ssthresh, thời điểm đó, phát triển tuyến tính 27 CXVI TCP Congestion Control: Retrospective (Điều khiển tắc nghẽn TCP: Hồi cứu) CXVII Sau sâu vào chi tiết khởi động chậm, tránh tắc nghẽn khôi phục nhanh, quay lại nhìn cách tổng quan Bỏ qua khoảng thời gian khởi động chậm ban đầu kết nối bắt đầu giả định tổn thất ba ACK trùng lặp khơng phải thời gian chờ, kiểm sốt tắc nghẽn TCP bao gồm tăng tuyến tính (cộng) cwnd MSS RTT sau giảm nửa cwnd kiện ACK trùng lặp ba lần 28 CXVIII CXIX CXX Vì lý này, kiểm sốt tắc nghẽn TCP thường gọi hình thức kiểm sốt tắc nghẽn cộng tính-tăng, đa phân tử (AIMD) Kiểm soát tắc nghẽn AIMD làm phát sinh hành vi “răng cưa” hiển thị Hình 3.53, minh họa độc đáo trực giác trước TCP “thăm dị” băng thơng — TCP tăng tuyến tính kích thước cửa sổ tắc nghẽn (và tốc độ truyền nó) xảy trùng lặp ACK ba lần Sau đó, giảm kích thước cửa sổ tắc nghẽn xuống hệ số hai sau lại bắt đầu tăng tuyến tính, thăm dị để xem liệu có thêm băng thơng khả dụng hay khơng? CXXI Thuật tốn AIMD TCP phát triển dựa lượng lớn thông tin chi tiết kỹ thuật thử nghiệm kiểm soát tắc nghẽn mạng hoạt động Mười năm sau phát triển TCP, phân tích lý thuyết cho thấy thuật tốn kiểm sốt tắc nghẽn TCP đóng vai trị thuật tốn tối ưu hóa khơng đồng phân tán, dẫn đến số khía cạnh quan trọng hiệu suất mạng người dùng tối ưu hóa đồng thời TCP Cubic CXXII Với cách tiếp cận cộng - tăng, nhân - giảm TCP Reno để kiểm sốt tắc nghẽn, người ta tự hỏi liệu có phải cách tốt để “thăm dị” tốc độ gửi gói ngưỡng gây gói hay khơng CXXIII Thật vậy, việc cắt giảm nửa tốc độ gửi (hoặc chí tệ hơn, giảm tốc độ gửi xuống gói RTT phiên TCP trước gọi TCP Tahoe) sau tăng chậm theo thời gian thận trọng Nếu trạng thái liên kết bị tắc nghẽn nơi xảy gói khơng thay đổi nhiều, nhanh chóng tăng tốc độ gửi để đạt gần với tốc độ gửi trước bị sau thăm dị băng thơng cách thận trọng Phương pháp đc gọi TCP CUBIC CXXIV TCP CUBIC khác chút so với TCP Reno Một lần nữa, cửa sổ 29 tắc nghẽn tăng lên nhận ACK giai đoạn khởi động chậm phục hồi nhanh cũ CUBIC thay đổi giai đoạn tránh tắc nghẽn, sau: 30 • Đặt wmax kích thước cửa sổ kiểm sốt tắc nghẽn TCP lần mát phát lần cuối đặt K thời điểm tương lai kích thước cửa sổcủa TCP CUBIC lại đạt đến wmax, giả sử khơng có tổn thất Một số tham số CUBIC điều chỉnh xác định giá trị K, nghĩa là, kích thước cửa sổ tắc nghẽn giao thức đạt đến Wmax nhanh • CUBIC làm tăng cửa sổ tắc nghẽn hàm lập phương khoảng cách thời điểm tại, t K Do đó, t xa K, kích thước cửa sổ tắc nghẽn tăng lớn nhiều so với t gần K Điều là, CUBIC nhanh chóng tăng tốc độ gửi TCP để đạt gần với tốc độ trước mất, Wmax, sau thăm dị cách thận trọng băng thơng tiếp cận Wmax • Khi t lớn K, quy tắc khối hàm ý cửa sổ tắc nghẽn CUBIC tăng nhỏ t gần K (tốt mức tắc nghẽn liên kết gây mát không thay đổi nhiều) sau tăng nhanh t vượt K (cho phép CUBIC nhanh chóng tìm điểm hoạt động mức độ tắc nghẽn liên kết gây mát thay đổi CXXV đáng kể) CXXVI Theo quy tắc này, hiệu suất lý tưởng hóa TCP Reno TCP CUBIC so sánh Hình 3.54, điều chỉnh từ [Huston 2017] Chúng ta thấy giai đoạn bắt đầu chậm kết thúc t0 Sau đó, mát tắc nghẽn xảy ti, t2 t3, CUBIC nhanh chóng tăng lên gần với Wmax (do tận hưởng thơng lượng tổng thể nhiều TCP Reno).Chúng ta thấy đồ thị cách TCP CUBIC cố gắng trì luồng lâu tốt ngưỡng tắc nghẽn (không xác định người gửi) Lưu ý t3, mức tắc nghẽn có lẽ giảm đáng kể, cho phép TCP Reno TCP CUBIC đạt tốc độ gửi cao Wmax CXXVII TCP CUBIC gần triển khai rộng rãi Trong phép đo thực vào khoảng năm 2000 máy chủ Web phổ biến cho thấy gần tất chạy số phiên TCP Reno [Padhye 2001], phép đo gần 5000 máy chủ Web phổ biến cho thấy gần 50% chạy 31 phiên TCP CUBIC [Yang 2014 ], phiên mặc định TCP sử dụng hệ điều hành Linux 32 CXXVIII 4.1 Macroscopic Description of TCP Reno Throughput (Mô tả macro Thông lượng TCP Reno) CXXIX Với hành vi cưa TCP Reno, bạn nên xem xét thông lượng trung bình (tức tốc độ trung bình) kết nối TCP Reno tồn lâu dài Trong phân tích này, chúng tơi bỏ qua giai đoạn bắt đầu chậm xảy sau kiện hết thời gian chờ (Các giai đoạn thường ngắn, người gửi phát triển khỏi giai đoạn nhanh theo cấp số nhân.) CXXX Trong khoảng thời gian cụ thể, tốc độ TCP gửi liệu chức cửa sổ tắc nghẽn RTT Khi kích thước cửa sổ w byte thời gian RTT giây, tốc độ truyền TCP khoảng w / RTT TCP sau thăm dị băng thơng bổ sung cách tăng w MSS RTT xảy kiện mát Ký hiệu W giá trị w xảy kiện mát Giả sử RTT W gần không đổi suốt thời gian kết nối, tốc độ truyền TCP nằm khoảng từ W / (2 • RTT) đến W / RTT CXXXI Những giả định dẫn đến mơ hình vĩ mơ đơn giản hóa cao cho hành vi ổn định TCP Mạng bỏ gói tin khỏi kết nối tốc độ tăng lên W / RTT; Sau đó, tốc độ bị cắt nửa sau tăng MSS / RTT RTT đạt W / RTT lần Quá trình lặp lặp lại nhiều lần Vì thông lượng TCP (nghĩa tốc độ) tăng tuyến tính hai giá trị cực đoan, chúng tơi có thơng lượng trung bình kết nối = “——■”• CXXXII Sử dụng mơ hình lý tưởng hóa cao cho động thái ổn định TCP, rút biểu thức thú vị liên quan đến tỷ lệ kết nối với băng thông khả dụng [Mathis 1997] Sự suy diễn nêu tập nhà Một mơ hình phức tạp thực nghiệm đồng ý với liệu đo [Padhye 2000] IV Network-Assisted Explicit Congestion Notification and Delayed-based Congestion Control (Thông báo tắc nghẽn rõ ràng mạng hỗ trợ kiểm soát tắc nghẽn dựa độ trễ) CXXXIII Kể từ tiêu chuẩn hóa ban đầu khởi động chậm tránh tắc nghẽn vào cuối năm 1980 [RFC 1122], TCP triển khai hình thức kiểm sốt tắc nghẽn đầu cuối mà nghiên cứu: người gửi TCP không nhận báo tắc nghẽn rõ ràng từ mạng thay vào đó, gây tắc nghẽn thơng qua việc gói quan sát Gần hơn, phần mở rộng cho IP TCP [RFC 3168] đề xuất, thực triển khai cho phép mạng báo hiệu rõ ràng tắc nghẽn cho người gửi người nhận TCP Ngoài ra, số biến thể tắc nghẽn TCP giao thức điều khiển đề xuất để suy tắc nghẽn cách sử dụng độ trễ gói đo Chúng ta xem xét kiểm soát tắc nghẽn mạng hỗ trợ dựa 33 Explicit Congestion Notiíication (Thơng báo tắc nghẽn rõ ràng) I ECM Écho bil SỄt in TCÍ ACK ụgnỊẹrit Húit A *— IECN Echũ = l Hùit B ECN bíts SỂt In íp ilátdgiủirt hẺádớr at íongỂitsd íũuler Fìgure 3,55 + Expliciỉ Conge-stĩon Nolĩỉĩcatĩon: netv/ork-assĩsled Congestion cũntrol độ trễ phần CXXXIV CXXXV Thông báo tăc nghẽn rõ ràng [RFC 3168] hình thức kiêm sốt tăc nghẽn mạng hỗ trợ thực Internet Như Hình 3.55, TCP IP có liên quan Ở lớp mạng, hai bit (tổng thê có bốn giá trị có thê có) trường loại dịch vụ tiêu đề sơ đồ IP sử dụng cho ECN CXXXVI Một cài đặt bit ECN định tuyến sử dụng đê định tuyến gặp cố tăc nghẽn CXXXVII Dấu hiệu tăc nghẽn sau chuyên sơ đồ IP đánh dấu đến máy chủ đích, sau thơng báo cho máy chủ gửi, thê Hình 3.55 RFC 3168 khơng cung cấp định nghĩa thời điêm định tuyến bị tăc nghẽn; định lựa chọn cấu hình nhà cung cấp định tuyến thực nhà khai thác mạng định CXXXVIII Tuy nhiên, trực giác bit báo tăc nghẽn có thê thiết lập đê báo hiệu khởi đầu tăc nghẽn trình gửi trước mát thực xảy Cài đặt thứ hai bit ECN máy chủ gửi sử dụng đê thông báo định tuyến mà người gửi người nhận có khả ECN có khả thực hành động đê đáp ứng với tăc nghẽn mạng ECN định 34 CXXXIX Như Hình 3.55, TCP máy chủ nhận nhận báo tăc nghẽn ECN thông qua sơ đồ liệu nhận, TCP máy chủ nhận thông báo cho TCP máy chủ gửi báo tăc nghẽn cách đặt ECE (Tiếng vọng thông báo tăc nghẽn rõ ràng) bit phân đoạn TCP ACK từ người nhận đến người gửi Người gửi TCP, đến lượt nó, phản ứng với ACK với báo tăc nghẽn cách giảm nửa cửa sổ tăc nghẽn, phản ứng với phân đoạn bị cách sử dụng truyền lại nhanh đặt bit CWR (Cửa sổ tăc nghẽngiảm) tiêu đề lần truyền Phân đoạn người gửi đến người nhận TCP CXL Các giao thức lớp truyền tải khác ngồi TCP sử dụng ECN báo hiệu lớp mạng CXLI Giao thức kiểm soát tắc nghẽn Datagram (DCCP) [RFC 4340] cung cấp dịch vụ không đáng tin cậy giống UDP kiểm soát tắc nghẽn, chi phí thấp sử dụng ECN CXLII DCTCP (Trung tâm Dữ liệu TCP) [Alizadeh 2010, RFC 8257] DCQCN (Thông báo tắc nghẽn lượng tử hóa Trung tâm Dữ liệu) [Zhu 2015] thiết kế đặc biệt cho mạng trung tâm liệu, sử dụng ECN CXLIII Các phép đo Internet gần cho thấy việc triển khai khả ECN ngày tăng máy chủ phổ biến định tuyến dọc theo đường dẫn đến máy chủ [Kuhlewind 2013] Delay-based Congestion Control (Kiểm sốt tắc nghẽn dựa độ trễ) CXLIV Nhớ lại thảo luận ECN định tuyến bị tắc nghẽn đặt bit báo tắc nghẽn để báo hiệu cố tắc nghẽn bắt đầu cho người gửi trước đệm đầy khiến gói bị rơi định tuyến Điều cho phép người gửi giảm tốc độ gửi họ sớm hơn, hy vọng trước gói, tránh gói truyền lại tốn Cách tiếp cận tránh tắc nghẽn thứ hai áp dụng cách tiếp cận dựa độ trễ để chủ động phát khởi đầu tắc nghẽn trước xảy gói CXLV Trong TCP Vegas [Brakmo 1995], người gửi đo lường RTT đường dẫn đến nguồn đích cho tất gói thừa nhận Gọi RTTmin giá trị tối thiểu phép đo người gửi; điều xảy đường dẫn khơng bị chặn gói gặp phải độ trễ xếp hàng tối thiểu CXLVI Nếu kích thước cửa sổ tắc nghẽn TCP Vegas cwnd, tốc độ thông lượng chưa kiểm tra cwnd / RTTmin CXLVII Trực giác đằng sau TCP Vegas thông lượng thực tế người gửi đo lường gần với giá trị này, tốc độ gửi TCP tăng lên (theo định nghĩa theo phép đo) đường dẫn chưa tắc nghẽn Tuy nhiên, thông lượng thực tế người gửi đo nhỏ đáng kể so với tốc độ thông lượng không bị tắc nghẽn, 35 đường dẫn bị tắc nghẽn người gửi Vegas TCP giảm tốc độ gửi CXLVIII Giao thức kiểm soát tắc nghẽn BBR [Cardwell 2017] xây dựng dựa ý tưởng TCP Vegas kết hợp chế cho phép cạnh tranh công với người gửi TCP BBR [Cardwell 2017] báo cáo vào năm 2016, Google bắt đầu sử dụng BBR cho tất lưu lượng TCP mạng B4 riêng [Jain 2013] kết nối trung tâm liệu Google, thay CUBIC Nó triển khai máy chủ Web Google YouTube CXLIX Các giao thức kiểm soát tắc nghẽn TCP dựa độ trễ khác bao gồm TIMELY cho mạng trung tâm liệu [Mittal' 2015], Compound TCP (CTPC) [Tan 2006] FAST [Wei 2006] cho mạng tốc độ cao đường dài 36 Tài liệu tham khảo : J F Kurose and K W Ross, Computer Networking: A Top-Down Approach (8th Edition) Mạng máy tính, Ths Nguyễn Xuân Anh Cơ sở kĩ thuật mạng truyền thông, PGS.TS Nguyễn Tiến Ban CL 37 ... Điều khiển tắc nghẽn TCP Khái niệm điều khiển tắc nghẽn LX Một chức quan trọng khác giao thức TCP chế kiểm soát tắc nghẽn Cơ chế TCP dựa vào thiết bị đầu cuối khơng dựa vào chế kiểm sốt tắc nghẽn. .. [RFC 3168] đề xuất, thực triển khai cho phép mạng báo hiệu rõ ràng tắc nghẽn cho người gửi người nhận TCP Ngoài ra, số biến thể tắc nghẽn TCP giao thức điều khiển đề xuất để suy tắc nghẽn cách... cho TCP thơng tin minh bạch có tắc nghẽn Kết nối TCP kiểm sốt tốc độ truyền cách giới hạn số lượng đoạn tin gửi chưa biên nhận TCP Congestion Control (Điều khiển tắc nghẽn TCP) 2.1 Classic TCP