HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG I
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
LỜI NÓI ĐẦU
Ngày nay mạng lưới viễn thông đã và đang ngày càng phát triển mạnh mẽ và rộng khắp trên thế giới. Điều đó đặt ra một bài toán đó là quản lý mạng viễn thông như thế nào để nó hoạt động một cách hiệu quả và đảm bảo được chất lượng dịch vụ của mạng. Đối với mạng Internet trước đây do nhu cầu khách hàng chưa cao, chủ yếu là sử dụng các dịch vụ truyền thống như truyền file, thư điện tử, dịch vụ telnet v.v . Do vậy mà dịch vụ Best Effort là rất hiệu quả và đảm bảo được chất lượng dịch vụ. Nhưng hiện nay với nhu cầu truyền đa phương tiện đang ngày càng phát triển nhanh chóng, điều đó đã làm xuất hiện các dịch vụ Intergrated Service và Differentiated Service. Khi các dịch vụ này ra đời thì yêu cầu về vấn đề định tuyến và tốc độ các router cũng phải được nâng cao. Điều đó cần thiết phải có một cơ chế quản lý mới và một kiến trúc mới để quản lý router tốt hơn. Để đáp ứng yêu cầu đó, “Kiến trúc CQS” đã ra đời và được ứng dụng trong mạng Internet ngày nay. Nội dung đồ án sẽ nghiên cứu đến kiến trúc mới này và một số “Ứng dụng của kiến trúc CQS trong vấn đề quản lý nghẽn trong mạng IP”. Đồ án cũng thực hiện lập trình mô phỏng xác định lượng băng thông cung cấp cho các luồng lưu lượng IP ưu tiên sử dụng thuật toán WFQ. Bố cục của Đồ án gồm năm chương như sau:
Chương I: Một số vấn đề tổng quan về mạng IP – Trình bày mô hình giao thức TCP/IP và các dịch vụ Best Effort, Intergrated Service, Differentiated Service.
Chương II: Chất lượng dịch vụ trong mạng IP – Trình bày các thông số chất lượng dịch vụ như: trễ, nghẽn, jitter, mất gói.
Chương III: Kiến trúc CQS – Trình bày vấn đề định tuyến trong mạng IP và kiến trúc CQS trong router.
Chương IV: Ứng dụng kiến trúc CQS cho quản lý nghẽn trong mạng IP – Trình bày các phương pháp quản lý nghẽn có sử dụng kiến trúc CQS.
Ngoài ra Đồ án cũng thực hiện lập trình mô phỏng xác định lượng băng thông cung cấp cho các luồng lưu lượng ưu tiên IP sử dụng thuật toán WFQ. Phần này không được đưa vào nội dung Đồ án mà được đưa ra ở một phần riêng.
MỤC LỤC
THUẬT NGỮ VIẾT TẮT iii
LỜI NÓI ĐẦU 5
CHƯƠNG I - MỘT SỐ VẤN ĐỀ TỔNG QUAN VỀ MẠNG IP 2
1.1 Khái niệm về mạng IP 2
1.2 Mô hình phân lớp TCP/IP 2
1.3 Cấu trúc tiêu đề IPv4 và IPv6 6
1.4 Các mức QoS end – to – end. 12
CHƯƠNG II - CHẤT LƯỢNG DỊCH VỤ TRONG MẠNG IP 18
2.1 Khái niệm QoS 18
2.2 Trễ 20
2.3 Nghẽn 20
2.4 Jitter 21
2.5 Mất gói 22
CHƯƠNG III - KIẾN TRÚC CQS 23
3.1 Vấn đề định tuyến trong mạng IP 23
3.2 Cấu trúc router 34
3.3 Kiến trúc CQS 37
CHƯƠNG IV - ỨNG DỤNG KIẾN TRÚC CQS CHO QUẢN LÝ NGHẼN TRONG MẠNG IP 41
4.1 Tại sao phải quản lý nghẽn. 41
4.2 Các chiến lược quản lý nghẽn sử dụng kiến trúc CQS. 42
KẾT LUẬN 72
TÀI LIỆU THAM KHẢO 73
77 trang |
Chia sẻ: banmai | Lượt xem: 1803 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Kiến trúc CQS và ung dụng kiến trúc CQS cho quản lý nghẽn trong mạng IP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
lớp áp dụng.
Sự phân loại luồng là sự giải quyết WFQ tiêu chuẩn. Nghĩa là các gói có cùng địa chỉ nguồn, địa chỉ đích, các cổng TCP hoặc UDP nguồn hay cổng TCP hoặc UDP đích được phân loại như thuộc cùng luồng. WFQ cung cấp một sự chia sẻ cân bằng băng thông tới mỗi luồng. Flow-based WFQ cũng được gọi là hàng đợi cân bằng bởi vì tất cả các luồng được đánh trọng số cân bằng.
Với CBWFQ, đưa ra hàng đợi cân bằng WFQ tiêu chuẩn, trọng số theo lý thuyết cho lớp trở thành trọng số của mỗi gói phù hợp chuẩn kết hợp của lớp. Các gói đến tại giao diện đầu ra được phân loại theo bộ lọc chuẩn phù hợp mà chúng ta định nghĩa, sau đó mỗi gói được ấn định một trọng số thích hợp. Trọng số cho một gói thuộc một lớp riêng được xuất phát từ băng thông mà chúng ta ấn định cho lớp khi chúng ta cấu hình nó; với khả năng này trọng số cho một lớp là do người dùng tự cấu hình.
Sau khi trọng số cho một gói được ấn định, thì gói được xếp vào hàng đợi trong hàng đợi lớp phù hợp. CBWFQ sử dụng các trọng số được ấn định cho các gói được sắp xếp để đảm bảo hàng đợi lớp được phục vụ công bằng.
Cấu hình một chính sách lớp – đó là cấu hình CBWFQ - dẫn tới ba quá trình sau:
Định nghĩa các lớp lưu lượng để xác định chính sách phân loại (các bản đồ phân loại).
Quá trình này xác định bao nhiêu loại gói được phân biệt từ các lớp lưu lượng khác.
Các chính sách kết hợp – đó là các đặc điểm lớp – với mỗi lớp lưu lượng (các bản đồ lưu lượng).
Quá trình này đòi hỏi cấu hình của các chính sách để áp dụng cho các gói thuộc một trong các lớp được định nghĩa trước đây qua một bản đồ lớp. Với quá trình này chúng ta cấu hình một bản đồ chính sách chỉ rõ chính sách cho mỗi lớp lưu lượng.
Chính sách bắt buộc tới các giao diện (các chính sách phục vụ).
Quá trình này yêu cầu chúng ta kết hợp một bản đồ chính sách đang tồn tại hoặc chính sách dịch vụ, với một giao diện để áp dụng mẫu chính sách riêng biệt cho bản đồ tới giao diện đó.
Cấp băng thông CBWFQ
Tổng toàn bộ băng thông phân bổ trên một giao diện không thể vượt quá 75% của tổng băng thông khả dụng trên giao diện đó. 25% băng thông còn lại được sử dụng cho phần tiêu đề khác, bao gồm cả phần tiêu đề lớp 2, lưu lượng định tuyến và lưu lượng nỗ lực tối đa. Băng thông cho lớp tuỳ chọn lớp CBWFQ chẳng hạn được dùng từ 25% băng thông còn lại. Tuy nhiên trong một số trường hợp muốn sử dụng hơn 75% của băng thông giao diện cho các lớp, chúng ta có thể chồng lên 75% tổng cực đại được phân bổ tới tất cả các lớp hoặc các luồng sử dụng lệnh max-reserved-bandwidth. Nếu muốn chồng lên 75%, phải sử dụng một cách cẩn thận và đảm bảo có đủ băng thông còn lại để hỗ trợ nỗ lực tối đa, lưu lượng điều khiển và tiêu đề lớp 2.
Khi ATM được sử dụng chúng ta phải chú ý việc tế bào ATM yêu cầu tiêu đề không được thêm vào. Ví dụ, hãy chú ý trường hợp mà trong đó một lớp cần đảm bảo băng thông trên một ATM PVC. Cần có kích thước gói thông thường cho một lớp là 256 byte và lớp cần 100 kbps (trong đó di dịch tới 49 pps) băng thông được đảm bảo. Mỗi gói tin 256 byte phải được phân chia vào các tế bào để gửi đi trên một VC, có tổng độ lớn là 6*53=318 byte. Trong trường hợp này, tế bào ATM cần có phần đầu phải là 62 byte hoặc 49*62*8=24,304 kbps. Khi cấu hình CBWFQ trong ví dụ này đảm bảo tổng tất cả băng thông lớp được cấu hình ít hơn băng thông VC ít nhất 24,304 kbps để đảm bảo tải trọng mong muốn đảm bảo cho lớp được cấu hình (trong ví dụ này, chỉ có một lớp). Nếu cần một số lớp thì tổng tất cả phần đầu lớp cần phải được ước lượng và thêm vào tổng tất cả các băng thông lớp được cấu hình. Tổng này cần phải nhỏ hơn băng thông VC đảm bảo cho sự đảm bảo tải trọng yêu cầu.
Tại sao sử dụng CBWFQ
Sau đây là một số yếu tố cần chú ý khi sử dụng CBWFQ:
Cấp băng thông – CBWFQ cho phép chỉ rõ số lượng băng thông chính xác được cấp cho một lớp lưu lượng riêng. Việc đưa băng thông khả dụng vào giao diện, cần phải cấu hình tới 64 lớp và điều khiển sự phân phối giữa chúng, mà không phải là trường hợp với flow-based WFQ. Flow-based WFQ áp dụng các trọng số cho lưu lượng để phân nó vào cuộc thoại và xác định mỗi cuộc thoại được cấp băng thông bao nhiêu để tương xứng với các cuộc thoại khác.Với flow-based WFQ trọng số này và sự phân loại lưu lượng phụ thuộc vào giới hạn bởi mức quyền ưu tiên 7.
Coarser granularity và scalability – CBWFQ cho phép chúng ta xác định những gì thành lập một lớp dựa vào tiêu chuẩn vượt quá ranh giới của luồng. CBWFQ cho phép chúng ta sử dụng các danh sách và giao thức điều khiển truy cập hoặc tên giao diện đầu vào để xác định lưu lượng nào được phân loại, bằng cách đó cung cấp coarser granularity. Chúng ta không cần sự phân loại lưu lượng còn lại trên một cơ sở luồng. Hơn nữa, chúng ta có thể cấu hình tới 64 lớp riêng biệt trong chính sách dịch vụ.
CBWFQ và RSVP
RSVP có thể được sử dụng cùng với CBWFQ. Khi cả RSVP và CBWFQ được cấu hình cho một giao diện, RSVP và CBWFQ hoạt động độc lập với nhau, chúng hoạt động như khi chúng hoạt động một mình. RSVP tiếp tục làm việc ngay cả khi CBWFQ không có mặt.
Hạn chế
Việc cấu hình CBWFQ trên một giao diện vật lý chỉ có thể thực hiện nếu giao diện ở trong một mode hàng đợi mặc định. Các giao diện Serial E1 và thấp hơn sử dụng WFQ một cách mặc định – các giao diện khác sử dùng hàng đợi FIFO mặc định. Việc cho phép CBWFQ trên giao diện vật lý cho qua các phương pháp hàng đợi giao diện mặc định. Việc cho phép CBWFQ trên một ATM PVC không cho qua phương pháp hàng đợi mặc định.
Nếu cấu hình một lớp trong bản đồ chính sách để sử dụng WRED cho việc loại bỏ gói thay vì loại bỏ phần đuôi, thì phải đảm bảo rằng WRED không được cấu hình trên giao diện mà chúng ta có ý định gắn liền với chính sách phục vụ.
Định hình và chính sách lưu lượng hiện nay không hỗ trợ với CBWFQ.
CBWFQ được hỗ trợ trên các kết nối ATM VBR (Variable Bit Rate) và AVB (Available Bit Rate). Nó không được hỗ trợ trên các kết nối UBR (Unspecified Bit Rate).
CBWFQ không hỗ trợ các giao diện con Ethernet.
IP RTP Priority
Đặc trưng quyền ưu tiên IP RTP cung cấp một sơ đồ hàng đợi ưu tiên chặt cho dữ liệu nhạy cảm với trễ như thoại . Lưu lượng thoại có thể nhận biết bởi chỉ số cổng giao thức truyền dẫn thời gian thực (RTP: Real-Time Transport Protocol) và được phân vào một hàng đợi ưu tiên cấu hình bởi lệnh ip rtp priority. Kết quả là thoại được phục vụ như là mức ưu tiên chặt trong giao diện với lưu lượng phi thoại.
Đặc trưng quyền ưu tiên IP RTP mở rộng và cải thiện thêm các khả năng cung cấp bởi lệnh ip rtp reserve bằng cách cho phép thay đổi một dãy các cổng UDP/RTP mà lưu lượng của chúng được đảm bảo dịch vụ ưu tiên chặt trên một số hàng đợi hoặc lớp khác sử dụng cùng giao diện đầu ra. Quyền ưu tiên chặt có nghĩa là nếu các gói tồn tại trong hàng đợi ưu tiên thì chúng được sắp xếp lại và gửi đi trước - trước khi các gói trong hàng đợi khác được sắp xếp lại. Chúng ta nên sử dụng lệnh ip rtp proirity thay cho lệnh ip rtp reserve cho các cấu hình thoại.
Đặc tính mức ưu tiên IP RTP không yêu cầu phải biết cổng của cuộc gọi. Hơn nữa, đặc tính cho chúng ta khả năng nhận dạng phạm vi các cổng mà lưu lượng đưa vào hàng đợi ưu tiên. Ngoài ra chúng ta có thể thay đổi toàn bộ thứ tự cổng thoại – 16384 tới 32767 – để đảm bảo rằng tất cả lưu lượng thoại đều sẵn sàng cho dịch vụ ưu tiên chặt. Quyền ưu tiên IP RTP đặc biệt hữu ích trên các kết nối tốc độ thấp mà đặc biệt là thấp hơn 1,544 Mbps.
Đặc tính này có thể được sử dụng chung với WFQ hoặc CBWFQ trên cùng giao diện đi ra. Trong bất kỳ trường hợp nào thì lưu lượng phù hợp thứ tự các cổng trên lý thuyết cho hàng đợi ưu tiên được đảm bảo quyền ưu tiên chặt trên các lớp CBWFQ hoặc các luồng WFQ khác; các gói trong hàng đợi ưu tiên luôn luôn được phục vụ trước:
Khi được sử dụng chung với WFQ, thì lệnh ip rtp priority cung cấp mức ưu tiên chặt cho thoại và lập lịch WFQ được áp dụng cho các hàng đợi còn lại.
Khi được sử dụng chung với CBWFQ, thì lệnh ip rtp priority cung cấp mức ưu tiên chặt cho thoại. CBWFQ có thể được sử dụng để thiết lập các lớp cho các loại lưu lượng khác (như SNA) cần được dành băng thông và cần được đối xử tốt hơn nỗ lực tối đa và không như ưu tiên chặt; các lưu lượng phi thoại được phục vụ cân bằng dựa trên trọng số được ấn đinh cho các gói trong hàng đợi. CBWFQ cũng có thể hỗ trợ flow-based WFQ trong lớp CBWFQ mặc định nếu được cấu hình như vậy.
Bởi vì các gói thoại thường có kích thước nhỏ và giao diện cũng có thể có các gói lớn đi ra, đặc tính phân mảnh và chèn kết nối (LFI: Fragmentation and Interleaving) cũng phải được cấu hình trên các giao diện tốc độ thấp hơn. Khi cho phép LFI thì các gói dữ liệu lớn được cắt ra để các gói thoại nhỏ có thể chèn vào giữa các đoạn dữ liệu để tạo ra một gói dữ liệu lớn. LFI ngăn cản một gói thoại từ nhu cầu đợi cho đến khi một gói lớn được gửi. Để thay thế, gói thoại có thể được gửi đi trong một lượng thời gian ngắn hơn.
Cấp băng thông IP RTP Priority
Nếu muốn hiểu về hoạt động của nó và sử dụng đặc tính IP RTP Priority một cách đúng đắn, điều quan trọng là phải chú ý đặc trưng chính sách và điều khiển đầu vào. Khi sử dụng lệnh ip rtp priority để hình thành hàng đợi ưu tiên cho thoại, cần phải chỉ rõ giới hạn băng thông chặt. Lượng băng thông này được đảm bảo cho lưu lượng thoại đi vào hàng đợi ưu tiên. (Trong trường hợp này chúng ta sử dụng đặc tính IP RTP Priority với CBWFQ hoặc WFQ).
Chú ý: IP RTP Priority không có điều khiển đầu vào cho từng cuộc gọi. Điều khiển đầu vào là một cơ sở chung. Ví dụ, nếu cấu hình cho 96 kbps, IP RTP Priority đảm bảo 96 kbps sẵn có để dành riêng. Nó không chỉ đảm bảo cho 4 cuộc gọi 24 kbps nhận được. Cuộc gọi thứ 5 cũng có thể nhận được nhưng vì 5 cuộc gọi chỉ có 96 kbps, nên chất lượng cuộc gọi sẽ bị giảm xuống (mỗi cuộc gọi chỉ nhận được 96/5 = 19.2 kbps). Như vậy trong ví dụ này người dùng phải đảm bảo chỉ 4 cuộc gọi thực hiện tại cùng một thời điểm.
IP RTP Priority gần như kiểm soát việc sử dụng băng thông cho hàng đợi ưu tiên, đảm bảo rằng số lượng được cung cấp không vượt quá mức trong trường hợp xảy ra nghẽn. Thực tế IP RTP Priority kiểm soát luồng mọi giây. IP RTP Priority ngăn chặn việc truyền dẫn các gói thêm vào một khi băng thông cung cấp được dùng hết. Nếu nhận ra rằng số lượng băng thông được cấu hình bị quá, thì IP RTP Priority loại bỏ các gói, điều này là không tốt đối với lưu lượng thoại. Chính sách đóng chú ý đến sự đối xử cân bằng của các gói dữ liệu khác được xếp trong các hàng đợi CBWFQ hoặc WFQ khác. Để tránh loại bỏ gói cần phải chắc chắn phân chia cho hàng đợi ưu tiên lượng băng thông tốt nhất, phải xem xét loại mã để sử dụng cũng như đặc điểm giao diện. IP RTP Priority sẽ không cho phép lưu lượng nằm ngoài phạm vi số lượng đã được cấp.
Một thực tế là lượng băng thông cấp cho hàng đợi ưu tiên luôn luôn lớn hơn lượng băng thông được yêu cầu. Ví dụ, với mục đích cần cấp băng thông 24kbps (lượng băng thông trung bình yêu cầu cho truyền thoại) cho hàng đợi ưu tiên. Sự phân phối này là chắc chắn bởi vì truyền các gói thoại xảy ra tại một tốc độ bit không đổi. Tuy nhiên bởi vì mạng và router hay chuyển mạch có thể sử dụng một phần băng thông và đưa jitter và trễ vào, và như vậy lượng băng thông được cung cấp thực tế phải lớn hơn lượng băng thông được yêu cầu (chẳng hạn là 25%).
Chính sách điều khiển thừa nhận IP RTP Priority thực hiện nén tiêu đề RTP vào tài khoản. Vì vậy, trong quá trình xác định tham số băng thông của lệnh ip rtp priority chúng ta chỉ cần cấu hình băng thông cho việc nén cuộc gọi. Ví dụ, nếu một cuộc thoại G.729 yêu cầu 24 kbps không nén băng thông (không bao gồm tải trọng lớp 2) nhưng chỉ 12 kbps băng thông được nén, thì chúng ta chỉ cần cấu hình một băng thông 12 kbps là đủ. Chúng ta cần cung cấp đầy đủ băng thông cho tất cả các cuộc gọi nếu có nhiều hơn một cuộc gọi.
Tổng băng thông cấp cho các luồng thoại và dữ liệu trên một giao diện không thể vượt quá 75% tổng băng thông khả dụng. Băng thông cấp cho các gói thoại đưa vào tài khoản tải trọng cùng với các tiêu đề IP, RTP và UDP, nhưng không có tiêu đề lớp 2. Dành 25% băng thông cho phần đầu (overhead) là vừa phải và đảm bảo. Trên một kết nối PPP, ví dụ phần đầu của tiêu đề lớp 2 tổng cộng là 4 kbps. Lượng băng thông cấu hình cho IP RTP Priority có thể được thay đổi khi sử dụng lệnh max-reserved-bandwidth trên giao diện.
Nếu biết được băng thông được yêu cầu cho phần đầu thêm vào trên một kết nối là bao nhiêu, thì trong trường hợp mà chúng ta muốn cho lưu lượng thoại nhiều nhất có thể, chúng ta có thể sử dụng hết 75% lượng băng thông có thể cấp được cho tất cả các lớp hoặc các luồng bằng cách sử dụng lệnh max-reserved-bandwidth. Nếu muốn cho qua một lượng băng thông cố định, thì phải sử dụng một cách cẩn thận và đảm bảo cho phép đủ băng thông còn lại để hỗ trợ nỗ lực tối đa, lưu lượng điều khiển và phần tiêu đề lớp 2.
Một lựa chọn khác là nếu lưu lượng thoại quan trọng hơn dữ liệu thì chúng ta có thể cấp hầu hết 75% băng thông sử dụng cho các luồng và lớp cho hàng đợi ưu tiên thoại. Không sử dụng băng thông tại một số điểm cho trước sẽ mang lại hiệu quả cho các luồng và lớp khác.
Những hạn chế
Bởi vì lệnh ip rtp priority cho hoàn toàn quyền ưu tiên trên lưu lượng khác, nên nó cần được sử dụng thận trọng. Trong trường hợp nghẽn, nếu lưu lượng vượt qua băng thông được cấu hình thì sau đó tất cả lưu lượng vượt quá sẽ bị loại bỏ.
Các lệnh ip rtp reserve và ip rtp priority không thể cấu hình trên cùng một giao diện.
Low Latency Queuing
Đặc tính Low Laytency Queuing (LLQ) đưa đến cho CBWFQ hàng đợi có quyền ưu tiên chặt. Hàng đợi có quyền ưu tiên chặt cho phép dữ liệu nhạy cảm với trễ như thoại được xếp vào hàng đợi và được gửi đi trước (trước khi các gói trong hàng đợi khác được xếp vào), đưa đến cho dữ liệu nhạy cảm với trễ một sự đối xử ưu tiên hơn luồng lưu lượng khác.
Với LLQ, CBWFQ cung cấp hàng đợi cân bằng trọng số dựa trên việc định rõ các lớp với hàng đợi không ưu tiên chặt khả dụng cho lưu lượng thời gian thực. CBWFQ cho phép chúng ta định rõ các lớp lưu lượng và sau đó ấn định các đặc tính cho lớp đó. Ví dụ, chúng ta có thể chỉ rõ băng thông cực tiểu cấp phát cho lớp trong giai đoạn nghẽn.
Với CBWFQ, trọng số cho một gói thuộc lớp lưu lượng riêng được xuất phát từ băng thông mà chúng ta ấn định cho lớp khi cấu hình nó. Vì vậy, băng thông ấn định cho các gói của một lớp xác định thứ tự mà gói được gửi đi. Tất cả các gói được phục vụ một cách công bằng dựa theo trọng số; không có lớp gói có thể cho phép ưu tiên chặt. Sơ đồ này đưa ra các vấn đề cho lưu lượng thoại có thể chấp nhận trễ lớn hơn, đặc biệt là mức độ biến đổi của trễ. Với lưu lượng thoại, đặc biệt là trễ đưa vào không đều của truyền dẫn thể hiện như jitter ở đầu cuộc thoại.
LLQ cung cấp hàng đợi ưu tiên chặt cho CBWFQ, làm giảm jitter trong cuộc thoại. Cấu hình bằng lệnh priority, LLQ cho phép sử dụng một hàng đợi ưu tiên chặt đơn trong CBWFQ tại mức lớp, cho phép chúng ta gửi lưu lượng thuộc một lớp tới hàng đợi ưu tiên chặt CBWFQ. Để xếp lưu lượng lớp vào hàng đợi ưu tiên chặt, chúng ta xác định rõ tên lớp trong một bản đồ chính sách và sau đó cấu hình lệnh priority cho lớp (Các lớp có cấu hình lệnh priority được áp dụng được xem như các lớp ưu tiên). Trong một bản đồ chính sách, chúng ta có thể cho một hoặc nhiều cấp ưu tiên lớp. Khi nhiều lớp trong một bản đồ chính sách đơn được cấu hình như các lớp ưu tiên thì tất cả các lưu lượng từ các lớp này được xếp vào cùng hàng đợi ưu tiên chặt đơn.
Một trong các cách mà hàng đợi ưu tiên chặt sử dụng trong CBWFQ phân biệt từ việc sử dụng CBWFQ bên ngoài là dựa vào tham số mà nó tạo ra. CBWFQ bên ngoài, chúng ta có thể sử dụng lệnh ip rtp priority để chỉ rõ phạm vi của các cổng UDP mà các luồng lưu lượng thoại được cấp dịch vụ ưu tiên. Sử dụng lệnh priority, chúng ta không bị hạn chế nhiều hơn một chỉ số cổng UDP cho các luồng ưu tiên đã định bởi vì chúng ta có thể cấu hình các tình trạng ưu tiên cho một lớp trong CBWFQ. Thay vì tất cả các tiêu chuẩn hợp lệ được sử dụng để xác định cho một lớp lúc này được áp dụng cho lưu lượng ưu tiên. Phương pháp xác định lưu lượng này là phù hợp trên các danh sách truy cập, các giao thức và các giao diện đầu vào. Hơn nữa trong một danh sách truy cập, chúng ta có thể định rõ lưu lượng phù hợp được cho phép dựa vào giá trị điểm mã dịch vụ khác biệt IP (DSCP: Differentiated Services Code Point) được thiết lập sử dụng 6 bit đầu tiên của byte ToS trong tiêu đề IP.
Mặc dù nó có thể xếp các loại lưu lượng thời gian thực vào hàng đợi ưu tiên chặt, chúng ta chỉ sử dụng cho lưu lượng thoại bởi vì lưu lượng thoại được đối xử tốt, trong khi các loại lưu lượng thời gian thực khác không được đối xử tốt. Hơn nữa, các yêu cầu của lưu lượng thoại là không thể thay đổi thứ tự cho việc tránh jitter. Lưu lượng thời gian thực như video có thể đưa vào sụ biến động trễ, do đó ngăn cản sự ổn định trễ được yêu cầu cho việc truyền dẫn lưu lượng thoại thành công.
Cấp băng thông LLQ
Khi xác định lệnh priority cho một lớp, nó tạo một đối số băng thông cho băng thông cực đại theo kbps. Chúng ta sử dụng thông số này để xác định lượng băng thông cực đại cấp cho các gói thuộc lớp được cấu hình với lệnh priority. Thông số băng thông vừa đảm bảo băng thông cho các lớp ưu tiên vừa ngăn cản luồng gói từ các lớp ưu tiên khác.
Trong điều kiện xảy ra nghẽn, chính sách được sử dụng để loại bỏ gói khi băng thông bị vượt quá. Lưu lượng thoại xếp vào hàng đợi ưu tiên là UDP cơ bản và trước đó không thích ứng với đặc tính loại bỏ gói sớm của WRED. Bởi vì WRED không có hiệu quả, chúng ta có thể sử dụng lệnh WRED random detect với lệnh priority. Hơn nữa, bởi vì chính sách được sử dụng để loại bỏ gói và giới hạn hàng đợi không được lợi dụng, lệnh queue-limit không thể được sử dụng với lệnh priority.
Khi nghẽn xảy ra, lưu lượng được tính toán từ trước cho hàng đợi ưu tiên được đo để đảm bảo cấp băng thông cấu hình cho lớp lưu lượng bị quá.
Phép đo lưu lượng ưu tiên có đặc trưng sau:
Nó giống như đặc tính hạn chế tốc độ của CAR (Committed Access Rate), ngoại trừ phép đo lưu lượng ưu tiên chỉ được thực hiện trong điều kiện xảy ra nghẽn. Khi thiết bị không bị nghẽn, lưu lượng lớp ưu tiên được phép vượt quá băng thông cấp cho nó. Khi thiết bị bị nghẽn, lưu lượng lớp ưu tiên cao hơn băng thông được cấp cho nó sẽ bị loại bỏ.
Nó thực hiện trên cơ sử từng gói, và thẻ bài được được làm đầy lại sau khi các gói đã được gửi. Nếu không đủ các thẻ bài có hiệu lực để gửi gói thì nó bị loại bỏ.
Nó hạn chế bớt lưu lượng ưu tiên từ băng thông được cấp cho nó để đảm bảo lưu lượng không ưu tiên (như là các gói định tuyến và dữ liệu khác) không bị bỏ đói.
Với phép đo, các lớp được kiểm soát và tốc độ giới hạn một cách riêng lẻ. Nghĩa là, mặc dù một bản đồ chính sách đơn có thể bao gồm bốn lớp ưu tiên, thì tất cả các lớp ưu tiên đó cũng được xếp vào một hàng đợi ưu tiên riêng, chúng được đối xử riêng như các luồng tách rời nhau với sự cung cấp và hạn chế băng thông riêng.
Điều quan trọng cần chú ý là bởi vì băng thông cho lớp ưu tiên được chỉ rõ như một thông số cho lệnh priority, chúng ta cũng không thể cấu hình lệnh cấu hình lớp bản đồ chính sách băng thông cho một lớp ưu tiên. Để làm được một cấp cấu hình như vậy thì chỉ có thể đưa cấu hình vào mối quan hệ lượng băng thông cung cấp.
Băng thông cấp cho hàng đợi ưu tiên luôn luôn thêm tiêu đề bao gói lớp 2. Tuy nhiên, nó không thêm tiêu đề khác như tiêu đề ATM chẳng hạn. Khi tính toán lượng băng thông để cấp cho một lớp ưu tiên cho trước, chúng ta phải khai báo việc thêm tiêu đề lớp 2 vào. Khi ATM được sử dụng, chúng ta phải khai báo cho trường hợp tiêu đề ATM thêm vào. Chúng ta cũng phải tính đến một phần băng thông cho trường hợp jitter thêm vào bởi router trong các đường dẫn thoại.
Chú ý trường hợp sử dụng ATM cần phải có một luồng thoại 60 byte phát ra 50 pps được mã hoá sử dụng G.729. Trước khi chuyển đổi luồng thoại thành tế bào, đồng hồ đo hàng đợi ưu tiên sử dụng cho luồng thoại quyết định độ dài của gói sau khi các tiêu đề LLC lớp 2 đã thêm vào.
Cho rằng tiêu đề LLC lớp 2 là 8 byte, đồng hồ đo sẽ đưa vào tài khoản một gói 68 byte. Bởi vì các tế bào ATM có độ dài tiêu chuẩn là 53 byte, trước khi gói 68 byte phát đi trên đường truyền nó được phân chia vào 2 tế bào ATM. Như vậy băng thông được dùng cho luồng này là 106 byte/gói.
Trong trường hợp này, chúng ta phải cấu hình lượng băng thông ít nhất 27,7 kbps (68*50*8 = 27,2 kbps). Tuy nhiên, chúng ta cũng phải chú ý đến lượng băng thông cho tiêu đề tế bào thêm vào. Nói cách khác, tổng băng thông cho tất cả các lớp phải nhỏ hơn băng thông giao diện ít nhất là 15,2 kbps ([106-68]*50*8 = 15,2 kbps). Chúng ta cũng phải nhớ tính đến băng thông cho jitter router thêm vào.
Chú ý: Tổng băng thông cung cấp trên một giao diện không thể vượt quá 75% tổng băng thông giao diện khả dụng. Tuy nhiên, trong trường hợp muốn ấn định hơn 75% băng thông giao diện cho các lớp thì phải cho qua 75% tổng số được cấp cho tất cả các lớp hoặc luồng sử dụng lệnh max-reserved-bandwidth. Lệnh max-reserved-bandwidth dành cho việc sử dụng trên giao diện chính; nó không có hiệu quả cho mạch ảo (VC) hoặc mạch ảo cố định ATM (PVC).
LLQ và IP RTP Priority
LLQ và IP RTP Priority có thể được cấu hình cúng lúc, nhưng IP RTP Priority tạo mức ưu tiên.
policy-map llqpolicy
class voice
priority 50
ip rtp priority 16384 20000 40
service-policy output llqpolicy.
Trong ví dụ này các gói phù hợp với vị trí chỉ số cổng từ 16384 tới 20000 sẽ được cấp mức ưu tiên với băng thông 40 kbps; các gói phù hợp với lớp thoại sẽ được cấp mức ưu tiên với băng thông 50 kbps. Ngay cả trong trường hợp nghẽn, các gói phù hợp với vị trí cổng từ 16384 tới 20000 sẽ không nhận quá 40 kbps băng thông, và các gói phù hợp với lớp thoại sẽ không nhận quá 50 kbps băng thông.
Nếu các gói phù hợp với cả hai chuẩn (cổng từ 16384 tới 20000 và thoại), thì IP RTP Priority tạo mức ưu tiên. Trong ví dụ này, các gói sẽ được xem như là phù hợp với vị trí cổng từ 16384 tới 20000 và sẽ được tính toán trong 40 kbps băng thông.
Tại sao sử dụng LLQ?
Đây là một số yếu tố mà chúng ta phải quan tâm khi xác định có cần cấu hình LLQ hay không:
LLQ cung cấp dịch vụ ưu tiên chặt trên ATM VC và các giao diện serial (Đặc tính IP RTP Priority chỉ cung cấp hàng đợi ưu tiên trên các giao diện).
LLQ không hạn chế số cổng UDP. Bởi vì chúng ta có thể cấu hình trạng thái ưu tiên cho lớp trong CBWFQ, nên chúng ta không bị hạn chế số cổng UDP trong các luồng ưu tiên định trước nữa. Thay vì tất cả tiêu chuẩn phù hợp hợp lệ được sử dụng để thay đổi lưu lượng cho một lớp thì bây giờ áp dụng cho lưu lượng ưu tiên.
Bằng cách cấu hình lượng băng thông cực đại cấp cho các gói trong một lớp thì chúng ta có thể tránh lưu lượng không ưu tiên.
Những hạn chế
Sau đây là một số hạn chế khi áp dụng LLQ:
Nếu chúng ta sử dụng danh sách truy cập để cấu hình chỉ số cổng phù hợp thì đặc tính này cung cấp mức ưu tiên phù hợp cho tất cả chỉ số các cổng, cả các chỉ số cổng trước và còn lại. Bởi vì thoại thường tồn tại trên các chỉ số cổng còn lại và các gói điều khiển phát sinh trên các chỉ số cổng trước, các gói điều khiển cung cấp mức ưu tiên khi sử dụng đặc tính này. Trên nhiều tuyến liên kết chậm, việc cấp mức ưu tiên cho cả các gói thoại và các gói điều khiển có thể cung cấp mức độ chất lượng thoại. Vì vậy nếu chỉ ấn định mức ưu tiên dựa trên chỉ số cổng, chúng ta phải sử dụng lệnh ip rtp priority thay cho lệnh priority (lệnh rtp priority cung cấp mức ưu tiên chỉ cho các chỉ số cổng còn lại).
Lệnh random-detect, lệnh queue-limit và lệnh cấu hình lớp bản đồ chính sách bandwidth không thể sử dụng trong khi lệnh priority được cấu hình.
Lệnh priority có thể được cấu hình trong nhiều lớp, nhưng nó chỉ được sử dụng cho lưu lượng voice-like, CBR (Constant Bit Rate).
4.2.1.3 Chiến lược hàng đợi khách hàng (CQ)
CQ (Custom Queuing) cho phép chúng ta xác định rõ một số byte nhất định để chuyển tiếp từ một hàng đợi mỗi khi hàng đợi được phục vụ, do đó cũng cho phép chúng ta chia sẻ tài nguyên mạng giữa các ứng dụng với băng thông cực tiểu hoặc yêu cầu trễ riêng. Chúng ta cũng có thể xác định rõ lượng gói cực đại trong hàng đợi.
Hàng đợi CQ làm việc như thế nào
CQ điều khiển lưu lượng bằng cách định rõ số lượng gói byte để phục vụ cho mỗi lớp lưu lượng. Nó phục vụ các hàng đợi bằng cách quay vòng chúng theo kiểu round-robin, gửi phần băng thông được cấp cho mỗi hàng đợi trước khi chuyển tới hàng đợi khác. Nếu một hàng đợi rỗng, router sẽ gửi các gói từ hàng đợi kế tiếp có gói sẵn sàng để gửi đi.
Khi CQ được cho phép trên một giao diện thì hệ thống duy trì 17 hàng đợi đầu ra cho giao diện đó. Chúng ta có thể xác định các hàng đợi từ 1 đến 16. Kết hợp với mỗi hàng đợi đầu ra là một phép đếm byte có thể cấu hình, xác định bao nhiêu byte dữ liệu mà hệ thống phải phân phát từ hàng đợi hiện thời trước khi nó di chuyển tới hàng đợi tiếp theo.
Hàng đợi số 0 là hàng đợi hệ thống; nó được để rỗng trước khi các hàng đợi 1 đến 16 được xử lý. Hệ thống xếp các gói có mức ưu tiên cao như là các gói dẫn đường (keepalive) và các gói tin báo hiệu tới hàng đợi này. Lưu lượng khác không thể cấu trúc sử dụng hàng đợi này.
Với hàng đợi từ 1 đến 16, hệ thống quay vòng qua các hàng đợi một cách liên tục (theo kiểu round-robin), xếp các phép đếm byte được cấu hình từ hàng đợi khác vào mỗi chu kỳ, phân các gói vào hàng đợi hiện thời trước khi chuyển tới một hàng đợi kế tiếp. Khi hàng đợi riêng được xử lý, thì các gói được gửi đi cho tới khi số byte gửi đi vượt quá số đếm byte hàng đợi hoặc khi hàng đợi rỗng. Băng thông sử dụng bởi hàng đợi riêng có thể chỉ được xác định gián tiếp trong hệ thống đếm byte và chiều dài hàng đợi (xem hình 4.2).
CQ đảm bảo không có ứng dụng hay nhóm ứng dụng đặc biệt đạt được hơn một phần khả năng tổng thể xác định trước khi dòng ở dưới mức bắt buộc. Cũng giống như PQ, CQ được cấu hình tĩnh và không thích ứng tự động với điều kiện thay đổi mạng.
Hình 4.2: Hàng đợi khách hàng
Xác định giá trị đếm byte cho hàng đợi
Trong thứ tự để cấp băng thông cho các hàng đợi khác nhau chúng ta phải xác định rõ số đếm byte cho mỗi hàng đợi.
Số đếm byte được sử dụng như thế nào?
Router gửi các gói từ một hàng đợi riêng cho tới khi số đếm byte bị vượt quá. Một khi giá trị số đếm byte bị vượt quá, thì gói được gửi hiện hành sẽ được gửi trọn vẹn. Vì vậy nếu chúng ta lập số đếm byte tới 100 byte và kích thước gói của giao thức sử dụng là 1024 byte, sau đó mọi thời điểm hàng đợi này được phục vụ, thì 1024 byte sẽ được gửi chứ không phải 100 byte.
Ví dụ, mục đích một giao thức có các gói 500 byte, còn các giao thức khác có các gói 300 byte và giao thức thứ 3 có các gói 100 byte. Nếu chúng ta muốn chia băng thông bằng nhau cho cả 3 giao thức thì chúng ta có thể lựa chọn rõ số đếm byte lần lượt là 200, 200 và 200 cho mỗi hàng đợi. Tuy nhiên, cấu hình này không đưa đến tỷ số 33/33/33. Khi router phục vụ hàng đợi đầu tiên thì nó gửi một gói đơn 500 byte; khi nó phục vụ hàng đợi thứ hai nó gửi một gói 300 byte; và khi phục vụ hàng đợi thứ ba thì nó gửi 2 gói 100 byte. Kết quả là có tỷ số 50/30/20.
Như vậy việc thiết lập số đếm byte quá thấp có thể xảy ra trong việc cấp băng thông không định trước.
Tuy nhiên, các số đếm byte rất lớn sẽ tạo ra một sự phân phối “jerky”. Tức là nếu chúng ta ấn định 10 kbyte, 10 kbyte và 10 kbyte cho 3 hàng đợi trong ví dụ trên, thì mỗi giao thức được phục vụ ngay lập tức khi hàng đợi của nó là một hàng đợi được phục vụ, nhưng nó có thể phải đợi rất lâu cho đến khi được phục vụ trở lại. Một giải pháp tốt hơn là sử dụng các số đếm 500 byte, 600 byte và 500 byte cho hàng đợi. Kết quả cấu hình này có tỷ số là 31/38/31, tỷ số này có thể chấp nhận được.
Trong thứ tự phục vụ hàng đợi trong một kiểu kịp thời và đảm bảo rằng sự cấp băng thông được cấu hình gần đến mức có thể cho sự cung cấp băng thông được yêu cầu, chúng ta phải xác định số đếm byte dựa trên kích thước gói của mỗi giao thức, mặt khác tỷ lệ của chúng ta có thể không phù hợp với những gì mà chúng ta cấu hình.
Xác định số đếm byte
Để xác định các số đếm byte đúng chúng ta thực hiện các bước sau:
Bước 1: Với mỗi hàng đợi, chia phần trăm băng thông mà chúng ta muốn cấp cho hàng đợi cho kích thước gói tính theo byte. Ví dụ, giả sử kích thước gói cho giao thức A là 1086 byte, giao thức B là 291 byte, và giao thức C là 831 byte. Chúng ta muốn cấp 20% cho A, 60% cho B và 20% cho C. Các tỷ số sẽ là:
20/1086, 60/291, 20/831 hay
0,01842; 0,20619; 0,02407
Bước 2: Chuẩn hoá các số bằng cách tách số nhỏ nhất:
1; 11,2; 1,3
Kết quả là tỷ số của số lượng các gói phải được gửi đi để phần trăm băng thông mà mỗi giao thức sử dụng ở vào các khoảng 20, 60 và 20 phần trăm.
Bước 3: Chuyển đổi tỷ số gói vào số đếm byte bằng cách nhân số đếm gói bằng kích thước gói tương ứng.
Trong ví dụ này, số lượng các gói gửi đi là một gói 1086 byte, 12 gói 291 byte, và 2 gói 831 byte hoặc 1086, 3492 và 1662 byte, theo thứ tự từ mỗi hàng đợi. Có các số đếm byte mà chúng ta muốn xác định rõ trong cấu hình hàng đợi khách hàng.
Bước 5: Để xác định băng thông phân phối cho mô tả tỷ số này, trước hết chúng ta xác định tổng số byte gửi đi sau khi cả ba hàng đợi được phục vụ:
(1*1086) + (12*291) + (2*831) = 1086 + 3492 + 1662 = 6240
Bước 6: Sau đó xác định phần trăm tổng số byte gửi đi từ mỗi hàng đợi:
1086/6240, 3492/6240, 1662/6240 = 17,4; 56; 26,6 %
Như chúng ta thấy, tỷ số này gần với tỉ số mong muốn 20/60/20.
Bước 7: Nếu băng thông thực tế không đủ gần băng thông mong muốn, thì tăng tỉ số gốc 1:11,2:3 bằng giá trị tốt nhất, có gắng tạo 3 số nguyên gần nhất có thể. Chú ý rằng bộ nhân mà chúng ta sử dụng cần thiết không phải là một số nguyên. Ví dụ nếu chúng ta nhân tỷ số lên hai lần thì chúng ta nhận được 2:22,4:6. Bay giờ chúng ta có thể gửi hai gói 1086 byte, 23 gói 291 byte và 3 gói 831 byte, hoặc 2172/6693/2493 cho tổng là 11358 byte. Tỷ số cuối cùng là 19/59/22 phần trăm, như vậy tỷ số này gần hơn với tỷ số mong muốn mà chúng ta nhận được.
Băng thông mà hàng đợi khách hàng nhận được được cho bởi công thức sau:
(số đếm byte/tổng số đêm byte của tất cả các hàng đợi)*khả năng băng thông của giao diện.
Kích thước cửa sổ
Kích thước cửa sổ cũng ảnh hưởng đến sự phân phối băng thông. Nếu kích thước cửa sổ của giao thức riêng được thiết lập là một, thì giao thức đó sẽ không đặt gói khác vào hàng đợi cho đến khi nó nhận được một hành động phản hồi. Thuật toán hàng đợi khách hàng di chuyển tới hàng đợi tiếp theo nếu số đếm byte bị vượt quá hoặc không có gói nào trong hàng đợi đó.
Như vậy, với một kích thước cửa sổ của một hàng đợi, thì chỉ có một frame sẽ được gửi mỗi lần. Nếu số đếm frame của chúng ta được thiết lập là 2 kbyte và kích thước khung là 256 byte thì chỉ 256 byte sẽ được gửi đi mỗi khi hàng đợi này được phục vụ.
Tại sao sử dụng hàng đợi khách hàng?
Chúng ta có thể sử dụng đặc tính CQ Cisco IOS QoS để cung cấp băng thông đảm bảo lưu lượng cụ thể tại một điểm nghẽn có khả năng, đảm bảo lưu lượng phân chia cố đinh băng thông khả dụng và rời khỏi băng thông còn lại cho lưu lượng khác. Ví dụ, chúng ta có thể nhận một nửa băng thông cho dữ liệu SNA, cho phép nửa còn lại được sử dụng cho các giao thức khác.
Những hạn chế
CQ được cấu hình cố định và không thích ứng tới điều kiện mạng thay đổi. Với CQ cho phép thì hệ thống tạo ra các gói chuyển mạch dài hơn FIFO bởi vì các gói được phân loại bằng card bộ xử lý.
4.2.1.4 Chiến lược hàng đợi ưu tiên (PQ)
PQ cho phép chúng ta xác định lưu lượng được ưu tiên như thế nào trong mạng. Chúng ta cấu hình 4 mức ưu tiên lưu lượng. Chúng ta có thể định nghĩa một chuỗi bộ lọc dựa trên đặc tính gói để tác động tới router đặt lưu lượng vào 4 hàng đợi này; hàng đợi với mức ưu tiên cao nhất được phục vụ trước cho đến khi nó rỗng, sau đó các hàng đợi có mức ưu tiên thấp hơn được phục vụ kế tiếp.
PQ làm việc như thế nào
Trong suốt quá trình truyền dẫn, PQ cho phép đối xử hoàn toàn ưu tiên các hàng đợi ưu tiên so với các hàng đợi ưu tiên thấp hơn; lưu lượng quan trọng (mức ưu tiên cao nhất cho trước) luôn luôn chiếm quyền ưu tiên cao hơn lưu lượng ít quan trọng hơn. Các gói được phân loại dựa trên tiêu chuẩn theo người sử dụng và được đặt vào một trong bốn hàng đợi đầu ra – cao, cao vừa, thông thường và thấp - dựa trên mức ưu tiên được ấn định. Các gói không được phân loại bởi quyền ưu tiên được cho vào hàng đợi thông thường. Hình 4.3 chỉ rõ quá trình này.
Hình 4.3: Hàng đợi ưu tiên
Khi một gói được gửi ra một giao diện, các hàng đợi ưu tiên trên giao diện đó được quét theo thứ tự ưu tiên từ trên xuống cho các gói. Hàng đợi có mức ưu tiên cao được quét trước sau đó đến các hàng đợi có mức ưu tiên cao vừa và cứ như vậy. Gói ở đầu hàng đợi có mức ưu tiên cao nhất được chọn để truyền dẫn. Thủ tục này được lặp đi lặp lại tại mọi thời điểm gửi gói.
Độ dài cực đại của một hàng đợi được định rõ bởi giới hạn độ dài. Khi một hàng đợi dài hơn giới hạn hàng đợi, thì tất cả các gói thêm vào sẽ bị loại bỏ.
Chú ý: Cơ chế hàng đợi đầu ra ưu tiên có thể được sử dụng cho quản lý lưu lượng từ tất cả các giao thức mạng. Sự điều chỉnh tốt thêm vào là khả dụng cho IP và sự tạo lập đường biên trên kích thước gói.
Các gói được phân loại cho hàng đợi ưu tiên như thế nào?
Một danh sách ưu tiên là một mẫu các quy tắc mô tả các gói được ấn định cho hàng đợi ưu tiên như thế nào. Một danh sách ưu tiên có thể cũng được mô tả một mức ưu tiên mặc định hoặc giới hạn kích thước hàng đợi của các hàng đợi ưu tiên khác nhau.
Các gói có thể được phân loại theo các cách sau:
Loại giao thức hoặc loại giao thức con.
Giao diện vào
Kích thước gói
Phân mảnh
Danh sách truy cập
Keepalives (bản tin dẫn đường) xuất phát từ nhà dịch vụ mạng luôn luôn được ấn định cho hàng đợi ưu tiên cao; tất các các lưu lượng quản lý khác (như các cập nhật IGRP: Interior Gateway Routing Protocol) phải được cấu hình. Các gói không được phân loại bởi cơ chế danh sách ưu tiên được ấn định tới hàng đợi thông thường.
Tại sao sử dụng PQ?
PQ cung cấp sự đối xử ưu tiên hoàn toàn cho lưu lượng ưu tiên cao, đảm bảo lưu lượng chuẩn truyền qua nhiều kết nối WAN khác nhau nhận được sự đối xử ưu tiên. Hơn nữa, PQ cung cấp thời gian đáp ứng nhanh hơn các phương pháp hàng đợi khác.
Mặc dù chúng ta có thể cho phép ưu tiên các hàng đợi đầu ra cho một số giao diện, nhưng nó sử dụng tốt nhất cho các giao diện serial bị nghẽn, và băng thông thấp.
Những điều cần lưu ý
Khi lựa chọn sử dụng PQ, cần chú ý rằng bởi vì lưu lượng ưu tiên thấp hơn thường bị từ chối băng thông trong sự đối xử của lưu lượng ưu tiên cao hơn, việc sử dụng của PQ có thể (trong trường hợp xấu nhất) xảy ra hiện tượng lưu lượng ưu tiên thấp hơn không bao giờ được gửi đi. Để tránh hiện tượng này trên lưu lượng ưu tiên thấp, chúng ta có thể sử dụng định hình lưu lượng hoặc CAR để giới hạn tốc độ lưu lượng có mức ưu tiên cao hơn.
PQ thêm vào tiêu đề có thể được chấp nhận cho giao diện chậm, nhưng có thể không được chấp nhận cho giao diện tốc độ cao như Ethernet. Với PQ cho phép, hệ thống chiếm giữ lâu hơn để chuyển mạch các gói bởi vì các gói được phân loại bởi card bộ xử lý.
PQ sử dụng một cấu hình tĩnh và không thích ứng với điều kiện mạng thay đổi.
Hạn chế
PQ không hỗ trợ trên một số tunnel.
4.2.1.5 So sánh các chiến lược sử dụng hàng đợi
Bảng sau đây so sánh các chiến lược hàng đợi:
Flow-Based WFQ
CBWFQ
CQ
PQ
Số lượng hàng đợi
Số lượng hàng đợi có thể cấu hình (256 hàng đợi người dùng, mặc định)
Một hàng đợi trên một lớp, lên tới 64 lớp
16 hàng đợi người dùng
4 hàng đợi
Loại dịch vụ.
Đảm bảo công bằng giữa tất cả các luồng lưu lượng dựa trên trọng số
Hàng đợi ưu tiên thấp là khả dụng qua việc sử dụng mức ưu tiên IP hoặc mức ưu tiên IP RTP Frame Relay
Cung cấp đảm bảo băng thông lớp cho các lớp lưu lượng người sử dụng tự định nghĩa.
Cung cấp WFQ cơ sở luồng nhằm hỗ trợ các lớp lưu lượng người dùng không tự định nghĩa.
Hàng đợi có quyền ưu tiên chặt là khả dụng qua việc sử dụng mức ưu tiên IP, mức ưu tiên IP RTP Frame Relay hoặc LLQ
Dịch vụ Round Robin
Các hàng đợi có mức ưu tiên cao được phụ vụ trước
Quyền ưu tiên tuyệt đối đảm bảo lưu lượng liên quan của mức ưu tiên cao.
Cấu hình
Không yêu cầu cấu hình
Yêu cầu cấu hình
Yêu cầu cấu hình
Yêu cầu cấu hình
Bảng 4.1 So sánh các chiến lược sử dụng hàng đợi.
4.2.2 Các chiến lược tránh nghẽn.
Như đã nghiên cứu ở phần trên, các chiến lược hàng đợi quản lý sự cố nghẽn và ưu tiên hoá lưu lượng là điều quan trọng nhất. Phần này chúng giải quyết vấn đề tương tự nhưng ở một góc độ hoàn toàn khác. Thay vì kiểm soát các nghẽn đang tồn tại thì tránh nghẽn tiến hành các hoạt động ngăn chặn nghẽn trước khi nó xảy ra. Ở đây chúng ta chủ yếu nghiên cứu đến thuật toán RED và các biến thể của nó.
4.2.2.1 Random Early Detection
RED (Random Early Detection) là một cơ cấu tránh nghẽn (như là một cơ cấu đối nghịch với cơ chế quản lý nghẽn) rất hữu dụng, đặc biệt trong các mạng trung gian tốc độ cao. Sally và Van Jacobson đã giới thiệu nó trong những năm đầu của thập niên 90 thế kỷ 20.
RED sử dụng độ chiếm dụng trung bình của hàng đợi như là một tham số, một chức năng ngẫu nhiên mà nó quyết định cơ chế tránh nghẽn phải được khơi mào hay không. Sau khi độ chiếm dụng trung bình tăng lên thì khả năng loại bỏ gói cũng sẽ tăng lên. Thuật toán này được biểu diễn như hình 4.4:
Khi độ chiếm dụng thấp hơn mức ngưỡng minTH, thì các gói chuyển qua không bị ảnh hưởng (khả năng loại bỏ gói bằng không).
Khi độ chiếm dụng tăng quá giới hạn minTH, khả năng loại bỏ gói tăng theo đường thẳng và đạt tới maxP khi độ chiếm dụng đạt maxTH.
Tại và trên maxTH các gói sẽ bị loại bỏ.
Ba giai đoạn này thỉnh thoảng đề cập đến thứ tự bình thường của tránh nghẽn và điều khiển nghẽn. Trường hợp xấu nhất kích thước hàng đợi bị giới hạn bởi maxTH. RED bắt đầu khai mào sự chỉ dẫn nghẽn trước khi hàng đợi bị đầy.
Độ chiếm dụng trung bình được tính toán lại tại mọi thời điểm một gói đến và dựa vào bộ lọc thông thấp hoặc quy luật trung bình trọng số mũ (EWMA) của độ chiếm dụng hàng đợi tức thời. Công thức của nó là:
Qavg = (1 – Wq)*Qavg + Qinst * W
Qavg là độ chiếm dụng trung bình.
Qinst là độ chiếm dụng tức thời.
Wq là trọng số của hàm di chuyển trung bình.
Wq tác động tới tham số chiếm dụng trung bình theo độ chiếm dụng tức thời của hàng đợi. Giá trị cao hơn là mức chiếm cao hơn và giá trị thấp hơn thì mức thấp hơn. Mục đích là chọn lựa một giá trị cho phép RED bỏ qua trễ ngắn hạn mà không gây mất gói nhưng có tác dụng duy trì các mức độ chiếm dụng trước độ trễ của mọi tác động một cách vô hạn hoặc những luồng đồng bộ của việc tránh nghẽn của TCP chịu ảnh hưởng. Một router có thể giữ các giá trị minTH, maxTH và maxP khác nhau cho các hàng đợi khác nhau – cân bằng với tổng không gian khả dụng của hàng đợi, số lượng hàng đợi yêu cầu và độ trễ, độ rung pha hạn chế của lớp lưu lượng sử dụng các hàng đợi khác nhau. Thêm vào đó Wq phải khác nhau trong mỗi hàng đợi.
Hình 4.4: Random Early Detection
Thuật toán RED được thực hiện như sau:
Tính toán kích thước hàng đợi trung bình: avg
if avg < minTH
sắp xếp gói;
else if minTH ≤ avg ≤ maxTH
tính toán xác suất xảy ra Pa;
loại bỏ gói;
else với 1 - Pa
sắp xếp gói;
else if avg > maxTH
loại bỏ gói
Chiến lược loại bỏ ngẫu nhiên có những đặc điểm hữu ích như:
Chúng tạo ra một cớ chế phản hồi không tích cực cho TCP và cường độ tăng lên theo hàm mức nghẽn trong router.
Các luồng chịu sự chia sẻ của công suất đầu ra lớn hơn (các gói vào hàng đợi thường xuyên hơn) thì chịu cường độ phản hồi mạnh hơn.
Sự đồng bộ được giảm tới mức cực tiểu giữa nỗ lực tránh nghẽn của phiên truyền dẫn độc lập chia sẻ một hàng đợi riêng biệt.
Sự bắt đầu loại bỏ ngẫu nhiên sớm (trước khi hàng đợi thực sự sử dụng hết hoàn toàn không gian cho phép của nó) tăng lên thì có thể dễ dàng xếp ngoài vùng nghẽn tạm thời trước độ chiếm dụng hàng đợi là quá cao. Quá trình ngẫu nhiên sự phân phối loại bỏ trong giai đoạn đầu làm giảm sự tính ngẫu nhiên của nhiều luồng gói đồng thời loại bỏ gói.
Hai khoá giả định làm nền tảng cho việc loại bỏ dựa vào quản lý hàng đợi tích cực vào:
Nhiều hoặc hầu hết các tầng gây ra nghẽn tạm thời là nền tảng TCP và trước đó phản ứng tới phản hồi không tích cực của mất gói sớm.
Các gói thực sự loại bỏ thuộc về luồng (hoặc các luồng) TCP gây ra nghẽn.
Sự vắng mặt của các phương tiện phân loại và hàng đợi mỗi luồng mà các giả định này không thể luôn luôn có hiệu lực. Việc các gói đến trong suốt một khoảng thời gian nghẽn sẽ thuộc về các luồng chiếm dụng nhiều hơn là các luồng khác. Nó giữ vững lý do để loại bỏ gói trong suốt khoảng thời gian nghẽn như là gặp phải một luồng góp phần gây nghẽn. Đặc tính thời gian của các luồng gây nghẽn cho phép RED và biến thể của nó tập trung các luồng thích hợp. Thậm chí trong sự vắng mặt của tình huống gói mức luồng cụ thể.
4.2.2.2 Weighted Random Early Detection
Các bộ quản lý hàng đợi không hạn chế việc cung cấp một loại phương thức đơn trên một vài hàng đợi cho trước. Thông tin thêm vào từ tình huống của gói có thể lựa chọn một trong nhiều chức năng loại bỏ gói. Ví dụ, một gói được đánh dấu tại một số điểm đường xuống bị vượt quá mức, một hồ sơ lưu lượng có thể tìm cho mình đối tượng cho nhiều chính sách loại bỏ so với các gói khác. So sánh các gói khác được phân loại trong cùng một hàng đợi (các gói được đánh dấu vẫn được qua khi mạng gần như không bị nghẽn. Thông thường loại bỏ các gói trong các luồng ngoài hồ sơ trước) hoặc các gói đặt vào lớp dịch vụ khác tại nguồn có thể có chức năng loại bỏ kết hợp khác nhau.
Trong hình 4.5 là một bộ quản lý hàng đợi chọn lựa một trong hai đường cho một hàng đợi đơn dựa trên, chẳng hạn một bit đơn trong byte ToS của trường DiffServ. Các gói không bị đánh dấu là đối tượng cho RED với min1TH như là ngưỡng dưới của nó, max1TH như là ngưỡng trên của nó, và maxp là khả năng loại bỏ gói định trước khi hàm nhảy tới 1. Nói cách khác các gói bị đánh dấu là đối tượng cho đường xâm chiếm trong đó loại bỏ ngẫu nhiên bắt đầu tại một mức chiếm dụng thấp min2TH, tăng nhanh chóng tới 1 tại max2TH.
Việc giảm bớt hàm đặc trưng dựa vào tình huống gói thỉnh thoảng được đề cập đến như là việc đánh trọng số. Ít nhất một đại diện router chính sử dụng trường ưu tiên IPv4 để lựa chọn tám tham số minTH, maxTH, và maxP cho thuật toán RED (mặc dù không có tham số Wq cho hàm EWMA ) liên quan tới sơ đồ WRED.
Hình 4.5: Weight Random Early Detection
4.2.2.3 Random Early Detection cho các gói trong và ngoài hồ sơ
Một thuật toán liên quan tới WRED là RED với một in/out [RIO] cũng sử dụng sự đánh dấu gói để giảm nhẹ RED trên cơ sở từ gói tới gói. RIO thừa nhận các gói đã đi qua một bộ đánh dấu đường lên và một bit đơn trong tiêu đề gói để chỉ ra bộ đánh dấu nhận ra gói ở trong hay ngoài hồ sơ. RIO khác với WRED ở chỗ nó làm giảm chức năng EWMA trên cơ sở đánh dấu gói.
Mục tiên của RIO là phân biệt dựa vào các gói bên ngoài trong suốt thời gian nghẽn. Như vậy nó không thực hiện hai thuật toán chiếm dụng EWMA song song cùng nhau trong cùng hàng đợi – Qavg IN cho các gói bên trong và QavgOUT cho các gói bên ngoài. Tương tự hình 4.5 hai mẫu minTH, maxTH và maxP đều có mặt - một cho các gói bên trong và một cho các gói bên ngoài. Thông thường minTH và maxTH cho các gói bên ngoài thấp hơn cho các gói bên trong. Trái lại maxP cho các gói bên ngoài lại cao hơn cho các gói bên trong.
Điểm xử lý khác nhau là ở trong việc sử dụng hai giá trị độ chiếm dụng hàng đợi di chuyển trung bình riêng biệt. Khi tính toán một khả năng loại bỏ các gói, độ chiếm dụng hàng đợi đã thực hiện từ Qavg IN, ngược lại với các gói ngoài hàng đợi thì độ chiếm dụng hàng đợi được lấy từ Qavg OUT. Qavg IN dựa trên độ chiếm dụng trung bình các gói bên trong riêng lẻ, trái lại với Qavg OUT dựa trên độ chiếm dụng tổng trung bình của các gói cả trong và ngoài.
Một hệ quả của thiết kế này là không chỉ đường cong đặc trưng cho các gói bên ngoài xâm chiếm thêm mà mức trung bình cho các gói bên ngoài dịch đường đặc tuyến lên theo sự đáp ứng lại cả hai luồng lưu lượng trong và ngoài đi vào hàng đợi. Tuy nhiên số lượng gói bên ngoài đi qua hàng đợi không tác động đến khả năng loại bỏ gói. Nhân tố này thực hiện một vài cách ngăn ngừa chống sự bùng nổ gói bên ngoài từ sự khai mào tránh nghẽn không cần thiết trên các luồng mà các gói còn lưu giữ lại trong hồ sơ.
4.2.2.4 Adaptive Random Early Detection
RED cơ sở yêu cầu sự thích ứng kỹ lưỡng các thông số của nó để hoạt động có hiệu quả. Nó phải loại bỏ vừa đủ các gói đi tới đích của nó và không hơn. Một điều đáng tiếc là thông số thiết lập phụ thuộc vào trạng thái tự nhiên và trạng thái bùng nổ của lưu lượng qua một hàng đợi RED cơ sở. Ví dụ Wq tác động nhanh mức nào đến Qavg theo hướng chiếm dụng hàng đợi tức thời và sẽ phải chọn để RED loại bỏ sự bùng nổ tạm thời chưa tác động trở lại trong thời gian làm nản sự xây dần nghẽn dài hạn lên. Còn tốc tốc độ tại điểm nghẽn dài hạn xuất hiện phụ thuộc vào một tập bao nhiêu luồng TCP được sắp xếp đồng thời trong hàng đợi.
Trong sự có mặt của một số ít luồng TCP, nghẽn dường như được tạo ra rất chậm, và Wq phải chậm theo. Tuy nhiên việc sử dụng giá trị tương tự của Wq trong sự có mặt của các luồng TCP dẫn tới các giai đoạn tránh nghẽn trong RED không đáp ứng đủ sớm hoặc đủ năng động. Ngược lại việc chọn Wq thoả mãn phương thức RED nhanh trong nhiều luồng TCP có thể thành công trong phương thức loại bỏ xâm chiếm thái quá khi chỉ một số ít luồng đi qua hàng đợi.
RED thích ứng (ARED) cố gắng địa chỉ hoá giới hạn này là cách cho phép RED làm giảm tham số của nó dựa trên hồ sơ nghẽn gần đây. Nó được chú thích trong ARED là với N kết nối chia sẻ một hàng đợi, hiệu quả của việc loại bỏ gói RED thêm vào cho trước là làm giảm tải trọng đơn hướng của (1 – 1/(2*N)). Nói cách khác khi N tăng lên RED cần phải tăng độ chiếm dụng để đạt tới kết quả là không đổi.
Để địa chỉ hoá cho vấn đề này, ARED linh động điều chỉnh maxP dựa vào sự biến động của Qavg gần đây (xem hình 4.6). Nếu Qavg rớt theo minTH thì giá trị duy trì của maxP được tính toán. Nếu Qavg tăng quá maxTH thì mức xâm chiếm maxP được tính toán. Nếu Qavg dao động quanh minTH thì ARED tiếp tục giảm maxTH. Nếu Qavg dao động quanh maxTH, thì ARED tiếp tục tăng maxTH.
Một hệ quả là thuật toán ARED thay đổi theo sự thay đổi tải trọng trên hàng đợi có thể do sự tăng hoặc giảm số lượng luồng TCP qua hàng đợi ở một thời điểm. Thuật toán làm việc mà không yêu cầu làm sáng tỏ hay thông tin nhận được bên ngoài các luồng số.
Hình 4.6: Adaptive Random Early Detection
4.2.2.5 Flow Random Early Detection
Tách sớm ngẫu nhiên mức luồng FRED thay cho sự tinh lọc khác của thuật toán RED [FRED97]. Giải pháp giải thích xu thế của RED là không cân bằng khi hàng đợi được chia sẻ giữa các luồng phản ứng khác nhau tới thông báo nghẽn sớm. Đặc trưng được cho bởi “ động lực của RED”(Dynamics of RED) [FRED97]:
Các luồng không thích ứng – giao thức truyền tải bỏ qua sự loại bỏ gói.
Luồng chặt – các kết nối TCP với thời gian triệt xung quanh ngắn (RTTs) mà trước đó phục hồi nhanh từ việc loại bỏ gói.
Luồng dễ vỡ – các kết nối TCP với RTTs dài mà trước đó khôi phục chậm từ việc loại bỏ gói.
Khi sự pha trộn giữa các luồng này vượt quá một hàng đợi RED được quản lý, phương thức của luồng không thích ứng có thể đẩy Qavg lên cao hơn minTH và gây ra mất gói ở tất cả các luồng, thậm chí cả khi các luồng khác nhau đó được đối xử một cách thông thường. Tương tự như vậy luồng chặt tác động kém hơn bởi việc mất một vài gói riêng lẻ so với luồng dễ vỡ đơn giản, bởi vì tốc độ phục hồi của TCP phụ thuộc vào RTT của luồng. Toàn bộ hiệu quả và thông báo nghẽn tác động đến các loại luồng khác một cách không cân bằng.
FRED điều khiển tình trạng này bằng phương thức loại bỏ gói từng chặng trên cơ sở tầng ngắn hạn trên mỗi luồng (nhưng chỉ các luồng có gói trong hàng đợi tại thời điểm cho trước). Hai biến số minq và maxq đại diện cho số lượng gói mức thấp và mức cao và một vài luồng cho trước phải được sắp xếp tại thời điểm cho trước. Biến số Avgcq đại diện cho lượng gói trung bình được đánh giá mỗi luồng hiện thời có trong hàng đợi.
Khi Qavg nhỏ hơn maxTH, FRED luôn nhận được các gói thuộc các luồng gói ít hơn minq gói sẵn sàng trong hàng đợi. Việc thiết lập minq giữa 2 và 4 đảm bảo một vài không gian hàng đợi cực tiểu đến các luồng dễ vỡ. Nếu luồng có nhiều hơn maxq gói hiện tại trong hàng đợi, FRED loại bỏ gói mới không kể Qavg là bao nhiêu. Thực tế này bao gồm các luồng không thích ứng. Trong đó một luồng có giữa minq và maxq gói trong hàng đợi, FRED sử dụng RED thông thường để quy định có hay không một gói phải được chấp nhận hay bị loại bỏ.
Thậm chí mặc dù FRED không yêu cầu hàng đợi từng luồng nó cũng yêu cầu router thiết lập tình huống luồng, thêm một số phần phải tương đối phức tạp biến thể RED trước.
KẾT LUẬN
Kiến trúc CQS là một kiến trúc khá mới trong mạng Internet. Kiến trúc này chỉ có trong mạng dịch vụ tích hợp và dịch vụ khác biệt. Kiến trúc CQS giúp làm tăng khả năng xử lý cho router trong vấn đề định tuyến các dịch vụ tích hợp. Mà một trong những vấn đề xử lý của router là vấn đề quản lý và loại bỏ tắc nghẽn. Trong Đồ án này đã đề cập đến việc giải quyết vấn đề đó. Một số chiến lược quản lý nghẽn như: hàng đợi FIFO, hàng đợi cân bằng trọng số, hàng đợi khách hàng, hàng đợi ưu tiên đã được đưa ra nghiên cứu cũng như một số phương pháp tránh nghẽn như: RED, WRED, FRED, ARED. Các phương pháp này có thể được ứng dụng rộng rãi trong mạng viễn thông. Nhưng trong giới hạn của Đồ án này chỉ tập trung nghiên cứu chúng trong mạng dịch vụ tích hợp, dịch vụ khác biệt và thừa nhận rằng các router trong mạng đều có kiến trúc CQS. Đồ án cũng thực hiện lập trình mô phỏng xác định lượng băng thông cung cấp cho các luồng lưu lượng sử dụng thuật toán WFQ.
Rất mong được sự đóng góp ý kiến của các thầy cô giáo và các bạn để đồ án được hoàn chỉnh hơn. Tôi xin chân thành cảm ơn.
TÀI LIỆU THAM KHẢO
Grenville Arimitage. “Quastlity of Service in IP Networks”. Macmillan Technical Publishing – U.S.A
Lin, D., and R. Moris. “Dynamics of Random Early Detection”. Proceeding from ACM SIGCOMM 97. Cannes, France. (October 1997).
Floyd, S. and V. Jacobson. “Random Early Detection Gateways for Congestion Avoice”. IEEE/ACM Transactions on Networking 1, no.4 (August 1993).
Hoàng Trọng Minh. “Công nghệ chuyển mạch IP”. Học viện công nghệ bưu chính viễn thông.
Các file đính kèm theo tài liệu này:
- Ban Word.doc
- Trinh bay.ppt