Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
0,93 MB
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 Nguyễn Việt Long Hà Nội, 10/2021 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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ớ,… 1.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 download by : skknchat@gmail.com 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 soá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 2.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 đế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ồ download by : skknchat@gmail.com 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 3.Đ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 download by : skknchat@gmail.com vấn đề TCP cung cấp dịch vụ kiểm soát lưu lượng (flow control), thực chất trình làm tương thích tốc độ gửi/nhận Để kiểm số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 4.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 download by : skknchat@gmail.com 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 toán Nguyên nhân chi phí tắc nghẽn 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 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 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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