22/09/2021

PHÂN LOẠI VÀ ĐÁNH DẤU TRONG QoS (Phần 2)

Cấu trúc QoS

Khi nói đến QoS ta sẽ nghĩ ngay tới các kĩ thuật hàng đợi như: Weighted Fair Queuing (WFQ), hay Custom Queuing (CQ), nhưng thật ra nó có nhiều hơn thế, ngoài hàng đợi QoS còn có các kỹ thuật khác gồm: nén (compression), policing và shaping, loại gói (drop packet), và một số khác.

Vì sao chúng ta lại cần QoS?

Như trước đây, khi mà nhu cầu sử dụng mạng của con người chưa cao bởi vì sự mới mẻ, chưa phổ biến và các ứng dụng chưa nhiều thì lưu lượng trên mạng có thể đáp ứng cho hầu hết các ứng dụng lúc bây giờ, nhưng khi nó trở nên phổ biến, số người dùng nhiều và các ứng dụng cũng tăng lên thì tài nguyên băng thông mạng trở nên thiếu hụt, điều này sẽ dẫn tới việc mất gói đáng kể khi truyền qua mạng, Để khắc phục điều này thì QoS ra đời với nhiệm vụ ưu tiên cho các ứng dụng thời gian thực bằng cách cấp phát thêm băng thông và đặt chúng ở mức ưu tiên cao hơn các ứng dụng khác.

Nếu một mạng không áp dụng QoS thì sẽ xảy ra các trường hợp như sau:

Dữ liệu với không QoS

QoS sẽ ảnh hưởng tới các thông số mạng như: Bandwidth (Băng thông), Delay (trễ), Jitter (Bất ổn định), Loss (độ mất gói). Các mạng ngày nay đền phải sử dụng QoS để đảm bảo chất lượng dịch vụ, tuy nhiên với mỗi ứng dụng thì cần có các mức độ QoS khác nhau.

Mức độ yêu cầu QoS cho các loại dữ liệu

Các thông số QoS

Độ trễ “Delay”: trễ quá mức từ đầu cuối đến đầu cuối khiến cuộc đàm thoại bất tiện và mất tự nhiên. Mỗi thành phần trong tuyến truyền dẫn: máy phát, mạng lưới, máy thu đều tham gia làm tăng độ trễ. ITU-TG.114 khuyến cáo độ trễ tối đa theo một hướng là 150 ms để đảm bảo thoại có chất lượng cao.

Độ trễ pha “Jitter”: định lượng độ trễ trên mạng đối với từng gói khi đến máy thu. Các gói được phát đi một cách đều đặn từ Gateway bên trái đến được Gateway bên phải ở các thời khoảng không đều. Jitter quá lớn sẽ làm cho cuộc đàm thoại đứt quãng và khó hiểu. Jitter được tính trên thời gian đến của các gói kế tiếp nhau. Bộ đệm Jitter được dùng để giảm tác động trồi sụt của mạng và tạo ra dòng gói đến đều đặn hơn ở máy thu.

Công thức tính độ jitter: Di = (Ri – Si) – (Ri-1 – Si-1) hoặc Di = (Ri – Ri-1) – (Si – Si-1)

Giá trị trung bình:

Độ mất gói “Packet Loss”: có thể xảy ra theo cụm hoặc theo chu kỳ do mạng bị nghẽn liên tục. Mất gói theo chu kỳ đến 5-10% số gói phát ra có thể làm chất lượng thoại xuống cấp đáng kể. Từng cụm gói bị mất không thường xuyên cũng khiến đàm thoại gặp khó khăn.

Mất trình tự gói ”Sequence Error”: nghẽn trên mạng chuyển mạch gói có thể khiến gói chọn nhiều tuyến khác nhau để đi đến đích. Gói có thể đến đích không đúng trình tự làm cho tiếng nói bị đứt khoảng.

Các bước thực hiện QoS

Các bước thực hiện QoS

Dịch vụ tích hợp IntServ

