đồ án quality of service
Trang 1LỜI CÁM ƠN
Để hoàn thành bài lab , em thay mặt nhóm cám ơn quý Thầy Cô giáo bộ môn Trường Đại Học Kỹ Thuật Công Nghệ đã giảng dạy , hỗ trợ kiến thức và định hướng những kiến thức quý báu để nhóm em có thể tìm hiểu và tiếp cận với những công nghệ và lĩnh vực mới
Và cuối cùng gửi lời cám ơn đến tất cả các bạn trong nhóm đã đoàn kết , động viên , góp ý sát cánh cùng nhau trên con đường học tập nói chung và hoàn thành bài lab này nói riêng
Do thời gian eo hẹp và khả năng có hạn bài báo cáo không tránh những thiếu sót Kính mong nhận được ý kiến đóng góp , phê bình của quý thầy cô và các bạn để bài lab ngày càng hoàn thiện hơn !
Em xin chân thành cám ơn !
Mọi ý kiến thắc mắc , xin liên hệ các thành viên trong nhóm :
1 Lâm Chí Tân – 1122060165
2 Nguyễn Hoài Nam – 1122060212
3 Nguyễn Tuấn Anh – 1122060227
Trang 2MỤC LỤC
LỜI CÁM ƠN 1
MỤC LỤC 2
CHƯƠNG I TỔNG QUAN QOS 5
1.Lý do ra đời QoS 5
2 Các vấn đề cơ bản tron QoS 5
2.1 Bandwidth 5
2.2 Delay 6
2.3 Jitter 8
2.4 Packet loss 8
CHƯƠNG II : KIẾN THỨC CƠ BẢN QoS 9
1 Mô hình Intserv 9
1.1 Tổng quan mô hình Intserv 9
1.2 Nguyên lý hoạt động của giao thức RSVP 9
2 Mô hình Diffserv 12
2.1 Tổng quan mô hình Diffserv 12
2.2 Nguyên lý hoạt động mô hình Diffserv 13
3 Sự khác nhau giữa mô hình IntServ và DiffServ 15
CHƯƠNG 3 : CÔNG CỤ QOS 15
1 Phân loại và đánh dấu 15
1.1 Phân loại (Classification) 16
1.1.2 Class based marking 16
1.1.3 Network-Based Application Recongnition (NBAR) 19
2 Đánh dấu (Marking) 20
2.1 IP Precedence và DSCP 20
2.2 Assured Forwarding (AF) PHB và giá trị DSCP 23
2.3 Expedited Forwarding (EF) PHB và giá trị DSCP 25
2.4 LAN Class of Service – CoS 28
2.5 Đánh dấu gói tin trên WAN 30
Trang 34 Congestion Management Queuing (Quản Lý Tắc Nghẽn) 31
4.1 Các khái niệm và cơ chế cơ bản 31
4.1.1 Khái niệm 31
4.1.2 Cơ chế 31
4.1.3 Các Nguyên Nhân Gây Tắc Nghẽn 32
4.1.4 Các Nguyên Nhân Gây Tắc Nghẽn 32
4.1.5 Các cơ chế quản lý tắc nghẽn 32
4.1.6 Khái niệm hàng đợi 33
4.2 Các kĩ thuật hàng đợi 33
4.2.1 FIFO (First in first out) 33
4.2.2 PQ (Priority Queuing) 35
4.2.3 CQ (Custom Queuing) 37
4.2.4 WFQ (Weighted Fair Queuing) 38
4.2.5 CBWFQ (CLASS-BASED WEIGHTED FAIR Queuing) 39
4.2.6 LLQ (LOW-LATENCY Queuing ) 40
4.3 Congestion Avoidance 41
4.3.1 Random Early Detection (RED) 41
4.3.2 Weighted Random Early Detection 43
4.3.3 Explicit Congestion Notification (ECN) 46
4.4 Link – efficiency 48
4.4.1 Nén dữ liệu tải và IP Header 48
4.4.2 Link Fragmentation and Interleaving (chia nhỏ gói tin và ưu tiên truyền) 50
CHƯƠNG 5 THỰC NGHIỆM 51
5.1 Mục tiêu đồ án 51
5.2 Mô hình thực nghiệm 52
5.3 Công cụ cần thiết 52
5.4 Các bước thực hiện 53
5.4.1 Cấu hình tổng đài Asterisk trên PC 1 53
5.4.2 Cấu hình cơ bản cho từng Router 56
Trang 45.4.3 Cấu hình định tuyến OSPF, BGP 60
5.4.4 Cấu hình NetFlow Analyzer trên Router thích hợp 61
5.4.5 Cấu hình MPLS trên Router PE1, P1, PE2 62
5.4.6 Cấu hình QoS cho mạng MPLS 63
5.5 Kết quả đạt được 72
SHOW BẢNG ĐỊNH TUYẾN 72
DÙNG CÁC LỆNH SHOW ĐỂ KIỂM TRA CẤU HÌNH QOS 74
KẾT QUẢ KHI NÉN GÓI TIN 77
KẾT QUẢ SỬ DỤNG PHÀN MỀM DoSHTTP LÀM NGHẼN MẠNG 78
GÓI TIN TRÊN WIRESHARK 80
KẾT QUẢ ĐẠT ĐƯỢC TRÊN PHẦN MỀM NETFLOW 82
PHỤ LỤC CẤU HÌNH 83
TÀI LIỆU THAM KHẢO 106
Trang 5CHƯƠNG I TỔNG QUAN QOS
1.Lý do ra đời QoS
Chúng ta biết rằng TCP/IP network hay đơn giản hơn là IP network, internet hiện nay có
tốc độ phát triển vô cùng nhanh chóng Kèm theo đó là sự phát triển của các dịch vụ, ứng
dụng trong đó có những dịch vụ có yêu cầu cực kỳ khắt khe về availability of bandwidth, delay, jitter như VoIP hay video streaming chẳng hạn nhóm các ứng dụng này có thể
gộp lại thành nhóm real time application
Mà chúng ta biết rằng TCP/IP là best effort (tức là các node mạng chạy TCP/IP sẽ xử lý
các gói với nỗ lực tối đa nhưng nó hoàn toàn không đảm bảo về khả năng mất gói (packet loss), gói đến trễ (latency) TCP/IP thật sự không có bất cứ 1 cơ chế nào để đảm bảo
các yêu cầu mà nhóm Real time applications yêu cầu
Và đó chính là lý do mà người ta nghĩ đến [I]cần phải có 1 dịch vụ nào đó để có thể kết
hợp với TCP/IP nhằm bảo cho các packet truyền đi sẽ được đảm bảo về độ mất gói, độ
trễ, độ jitter v.v Cái services đó phải có khả năng phân loại (classtification) các packet,
để làm cơ sở cho việc đối xử các gói đó khác nhau (vì chúng ta biết rằng trong hệ thống
mạng luôn có rất nhiều các ứng dụng của nhiều user chạy cùng 1 lúc Vậy làm thế nào để
biết ứng dụng nào cần đảm bảo QoS (VOIP, Video streaming ) , ứng dụng nào không
cần (FTP, Email ) do đó muốn đảm bảo chất lượng được, muốn QoS được trước hết
phải phân loại các gói tin
2 Các vấn đề cơ bản tron QoS
2.1 Bandwidth
Trong mạng máy tính,khái niệm bandwidth còn được hiểu là “tốc độ truyền tải dữ liệu”
Là lượng dữ liệu được chuyển từ điểm này sang điểm khác trong 1 đơn vị thời gian (ở
đây được tính bằng giây)
Bandwidth càng cao không có nghĩa tốc độ truyền dữ liệu càng cao
Tốc độ truyền phụ thuộc vào nhiều yếu tố như clock rate, môi trường truyền, công
nghệ…
Trong mạng p2p, bandwidth bằng với tốc độ của đường truyền vật lý hoặc clock rate
trong môi trường vật lý Số bit được gửi không được nhanh hơn clock rate của interface
Trang 6Bandwidth trong Frame Relay
Đây là một mạng kết nối đa điểm kết hợp giữa các kết nối vật lý và ảo hóa được cung cấp bởi các nhà cung cấp dịch vụ Vì thế bandwidth thường không ổn định
Nhà cung cấp đảm bảo bandwidth bằng chỉ số CIR (Committed information rate)
Trang 7Thời gian tiêu tốn để mã hóa các bit của 1 packet trên cổng interface
Công thức: Serialization Delay = Frame Size/Link Speed
Propagation Delay
Độ Delay do môi trường truyền
Trong môi trường chân không có công thức:
Propagation Delay (m/s)=Length of Link /3*108
Trong môi trường dây đồng có công thức
Propagation Delay (m/s)=Length of Link /2.1*108
Queuing Delay
Xảy ra khi 1 packet phải đợi những packet khác gửi đi xong
Forwarding Delay
Trang 8Là thuật ngữ chỉ thời gian xử lý khi một frame đã đầy đủ các packet và khi packet
được đặt trong queue đầu ra
Shaping Delay
Vận chuyển gói tin để tránh thất lạc
Đây là tùy chọn riêng, Vì bình thường gửi packet quá nhanh khiến packet dễ drop, trong
khi quá chậm không hẳn packet sẽ không drop Lúc này Traffic Shaping là giải pháp
Router hỏng/ rớt gói/ gói tin bị loại là 1 trong nhiều lí do mất gói tin, hầu hết không có
Tool nào có thể giải quyết được chuyện này
Trang 9CHƯƠNG II : KIẾN THỨC CƠ BẢN QoS
1 Mô hình Intserv
1.1 Tổng quan mô hình Intserv
Mô hình IntServ được IETF giới thiệu vào giữa thập niên 90 với mục đích hỗ trợ chất
lượng dịch vụ từ đầu cuối tới đầu cuối Các ứng dụng sẽ nhận được băng thông đúng yêu
cầu và truyền đi trong mạng với độ trễ cho phép
- Trên thực tế giao thức RSVP là giao thức duy nhất dùng để báo hiệu cho mô hình
IntServ Vì thế đôi khi người ta lầm lẫn dùng RSVP để nói về IntServ Thật ra, IntServ là
kiến trúc hỗ trợ chất lượng dịch vụ mạng, còn RSVP là giao thức báo hiệu cho IntServ
- Ngoài giao thức báo hiệu, mô hình tích hợp dịch vụ còn định nghĩa thêm một số lớp
dịch vụ
- Một ứng dụng sẽ xác định đặc tính của luồng lưu lượng mà nó đưa vào mạng đồng thời
xác định một số yêu cầu về mức dịch vụ mạng Đặc tính của lưu lương Tspec (Traffic
Specification) yêu cầu mức chất lượng dịch vụ Rspec (Required Specification) Vì thế
các bộ định tuyến phải có khả năng thực hiện các công việc sau:
• Kiểm soát (policing): kiểm tra TSpec của luồng lưu lượng; nếu không phù hợp thì loại
bỏ luồng
• Điều khiển chấp nhận: kiểm tra xem tài nguyên mạng có đáp ứng được yêu cầu của ứng
dụng hay không Nếu không thể đáp ứng, mạng sẽ từ chối
• Phân lớp (Classification): phân loại gói dữ liệu căn cứ vào mức yêu cầu chất lượng dịch
vụ của gói
• Hàng đợi và lập lịch (queuing and scheduling): đưa gói dữ liệu vào hàng đợi tương ứng
và quyết định hủy gói dữ liệu nào khi xảy ra xung đột
1.2 Nguyên lý hoạt động của giao thức RSVP
RSVP là một cơ chế báo hiệu dùng để dành riêng tài nguyên trên một mạng RSVP
không phải là một giao thức định tuyến Việc quyết định tuyến do IGP (gồm cả các mở
rộng TE) và CSPF
- Công việc của RSVP là báo hiệu và duy trì tài nguyên dành riêng qua một mạng Trong
Trang 10MPLS TE, RSVP dự trữ băng thông tại mặt phẳng điều khiển (control-plane layer);
không có chính sách lưu lượng trên mặt phẳng chuyển tiếp (forwarding-plane) Khi sử
dụng cho các mục đích khác (như VoIP hay DLSW+reservations), RSVP có thể được
dùng để dành riêng không gian hàng đợi công bằng có trọng số (WFQ – Weighted Fair
Queuing) hay xây dựng các ATM SVC
- RSVP có ba chức năng cơ bản:
Thiết lập và duy trì đường đi (Path setup and maintenance)
Hủy đường đi (Path teardown)
Báo lỗi (Error signalling)
RSVP là một giao thức trạng thái mềm (soft-state protocol) Nghĩa là cần tái báo hiệu
trên mạng để làm tươi định kỳ cho nó Với RSVP, một yêu cầu bị hủy nếu nó được chỉ
định xóa khỏi mạng bằng RSVP hay hết thời gian dành riêng (reservation times out)
Thiết lập đường đi (Path Setup):
- Sau khi đầu đường hầm (tunnel headend) hoàn thành CSPF cho một đường hầm cụ thể,
nó gửi một thông điệp Path đến nút kế tiếp (next-hop) dọc theo đường đi đã tính toán đến
đích LSR gửi thông điệp Path được gọi là LSR ngược dòng (upstream router), và LSR
nhận thông điệp được gọi là LSR xuôi dòng (down-stream router) LSR ngược dòng con
duoc goi la trạm trước đó ( phop – previous hop)
- Sau khi LSR xuôi dòng nhận một thông điệp Path, nó kiểm tra định dạng của thông
điệp, sau đó kiểm tra lượng băng thông mà thông điệp yêu cầu Tiến trình này được gọi là điều khiển chấp nhận (admission control)
- Nếu việc kiểm tra này thành công và thông điệp Path được phép dành riêng băng thông
như nó yêu cầu, LSR xuôi dòng tạo một thông điệp Path mới và gửi đến nút kế trong đối
tượng tuyến tường minh (ERO – Explicit Route Object) Thông điệp Path tiếp tục được
chuyền đi đến khi nào chúng đến được nút cuối cùng trong ERO – đuôi đường hầm
MPLS TE (tunnel tail)
- Đuôi đường hầm thực hiện điều khiển chấp nhận trên thông điệp Path giống như các
LSR xuôi dòng khác Khi nó nhận ra rằng nó là đích đến của thông điệp Path nó trả lời lại bằng thông điệp Resv Resv đóng vai trò như là một ACK báo về cho LSR ngược dòng
Trang 11Resv chứa một thông báo rằng thỏa mãn sự dành riêng đến cuối đường hầm và thông tin
nhãn đến (incoming label) cho LSR ngược dòng sử dụng để gửi các gói dọc theo TE LSP
đến đích
Duy trì đường đi (Path Maintenance):
- Thoạt nhìn, việc duy trì đường đi giống như thiết lập đường đi Mỗi 30 giây đầu đường
hầm gửi một thông điệp Path đến láng giềng xuôi dòng của nó Nếu một LSR gửi đi một
dãy 4 thông điệp Path và không thấy Resv, nó nghĩ rằng sự dành riêng bị mất và gửi một
thông điệp ngược dòng (message upstream) báo rằng sự dành riêng bị mất
- Các thông điệp Path và Resv được gửi độc lập và bất đồng bộ giữa các láng giềng với
nhau Mỗi 30 giây, R1 gửi thông điệp Path cho một sự dành riêng của nó tới R2 Và mỗi
30 s, R2 gửi một thông điệp Resv đến R1 với cùng sự dành riêng đó Tuy nhiên hai thông
điệp này không liên hệ nhau Thông điệp Resv được dùng để làm tươi (refresh) một sự
dành riêng đang tồn tại chứ không phải trả lời cho thông điệp Path
Hủy đường đi:
-Nếu một nút (thường là đầu đường hầm) quyết định một sự dành riêng không còn cần
thiết trong mạng, nó gửi một thông điệp PathTear dọc theo đường thông điệp Path đã đi
và một ResvTear dọc theo đường của Resv
- Thông điệp ResvTear được gửi để hồi đáp cho PathTear báo hiệu đuôi đường hầm
PathTear và ResvTear cũng được gửi để trả lời một điều kiện lỗi trong mạng
-Không giống thông điệp làm tươi, PathTear không cần đi đến hết downstream trước khi
nhận được kết quả Trong hình 3.3, nếu R1 gửi PathTear đến R2, ngay lập tức R2 trả lời
bằng một ResvTear, sau đó gửi PathTear xuôi dòng của nó
Báo lỗi:
- Thỉnh thoảng, tín hiệu RSVP có thể bị lỗi Các lỗi này được báo hiệu bằng thông điệp
PathErr hay ResvErr Thông điệp lỗi được gửi ngược dòng về phía nguồn của lỗi; một
PathErr được gửi ngược dòng từ một nút xuôi dòng và một ResvErr được gửi xuôi dòng
từ một nút ngược dòng
Về tổng quát, giao thức RSVP hoạt động như sau: Khi một node nào đó gửi dữ liệu, nó
gửi một bản tin RSVP qua các node trung gian tới nút nhận, bản tin này chứa đặc điểm
lưu lượng sẽ gửi, đặc điểm của các node mạng trên đường đi Node nhận sau khi nhận
được thông điệp, căn cứ vào đặc điểm lưu lượng và đặc điểm đường đi, sẽ gửi lại một
thông điệp để đăng ký tài nguyên tại các node trung gian trên đường đi đó Nếu việc đăng
ký thành công, node gửi bắt đầu truyền dữ liệu Nếu không, thông điệp đi đến node gửi sẽ báo lỗi
Trang 12Một phiên làm việc của giao thức RSVP được các định bởi các tham số trong một luồng
dịch vụ (địa chỉ IP nguồn, IP đích, cổng nguồn, cổng đích, nhận dạng giao thức)
Máy gửi gửi bản tin PATH (mô tả thông tin truyền thông qua địa chỉ IP nguồn và
địa chỉ IP đích theo chiều đi) đến máy nhận để yêu cầu dành trước tài nguyên và thiết lập
một luồng truyền thông Máy nhận nhận được bản tin PATH sẽ gửi lại máy gửi bản tin
RESV (mô tả thông tin truyền thông qua địa chỉ IP nguồn và địa chỉ IP đích theo chiều
về) để thiết lập và duy trì việc dự trữ tài nguyên Khi đi qua các router, dựa vào hai bản
tin PATH và RESV, các router đăng ký nhận dạng luồng và lưu đặc tính luồng vào cơ sở
dữ liệu
2 Mô hình Diffserv
2.1 Tổng quan mô hình Diffserv
Cùng với sự nghiên cứu của Intserv theo mô hình flow-based để cung cấp chất lượng
dịch vụ trên môi trường IP,Diffserv được phát triển theo mô hình class-based Thay vì
tách riêng va quản lý các luồng thông tin riêng rẻ,Diffserv định nghĩa các lớp dịch vụ
(class of service) trong đó nhiều luồng dữ liệu có thể thuộc về cùng một class,được cung
cấp một loại chất lượng dịch vụ Chính cách tiếp cận này nên Diffserv không lưu giữ các
trạng thái soft-states mà thay vào đó các luồng dữ liệu được đánh dấu theo các lớp dịch
Trang 13vụ khác nhau dựa vào trường DSCP (dùng 6 bit của các trường ToS và CoS trong Ipv4 và Ipv6)
2.2 Nguyên lý hoạt động mô hình Diffserv
Nguyên lý hoạt động của mô hình DiffServ như sau: Các gói tin được phân loại ra thành nhiều nhóm ưu tiên từ thấp đến cao tùy theo đặc điểm của từng dịch vụ, thiết bị sẽ tiến hành cung cấp tài nguyên theo từng nhóm, nhóm nào có thứ tự cao hơn thì sẽ được cung cấp quyền được sử dụng tài nguyên ưu tiên hơn, tài nguyên sẽ được các nhóm thấp hơn dùng nếu nhóm trên không sử dụng nữa Tất cả các quá trình này sẽ được thực hiện riêng
lẻ trên từng thiết bị
Cấu trúc của mô hình DiffServ bao gồm nhiều class lưu lượng cho từng dịch vụ cụ thể và mỗi class được cung cấp một lượng tài nguyên xác định Để phân biệt các class, DiffServ sử dụng một thông tin gọi là điểm mã phân biệt dịch vụ DSCP (Differentiated Service Code Point) DSCP có tiền thân là vùng ToS (Type of Service) trong IP header
Khi router nhận gói tin với giá trị DSCP nào đó thì chính giá trị DSCP cho biết yêu cầu QoS cho gói tin đó DSCP sẽ xác định một hành vi Perhop Behavior (PHB) Hành vi PHB dùng để kích hoạt và hỗ trợ QoS cho các gói tin được đánh dấu bằng giá trị DSCP Sau đây là một số giá trị PHB chuẩn:
- Giá trị mặc định (Default): Tương đương với yêu cầu Best-Effort
Trang 14- Expedited Forwarding (EF) PHB – Chuyển tiếp nhanh: Gói tin được gán giá trị này sẽ có độ delay nhỏ nhất và packet loss thấp nhất
- Assured Forwading (AF) PHB – Chuyển tiếp bảo đảm: Những gói tin có thể được đảm bảo chọn cho một PHB với yêu cầu bandwidth, delay, jitter, packet loss hoặc cả độ
ưu tiên cho truy cập đến dịch vụ mạng
Giải pháp QoS theo mô hình DiffServ được thực hiện nhờ các kỹ thuật sau: Classification (phân loại) và Marking (đánh dấu) Việc phân loại và đánh dấu sẽ giúp thực hiện các cơ chế QoS ở những bước sau:
- Quản lý tắc nghẽn: Cơ chế quản lý tắc nghẽn được thực hiện trên các interface của thiết bị mạng Khi gói tin đến các interface này, các gói tin sẽ được phân vào từng hàng đợi có mức độ ưu tiên khác nhau
- Tránh tắc nghẽn: Cơ chế loại bỏ gói tin khỏi hàng đợi trước khi hàng đợi đây (nếu hàng đợi đầy có thể gây ra hiện tượng tắc nghẽn)
- Đặt ngưỡng: Cơ chế đặt ngưỡng trên, ngưỡng dưới cho bandwidth Bandwidth sẽ được đảm bảo một ngưỡng dưới tối thiểu và khi lớn hơn ngưỡng trên thì gói tin có thể bị đánh rớt hay được đưa vào hàng đợi
- Nén Header: Header chiếm phần lớn trong 1 gói tin nhưng không mang thông tin thật sự, cơ chế nén header sẽ giúp tiết kiệm được băng thông (nhờ làm giảm số lượng bits truyền đi)
Fragmentation (phân mảnh): Các gói tin có độ dài lớn có thể gây ra delay và tắc nghẽn
Cơ chế phân mảnh sẽ phân các gói tin này thành các gói tin nhỏ hơn để tránh tắc nghẽn
Trang 153 Sự khác nhau giữa mô hình IntServ và DiffServ
Trong một mạng sử dụng QoS, chúng ta có thể không cần dùng đến IntServ hay DiffServ
mà mạng vẫn chạy bình thường, tuy nhiên nếu có ứng dụng DiffServ hay IntServ vào thì
sẽ cho kết qua tốt hơn nhiều, và có thể đảm bảo chất lượng dịch vụ cao hơn DiffServ ra
đời để khắc phục các khuyết điểm của IntServ, giữa chúng có những sự khác nhau:
CHƯƠNG 3 : CÔNG CỤ QOS
1 Phân loại và đánh dấu
QoS là khả năng cung cấp các mức xử lý khác nhau hướng đến các lớp lưu lượng riêng
Trước khi các ứng dụng hay các kỹ thuật QoS được áp dụng, lưu lượng phải được nhận
biết và sắp xếp vào trong các lớp khác nhau Thiết bị mạng sử dụng sự phân loại để nhận
biết lưu lượng theo các lớp riêng biệt Sau khi lưu lượng mạng được sắp xếp, việc đánh
dấu được thực hiện bằng cách gắn thẻ cho các gói riêng biệt để các thiết bị mạng khác có
thể thực hiện các chức năng QoS cho các gói đó khi chúng di chuyển thông qua mạng
Dùng giao thức báo hiệu RSVP để dành
trước băng thông mạng, do đó sẽ tốn tài
nguyên mạng vô ích
Không dùng bất kì giao thức báo hiệu nào
để dành trước băng thông mạng,do vậy tiết kiệm được băng thong mạng
Chỉ có thể sử dụng cho mạng cỡ nhỏ với
số lượng lưu lượng nhỏ
Có thể sử dụng cho mạng lớn và cả mạng nhỏ với số lưu lượng rất lớn
Tốn nhiều tài nguyên mạng Ít tốn tài nguyên mạng
Khởi tạo một kênh truyền trước khi
Trang 161.1 Phân loại (Classification)
Phân loại là việc các gói tin sẽ được đưa vào những hàng đợi khác nhau mỗi khi tới
router, IOS của router bằng cách này hay cách khác phải phân biệt được các gói tin khác
nhau với độ ưu tiên khác nhau để đưa vào các hàng đợi thích hợp, nó phải biết được gói
tin nào có RTP (Real time protocol) headers để shape (định hướng) cho gói tin nhằm
cung cấp đủ băng thông cho lưu lượng là voice IOS phải phân biệt được đâu là VoIP và
đâu là data, để làm điều này thì nó phải sử dụng Phân Loại (Classification) Để có thể
phân loại được gói tin, thông thường phải kiểm tra một số trường trong headers, sau khi
phân loại, một QoS tool sẽ đưa gói tin vào hàng đợi thích hợp, hầu hết sự phân loại nhằm
phân biệt đâu là gói tin VoIP và đâu là gói tin không phải VoIP
1.1.2 Class based marking
Class-Based Marking có thể phân loại gói tin vào trong các lớp dịch vụ bằng cách phân
tích các frame, cell (dùng cho ATM), packet, segment (gói tin ở tầng Transport)
Class-Based Marking cũng có thể dùng ACL để phân loại gói tin Dưới đây là bảng các trường
có thể phân loại với Class-Based Marking bằng cách dùng ACL (Cisco IOS router
12.2(15)T5):
Địa chỉ IP
nguồn
Địa chỉ nguồn có thể được match dùng wildcard mask
Địa chỉ IP đích Địa chỉ đích có thể được match dùng wildcard mask
IP Precedence Các giá trị của IP Precedence định mức ưu tiên cho lưu
lượng
IP DSCP Các giá trị DSCP (theo giá trị thập phân) định mức ưu tiên
cho lưu lượng
Trang 17IP ToS
Kểm tra các bit ToS có bật lên hay không Với các từ khoá : normal (0000), max-reliability (1000), max-throughput (0100), min-delay (0010) và min-monetary-cost (0001)
TCP
Kiểm tra cổng nguồn và đích, hay một dãy các cổng xem
số hiệu cổng có lớn hơn hay nhỏ hơn một số xác định không
Thiết lập TCP
Mặc dù không hoàn toàn hữu dụng trong phân loại QoS, ACL vẫn có thể match tất cả các TCP segment sau khi khởi gán segment dùng cho việc thiết lập kết nối
UDP
Kiểm tra cổng nguồn và đích, hay một dãy các cổng xem
số hiệu cổng có lớn hơn hay nhỏ hơn một số xác định không
ICMP Kiểm tra một lượng lớn các thông điệp ICMP khác nhau
và loại code (ví dụ echo request và echo reply)
IGMP Kiểm tra các loại thông điệp Internet Group Management
Protocol
Các trường có thể phân loại với Class-Based Marking bằng cách dùng ACL
[Tham khảo: IP Telephony Self-Study Cisco QOS Exam Certification Guide]
Bên cạnh các trường có thể phân loại với Class-Based Marking bằng cách dùng ACL, còn có các trường đối chiếu trực tiếp với Class-Based Marking mà không cần dùng ACL như trong bảng sau:
Trang 18QoS Group Trường QoS dùng để dán nhãn gói tin bên trong router
[Tham khảo: IP Telephony Self-Study Cisco QOS Exam Certification Guide]
Chú ý: IP Precedence và DSCP có thể phân loại với Class-Based Marking bằng cách dùng hoặc không dùng ACL
Trang 191.1.3 Network-Based Application Recongnition (NBAR)
NBAR là phần mềm đặc trựng của Cisco IOS, cung cấp khả năng phân loại mạng thông
minh cho các thiết bị NBAR có cơ chế phân loại để nhận dạng nhiều ứng dụng khác
nhau, bao gồm cả các ứng dụng Web, và các ứng dụng client-server mà có khả năng tự
động gán thông số cổng TCP hay UDP Sau khi ứng dụng được nhận dạng mạng có khả
năng gọi các dịch vụ đặc biệt cho các ứng dụng riêng biệt Hiện tại NBAR làm việc với
các yếu tố QoS để đảm bảo băng thông mạng được sử dụng tốt nhất Các yếu tố QoS bao
gồm khả năng đảm bảo băng thông cho các ứng dụng chính, giới hạn băng thông cho các ứng dụng khác, lựa chọn gói để huỷ, để tránh nghẽn, và đánh dấu gói để mạng và nhà
cung cấp dịch vụ có thể cung cấp QoS đầu cuối
- NBAR có thể quyết định sự phù hợp lưu lượng mạng Nó có thể phân loại lưu lượng
ứng dụng và nhận dạng thông tin ứng dụng bằng cách nhìn vào thông số cổng TCP/UDP
của gói NBAR tìm kiếm trong trường payload TCP/UDP và phân loại gói dựa vào các
thành phần payload như: thực hiện định danh, loại thông điệp, và các trường dữ liệu khác NBAR có thể nhìn tiêu đề UDP và TCP, hostname,URL hay MIME trong thông điệp yêu
cầu HTTP Yếu tố phát hiện của giao thức NBAR cung cấp cách thức để nhận ra các giao
thức ứng dụng dễ dàng khi lưu lượng đi qua một cổng giao tiếp Giao thức này có thể
được áp đặt lên cổng giao tiếp và có thể được sử dụng để giám sát lưu lượng ở ngõ ra và
cả ngõ vào bao gồm: tổng số lượng các gói và byte của ngõ vào và ngõ ra, tốc độ bit của
ngõ vào và ngõ ra
- Ngoài ra PDLM (Packet Description Language Module) có thể được nhập vào tại thời
điểm thực thi để mở rộng các giao thức nhận biết danh sách NBAR PDLM có thể được
sử dụng để tăng khả năng mở rộng nhận biết giao thức đã tồn tại PDLM cho phép NBAR nhận biết các giao thức mới mà không cần nạp lại bộ định tuyến hay hệ điều hành Cisco
IOS
- NBAR sử dụng thông tin phân loại vì hai lý do Nếu không có sự trợ giúp của các yếu tố IOS khác thì NBAR có thể phân loại những giao thức khó phân loại này vì mục đích
thống kê về giao thức Thực tế, NBAR tự cung cấp phân loại và thống kê, nhưng không
hỗ trợ đánh dấu NBAR cũng hỗ trợ phân loại cho các công cụ QoS khác Đặc biệt tất cả
các công cụ MQC có thể dùng đến phân loại NBAR để phù hợp lưu lượng
- Các interface luận lý mà NBAR hỗ trợ:
• Fast EtherChannel
• Các cổng giao tiếp được cấu hình để sử dụng đường hầm hay mã hoá NBAR không hỗ
trợ:
• Nhiều hơn 24 URL thực hiện cùng một thời điểm, hay sự phù hợp loại MIME
• Sự phù hơp hơn 400 byte đầu tiên trong trường payload
• Phương thức quảng bá hay chuyển mạch trừ Cisco Express Forwarding
Trang 20• Phân mảnh gói
• Phân loại URL/host/MIME với sự đảm bảo HTTP
• Các gói bắt nguồn từ đích đến router thực hiện NBAR
- Các ứng dụng hỗ trợ với NBAR NBAR có thể được sử dụng để nhận dạng gói theo các
loại ứng dụng khác nhau:
• Ứng dụng tĩnh thiết lập các phiên hướng đến thông số cổng đích TCP hay UDP phổ
biến Các ứng dụng này được phân loại bằng cách sử dụng danh sách truy cập
• Ứng dụng động dùng nhiều phiên mà sử dụng thông số cổng TCP hay UDP động Một
phiên điều khiển hướng đến thông số cổng phổ biến và các phiên khác được thiết lập đến
thông số cổng đích được thương lượng thông qua các phiên điều khiển NBAR kiểm tra
việc trao đổi thông số cổng dưa vào các phiên điều khiển
• Một số giao thức không phải là IP cũng có thể được nhận dạng bởi NBAR
• NBAR cũng có khả năng kiểm tra các ứng dụng để lấy các thông tin khác và phân loại
dựa vào thông đó Ví dụ NBAR có thể phân loại các phiên HTTP dựa vào thông điệp yêu
cầu URL, bao gồm cả loại MIME hay tên host
2 Đánh dấu (Marking)
Đánh dấu là một kĩ thuật dùng để tạo ra sự phân biệt giữa các gói tin của các loại dữ liệu
khác nhau trong khi thực hiện QoS, việc đánh dấu sẽ thực hiện trên các một số trường có
trong gói tin như IP precedent, DSCP, EXP, QoS group, QoS discard… Việc đánh dấu
thường được thực hiện sau khi gói tin đã được phân loại, Sau khi phân loại gói tin ta sẽ
đánh dấu vào gói tin đó một giá trị, có thể đó là giá trị IP precedent, DSCP hay
EXP…Các giá trị đã được đánh dấu sẽ được dùng để phân loại gói tin ở chặn tiếp theo và
thực hiện QoS Việc đánh dấu thường xảy ra tại ngõ vào của interface, tại đây gói tin sẽ
được thu nhận và thực hiện đánh dấu lại (remark) nếu cần thiết, dấu vừa đánh sẽ tồn tại
trong các hàng đợi ngõ ra của router này và trên đường truyền tới đích tiếp theo
Thực chất của việc đánh dấu là ta sẽ set các giá trị trong gói tin lên các giá trị thích hợp
mà ta cho là hợp lí
2.1 IP Precedence và DSCP
IP Precedence và DSCP là hai trường được sử dụng nhiều nhất để đánh dấu Các công cụ QoS sử dụng chúng bởi vì header của gói tin IP tồn tại ở mọi nơi trên mạng Trong IP header của mỗi gói tin có chứa một trường gọi là ToS (Type of Service) Trường Type of Service có giá trị 1 byte Và 3 bits đầu tiên (P2 đến P0) dùng để quy định các giá trị đánh dấu độ ưu tiên của gói tin và các giá trị này được gọi là IP Precedence
Trang 21Cụ thể như sau:
3 bits đầu tiên (P2 đến P0): IP Precedence Do sử dụng 3 bits nên sẽ có 8 giá trị (000 đến 111) định ra độ ưu tiên của gói tin từ thấp đến cao Giúp router xử lý các gói tin này theo chất lượng dịch vụ Ví dụ, gói tin được đánh dấu với giá trị IP Precedence là 7 (111) sẽ có
độ ưu tiên về bandwidth, được ra khỏi hàng đợi trước… hơn so với các gói tin được đánh dấu với giá trị IP Precedence là 3 (011)
3 bits tiếp theo (T2 đến T0):
bit T2 (T2=1): Yêu cầu truyền gấp
bit T1 (T1=1): Yêu cầu truyền với đường truyền chất lượng cao
bit T0 (T0=1): Yêu cầu truyền đảm bảo
- 2 bit cuối (CU1-CU2): Không dùng tới (Currently and Unused)
Tuy nhiên, hiện nay không dùng các giá trị của IP Precedence để đánh dấu gói tin Với mục đích làm tăng hiệu quả chất lượng dịch vụ thì các công cụ QoS sẽ dùng các giá trị được gọi là điểm mã dịch vụ phân biệt DSCP (Differentiated Service Code Point) để tiến hành đánh dấu gói tin 3 bits IP Precedence sẽ kết hợp với 3 bits tiếp theo (từ T2 đến T0) tạo thành 6 bits thể hiện các giá trị của DSCP Các bits này được ánh xạ như sau:
Giá trị IP Precedence có thể được ánh xạ đến trường DSCP
6 bits DiffServ (DS) từ DS5 đến DS0 được dùng để đánh dấu gói tin và chỉ ra cách thức
Trang 22
Tuy nhiên, trong thực tế chỉ có một số lớp dịch vụ được triển khai Tập hợp các gói tin có cùng giá trị DSCP, và di chuyển qua mạng theo cùng một hướng được gọi là tập hợp hành vi (Behavior Aggregate - BA) PHB sẽ thực hiện các chức năng của nó (Queuing, Scheduling, đánh rớt) cho bất kì gói tin nào thuộc về một BA Những thiết bị mạng khác nhau mà DiffServ hỗ trợ sử dụng giá trị DSCP trong IP header để chọn một PHB cho gói tin và cung cấp QoS thích hợp Hai bit sau không xác định trong kiến trúc trường DiffServ, hai bit này bây giờ sử dụng bởi Explicit Congestion Notification (ECN)
Mặc định DSCP là 000000 Lựa chọn giá trị DSCP phải tương thích với thứ tự IP Precedence Nói cách khác là phải so trùng khớp giá trị của 3 bits đầu tiên Mọi sự thay đổi đều phải chú ý đến sự trùng khớp này
Ví dụ: giá trị IP Precedence là 5 (101) thì giá trị DSCP là 101 000
Trang 23Do đó, QoS DiffServ sử dụng 3 bits (DS5 – DS3) để thiết lập độ ưu tiên của gói tin DiffServ cũng sử dụng 3 bits này để tổ chức và duy trì thành 8 mức thứ tự như sau:
7 Lớp liên kết và duy trì Routing Protocol
6 Sử dụng cho IP Routing Protocol
5 Express Forwarding (EF)
4 Assured Forwarding (AF) - Class 4
3 Assured Forwarding (AF) - Class 3
2 Assured Forwarding (AF) - Class 2
1 Assured Forwarding (AF) - Class 1
0 Best-Effort
Xác định mức thứ tự trong DiffServ
[Tham khảo: IP Telephony Self-Study Cisco QOS Exam Certification Guide]
2.2 Assured Forwarding (AF) PHB và giá trị DSCP
Trạng thái truyền đảm bảo Assured Forwarding (AF) PHB được quy định bởi RFC
2597 và định nghĩa bốn nhóm lưu lượng (class 1 – class 4 trong bảng 3.1.1) cho mục đích tạo hàng đợi, cùng với ba mức khác nhau về khả năng bị loại bỏ bên trong từng hàng đợi Ngoài các bits DS5, DS4 và DS3 xác định class, DiffServ còn sử dụng 3 bits tiếp theo
Trang 24(DS2 – DS1) để thực hiện truyền đảm bảo
Để đánh dấu các gói tin và đẩy các gói vào hàng đợi, trạng thái AF PHB định nghĩa 12 giá trị DSCP khác nhau và các ý nghĩa của nó Tên của các các trạng thái AF DSCP tuân theo dạng sau: AFxy Trong đó x ngầm định chỉ đến một trong bốn hàng đợi (giá trị từ 1 đến 4) và y chỉ ra một trong ba giá trị ưu tiên loại bỏ gói tin (giá trị từ 1 đến 3) Ví dụ, nếu các gói được đánh dấu AF11, AF12, AF13 thì chúng được xếp chung vào một hàng đợi (class 1) nhưng mức ưu tiên của các gói thì khác nhau
Trạng thái AF PHB đề xuất rằng giá trị x càng cao trong công thức AFxy, gói tin
sẽ được xếp vào hàng đợi tốt hơn Ví dụ, gói tin với giá trị AF11 DSCP sẽ được đưa vào hàng đợi kém hơn gói tin có giá trị DSCP là AF23 Thêm vào đó, giá trị y càng cao trong công thức AFxy, gói tin càng có nguy cơ bị loại bỏ càng cao Ví dụ gói tin có DSCP AF11 sẽ ít nguy cơ bị loại bỏ hơn gói tin có DSCP AF23
Bảng dưới đây chỉ ra tên của giá trị DSCP, các nhóm hàng đợi và trạng thái loại bỏ mặc định
Drop Class 1 Class 2 Class 3 Class 4
AF11 DSCP 10
010010 AF21 DSCP 18
011010 AF31 DSCP 26
100010 AF41 DSCP 34
Medium 001100
AF12 DSCP 12
010100 AF22 DSCP 20
011100 AF32 DSCP 28
100100 AF42 DSCP 36
Trang 25High 001110
AF13 DSCP 14
010110 AF23 DSCP 22
011110 AF33 DSCP 30
100110 AF43 DSCP 38
Xác định cấp DSCP để chỉ định class AF với khả năng của từng class
[Tham khảo: IP Telephony Self-Study Cisco QOS Exam Certification Guide]
Theo bảng 3.1.1b, ví dụ AF11 tượng trưng giá trị DSCP thập phân là 10 và tên AF13 tượng trưng giá trị DSCP thập phân là 14 AF11 thì tốt hơn AF13 bởi vì AF11 và AF13 là trong cùng một nhóm hàng đợi, nhưng AF11 có khả năng bị loại bỏ thấp hơn so với AF13 Trong dạng hiển thị nhị phân, các bits DS2 và DS1 chỉ định khả năng gói tin bị loại bỏ, bit DS0 thì luôn luôn là 0 Kết quả là, các công cụ hàng đợi hoạt động chỉ trên IP Precedence vẫn có thể phản ứng với các giá trị AF DSCP, làm cho các giá trị DSCP tương thích một cách cơ bản với các hệ thống mạng non-DiffServ
Để chuyển đổi từ dạng AF sang dạng tương đương thập phân, ta có thể dùng công thức đơn giản Nếu giá trị AF có dạng AFxy thì công thức tính giá trị thập phân là: Giá trị thập phân = 8x + 2y Ví dụ, giá trị AF41 sẽ tương đương với (8 * 4) + (2 * 1) = 34
2.3 Expedited Forwarding (EF) PHB và giá trị DSCP
RFC 2598 định nghĩa trạng thái chuyển tiếp nhanh – Expedited Forwarding (EF) PHB và thuộc mức thứ tự DiffServ thứ 5 (class 5 trong bảng 3.1.1) RFC mô tả hai hành động đơn giản của trạng thái này:
- Đưa vào hàng đợi các gói tin EF sao cho nó có thể được giải phóng nhanh, độ delay thấp
- Áp đặt băng thông cho các gói EF sao cho các gói tin này không làm tốn băng thông trên kết nối hoặc làm ảnh hưởng các hàng đợi khác
Trang 26Giá trị DSCP định nghĩa cho EF có giá trị nhị phân là 101110 (giá trị thập phân là 46)
Từ phần lý thuyết nêu ở trên có được bảng thống kê các giá trị IP Precedence, DSCP, AF, CF (các giá trị này do RFC quy định):
Giá trị thập phân Giá trị nhị phân Tên RFC
Precedence 6 110 Internetwork control 791
DSCP 0 000000 Best-Effort (default) 2475
Trang 28Bảng thống kê các giá trị IP Precedence, DSCP, AF, CF
[Tham khảo: IP Telephony Self-Study Cisco QOS Exam Certification Guide]
2.4 LAN Class of Service – CoS
Nhiều LAN Switch hiện nay có thể đánh dấu và tác động trên các trường 3 bit Layer 2 được gọi là CoS nằm bên trong Ethernet header Trường CoS chỉ tồn tại bên trong Ethernet frame khi các đường trunk 802.1Q và ISL được sử dụng Có thể sử dụng trường này để thiết lập 8 giá trị nhị phân khác nhau mà có thể dùng cho chức năng phân loại của công cụ QoS như IP Precedence và DSCP
CoS thật tế là hai trường khác nhau – Một field bên trong 802.1Q trunking header và
Trang 29một ở ISL header Chuẩn IEEE 802.1Q dùng 3 bit đầu trong 2 byte của trường Tag Field Còn đặc điểm ISL độc quyền của Cisco dùng 3 bit cuối từ 1 byte của trường User Field trong ISL header Xét ví dụ cụ thể về gán giá trị CoS và DSCP:
Theo hình 3.1.2.4b, minh hoạ một LAN switch thực hiện chức năng QoS dựa trên CoS R3 đọc các frame đi vào trên một cổng (ví dụ F0/9), đánh dấu giá trị DSCP dựa trên các thông số CoS Thêm vào đó R3 đọc các giá trị DSCP cho các gói tin đang đi ra cổng F0/0
về SW2, gán giá trị trong 802.1Q header Giá trị thực sự trên cổng F0/0 của R3 cho quá trình phân loại và đánh dấu như sau:
- Các frame đi vào với giá trị CoS 5 sẽ được gán giá trị DSCP EF
- Các frame đi vào với giá trị CoS 1 sẽ được gán giá trị AF11
- Các frame đi vào với bất kỳ giá trị CoS nào sẽ được gán DSCP 0
- Các frame đi ra với giá trị DSCP EF sẽ được gán CoS 5
- Các gói đi ra với DSCP AF11 sẽ được gán Cos 1
- Các gói tin đi ra với bất kỳ giá trị DSCP nào sẽ được gán CoS 0
Trang 302.5 Đánh dấu gói tin trên WAN
Frame Relay và ATM (Asynchronous Transfer Mode) hỗ trợ một bit đơn có thể được dùng để đánh dấu, nhưng các bit đơn này chỉ ra khả năng loại bỏ gói tin Các frame
có bit này được gán bằng 1 thì frame đó có thể bị loại bỏ Các bit này được đặt tên là bit
DE (Discard Eligibility) và ATM CLP (ATM Cell Loss Priority) Các bit này có thể gửi bởi một router, một tổng đài ATM hoặc FR Switch Router và switch sẽ được cấu hình để chủ động loại bỏ các frame và các cell có DE=1 hoặc CLP=1
MPLS (Multiprotocol Label Switching) định nghĩa trường 3 bits khác gọi là MPLS Experimental (EXP) bit cho mục đích đánh dấu Thường thì các công cụ đánh dấu
và phân loại được dùng ở ngoài biên của mạng MPLS để ánh xạ giá trị DSCP hoặc IP Precendence sang EXP để cung cấp chức năng QoS bên trong một mạng MPLS
Trong các hệ thống mạng trên, các giá trị IP Precedence và DSCP bên trong một gói tin IP không bị thay đổi Tuy nhiên, một vài thiết bị có thể không có khả năng đọc vào các trường IP Precedence và DSCP và một vài thiết bị có thể đọc các trường khác dễ dàng hơn Ví dụ, một router MPLS Label Switch Router (LSR) bên trong một đám mây
Trang 31MPLS có thể được cấu hình để ra quyết định QoS dựa trên ba bit MPLS EXP trong nhãn MPLS nhưng không có khả năng đọc đến các IP header đã đóng gói bên trong Trong những trường hợp như vậy, các công cụ QoS có thể cần phải được cấu hình trên những thiết bị ngoài biên của hệ thống mạng để đọc các giá trị DSCP và đánh dấu bằng những trường khác nhau Các trường có thể dùng để đánh dấu cho các giao thức non-IP có thể tồn tại chỉ cho các trường này là như sau: CoS, DE, CLP, EXP
Do đó, phân loại và đánh dấu như sau:
- Để phân loại: Chỉ trên cổng vào và chỉ nếu cổng đó của router hỗ trợ trường trong header
- Để đánh dấu: Chỉ trên cổng ra và chỉ nếu cổng đó của router hỗ trợ trường đó trong header
Nếu quá trình đánh dấu phải được cấu hình trên R1 802.1Q subinterface (ví dụ, F0/0.1), nó có thể phân loại các frame đi vào dựa trên giá trị CoS và đánh dấu các frame
đi ra với giá trị CoS Tuy nhiên, khi dữ liệu đi vào, router không thể đánh dấu giá trị CoS
và trên chiều đi ra, router cũng không thể phân loại dựa trên CoS Tương tự như vậy, quá trình đánh dấu cũng không thể phân loại hay đánh dấu các bit DE, CLP hoặc MPLS EXP bởi vì các header này không tồn tại trong theo chuẩn Ethernet
4 Congestion Management Queuing (Quản Lý Tắc Nghẽn)
4.1 Các khái niệm và cơ chế cơ bản
4.1.1 Khái niệm
Congestion Management Queuing là cơ chế quản lý tắc nghẽn dựa trên việc
phòng ngừa tắc nghẽn (dựa vào các cơ chế hàng đợi để xắp xếp thứ tự và ưu tiên của các
gói tin …FIFO, PQ…) phát hiện tắc nghẽn (các cơ chế phát hiện và cảnh báo khi gặp tắc
nghẽn )và điều khiển lưu lượng mạng khi xảy ra tắc nghẽn
4.1.2 Cơ chế
- Cơ chế quản lý tắc nghẽn còn được gọi là cơ chế Queuing (hàng đợi) và nó hoạt
động trên nền TCP
Trang 32- Các router hay switch quản lý gói tin đang chờ để đi ra một cổng Ta có 2 hàng
4.1.3 Các Nguyên Nhân Gây Tắc Nghẽn
Thông thường, các công cụ QoS được phân loại thành các nhóm sau:
- Tool phân loại và đánh dấu (Classification and marking tools)
- Tool Chính sách và định hướng (Policing and shaping tools)
- Tool chống nghẽn (Congestion-avoidance (selective dropping) tools)
- Tool quản lý hàng đợi (Congestion-management (queuing) tools)
- Tool phân biệt kết nối (Link-specific tools)
Quá trình xử lý QoS thường thông qua 5 giai đoạn: phân loại và đánh dấu
frame/packet; policing/shaping; chống tắc nghẽn, queueing / scheduling Phân loại frame/ packet là quá trình đánh dấu frame/ packet dùng trường CoS, ToS, IP precedence, DSCP
Policing là quá trình giới hạn băng thông sử dụng đầu vào, frame/ packet sau đó sẽ bị
drop hoặc mark down giá trị ToS tùy mong muốn của người quản trị Căn cứ trên giá trị
ToS các frame/ packet được xếp hàng trên các hàng đợi đầu ra và phục vụ theo schedule
định trước Phương pháp chống tắc nghẽn được thực hiện trên mỗi hàng đợi để tránh tắc
nghẽn có thể xảy ra Khi có tắc nghẽn, các thuật toán hàng đợi quản lí tắc nghẽn sẽ được
sử dụng để đảm các dịch vụ có yêu cầu cao nhận được Qos phù hợp
4.1.4 Các Nguyên Nhân Gây Tắc Nghẽn
- Băng thông yếu
- Router yếu ,tốc độ xử lý chậm (nhất là đối với các Router ở các nút mạng trung
Trang 33- Điều khiển mạng khi đang có tắc nghẽn :Ngăn không cho lưu lượng mới vào
mạng khi mạng đang bị tắc nghẽn
- Quản lý để tránh tắc nghẽn (Xây dựng mô hình mạng hợp lý ,định tuyến phù
hợp,nâng cấp Router ở các nút mạng trung tâm,nâng cấp đường truyền)
4.1.6 Khái niệm hàng đợi
- Hàng đợi là danh sách các gói tin đã được cấu hình và được nằm chờ trong hàng
đợi để chuyển ra một cổng Nhờ vào Hàng đợi này mà người quản trị có thể cấu hình và
can thiệp những gói tin nào có thể rời khỏi cổng , những gói tin có thể loại bỏ -
Hàng Đợi gồm có : Hàng đợi cừng và hàng đợi mềm
+ Hàng đợi mềm : Là các công cụ hàng đợi được thiện hiện bằng phần mềm
+ Hàng đợi cứng : Di chuyển gói tin từ hàng đợi mềm sang một hàng đợi nhỏ
bằng phần cứng FIFO Cisco gọi các hàng đợi riêng biệt cuối cùng này là hàng đợi truyền (transmit queue - TX queue) hoặc vòng tròn hoặc vòng tròn truyền (TX ring) tùy thuộc
vào kiểu router Các hàng đợi này được gọi là các hàng đợi phần cứng
4.2 Các kĩ thuật hàng đợi
Có rất nhiều kĩ thuật hàng đợi: FIFO (first in first out), PQ ( priority queue-hàng đợ ưu
tiên), FQ (fair queue-hàng đợi cân bằng) FIFO đây là kĩ thuật xếp hàng vào trước ra
trước cơ bản Các gói đến trước sẽ là các gói đầu tiên được xử lý Khi hàng đợi đầy và có
tắc nghẽn xảy ra thì các gói đến sẽ bị loại bỏ Hàng đợi FIFO dựa vào hệ thống đầu
cuối để điều khiển tắc nghẽn thông qua cơ chế điều khiển tắc nghẽn Do loại hàng đợi
này rất đơn giản nhiều khi không điều khiển được tắc nghẽn nên ta thường xét các loại
hàng đợi hiệu quả hơn: hàng đợi ưu tiên(PQ), hàng đợi cân bằng (FQ), hàng đợi có trọng
số (WQ)
4.2.1 FIFO (First in first out)
- Hàng đợi FIFO là kỹ thuật hàng đợi mặc định trong các bộ định tuyến , các gói tin sau
khi được phân loại sẽ được đưa vào trong một hàng đợi đơn và các gói tin được gửi ra
đầu ra theo đúng thứ tự mà gói tin đó đã đi vào
Trang 34- Hàng đợi FIFO không có sự phân loại vì tất cả các gói được thuộc về cùng một lớp
Một bộ định tuyến hay bộ chuyển mạch cần các hàng đợi xuất để giữ các gói trong khi
chờ bộ giao tiếp sẵn sàng gửi gói Trong khi các công cụ hàng đợi khác thể hiện các tính
năng khác, như sắp xếp trật tự các gói, hàng đợi FIFO chỉ cung cấp một ý nghĩa giữ các
gói trong khi chúng chờ để rời khỏi một cổng giao tiếp (interface) Hàng đợi FIFO sử
dụng một hàng đợi đơn cho bộ giao tiếp Vì chỉ có một hàng đợi nên không cần phân lớp
để quyết định khi gói đi vào Và cũng không cần lập lịch ban đầu để cho hàng đợi lấy gói
tiếp theo Chỉ quan tâm đến cách cấu hình chiều dài hàng đợi FIFO tránh tác động đến độ
trễ và mất gói
- Hàng đợi FIFO sử dụng kỹ thuật hủy gói cuối hàng đợi để quyết định khi nào bỏ gói
hay cho gói vào hàng đợi Nếu cấu hình một hàng đợi dài hơn, nhiều gói có thể đặt trong
hàng đợi, nghĩa là hàng đợi ít khả năng đầy Nếu không gian hàng đơi còn trống nhiều thì
gói ít bị mất Tuy vậy, với một hàng đợi dài, độ trễ và độ biến động trễ của gói tăng Với
hàng đợi ngắn, độ trì hoãn ít xuất hiện hơn, nhưng hàng đợi FIFO đơn sẽ đầy nhanh
chóng, lúc này các gói mới sẽ bị hủy bỏ
Lập lịch hàng đợi FIFO:
- Sau khi gói đi vào hàng đợi thì bộ định tuyến sẽ sử dụng thuật toán lập lịch để duy trì
công việc Lập lịch FIFO là thuật toán lập lịch truyền thống được sử dụng trong Internet
Đây là thuật toán lập lịch đơn giản nhất Trong thuật toán này bộ lập lịch truyền các gói
theo thứ tự đến và hủy các gói khi hàng đợi đầy Tuy nhiên, bộ lập lịch gói không có sự
phân biệt giữa các người sử dụng Vì vậy nó không thể phân phối cho một số user độ trễ
trung bình thấp hơn các người dùng khác Mọi người dùng trong cùng lớp dịch vụ chịu
cùng một độ trễ biến thiên (jitter delay) Ngoài ra, độ biến động trễ có xu hướng tăng lên
khi số chặng tăng lên vì độ trễ hàng đợi của gói ở các chặng khác nhau không tương quan với nhau
- Để hạn chế độ biến động trễ, giải thuật FIFO+ ra đời Giải thuật này cân bằng độ giao
động cho tất cả các luồng trong lưu lượng tổng trong suốt đường đi qua các chặng
- Giải thuật được thực hiện như sau: Tại mỗi chặng chúng ta đo độ trễ trung bình của
từng gói trong mỗi lớp tại mỗi nút mạng Sau đó chúng ta tính toán sự chênh lệch giữ nó
với độ trễ trung bình của lưu lượng tổng Khoảng cách chênh lệch này được cộng hoặc
trừ vào một trường trong tiêu đề của gói Trường này cho phép mỗi nút mạng tính toán
khi nào gói được đưa đến xử lý trong mạng Các nút mạng lúc đó lập lịch gói cứ như thể
nó đến đúng vào thời điểm trung bình mong muốn Điều này được thực hiện bằng cách
sắp xếp hàng đợi theo thời điểm đến mong đợi chứ không phải theo thời gian đến thực sự FIFO (gồm cả FIFO+) không thể cung cấp việc chia sẻ tài nguyên đồng đều giữa các
người sử dụng cũng như sự bảo vệ Không có sự bảo vệ ở đây có nghĩa là khi một người
dùng gửi gói với tốc độ lớn hơn tốc độ cho phép làm ảnh hưởng đến các người sử dụng
khác
- Với FIFO, độ trễ trung bình của một người sử dụng có thể tăng lên nếu tổng tốc độ đến
của tất cả người sử dụng tăng lên
- Các ưu điểm của kỹ thuật hàng đợi FIFO
• Đây là kỹ thuật đơn giản và nhanh
Trang 35• Nó được hỗ trợ trên tất cả các nền tảng
• Hàng đợi FIFO được hỗ trợ trong tất cả các phiên bản của Cisco IOS
- Nhược điểm:
• FIFO không hoàn toàn tin cậy khi một luồng không mong muốn tranh giành với các
luồng có độ ưu tiên thấp Các luồng không mong muốn gửi một số lượng lớn các gói (đa
số các gói đó bị huỷ bỏ) Trong khi đó, các luồng với độ ưu tiên thấp gửi một số lượng
gói xác định và hầu hết chúng bị hủy bởi vì hàng đợi lúc nào cũng đầy do các luồng
không mong muốn đã chiếm hết không gian hàng đợi
• Sự bùng nổ cao hay thấp gây ra tình trạng đầy hàng đợi FIFO Các gói đi vào một hàng
đợi đầy phải chờ một thời gian dài trước khi chúng được truyền Nhưng ở thời điểm khác, hàng đợi có thể trống và các gói trong cùng một luồng không bị trì hoãn
4.2.2 PQ (Priority Queuing)
Kĩ thuật này được sử dụng trong trường hợp đa hàng đợi, mỗi hàng đợi có một mức ưu
tiên khác nhau, hàng đợi nào có mức ưu tiên cao nhất sẽ được ưu tiên phục vụ trước Khi
có tắc nghén xảy ra thì các gói trong các hàng đợi có độ ưu tiên thấp sẽ bị loại bỏ Có một vấn đề đối với kĩ thuật này: khi các hàng đợi có độ ưu tiên cao quá nhiều thì các gói trong hàng đợi có độ ưu tiên thấp sẽ không bao giờ được phục vụ Các gói được phân loại và
được sắp xếp vào hàng đợi tuỳ thuộc vào thông tin bên trong các gói Tuy nhiên kĩ thuật
này dễ bị lạm dụng bởi người sử dụng hay các ứng dụng do ấn định các độ ưu tiên không
cho phép
Vậy PQ cho phép định nghĩa các luồng lưu lượng ưu tiên như thế nào trong mạng?
Ta có thể cấu hình các độ ưu tiên lưu lượng, có thể định nghĩa một loạt các bộ lọc trên cơ
sở các đặc điểm của gói qua router để sắp xếp các lưu lượng trong các hàng đợi Hàng
đợi có độ ưu tiên cao nhất sẽ được phục vụ trước cho đến khi hàng đợi rỗng, sau đó các
hàng đợi có độ ưu tiên thấp hơn sẽ được phục vụ lần lượt Câu hỏi đặt ra là PQ làm việc
như thế nào? Trong quá trình truyền dẫn,các hàng đợi có độ ưu tiên cao được đối xử ưu
tiên hơn các hàng đợi có mức ưu tiên thấp hơn, hay nói cách khác các, lưu lượng quan
trọng sẽ được gán các mức ưu tiên cao và lưu lượng có mức ưu tiên cao nhất được truyền
trước, còn lại các lưu lượng ít quan trọng hơn Các gói được phân loại dựa trên các tiêu
chuẩn phân loại của người sử dụng,và được đặt ở một trong số các hàng đợi đầu ra với
các độ ưu tiên: độ ưu tiên cao, trung bình, bình thường (không được ưu tiên), ưu tiên
thấp Các gói không được ấn định độ ưu tiên sẽ được đưa tới các hàng đợi bình thường
Khi các gói được gửi tới giao diện đầu ra, các hàng đợi ưu tiên tại giao diện đó được quét
các gói theo thứ tự độ ưu tiên giảm dần Hàng đợi có độ ưu tiên cao nhất được quét đầu
tiên, sau đó đến các hàng đợi trung bình và tiếp tục các hàng đợi có độ ưu tiên khác Gói
đứng đầu hàng đợi có độ ưu tiên cao nhất được truyền đầu tiên Thủ tục này được lặp lại
Trang 36mỗi khi có một gói được truyền Chiều dài lớn nhất của hàng đợi được định nghĩa theo
chiều dài giới hạn Khi một hàng đợi dài hơn chiều dài hàng đợi giới hạn thì các gói đến
sau sẽ bị loại bỏ
Cơ chế hàng đợi đầu ra ưu tiên có thể được sử dụng để quản lý lưu lượng từ tất cả
các giao thức trong mạng PQ cung cấp cách đối sử ưu tiên cho các luồng lưu lượng có
độ ưu tiên cao, chắc chắn rằng các luồng lưu lượng then chốt khi qua các kết nối WAN sẽ đạt được độ ưu tiên cao
Các gói được phân loại như thế nào trong kĩ thuật PQ
Danh sách ưu tiên là một tập các luật lệ mô tả các gói sẽ được ấn định các độ ưu tiên như
thế nào trong các hàng đợi Ngoài ra nó cũng có thể mô tả độ ư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
Các gói được phân loại theo:
+ Loại giao thức hoặc giao thức con
+ Giao diện đầu vào
+ Kích thước các gói tin
+ Các Fragment
+ Danh sách truy nhập
Tất cả các lưu lượng dùng để quản lý và điều khiển mạng đều được ấn định độ ưu tiên
cao nhất để trong trường hớp có tắc nghẽn xảy ra thì chúng được ưu tiên truyền trước
Các lưu lượng không được ấn định mức ưu tiên nào thì được đưa vào các hàng đợi bình
thường
PQ cung cấp thời gian đáp ứng nhanh hơn so với các kĩ thuật hàng đợi khác Mặc dù có
thể ấn định các độ ưu tiên cho các hàng đợi tại bất kì giao diện đầu nào nhưmg nó thường được sử dụng cho các lưu lượng có băng thông thấp
Để giải quyết vấn đề các hàng đợi có độ ưu tiên thấp không được xử lý khi có quá nhiều
hàng đợi có độ ưu tiên cao thì ta có thể sử dụng các kiểu hàng đợi khác: hàng đợi cân
bằng có trọng số (WFQ) hay hàng đợi cân bằng (FQ), đơn giản hơn ta có thể sử dụng cơ
chế định dạng lưu lượng hay CAR để giới hạn tốc độ của lưu lượng có độ ưu tiên cao
hơn PQ sử dụng định cấu hình tĩnh do đó nó không thể thích ứng với các mạng thay đổi
Cơ chế xếp hàng ưu tiên là cơ chế đơn giản, có thể cung cấp các lớp dịch vụ phân biệt và
cần ít nhất hai hàng đợi FIFO Lấy một ví dụ sau: cho các hàng đợi FIFO và ta sẽ ấn định
các mức ưu tiên khác nhau cho chúng: mức ưu tiên cao, mức ưu tiên trung bình, mức ưu
tiên bình thường, mức ưu tiên thấp
Ưu điểm
- Có sự ưu tiên lưu lượng
- Gói có độ ưu tiên cao sẽ được 100 % băng thông
Trang 37- Hàng đợi tuỳ chọn CQ như hàng đợi PQ CQ có 16 hàng đợi sẵn sàng, chia ra 16 lớp
với nhiều ứng dụng Bộ lập lịch của CQ không có tuỳ chọn để phục vụ một hàng đợi ưu
tiên- như hàng đợi ưu tiên cao PQ – Vì thế CQ không cung cấp dịch vụ với trì hoãn lớn
và lưu lượng nhạy với sự thay đổi
- Như hầu hết các công cụ hàng đợi, phần quan trọng là bộ lập lịch Bộ lập lịch CQ cung cấp phần trăm xấp xỉ về toàn bộ băng thông liên kết đến mỗi hàng đợi
- Bộ lập lịch CQ thực hiện dịch vụ tuần hoàn trên mỗi hàng đợi, bắt đầu từ hàng
đợi Q1 CQ lấy các gói từ hàng đợi, cho đến khi tổng số byte chỉ định cho mỗi hàng đợi
vượt ngưỡng Sau khi hàng đợi phục vụ nhiều byte, hay hàng đợi không có bất cứ gói
nào, CQ di chuyển đến hàng đợi tiếp theo và lặp lại tiến trình
- CQ không cấu hình phần trăm băng thông liên kết, nhưng nó cấu hình số byte lấy
từ mỗi hàng đợi trong suốt quá trình xoay vòng qua các hàng đợi Giả sử, chúng ta cấu
hình CQ sử dụng 5 hàng đợi Chúng ta chỉ bộ đếm byte của 10000 byte cho mỗi hàng
đợi Với cấu hình này, chúng ta có thể dành 20% băng thông liên kết cho mỗi hàng đợi
(Nếu mỗi hàng đợi gửi 10000 byte, tổng số 50000 byte được gửi trong mỗi chu kỳ,
vì mỗi hàng đợi 10000/50000 = 20% byte)
- Thay vì chúng ta tính số byte của 2 hàng đợi đầu tiên, ta tính sẽ tính 10000 cho 2
hàng đợi tiếp theo, và 20000 cho hàng đợi thứ 5, tổng số byte gửi qua các hàng đợi tổng
cộng 50000 byte Do đó, Q1 và Q2 chiếm 10% băng thông liên kết và Q5 chiếm 40% liên kết Công thức tính toán phần trăm băng thông liên kết cho hàng đơi x
Tổng số byte của hàng đợi x
-
Tổng sổ byte cho tất cả các hàng đợi
- Bộ lập lịch CQ đảm bảo băng thông tối thiểu cho mỗi hàng đợi, trong khi cho
phép một số hàng đợi cụ thể chiếm nhiều băng thông hơn các hàng khác Giả sử cấu hình
5 hàng đợi tương ứng với số byte như sau: 5000, 5000, 10000, 10000, và 20 000 Nếu tất
cả 5 hàng đợi có nhiều gói đến, phần trăm băng thông cho mỗi hàng đợi như sau: 10%,
10%, 20%, 20% và 40% Tuy nhiên, giả sử hàng đợi Q4 không có lưu lượng trong một
khoảng thời gian ngắn Giả sử trong thời điểm đó, bộ lập lịch CQ cố gắng phục vụ
Trang 38hàng đợi 4, không có gói nào đang chờ Bộ lập lịch CQ di chuyển ngay lập tức đến gói
tiếp theo Trong khoảng thời gian tức thời này, hàng đợi Q1, Q2, Q3 và Q5 có các gói
đang chờ Như vậy, băng thông cho các hàng đợi chiếm tỷ lệ là: 12.5%, 12.5%, 25%, 0%,
và 50%
- Không như PQ, CQ không đặt tên các hàng đợi mà đánh số từ 1—16 Hàng đợi
hoạt động tốt căn cứ vào số byte trong hàng đợi.Vì vậy, trong thí dụ trước với 5 hàng đợi, Q5 với 20000 byte phục vụ mỗi lượt, được xem là cấu hình tốt nhất trong các hàng đợi
.Nếu lưu lượng trong Q5 chiếm 80% lưu lượng mạng , trong trường hợp này, Q5 có thể
hoạt động yếu nhất Dĩ nhiên, lưu lượng sẽ thay đổi qua thời gian; do đó, ngoài việc hiểu
nguyên lý lập lịch, việc chọn các số để phân tích lưu lượng và dự đoán mức độ lưu lượng
cũng rất quan trọng
- CQ làm việc trong các mạng với các ứng dụng không nhạy với biến động trễ, cần dành trước băng thông cho các lớp lưu lượng khác nhau CQ không cung cấp các dịch vụ
trễ thấp, như các hàng đợi ưu tiên cao của PQ mặc dù cho phép mỗi hàng đợi nhận một
vài dịch vụ khi liên kết nghẽn Bảng III-2 tổng kết các tính năng của CQ
Ưu điểm
- Số hàng đợi nhiều ( 16 hàng đợi )
- Các hàng đợi đều được phụ vụ với sự ưu tiên ngang bằng nhau
Nhược điểm
- Không có 1 hàng đợi ưu tiên nào
- Không thích hợp cho các mạng đòi hỏi độ delay và jitter thấp
4.2.4 WFQ (Weighted Fair Queuing)
WFQ dùng nhiều hàng đợi để tách biệt các luồng và cấp lượng băng thông như
nhau vào mỗi luồng Hay sự cấp phát băng thông cân bằng được định nghĩa là các luồng
trong cùng một lớp có dung lượng nhỏ thì được cấp phát băng thông toàn bộ theo yêu
cầu, những thời điểm có mật độ các luồng cao sẽ được chia sẻ băng thông để sử dụng
.Điều này ngăn chặn trường hợp một ứng dụng nào đó ,ví dụ như FTP tiêu thụ tất cả
lượng băng thông khả dụng WFQ đảm bảo rằng tất cả các hàng đợi không thiếu băng
thông và lưu lượng nhận được dịch vụ có thể dự báo Các luồng dữ liệu cỡ nhỏ nhận dịch
vụ ưu tiên, truyền toàn bộ tải được cấp của nó theo một cách hợp lý Các luồng dữ liệu cỡ lớn chia sẻ khả năng còn lại ,nhận lấy lượng băng thông bằng nhau hay một phần nào đó
.Hiện nay một số Router của Cisco đang dùng thuật toán WFQ cho giao tiếp có tốc độ
nhỏ hơn 2Mbps
Trang 39Thuật toán này cho phép băng thông được chia sẻ một cách công bằng, không sử
dụng danh sách truy nhập hay các tác vụ quản lý tốn nhiều thời gian khác Việc cân bằng
hiện đang chịu sự chi phối của 6 cơ cấu : IP Precedence ,FECN,BECN,RSVP,IP RTP
Priority, IP RTP Reserve
4.2.5 CBWFQ (CLASS-BASED WEIGHTED FAIR Queuing)
- CBWFQ mở rộng các chức năng của cơ chế hàng đợi WFQ để cung cấp sự hỗ
trợ cho các lớp lưu lượng định nghĩa người dùng Với CBWFQ, chúng ta định nghĩa các
lớp lưu lượng dựa trên sự phù hợp về tiêu chuẩn bao gồm các giao thức, danh sách điều
khiển truy cập, và các bộ giao tiếp ngõ vào Các gói phù hợp tiêu chuẩn đại diện cho một
lớp tạo thành lưu lượng cho lớp đó Một hàng đợi được dành riêng cho mỗi lớp và lưu
lượng liên quan đến một lớp được truyền trực tiếp đến hàng đợi cho lớp đó
- Sau khi các lớp được định nghĩa theo các tiêu chuẩn phù hợp, các lớp đó sẽ được gán một số đặc trưng cho từng lớp như băng thông, trọng số, giới hạn gói tối đa Băng
thông được gán cho lớp là số băng thông tối thiểu được phân phối cho lớp đó trong suốt
quá trình nghẽn Các lớp đó cũng cần chỉ rõ về giới hạn hàng đợi, để cho phép số gói tối
đa được được tích lũy Các gói liên quan đến các lớp phải tuân thủ giới hạn vế băng
thông và chiều dài hàng đợi Sau khi hàng đợi đạt được sự cấu hình về giới hạn, các gói
được thêm vào cuối hàng đợi có thể bị hủy bỏ cuối hàng đợi hay bỏ gói ngẫu nhiên, phụ
thuộc vào chính sách bỏ gói được cấu hình từ trước
- CBWFQ hỗ trợ ánh xạ nhiều lớp để phân loại lưu lượng với sự tương ứng hàng
đợi FIFO Bỏ gói cuối hàng đợi là cơ chế bỏ gói mặc địch Lập lịch CBWFQ đảm bảo
băng thông dựa vào các trọng số đã được định trước
- CBWFQ hỗ trợ 64 hàng đợi và chiều dài hàng đợi tối đa và chiều dài hàng đợi
mặc định là 64 Toàn bộ 64 hàng đợi có thể được cấu hình nhưng một lớp hàng đợi, được
gọi là lớp mặc định thì luôn được tự động cấu hình Nếu sự phân loại được cấu hình
không không phù hợp với gói thì IOS sẽ đặt các gói đó vào trong lớp mặc định CBWFQ
sử dụng cả FIFO và WFQ bên trong hàng đợi mặc định CBWFQ cung cấp một cải tiến
lớn cho phép WFQ có thể được sử dụng trong hàng đợi mặc định Với CBWFQ lưu
lượng của chúng ta được phân loại và dành riệng một số băng thông cho các lớp Với các
loại lưu lượng không được mô tả thì ta đưa chúng vào hàng đợi mặc định, tại đây có thể
đuợc lập lịch dựa theo WFQ Khả năng dành riêng băng thông cho một số gói, phân chia
công bằng các băng thông rỗi với WFQ, điều đó làm cho CBWFQ là công cụ hàng đợi
mạnh mẽ
- Việc lập lịch CBWFQ thoả thuận phần trăm băng thông cho mỗi lớp, dựa theo
những giá trị đã được cấu hình từ trước Ví dụ có 4 lớp, bao gồm cả lớp mặc định có thể
Trang 40được cấu hình với băng thông là 100% Việc lập lịch đảm bảo mỗi hàng đợi nhận được
phần trăm băng thông đó Nếu một số hàng đợi không cần băng thông trong một khoảng
thời gian nào đó, thì băng thông đó được phân phối cho các lớp khác
- CBWFQ cung cấp một thuận lợi lớn cho phép WFQ sử dụng hàng đợi dựa trên
lớp Hàng đợi WFQ là chọn lựa tốt trong việc chọn hàng đợi, vì nó hoạt động tốt với các
luồng dung lượng thấp, và nhiều luồng dung lượng thấp có thể tương tác với nhau WFQ
cũng xem xét đến độ ưu tiên của gói Vì thế, với CBWFQ, chúng ta sẽ phân lớp lưu
lượng và dành trước một lượng băng thông cho mỗi lớp Chúng ta không thể đặc tả giá trị lưu lượng, chúng ta đặt nó vào hàng đợi mặc định; ở đây, chúng ta có thể áp dụng tính
chất cân bằng lên lưu lượng mặc định sử dụng WFQ Khả năng dành trước băng thông
cho các gói và tính cân bằng gán cho phần băng thông còn lại với WFQ; CBWFQ là công
cụ hàng đợi rất mạnh
4.2.6 LLQ (LOW-LATENCY Queuing )
- LLQ là mở rộng của CBWFQ Sự khác nhau giữa hai thuật toán này là cách phân phối băng thông cho mỗi lớp trong các bản đồ chính sách
Trong CBWFQ câu lênh bandwidth được dùng để phân phối băng thông cho một lớp
(class map) Câu lệnh này chỉ có hiệu lực trong chiến lược hàng đợi chỉ khi bộ giao tiếp
bị nghẽn Vì vậy nếu bộ giao tiếp không bị đầy, không có một đảm bảo nào là lớp sẽ nhận được băng thông yêu cầu LLQ sử dụng câu lệnh Priority để yêu cầu băng thông Câu
lệnh đảm bảo rằng băng thông yêu cầu luôn có sẵn cho dù bộ giao tiếp có nghẽn hay
không Bởi vì băng thông này luôn sẵn có nên đảm bảo độ trễ thấp khi đi qua bộ giao
tiếp Đây gọi là hàng đợi ưu tiên tuyệt đối
Lập lịch LLQ:
- Giống như hàng đợi ưu tiên,lập lịch LLQ luôn luôn kiểm tra hàng đợi có
độ trễ thấp đầu tiên và lấy gói ra khỏi hàng đợi đầu tiên này Thông thường, nếu
không có gói nào trong hàng đợi với độ trễ thấp, thì không đưa ra nguyên lý lập
lịch áp dụng cho các hàng đợi không có độ ưu tiên thấp, thoả thuận cho các hàng
đợi đó có sử đảm bảo về băng thông Với lưu lượng ảnh hưởng bởi độ trễ, việc
thêm vào hàng đợi có độ ưu tiên thấp sẽ khắc phục được nhược điểm lớn của
CBWFQ Với LLQ lưu lượng với độ trễ thấp được đặt trong một hàng đợi và sự
đảm bảo băng thông cho lưu lượng ở các hàng đợi còn lại luôn được duy trì chất
lượng dịch vụ LLQ khắc phục nhược điểm của hàng đợi ưu tiên để tránh tình
trạng khi các gói trong hàng đợi có đô ưu tiên cao luôn chiếm giữ và giành hết
băng thông của mạng