6.6.BỘ ĐỊNH THỜI VÀ CƠ CHẾ KIỂM SOÁT LƯU LƯỢNG MẠNG

Một phần của tài liệu Báo cáo thực hành môn mạng máy tính (Trang 61)

(QoS) đảm bảo cho các ứng dụng đa phương tiện trên mạng. Trong phần này, chúng tôi sẽ xem xét các cơ chế khác nhau được sử dụng liên quan đến việc quản lý chất lượng dịch vụ này. Tiếp theo sau phần này chúng tôi sẽ xem xét làm thế nào để những cơ chế có thể kết hợp được với nhau sẽ tạo ra các hình thức khác nhau của chất lượng dịch vụ trên Internet.

6.6.1. Các cơ chế bộ định thời

Nhắc lại những vấn đề đã được đề cập ở mục 1.6 (Độ trễ và mất mát trong vận chuyển gói tin) và mục 4.8 (Kiến trúc bên trong của bộ định tuyến) là các gói tin thuộc các luồng mạng khác nhau được ghép lại với nhau và xếp vào hàng đợi để truyền vào các bộ đệm đầu ra gắn liền với một kênh truyền dẫn. Cách thức mà các gói tin được xếp vào hàng đợi sau đó được truyền vào kênh truyền được gọi là nguyên tắc thiết lập kênh truyền. Ở phần trước chúng ta đã thấy việc thiết lập kênh truyền đóng vai trò quan trọng trong việc quản lý chất lượng dịch vụ. Bây giờ chúng ta xem xét vài nguyên tắc quan trọng trong việc thiết lập kênh truyền ở mức cụ thể hơn.

Cơ chế hàng đợi FIFO (Vào trước ra trước)

Ở hình 6.6-1 bên dưới mô tả cơ chế hàng đợi (FIFO) trong việc thiết lập kênh truyền. Các gói tin được đưa vào hàng đợi để chờ trong khi một gói tin khác đang được xử lý trên kênh truyền. Nếu hàng đợi không có đủ khoảng trống để chứa các gói tin, chính sách loại bỏ gói tin của hàng đợi sẽ xác định xem gói tin nào sẽ được loại bỏ (“giảm”) hay các gói tin khác sẽ được loại bỏ khỏi hàng đợi để dành chổ cho các gói tin khác. Vấn đề loại bỏ các gói chúng tôi sẽ không đề cập đến trong nội dung này. Một gói tin được truyền thành công khi nó đi qua kênh truyền và được xóa ở hàng đợi.

Hình 6.6 - : Mô hình hàng đợi FIFO

Thiết lập kênh truyền theo FIFO (còn được gọi là First-Come-First-Served –FCFS (đến trước truyền trước)) các gói dữ liệu được đưa lên kênh truyền theo thứ tự mà nó được đưa vào hàng đợi. Để hiểu rỏ hơn về cơ chế hàng đợi này chúng ta có thể liên hệ với thự tế như sau: xếp hàng từ điểm dừng xe buýt (đặc biệt ở Anh, ở đó việc xếp hàng dường như đã thành một thói quen) hoặc trung tâm dịch vụ khác, nơi mà khách hàng chờ trên một hàng duy nhât, có thứ tự, và sau đó được phục vụ trước khi họ đến trước.

Hình 6.6 - : Hoạt động hàng đợi FIFO

Hình 6.6-2 là một ví dụ về cách thức hoạt động hàng đợi FIFO. Lượt đến của gói tin được quy định bởi các mũi tên được đánh số trên dòng thời gian, với chỉ số thứ tự các gói tin đến. Điểm bắt đầu của gói tin riêng lẻ được thể hiện bên dưới với dòng thời gian thấp hơn. Thời gian cho việc truyền một gói tin được thể hiện bằng các hình chữ nhật tô đậm giữa hai mốc thời gian. Vì cơ chế FIFO, nên các gói tin được đưa vào theo thứ mà lần lượt. Lưu ý sau khi gói tin 4 được truyền đi, kênh truyền rơi vào trạng thái rỗi (từ gói tin số 1 đến số 4 đã được truyền đi và loại bỏ khỏi hàng đợi cho đến khi gói tin số 5 được đưa vào)