Đứng trước nhu cầu ngày càng tăng trong việc cung cấp dịch vụ thời gian thực (thoại, video) và băng thông cao (đa phương tiện), dịch vụ tích hợp IntServ đã ra đời. Đây là sự phát triển của mạng IP nhằm đồng thời cung cấp dịch vụ truyền thống Best Effort và các dịch vụ thời gian thực. Sau đây là những động lực thúc đẩy sự ra đời của mô hình này:

  • Dịch vụ cố gắng tối đa không còn đủ đáp ứng nữa, ngày càng có nhiều ứng dụng khác nhau, các yêu cầu khác nhau về đặc tính lưu lượng được triển khai, đồng thời người sử dụng cũng yêu cầu chất lượng dịch vụ ngày càng cao hơn. Các ứng dụng đa phương tiện ngày càng xuất hiện nhiều.
  • Mạng IP phải có khả năng hỗ trợ không chỉ đơn dịch vụ mà còn hỗ trợ đa dịch vụ của nhiều loại lưu lượng khác nhau từ thoại, số liệu đến video. Tối ưu hóa hiệu suất sử dụng mạng và tài nguyên mạng.
  • Đảm bảo hiệu quả sử dụng và đầu tư. Tài nguyên mạng sẽ được dự trữ cho lưu lượng có độ ưu tiên cao hơn, phần còn lại sẽ dành cho số liệu best effort. Cung cấp dịch vụ tốt nhất.
  • Mô hình IntServ cho phép nhà cung cấp mạng tung ra những dịch vụ tốt nhất, khác biệt với các đối thủ cạnh tranh khác.
