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 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG 1 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
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 : B18DCVT288 Mai Quang Thái : B18DCVT392 Nguyễn Thế Huy : B18DCVT200 Nguyễn Việt Long : B18DCVT264 Hà Nội, 10/2021 MỤC LỤC I Tổng quan giao thức TCP Cấu trúc đoạn tin TCP 2 Truyền liệu tin cậy 3 Điều khiển luồng 4 Quản lý kết nối 4.1 Thiết lập kết nối 4.2 Giải phóng kết nối II Các nguyên tắc kiểm soát tắc nghẽn Nguyên nhân chi phí tắc nghẽn 2.Các cách tiếp cận để kiểm soát tắc nghẽn 11 III Điều khiển tắc nghẽn TCP 13 Khái niệm điều khiển tắc nghẽn 13 TCP Congestion Control (Điều khiển tắc nghẽn TCP) 13 2.1 Classic TCP Congestion Control (Kiểm soát tắc nghẽn TCP cổ điển) 13 2.2 Làm để người gửi TCP giới hạn tốc độ mà đưa lưu lượng truy cập vào kết nối mình? 14 2.3 Làm để người gửi TCP nhận thấy có tắc nghẽn đường dẫn đích? 14 2.4 Người gửi nên sử dụng thuật toán để thay đổi tốc độ gửi 16 TCP Congestion Control: Retrospective (Điều khiển tắc nghẽn TCP: Hồi cứu) 20 TCP Cubic 21 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ễ) 23 Explicit Congestion Notification (Thông báo tắc nghẽn rõ ràng) 24 Delay-based Congestion Control (Kiểm soát tắc nghẽn dựa độ trễ) 25 Tài liệu tham khảo : 26 I Tổng quan giao thức TCP Giao thức TCP 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 Đặ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 Đ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) Hình 1: Cấu trúc đoạn tin TCP 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 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 khơng thể đế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 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 q 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 Các hành động đến từ bên nhận tóm tắt sau: Bên gửi Bên nhận Đoạn tin đến có số thứ tự số thứ tự Đợi thời gian định mong muốn Tất liệu đến số thứ khơng có đoạn tin gửi ACK tự mong muốn biên nhận với số biên nhận số thứ tự Khơng có khoảng trống liệu đoạn tin đến trước chờ + nhận Đoạn tin đến có số thứ tự số thứ tự Ngay gửi ACK 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ó Ngay gửi ACK trùng lặp số thứ tự cao số thứ tự mong số thứ tự đoạn tin mong muốn Phát có khoảng trống muốn nhận liệu Đoạn tin đến lấp đầy phần Ngay gửi ACK biên nhận toàn trống liệu nhận cho khoảng đoạn liệu thứ tự lớn nhận 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 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 vấn đề TCP cung cấp dịch vụ kiểm soá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 Để 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 cịn 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 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 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 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 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 Đó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ủ + II Các nguyên tắc kiểm soát tắc nghẽn 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 tắ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 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 soá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 tốn Ngun nhân chi phí tắc nghẽn Bắt đầu kiểm soá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 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: 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 độ 𝜆in byte / giây Những liệu nguyên theo nghĩa đơn vị 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 λin 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 độ λin 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 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 Đạt thông lượng R/2 cho kết nối thực điều tốt, liên kết sử dụng đầy đủ việc phân phối gói đến đích chúng Tuy nhiên, đồ thị bên phải Hình 3.44 cho thấy hệ việc vận hành lực liên kết gần Khi tốc độ gửi tiếp cận R/2 (từ bên trái), độ trễ trung bình ngày lớn Khi tốc độ gửi vượt R/2, số lượng gói tin xếp hàng trung bình định tuyến khơng bị giới hạn độ trễ trung bình nguồn đích trở nên vơ hạn (giả sử kết nối hoạt động tốc độ gửi khoảng thời gian vơ hạn có sẵn số lượng vơ hạn đệm) Do đó, hoạt động thơng lượng tổng hợp gần R lý tưởng từ quan điểm thông lượng, lại lý tưởng từ quan điểm trễ Ngay kịch lý tưởng hóa (cực kỳ) này, chúng tơi phát chi phí mạng bị tắc nghẽn - độ trễ xếp hàng lớn xảy tốc độ gói đến gần khả liên kết Tình 2: Hai người gửi định tuyến có đệm hữu hạn Bây sửa đổi chút kịch theo hai cách sau (xem Hình 3.45) Đầu tiên, số lượng đệm định tuyến giả định hữu hạn Hệ giả định giới thực gói tin bị loại bỏ đến đệm đầy Thứ hai, giả định kết nối đáng tin cậy Nếu gói chứa phân đoạn cấp độ truyền tải bị loại bỏ định tuyến, người gửi cuối truyền lại Bởi gói tin truyền lại, nên phải cẩn thận với việc sử dụng thuật ngữ tốc độ gửi Cụ thể, biểu thị lại tốc độ ứng dụng gửi liệu gốc vào socket λin byte / giây Tốc độ mà lớp truyền tải gửi phân đoạn (chứa liệu gốc liệu truyền lại) vào mạng ký hiệu λ’in byte / giây λ’in gọi tải cung cấp cho mạng Hiệu suất thực kịch phụ thuộc mạnh mẽ vào cách truyền lại thực Đầu tiên, xem xét trường hợp phi thực tế Máy chủ A cách (Kỳ diệu!) Xác định xem đệm có trống định tuyến hay khơng gửi gói đệm trống Trong trường hợp này, không xảy mát, λin lamda′in thông lượng kết nối λin Trường hợp thể Hình 3.46 (a) Từ quan điểm thơng lượng, hiệu suất lý tưởng — thứ gửi nhận Lưu ý tốc độ gửi trung bình máy chủ lưu trữ khơng thể vượt R / trường hợp này, việc gói cho khơng xảy (Một lần nữa, giả định phức tạp Tuy nhiên, máy chủ gửi đặt thời gian chờ đủ lớn để đảm bảo gói tin chưa xác nhận bị mất.) Trong trường hợp này, hiệu suất trơng giống thể Hình 3.46 (b) Để đánh giá cao xảy đây, xem xét trường hợp tải cung cấp, lamda′in (tốc độ truyền liệu gốc cộng với truyền lại), R / Theo Hình 3.46 (b), giá trị tải cung cấp, tốc độ liệu gửi đến ứng dụng người nhận R / Do đó, số 0,5R đơn vị liệu truyền, 0,333R byte / giây (trung bình) liệu gốc 0,166R byte / giây (trung bình) liệu truyền lại Chúng tơi thấy chi phí khác mạng bị tắc nghẽn— người gửi phải thực truyền lại để bù đắp cho việc bị rớt (bị mất) gói tràn đệm Cuối cùng, xem xét trường hợp người gửi hết thời gian sớm truyền lại gói tin bị trễ hàng đợi chưa bị Trong trường hợp này, gói liệu gốc liệu truyền lại đến người nhận Tất nhiên, người nhận cần gói tin loại bỏ việc truyền tải Trong trường hợp này, công việc thực định tuyến việc chuyển tiếp truyền lại gói tin gốc bị lãng phí, người nhận nhận gốc gói tin Thay vào đó, định tuyến nên sử dụng khả truyền liên kết để gửi gói tin khác Đây chi phí khác mạng bị tắc nghẽn — người gửi phải truyền lại không cần thiết đối mặt với chậm trễ khiến định tuyến sử dụng băng thông liên kết để chuyển tiếp khơng cần thiết gói tin Hình 3.46 (c) cho thấy thơng lượng so với tải cung cấp gói định tuyến giả định chuyển tiếp (trung bình) hai lần Vì gói chuyển tiếp hai lần, thơng lượng có giá trị tiệm cận R/4 tải cung cấp tiếp cận R/2 Tình 3: Bốn người gửi, Bộ định tuyến có đệm hữu hạn Đường dẫn nhiều cửa hàng để kiểm soát tắc nghẽn áp dụng thực tế thảo luận kiến trúc mạng cụ thể giao thức kiểm soát tắc nghẽn thể cách tiếp cận Ở cấp độ cao nhất, phân biệt phương pháp tiếp cận kiểm soát tắc nghẽn cách liệu lớp mạng có cung cấp hỗ trợ rõ ràng cho lớp truyền tải cho mục đích kiểm sốt tắc nghẽn hay khơng: • Kiểm sốt tắc nghẽn đầu cuối Trong cách tiếp cận end-to-end để kiểm soát tắc nghẽn, lớp mạng không cung cấp hỗ trợ rõ ràng cho lớp truyền tải cho mục đích kiểm sốt tắc nghẽn Ngay diện tắc nghẽn mạng phải suy hệ thống đầu cuối dựa hành vi mạng quan sát (ví dụ: gói mát chậm trễ) Chúng ta thấy TCP thực cách tiếp cận endto-end để kiểm sốt tắc nghẽn, lớp IP khơng bắt buộc phải cung cấp phản hồi cho máy chủ tắc nghẽn mạng Mất phân đoạn TCP (như thời gian chờ nhận ba xác nhận trùng lặp) coi dấu hiệu tắc nghẽn mạng TCP giảm kích thước cửa sổ tương ứng Chúng tơi thấy đề xuất gần kiểm soát tắc nghẽn TCP sử dụng độ trễ phân đoạn ngày tăng dấu hiệu việc gia tăng tắc nghẽn mạng • Kiểm sốt tắc nghẽn có hỗ trợ mạng Với tính kiểm soát tắc nghẽn hỗ trợ mạng, định tuyến cung cấp phản hồi rõ ràng cho người gửi / người nhận trạng thái tắc nghẽn mạng Phản hồi đơn giản bit tắc nghẽn liên kết — cách tiếp cận thực IBM SNA ban đầu [Schwartz 1982], DEC DECnet [Jain 1989; Kiến trúc Ramakrishnan 1990] kiến trúc mạng ATM [Black 1995] Phản hồi tinh vi Ví dụ, điều khiển tắc nghẽn ATM Available Bite Rate (ABR), định tuyến thông báo cho người gửi tốc độ gửi máy chủ tối đa mà (bộ định tuyến) hỗ trợ liên kết gửi Như nói trên, phiên Internet mặc định IP TCP áp dụng phương pháp tiếp cận end-to-end hướng tới kiểm soát tắc nghẽn Tuy nhiên, thấy gần hơn, IP TCP tùy chọn triển khai kiểm soát tắc nghẽn mạng hỗ trợ Đối với kiểm sốt tắc nghẽn có hỗ trợ mạng, thông tin tắc nghẽn thường đưa trở lại từ mạng tới người gửi theo hai cách, thể Hình 3.49 Phản hồi trực tiếp gửi từ định tuyến mạng đến người gửi Hình thức thơng báo thường có dạng gói thơng báo nghẹt thở (về "Tơi bị tắc nghẽn!") Hình thức thơng báo thứ hai phổ biến xảy định tuyến đánh dấu / cập nhật trường gói truyền từ người gửi đến người nhận để tắc nghẽn Khi nhận gói đánh dấu, người nhận thông báo cho người gửi dấu hiệu tắc nghẽn Hình thức thơng báo sau toàn thời gian 12 III Điều khiển tắc nghẽn TCP - Khái niệm điều khiển tắc nghẽn 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 tầng mạng tầng IP khơng cung cấp 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 Congestion Control (Kiểm soát tắc nghẽn TCP cổ điển) Phương pháp TCP thực yêu cầu người gửi giới hạn tốc độ gửi lưu lượng truy cập vào kết nối Nếu người gửi TCP nhận thấy có tắc nghẽn đường truyền, người gửi TCP tăng tốc độ gửi, người gửi nhận thấy có tắc nghẽn dọc theo đường dẫn, người gửi giảm tốc độ gửi Nhưng cách tiếp cận đặt ba câu hỏi : +) Đầu tiên, làm để người gửi TCP giới hạn tốc độ mà gửi lưu lượng truy cập vào kết nối mình? +) Thứ hai, làm để người gửi TCP nhận thấy có tắc nghẽn đường truyền bên nhận gửi? +) Và thứ ba, người gửi nên sử dụng thuật toán để thay đổi tốc độ gửi ? 13 2.2 Làm để người gửi TCP giới hạn tốc độ mà đưa lưu lượng truy cập vào kết nối mình? Trước tiên, kiểm tra cách người gửi TCP giới hạn tốc độ gửi lưu lượng truy cập vào kết nối LastByteSent : Dữ liệu gửi LastByteAcked : Dữ liệu được xác nhận Cwnd (Cửa sổ tắc nghẽn) : số lượng liệu tối đa mà người gửi gửi qua kết nối Rwnd (Cửa sổ nhận) : độ lớn vùng đệm rỗi phía nhận Cụ thể để tránh xảy tắc nghẽn, số lượng liệu chưa xác nhận bên gửi không vượt mức tối thiểu cwnd rwnd, nghĩa là: LastByteSent – LastByteAcked