Hình 6.6 - : Mô hình hàng đợi ưu tiên

Trong hàng đợi ưu tiên các gói tin đến với kênh truyền được phân loại vào một trong hai hoặc nhiều hơn các hàng đơi ưu tiên ở hàng đợi đầu ra, như trong hình 6.6-3. Như đã đề cập trong phần trước, một gói ưu tiên của lớp có thể phụ thuộc vào giá trị chứa trong tiêu đề của gói tin (giá trị của các loại dịch vụ (ToS) số bit trong môt gói IPv4), địa chỉ IP nguồn hoặc địa chỉ IP đích, số cổng đích, hoặc tiêu chuẩn khác. Mỗi gói tin ưu tiên thường có hàng đợi riêng của nó. Khi lựa chọn một gói tin truyền tải, cơ chế hàng đợi ưu tiên sẽ truyền một gói tin từ lớp ưu tiên cao nhất mà có một hàng đợi đang rỗi (đang chờ các gói dữ liệu để truyền). Sự lựa chọn trong số các gói tin trong lớp ưu tiên giống nhau thường được thực hiện theo cách thức FIFO.

Hình minh họa 6.6-4 mô tả hoạt động của một hàng đợi ưu tiên với hai hàng đợi ưu tiên. Gói 1,3 và 4 thuộc về các hàng đợi ưu tiên cao còn các gói 2 và 5 thuộc về hàng đợi ưu tiên thấp. Gói 1 đến, và tìm kiếm các kênh truyền rỗi thực hiện việc truyền. Trong việc truyền tải gói 1, gói 2 và 3 đến và được xếp hàng đợi trong hàng đợi ưu tiên thấp và cao tương ứng. Sau khi việc truyền tải gói 1, gói 3(gói ưu tiên cao) được chọn để truyền trước gói 2 (mặc dù nó đến sớm hơn vì nó là một gói ưu tiên thấp). Khi gói 3 được truyền xong thì gói 2 bắt đầu truyền. Gói tin 4(là một gói ưu tiên cao) đến trong khi việc truyền tải gói tin 3(gói ưu tiên thấp). Dưới một cơ chế không ưu tiên hàng đợi ưu tiên việc truyền tải một gói tin không bị gián đoạn khi nó đã bắt đầu. Trong trường hợp này, gói tin 4 đợi để đề thực hiện việc truyền sau khi gói tin 2 đã truyền xong.

Hình 6.6 - : Mô hình hoạt động hàng đợi ưu tiên

Nguyên tắc quay vòng tròn và hàng đợi cần bằng

Với nguyên tắc quay vòng tròn, các gói tin một lần nữa sắp xếp vào các hàng đợi, như hàng đợi ưu tiên. Tuy nhiên, thay vì có được một ưu tiên chặt chẽ giữa các hàng đợi, một cơ chế quay vòng được tạo ra nhằm thay thế gói tin giữa các hàng đợi trước khi đưa lên kênh truyền.Trong hình thức đơn giản nhất của nguyên tắc quay vòng một gói tin hàng đợi 1 được truyền đi, theo sau là một gói tin hàng đợi 2, tiếp theo là một gói tin hàng đợi 1, tiếp theo làm một gói tin hàng đợi 2,…

Hình 6.6-5 minh họa hoạt động của hai hàng đợi theo nguyền tắc quay vòng tròn. Trong ví dụ này, các gói 1,2 và 4 thuộc về hàng đợi 1 và các gói 3 và 5 thuộc về hàng đợi thứ 2. Khi gói tin 1 được đưa lên kênh truyền để thực hiện việc truyền, thì gói tin số 2 và 3 đến và nó được đưa và hàng đợi trong khi việc truyền gói tin số 1 chưa kết thúc. Sau khi gói tin số 1 truyền xong, theo cơ chế quay vòng các gói tin của hàng đợi số 2 sẽ được đưa lên kênh truyền vậy sau gói tin số 1 gói tin số 3 được đưa lên để thực hiện việc truyền. Sau khi gói tin số 3 truyền xong, thì gói tin số 2 của hàng đợi thứ nhất được đưa lên kênh truyền. Việc truyền gói tin số 4 sẽ được thực hiện sau khi gói tin số 2 được truyền xong, do đó nó được xếp và hàng đợi để chờ kết thúc của gói tin số 2.

Hình 6.6 - : Mô hình hoạt động hai hàng đợi của nguyên tắc quay vòng

Trong kiến trúc QoS đã áp dụng cơ chế quay vòng tròn và nó được gọi là hàng đợi cân bằng (WFQ) tuân theo luật [Demers 90, Parekh 93]. Hàng đợi cân bằng được minh họa trong hình 6.6-3. Các gói tin được phân loại và được đưa vào hàng đợi thích hợp. Tương tự như trong cơ chế quay vòng tròn, hàng đợi cân bằng thực hiện đưa các gói tin trong các hàng đợi lên kênh truyền theo nguyên tắc quay vòng. Giả sử có 3 hàng đợi, đầu tiên thao tác với hàng đợi số 1, sau đó hàng đợi số 2, và sau đó hàng đợi số 3. Thực hiện lặp đi lặp lại đến khi nào các gói tin trong mỗi hàng đợi được đưa lên kênh truyền. WFQ cũng làm việc theo nguyên tắc tuần tự do đó khi gói tin trên hàng đợi nào đó truyền hết nó lập tức chuyển sang các hàng đợi tiếp theo.

Điểm khác của WFQ với cơ chế quay vòng tròn là trong khoảng thời gian mỗi hàng đợi có thể nhận được nhiều gói tin khác nhau. Cụ thể với mỗi hàng đợi i được gán một giá trị wi. Theo WFQ, trong khoảng thời gian bất kỳ để các gói tin của hàng đợi i được gửi đi, hàng đợi i kế tiếp sẽ được thự hiện bằng wi/(∑wj), trường hợp giá trị ở mẫu số được thực hiện thì cũng được xếp vào hàng đợi để truyền. Trong trường hợp nếu tất cả các hàng đợi chứa đầy các gói tin thì hàng đợi vẫn đảm bảo nhận được wi/ (∑wj) của băng thông. Do đó một kênh truyền với lưu lượng truyền R, hàng đợ i sẽ luôn đạt được lưu lượng ít nhât bằng Rwi/(∑wj). Như chúng tôi đã đề cập WFQ được lý tưởng hóa, nhưng thực tế là gói tin là đơn vị riêng biệt của dữ liệu và việc truyền tải một gói tin trên kênh truyền không bị gián đoạn để bắt đầu truyền một gói tin khác. [Demers 90], [Parekh 93] đã đề cập đến vấn đề này. Như chúng ta sẽ thấy trong các phần sau, WFQ đóng vai trò quan trọng trong kiến trúc QoS. Trong các sản phẩm bộ định tuyến hiện nay nó cũng rất phổ biến [Cisco 1999]

6.6.2. Cơ chế điều khiển lưu lượng mạng

Trong phần 6.5 này chúng tôi đề cập các vấn đề liên quan đến cách xác định các cơ chế, các quy định về điều khiển lưu lượng mạng được áp dụng vào các gói tin truyền đi trên mạng, là một trong những nền tảng của bất kỳ kiến trúc QoS. Nhưng những khía cạnh của gói tin được kiểm soát trên kênh truyền? Chúng ta có thể xác định ba tiêu chí quan trọng của cơ chế này, từ các pham vi khác nhau theo quy mô thời gian mà lưu lượng gói tin được kiểm soát

• Lưu lượng trung bình:

Trong môi trường mạng có thể giới hạn lưu lượng với thời gian lâu dài(gói dữ liệu trên một khoảng thời gian) mà tại đó các gói tin của một luồng dữ liệu có thể được tham gia vào mạng. Một vấn đề quan trọng ở đây là khoảng thời gian mà lưu lượng trung bình đó được kiểm soát. Một luồng dữ liệu có tốc độ hạn chế trung bình là 100 gói tin trên một giây, từ đó ta có 6000 gói tin trên một phút, ta thấy cả hai đề có lưu lượng trung bình như nhau trên khoảng thời gian vừa đủ.

Cho ví dụ, các hạn chế sau này sẽ cho phép một luồng dữ liệu có thể gửi 1000 gói tin trong một. Trong khi các hạn chế trước đây sẽ không cho phép điều này xảy ra

Trong khi ở lưu lượng trung bình hạn chế lượng lưu lượng từ kênh truyền có thể được đưa vào mạng không khoảng thời gian dài tối đa, thì lưu lượng lớn hạn chế số lượng tối đa các gói dữ liệu có thể gửi qua trong khoảng thời gian ngắn. Lấy lại ví dụ trên, hệ thống mạng có thể kiểm soát lưu lượng mạng ở mức trung bình là 6000 gói mỗi phút, trong khi giới hạn lưu lượng lớn của kênh truyền là 1500 gói tin mỗi giây

• Lưu lượng chùm:

Hệ thống mạng cũng có thể hạn chế tối đa số lượng các gói tin (các “chùm” của gói dữ liệu) có thể được gử vào mạng trong khoảng thời gian rất ngắn. Trong khoảng thời gian ngắn, các gói tin có thể ngày lập tức được gửi vào mạng. Trong khi đó nó không thể bắt đầu ngay lập tức gửi nhiều gói vào mạng.

Hình 6.6 - : The Leaky Bucket Policer

Điều khiển lưu lượng mạng là một cơ chế ảo có thể được dùng để mô tả những giới hạn của chính sách kiểm soát lưu lượng gói tin. Như thể hiện trong hình 6.6-7, cơ chế điều khiển lưu lượng mạng bao gồm một cái phểu có thể chứa đến b mã thông báo. Mã này được thêm vào phểu với lưu lượng r trên mỗi giây.(Để cho đơn giản chúng tôi giả sử đơn vị thời gian là 1 giây). Nếu phểu chưa lấp đầy, khi một mã thông báo được tạo ra mã này sẽ được thêm vào phểu, ngược lại các mã thông báo mới này sẽ được bỏ qua, và lượng thể b trong phểu vần dữ nguyên. Bây giờ chúng ta xét làm thế nào để cơ chế điều khiển lưu lượng mạng có thể giám sát lưu lượng gói tin. Giả sử trước khi một gói tin được truyền vào mạng, đầu tiên nó phải loại bỏ một mã thông báo từ phểu. Nếu phễu chứa mã thông báo rỗng, các gói dữ liệu phải chờ đợi mã thông báo. Bây giờ chúng ta tìm hiểu cách thức kiểm soát lưu lượng kênh truyền. Vì có thể có nhiều mã

thông báo b trong phểu, kích thước tối đa cho một cho một cơ chế kiểm soát lưu lượng là các gói tin b. Hơn nữa vì lưu lượng của các mã thông báo là r, số lượng tối đa gói tin có thể được gửi vào mạng trong khoảng thời gian bất kỳ là rt+b. Vì vậy, thông qua mã thông báo r mà từ đó các gói tin có thể được đưa vào hệ thống mạng. Cũng có thể dùng cơ chế điều khiển lưu lượng mạng để kiểm soát lưu lượng cao của kênh truyền bên cạnh mức trung bình trong khoảng thời gian, xem những câu hỏi bài tập về nhà vào cuối chương này.

Cơ chế điều khiển lưu lượng mạng + hàng đợi cân bằng => độ trễ tối đa trong một hàng đợi (adsbygoogle = window.adsbygoogle || []).push({});

Tại mục 6.7 và 6.8 chúng tôi sẽ nói về INTSERV và DIFFSERV để cung cấp chất lượng dịch vụ trên mạng Internet. Chúng tôi thấy rằng cơ chế điều khiển lưu lượng mạng và WFQ sẽ đó vai trò quan trọng trong vấn đề này. Chúng tôi sẻ kết thúc phần này bằng việc xét đầu ra của một router thành nhiều dòng chảy n, kiểm soát từng lưu lượng mạng bởi các thông số bi và ri, trong đó i=1…n, sử dụng WFQ để tạo độ trễ của gói tin. Chúng tôi giả sử rằng mỗi dòng lưu lượng và một hàng đợi riêng biệt của cơ chế WFQ, như thể hiện trong hình 6.6-8

Hình 6.6 - : Mô hình n bộ điều khiển lưu lượng ghép với cơ chế hàng đợi cân bằng Như ở phần WFQ đã đề cập mỗi dòng lưu lượng được đảm bảo sẻ nhân được một phần của băng thông liên kết bằng Rwi/(∑wj). Trong đó R là tốc độ truyền các gói tin của kênh truyền /giây, sau đó cơ chế WFQ sẽ tạo ra độ trể tối đa của một gói tin. Chúng ta tập trung vào lưu lượng trên kênh truyền đầu tiên, giả sử rằng mã thông báo

trong phễu của kênh truyền đâu tiên ban đầu đầy đủ. Một loạt các mã thông thông báo được đưa đến bộ điều khiển lưu lượng cho kênh truyền 1. Ngày sau đó các gói dữ liệu không chờ đợi các mã thông báo nữa và được đưa vào vùng đợi WFQ của kênh truyền số 1. Khoảng thời gian gói dữ liệu b1 được thực hiện với một tỷ lệ bằng Rwi/(∑wj) gói tin /giây. Như vậy ở gói tin sau cùng sẽ có độ trễ tối đa dmax cho đến khi thực hiện xong việc truyền nó.

Dmax=b1/(Cwi/(∑wj))

Ở công thức trên nếu có gói tin b1 trong hàng đợi và các gói tin khác đang truyền trên kênh truyền với lưu lượng nhỏ nhất Cwi/(∑wj) các gói tin mỗi giây, sau đó thời gian cho đến khi bit cuối cùng của gói tin cuối cùng được truyền không thể vượt giá trị b1/ (Cwi/(∑wj)). Có một vấn đề bạn cần phải giải quyết khi r1<Cwi/(∑wj), thì dmax là độ trể tối đa mà bất kỳ gói dữ liệu trong kênh truyền 1 sẽ gặp trong hàng đợi WFQ.

Tài liệu tham khảo

[Demers 90] A. Demers, S. Keshav, and S. Shenker, Analysis and Simulation of a Fair Queuing

Algorithm, Internetworking: Research and Experience, Vol. 1, No. 1, pp. 3-26, 1990. [Cisco 99] Cisco Systems, "Congestion Management Overview."

[Parekh 93] A. Parekh and R. Gallager, "A generalized processor sharing approach to flow control in

integrated services networks : the single-node case," IEEE/ACM Transactions on Networking, Vol.1,

6.7. DỊCH VỤ TÍCH HỢP

Trong các phần trước, chúng ta đã xác định tất cả các nguyên tắc và cơ chế sử dụng để cung cấp chất lượng trên dịch vụ Internet. Trong phần này chúng ta xem xét làm thế nào để những ý tưởng được khai thác một cụ thể cấu trúc để cung cấp chất

Một phần của tài liệu Báo cáo thực hành môn mạng máy tính (Trang 61)