Mô hình mạng 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 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 lưu lượng Tspec (Traffic Specification) và 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 (bằng các 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.

Có hai loại dịch vụ: đảm bảo dịch vụ (Guaranteed Service) và kiểm soát tải (Control load
service).

Đảm bảo dịch vụ

Cho phép giới hạn thời gian chuyển tiếp các gói dữ liệu đến đích trong một khoảng thời gian nhất định, đảm bảo số dữ liệu không bị loại bỏ khi hàng đợi đầy.

Thông tin Tspec phải bao gồm các thông số như: tốc độ đỉnh, kích thước lớn nhất của gói dữ liệu. Trong khi đó thông số quan trọng nhất của Rspec là tốc độ dịch vụ. Thông số này cho phép xác định băng thông mà lưu lượng cần khi đi trong mạng. Thông số này cùng với các thông số trong Rspec cho phép xác định thời gian trễ lớn nhất có thể chấp nhận được của dữ liệu.

Nhược điểm của lớp dịch vụ này là hiệu quả sử dụng tài nguyên mạng thấp vì nó đòi hỏi mỗi luồng lưu lượng có hàng đợi riêng.

Kiểm soát tải

Các ứng dụng của dịch vụ này có thể chấp nhận khả năng mất dữ liệu và thay đổi độ trễ ở một mức độ nhất định. Luồng dữ liệu khi đi vào mạng sẽ được kiểm tra đối chiếu với những đặc tả lưu lượng Tspec đã được đăng ký. Nếu không phù hợp với các đặc tả đã được đăng ký trước thì dữ liệu sẽ được chuyển tiếp theo phương thức “nỗ lực tối đa”.

Giao thức dành trước tài nguyên RSVP

RSVP là giao thức báo hiệu cung cấp thủ tục để thiết lập và điều khiển quá trình chiếm giữ tài nguyên, hay nói cách khác RSVP cho phép các chương trình ứng dụng thông báo cho mạng những yêu cầu về mức chất lượng dịch vụ, và mạng sẽ hồi đáp chấp nhận hoặc không chấp nhận yêu cầu đó.

Các bản tin RSVP được các bộ định tuyến hay các bộ chuyển mạch trên liên kết giữa hai đầu cuối gửi và nhận trao đổi với nhau để đáp ứng yêu cầu về mức chất lượng dịch vụ của ứng dụng.

RSVP có 2 bản tin cơ bản: bản tin Path (hay Request) và bản tin Resv. Bản tin Path (hay Request) mang thông tin về đặc tả luồng lưu lượng Tspec và các thông tin như: địa chỉ IP của nút gửi, địa chỉ IP nút nhận, chỉ số cổng UDP. Và khi nhận được bản tin Path (hay Request), nút mạng đích sẽ gửi lại bản tin Resv. Bản tin Resv sẽ gửi kèm theo phần mô tả yêu cầu RSpec chỉ định kiểu dịch vụ tích hợp là kiểm soát tải hay đảm bảo dịch vụ; ngoài ra còn có dấu hiệu nhận dạng luồng (flow descriptor) mà mỗi bộ định tuyến dùng để nhận diện mỗi phiên chiếm giữ tài nguyên.

Khi nhận được bản tin Resv, mỗi bộ định tuyến trung gian sẽ tiến hành quá trình điều khiển chấp nhận (admission control). Nếu yêu cầu không được chấp nhận, do không đủ tài nguyên mạng thì bộ định tuyến sẽ báo lỗi về phía đầu thu. Nếu yêu cầu được chấp nhận thì bộ định tuyến sẽ gửi bản tin Resv đến bộ định tuyến đã gửi bản tin Path (hay Request) cho nó.

Ngoài ra, RSVP là giao thức mềm, có nghĩa là các bản tin Path (hay Request) và Resv sẽ được gửi lại sau khoảng thời gian nhất định để duy trì lâu dài sự chiếm giữ tài nguyên. Nếu sau khoảng thời gian này không có bản tin nào gửi đi, sự dự trữ tài nguyên sẽ bị xóa bỏ.

Mặt khác, lưu lượng RSVP có thể đi qua bộ định tuyến không hỗ trợ RSVP. Tại những bộ định tuyến này dịch vụ được phục vụ theo mô hình nỗ lực tối đa.

Nói tóm lại, RSVP đóng vai trò quan trọng trong quá trình triển khai việc chuyển tải nhiều dịch vụ như: âm thanh, hình ảnh và dữ liệu trong cùng một hạ tầng mạng. Các ứng dụng có thể lựa chọn nhiều mức chất lượng dịch vụ khác nhau cho luồng lưu lượng của mình.

Kiến trúc IntServ

Cấu trúc của các bộ định tuyến và các bộ chuyển mạch có hỗ trợ RSVP trong mạng.

Mô hình dịch vụ IntServ

Như vậy ta thấy cấu trúc gồm các khối:

  • Khối điều khiển lưu lượng bao gồm: bộ phân loại (Classifier), bộ lập lịch gói (scheduler).
  • Khối điều khiển thu nhận và thiết lập dự trữ (set up).

Đầu tiên các ứng dụng đưa ra yêu cầu lớp dịch vụ: đảm bảo dịch vụ hoặc kiểm soát tải đồng thời đặt đường dẫn và chiếm giữ tài nguyên mạng cho việc truyền dữ liệu. Khối điều khiển thu nhận sẽ xem xét có thể đáp ứng được các yêu cầu mà dịch vụ đưa ra hay không. Bộ phân loại tiến hành phân loại và đưa các gói dữ liệu nhận được vào hàng đợi riêng. Bộ lập lịch sẽ lập cách xử lý để đáp ứng yêu cầu về chất lượng dịch vụ.

Trao đổi thông tin với IntServ
Trao đổi thông tin với IntServ

Hình vẽ trên là cách thức hoạt động của RSVP, các ứng dụng đưa ra yêu cầu mức chất lượng dịch vụ dành cho luồng lưu lượng xác định qua giao diện dịch vụ ứng dụng. Bộ điều khiển thu nhận và thiết lập dự trữ đáp ứng yêu cầu của các ứng dụng bằng cách tạo ra các bản tin của giao thức RSVP yêu cầu chiếm giữ tài nguyên. Bản tin này sẽ đi qua các bộ định tuyến nằm trên đường dẫn từ đầu gửi đến đầu thu. Tại mỗi bộ định tuyến, khối điều khiển thu nhận sẽ tiến hành quá trình điều khiển chấp nhận kết nối, quyết định xem có thể đáp ứng được yêu cầu chất lượng dịch vụ mà ứng dụng đưa ra hay không. Nếu được, bộ định tuyến sẽ dựa vào thông tin trong bản tin RSVP để cấu hình cho bộ điều khiển lưu lượng.

Chúng ta đã xem xét kiến trúc của mô hình tích hợp dịch vụ cũng như một giao thức rất quan trọng RSVP. Mô hình này cho phép triển khai các ứng dụng thời gian thực và lưu lượng truyền thông trên cùng một hạ tầng mạng.

Dịch vụ phân biệt DiffServ

Mô hình mạng DiffServ

Cấu trúc của mô hình DiffServ bao gồm nhiều lớp dịch vụ và mỗi lớp sẽ được cung cấp một lượng tài nguyên xác định.

Ví dụ trong mạng bao gồm hai lớp dịch vụ: “nỗ lực tối đa” và “độ ưu tiên” (premium). Điều này có nghĩa là những gói dữ liệu thuộc lớp ưu tiên sẽ được cung cấp chất lượng dịch vụ tốt hơn, dữ liệu được đảm bảo, ít mất hơn và có độ trễ thấp hơn.

Điểm khác nhau giữa mô hình DiffServ và IntServ: IntServ dùng giao thức báo hiệu để thông báo cho các nút mạng chất lượng dịch vụ mà luồng yêu cầu. Với mô hình DiffServ, trên mỗi gói dữ liệu sẽ chứa thông tin xác định lớp dịch vụ. Thông tin này được gọi là điểm mã dịch vụ phân biệt DSCP (Differentiated Service Code Point) của tiêu đề IP, tiền thân là vùng ToS (Type of Service). Như vậy trên lý thuyết chúng ta có tất cả 64 lớp dịch vụ khác nhau nhưng trong thực tế số lượng lớp dịch vụ ít hơn nhiều.

Câu hỏi đặt ra ở đây là các bộ định tuyến sẽ làm gì khi nhận gói dữ liệu với giá trị DSCP nào đó?

Giá trị DSCP cho biết yêu cầu chất lượng dịch vụ mà gói dữ liệu yêu cầu mạng cung cấp hay nói cách khác DSCP xác định một hành vi hop PHB (Perhop behavior). Ngoài những giá trị PHB chuẩn, trong nội bộ một mạng có thể định nghĩa riêng những giá trị PHB. 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 nỗ lực tối đa.
  • Chuyển tiếp nhanh EF (Expedited Forwarding): gói dữ liệu có giá trị này sẽ có thời gian trễ nhỏ nhất và độ mất gói thấp nhất.
  • Chuyển tiếp bảo đảm AF (Assured Forwading): mỗi PHB mang một giá trị AFxy. Giá trị x cho phép xác định hàng đợi dành cho gói, giá trị y xác định mức độ ưu tiên hay nói cách khác là khả năng mất gói khi xảy ra hiện tượng nghẽn mạch hoặc tranh chấp. Như vậy, 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 nhưng mức ưu tiên của các gói AF13 thấp hơn và xác suất mất cao hơn. Riêng các gói AF2y có hàng đợi khác gói AF1y. Số lượng AF PHB là 12, trong đó x có 4 giá trị và y có 3 giá trị. Và điều quan trọng cần phải nhắc đến là các gói AFx1, AFx2, AFx3 sẽ được đưa vào cùng một hàng đợi để không bị mất thứ tự.

Mỗi thiết bị định tuyến sẽ lưu giữ một bảng ánh xạ giá trị DSCP của gói với giá trị PHB, từ đó xác định phương thức xử lý gói.

Mô hình DiffServ tại mạng biên và lõi

Sự khác nhau giữa 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:

DiffServ  IntServ  
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 thông 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.  
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  
Chỉ có thể sử dụng cho mạng cỡ nhỏ với
số lượng lưu lượng nhỏ  
Ít tốn tài nguyên mạng  Tốn nhiều tài nguyên mạng  
Xét ưu tiên gói trên từng chặn  Khởi tạo một kênh truyền trước khi truyền  
Khả năng mở rộng mạng cao và phục vụ
đa dịch vụ  
Khả năng mở rộng mạng thấp và phục cụ
ít dịch cụ.  
Sự khác nhau giữa IntServ và DiffServ.

(còn tiếp)

Chia sẻ: