1 Giới thiệu về QoS Quality of Service (QoS) :
- là một kỹ thuật để quản lý, phân phối các tài nguyên cho hệ thống mạng. Cài đặt QoS trên mạng có thể chia thành ba hoạt động chính:
- (1) Classification (phân loại gói tin) và Marking (đánh dấu gói tin): Gói tin được phân loại khi tới router. Router dùng khái niệm class (lớp) để thực hiện phân loại. Ví dụ, hệ thống mạng triển khai QoS cho 2 dịch vụ là FTP và VoIP. Khi các gói tin FTP đến router sẽ được router phân vào class “ftp”. Tương tự, các gói tin VoIP sẽ được router phân vào class “voip” (“ftp” và “voip” là tên gọi của class, được đặt tùy ý khi cấu hình). Các gói tin thuộc cùng một class được xử lý giống nhau tại giai đoạn Scheduling. Sau khi được phân loại, các gói tin sẽ được đánh dấu để xác định độ ưu tiên. - (2) Queuing (hàng đợi gói tin): Là bộ đệm chứa các gói tin, một router hay switch có thể có nhiều hàng đợi. Các gói tin phải vào hàng đợi trước khi được truyền ra khỏi một interface (cổng giao tiếp của thiết bị mạng). Hàng đợi thực hiện quản lý các gói tin như sau:
2 Những vấn đề ảnh hưởng tới QoS
Cung cấp QoS thực chất là việc quản lý các lưu lượng trên mạng IP. Hiện nay, cơ bản có hai loại lưu lượng là lưu lượng thời gian thực và lưu lượng dữ liệu. Hai loại lưu lượng này có đặc trưng khác nhau nên có các yêu cầu về QoS khác nhau.
Lưu lượng thời gian thực tạo ra bởi các ứng dụng như Video, Voice... thường yêu cầu độ delay nhỏ, nhạy cảm với sự thay đổi delay và cần được đảm bảo một lượng bandwidth tối thiểu. Khi độ delay lớn, sự thay đổi độ delay không ổn định hoặc bandwidth dưới mức tối thiểu sẽ gây ra ảnh hưởng như bảng 1.1.
Lưu lượng dữ liệu tạo bởi các ứng dụng như Telnet, FTP, HTTP… ít bị ảnh hưởng bởi delay và bandwidth. Độ delay lớn có thể làm giảm hiệu suất thực hiện ứng dụng nhưng dữ liệu đi đến đều sử dụng được. Lưu lượng dữ liệu không yêu cầu một lượng bandwidth tối thiểu.
Do đó, có thể xét những nguyên nhân gây ảnh hưởng đến QoS như:
- Bandwidth.
- Delay.
- Jitter.
- Packet Loss
2.1 Bandwidth
Bandwidth là số bit dữ liệu trong 1 giây có thể gửi trên đường truyền. Giá trị của bandwidth tùy thuộc vào tốc độ đường truyền vật lý (serial, fastEthernet…) hoặc tốc độ xung nhịp truyền dữ liệu (clock rate) của interface.
Trong một số trường hợp thì tốc độ bandwidth bằng với tốc độ đường truyền vật lý hoặc bằng với tốc độ xung nhịp truyền dữ liệu. Ví dụ, mạng point-to-point.
Theo hình 2.2.1a, giả sử tốc độ bandwidth của đường truyền vật lý là 64Kbps thì R1 sẽ truyền dữ liệu cho R2 với bandwidth là 64Kbps và ngược lại. Trong một số trường hợp khác, tốc độ bandwidth thường nhỏ hơn tốc độ tốc độ đường truyền vật lý. Ví dụ, mạng Frame Relay thì tốc độ bandwidth là CIR (Commited Information Rate – tốc độ truyền dữ liệu được cam kết bởi nhà cung cấp dịch vụ).
Theo hình 2.2.1b, R3 phải truyền với tốc độ bandwidth là 256Kbps và R4 là 1.544Mbps (T1), trong khi tốc độ CIR chỉ là 128Kbps.
Tình huống đặt ra cho cả hai trường hợp (Hình 2.2.1a và Hình 2.2.1b) là nếu lưu lượng mạng được truyền đi nhiều và với tốc độ lớn thì các hàng đợi sẽ đầy và có thể xảy ra nghẽn mạng. Lúc này, làm cho các ứng dụng bị chậm, các gói tin bị đánh rớt và sẽ vào trạng thái truyền lại (gói tin TCP – Transmission Control Protocol). Do đó, bandwidth là một nguyên nhân gây ảnh hưởng đến QoS.
Tăng bandwidth là công cụ có thể cải thiện vấn đề về bandwidth. Vài công cụ khác như: Nén, phân lượng bandwidth cần thiết cho các lưu lượng mạng ưu tiên hơn, hàng đợi.
Theo hình 2.2.1c, R1 được cấu hình 2 hàng đợi (Queue 1 và Queue 2). Giả sử có 4
gói tin đến R1. Các gói 1, 2, 3 được phân loại vào class ít ưu tiên hơn nên được router đưa vào hàng đợi Queue 1 và chỉ được truyền với 25% bandwidth. Gói tin thứ 4 đến sau cùng nhưng được phân loại vào class có độ ưu tiên cao nên được router đưa vào hàng đợi Queue 2 và được truyền với 75% bandwidth. Gói tin thứ 4 đến sau nhưng vẫn được truyền đi trước.
2.2 Delay
Delay là thời gian trễ của gói tin khi truyền trên mạng. Mọi gói tin đều có một thời gian trễ trong suốt quá trình được gửi đi và đến được đích. Delay được tính bằng milli-seconds (ms).
Theo hình 2.2a, thì độ delay sẽ xuất hiện trong suốt quá trình truy cập vào Server 1 từ một máy tính (Hannah).
Ví dụ cụ thể: Thực hiện ping 8.8.8.8 và tracert 8.8.8.8
Hình 2.2b Ví dụ về độ delay của gói tin
Theo hình 2.2b, các gói tin khi được gửi đi, được reply và khi qua từng hops (trường TTL – Time To Live trong IP header) đều xuất hiện delay.
Delay phụ thuộc đường truyền vật lý, môi trường truyền dẫn, khoảng cách giữa các hops, loại hàng đợi, mô hình mạng (Frame Relay, ATM…).
Các loại delay được thể hiện cụ thể trong bảng sau:
Do đó, delay xuất hiện ở tất cả những nơi có gói tin đi qua. Điều này làm cho các ứng dụng bị chậm, sự rớt gói tin sẽ xảy ra. Để đảm bảo QoS hoạt động hiệu quả thì cần quan tâm đến delay. Để giảm các vấn đề liên quan đến delay thì có thể tăng bandwidth. Vài công cụ khác như: Hàng đợi, Link Fragmentation and Interleaving (chia nhỏ gói tin và truyền xen kẽ), nén, Traffic Shapping.
Theo hình 2.2c, các gói tin theo thứ tự được truyền đi là 1, 2, 3, 4. Nhưng gói tin thứ 4 có độ ưu tiên cao hơn, nên được xếp vào hàng đợi thứ 2 và được truyền đi trước các gói tin 1, 2, 3. Nếu không sử dụng hàng đợi thì gói tin thứ 4 phải đợi cho các gói tin 1, 2, 3 được truyền xong. Do đó, gói tin thứ 4 có thể bị đánh rớt do ảnh hưởng của delay.
Các gói tin truyền liên tục trên mạng có độ delay khác nhau sẽ tạo ra jitter. Jitter được định nghĩa như là sự thay đổi trong tỉ lệ xuất hiện của các gói tin khi chúng được truyền giữa hai thiết bị đầu cuối.
Theo ví dụ hình 2.3 thì điện thoại 201 sẽ gửi mỗi gói tin với độ delay là 20ms. Nhưng gói tin thứ 3 đến với độ delay là 30ms. Vậy 10ms là độ jitter đã xảy ra. Điều này làm ảnh hưởng đến chất lượng của cuộc gọi, âm thanh hay bị ngắt quảng.
Vì jitter được hình thành từ delay của các gói tin nên công cụ để giảm các vấn đề liên quan đến jitter tương tự như delay.
2.4 Packet Loss
Packet loss (rớt gói tin) là do nhiều nguyên nhân khác nhau mà chủ yếu là do hàng đợi quá đầy. Công cụ QoS không thể giúp tránh rớt gói tin mà chỉ giúp làm giảm số lượng gói tin bị đánh rớt.
Theo hình 2.4a, một hàng đợi có kích thước 40 nhận được 50 gói tin liên tục. Khi 40 chỗ trong hàng đợi đã đầy thì 10 gói tin cuối sẽ bị đánh rớt.
Đối với lưu lượng thời gian thực (Voice, Video) chỉ cần một vài gói tin liên tục nhau bị mất thì sẽ dẫn đến mất âm thanh hoàn toàn, hình ảnh không đồng bộ với âm thanh… Ngược lại, lưu lượng dữ liệu (HTTP, FTP…) thì chịu lỗi tốt hơn do sử dụng TCP để phục hồi dữ liệu. Do đó, khi thực hiện QoS cần chú ý đến vấn đề packet loss.
QoS có thể giảm thiểu việc rớt gói tin bằng cách cấu hình cho các gói tin được gửi đi trước khi hàng đợi đầy (theo ví dụ trên thì số gói tin bị đánh rớt sẽ ít hơn 10). Hoặc sử dụng các hàng đợi mở rộng có kích thước lớn.
Tăng bandwidth cũng là một công cụ để ngăn chặn mất gói tin. Nhiều bandwidth hơn cho phép truyền dữ liệu nhanh hơn, các gói tin ra khỏi hàng đợi nhanh hơn, giảm độ dài hàng đợi và sẽ ít bị đầy hơn. Do đó, giảm được hiện tượng cắt đuôi (tail drop – hiện tượng các gói tin bị đánh rớt khi khi hàng đợi đầy) xảy ra.
Ngoài ra, còn có các công cụ phát hiện hiện tượng hàng đợi có dấu hiệu bị đầy như: Random Early Detection (RED), Weighted Random Early Detection (WRED)…
- là một kỹ thuật để quản lý, phân phối các tài nguyên cho hệ thống mạng. Cài đặt QoS trên mạng có thể chia thành ba hoạt động chính:
- (1) Classification (phân loại gói tin) và Marking (đánh dấu gói tin): Gói tin được phân loại khi tới router. Router dùng khái niệm class (lớp) để thực hiện phân loại. Ví dụ, hệ thống mạng triển khai QoS cho 2 dịch vụ là FTP và VoIP. Khi các gói tin FTP đến router sẽ được router phân vào class “ftp”. Tương tự, các gói tin VoIP sẽ được router phân vào class “voip” (“ftp” và “voip” là tên gọi của class, được đặt tùy ý khi cấu hình). Các gói tin thuộc cùng một class được xử lý giống nhau tại giai đoạn Scheduling. Sau khi được phân loại, các gói tin sẽ được đánh dấu để xác định độ ưu tiên. - (2) Queuing (hàng đợi gói tin): Là bộ đệm chứa các gói tin, một router hay switch có thể có nhiều hàng đợi. Các gói tin phải vào hàng đợi trước khi được truyền ra khỏi một interface (cổng giao tiếp của thiết bị mạng). Hàng đợi thực hiện quản lý các gói tin như sau:
2 Những vấn đề ảnh hưởng tới QoS
Cung cấp QoS thực chất là việc quản lý các lưu lượng trên mạng IP. Hiện nay, cơ bản có hai loại lưu lượng là lưu lượng thời gian thực và lưu lượng dữ liệu. Hai loại lưu lượng này có đặc trưng khác nhau nên có các yêu cầu về QoS khác nhau.
Lưu lượng thời gian thực tạo ra bởi các ứng dụng như Video, Voice... thường yêu cầu độ delay nhỏ, nhạy cảm với sự thay đổi delay và cần được đảm bảo một lượng bandwidth tối thiểu. Khi độ delay lớn, sự thay đổi độ delay không ổn định hoặc bandwidth dưới mức tối thiểu sẽ gây ra ảnh hưởng như bảng 1.1.
Lưu lượng dữ liệu tạo bởi các ứng dụng như Telnet, FTP, HTTP… ít bị ảnh hưởng bởi delay và bandwidth. Độ delay lớn có thể làm giảm hiệu suất thực hiện ứng dụng nhưng dữ liệu đi đến đều sử dụng được. Lưu lượng dữ liệu không yêu cầu một lượng bandwidth tối thiểu.
Do đó, có thể xét những nguyên nhân gây ảnh hưởng đến QoS như:
- Bandwidth.
- Delay.
- Jitter.
- Packet Loss
2.1 Bandwidth
Bandwidth là số bit dữ liệu trong 1 giây có thể gửi trên đường truyền. Giá trị của bandwidth tùy thuộc vào tốc độ đường truyền vật lý (serial, fastEthernet…) hoặc tốc độ xung nhịp truyền dữ liệu (clock rate) của interface.
Trong một số trường hợp thì tốc độ bandwidth bằng với tốc độ đường truyền vật lý hoặc bằng với tốc độ xung nhịp truyền dữ liệu. Ví dụ, mạng point-to-point.
Hình 2.2.1a Ví dụ tốc độ bandwidth trong mạng point-to-point
Theo hình 2.2.1a, giả sử tốc độ bandwidth của đường truyền vật lý là 64Kbps thì R1 sẽ truyền dữ liệu cho R2 với bandwidth là 64Kbps và ngược lại. Trong một số trường hợp khác, tốc độ bandwidth thường nhỏ hơn tốc độ tốc độ đường truyền vật lý. Ví dụ, mạng Frame Relay thì tốc độ bandwidth là CIR (Commited Information Rate – tốc độ truyền dữ liệu được cam kết bởi nhà cung cấp dịch vụ).
Hình 2.2.1b Ví dụ tốc độ bandwidth trong mạng Frame Relay
Theo hình 2.2.1b, R3 phải truyền với tốc độ bandwidth là 256Kbps và R4 là 1.544Mbps (T1), trong khi tốc độ CIR chỉ là 128Kbps.
Tình huống đặt ra cho cả hai trường hợp (Hình 2.2.1a và Hình 2.2.1b) là nếu lưu lượng mạng được truyền đi nhiều và với tốc độ lớn thì các hàng đợi sẽ đầy và có thể xảy ra nghẽn mạng. Lúc này, làm cho các ứng dụng bị chậm, các gói tin bị đánh rớt và sẽ vào trạng thái truyền lại (gói tin TCP – Transmission Control Protocol). Do đó, bandwidth là một nguyên nhân gây ảnh hưởng đến QoS.
Tăng bandwidth là công cụ có thể cải thiện vấn đề về bandwidth. Vài công cụ khác như: Nén, phân lượng bandwidth cần thiết cho các lưu lượng mạng ưu tiên hơn, hàng đợi.
- Nén: Nén cả IP header và dữ liệu tải, làm giảm số bits dữ liệu truyền.
- Phân lượng bandwidth cần thiết cho các lưu lượng mạng ưu tiên hơn: Ví dụ, hệ thống mạng có hai dịch vụ mạng là Voice và FTP. Lưu lượng Voice luôn được ưu tiên hơn nên sẽ được dành 75% bandwidth, 25% bandwidth còn lại là cho lưu lượng FTP.
- Hàng đợi: Tạo ra nhiều hàng đợi và sau đó lập Scheduling cho các gói ting hàng đợtrong từni tương ứng. Đồng thời bảo đảm lượng bandwidth tối thiểu cho một hàng đợi cụ thể.
Hình 2.2.1c Phân lượng bandwidth với việc sử dụng hàng đợi
Theo hình 2.2.1c, R1 được cấu hình 2 hàng đợi (Queue 1 và Queue 2). Giả sử có 4
gói tin đến R1. Các gói 1, 2, 3 được phân loại vào class ít ưu tiên hơn nên được router đưa vào hàng đợi Queue 1 và chỉ được truyền với 25% bandwidth. Gói tin thứ 4 đến sau cùng nhưng được phân loại vào class có độ ưu tiên cao nên được router đưa vào hàng đợi Queue 2 và được truyền với 75% bandwidth. Gói tin thứ 4 đến sau nhưng vẫn được truyền đi trước.
2.2 Delay
Delay là thời gian trễ của gói tin khi truyền trên mạng. Mọi gói tin đều có một thời gian trễ trong suốt quá trình được gửi đi và đến được đích. Delay được tính bằng milli-seconds (ms).
Hình 2.2a Ví dụ về thời gian trễ của gói tin khi truyền giữa nơi gửi và đích
Theo hình 2.2a, thì độ delay sẽ xuất hiện trong suốt quá trình truy cập vào Server 1 từ một máy tính (Hannah).
Ví dụ cụ thể: Thực hiện ping 8.8.8.8 và tracert 8.8.8.8
Hình 2.2b Ví dụ về độ delay của gói tin
Theo hình 2.2b, các gói tin khi được gửi đi, được reply và khi qua từng hops (trường TTL – Time To Live trong IP header) đều xuất hiện delay.
Delay phụ thuộc đường truyền vật lý, môi trường truyền dẫn, khoảng cách giữa các hops, loại hàng đợi, mô hình mạng (Frame Relay, ATM…).
Các loại delay được thể hiện cụ thể trong bảng sau:
Bảng 2.2 Các loại Delay
Do đó, delay xuất hiện ở tất cả những nơi có gói tin đi qua. Điều này làm cho các ứng dụng bị chậm, sự rớt gói tin sẽ xảy ra. Để đảm bảo QoS hoạt động hiệu quả thì cần quan tâm đến delay. Để giảm các vấn đề liên quan đến delay thì có thể tăng bandwidth. Vài công cụ khác như: Hàng đợi, Link Fragmentation and Interleaving (chia nhỏ gói tin và truyền xen kẽ), nén, Traffic Shapping.
- Hàng đợi: Cấu hình hàng đợi cho các gói tin được đánh dấu ưu tiên có thể được truyền đi trước.
Hình 2.2c Ví dụ về công cụ hàng đợi đối với delay
Theo hình 2.2c, các gói tin theo thứ tự được truyền đi là 1, 2, 3, 4. Nhưng gói tin thứ 4 có độ ưu tiên cao hơn, nên được xếp vào hàng đợi thứ 2 và được truyền đi trước các gói tin 1, 2, 3. Nếu không sử dụng hàng đợi thì gói tin thứ 4 phải đợi cho các gói tin 1, 2, 3 được truyền xong. Do đó, gói tin thứ 4 có thể bị đánh rớt do ảnh hưởng của delay.
- Link Fragmentation and Interleaving: Công cụ này chia nhỏ gói tin lớn ban đầu thành nhiều gói tin nhỏ hơn trước khi gửi.
- Nén: Làm giảm số bits dữ liệu. Các gói tin sẽ được truyền đi nhanh hơn.
- Traffic Shapping: Làm chậm tốc độ truyền gói tin và làm giảm được sự rớt gói tin (trong mạng Frame Relay và mạng ATM).
Các gói tin truyền liên tục trên mạng có độ delay khác nhau sẽ tạo ra jitter. Jitter được định nghĩa như là sự thay đổi trong tỉ lệ xuất hiện của các gói tin khi chúng được truyền giữa hai thiết bị đầu cuối.
Hình 2.3 Ví dụ về Jitter khi truyền các gói tin trên mạng
Theo ví dụ hình 2.3 thì điện thoại 201 sẽ gửi mỗi gói tin với độ delay là 20ms. Nhưng gói tin thứ 3 đến với độ delay là 30ms. Vậy 10ms là độ jitter đã xảy ra. Điều này làm ảnh hưởng đến chất lượng của cuộc gọi, âm thanh hay bị ngắt quảng.
Vì jitter được hình thành từ delay của các gói tin nên công cụ để giảm các vấn đề liên quan đến jitter tương tự như delay.
2.4 Packet Loss
Packet loss (rớt gói tin) là do nhiều nguyên nhân khác nhau mà chủ yếu là do hàng đợi quá đầy. Công cụ QoS không thể giúp tránh rớt gói tin mà chỉ giúp làm giảm số lượng gói tin bị đánh rớt.
Hình 2.4a Ví dụ về packet loss
Theo hình 2.4a, một hàng đợi có kích thước 40 nhận được 50 gói tin liên tục. Khi 40 chỗ trong hàng đợi đã đầy thì 10 gói tin cuối sẽ bị đánh rớt.
Đối với lưu lượng thời gian thực (Voice, Video) chỉ cần một vài gói tin liên tục nhau bị mất thì sẽ dẫn đến mất âm thanh hoàn toàn, hình ảnh không đồng bộ với âm thanh… Ngược lại, lưu lượng dữ liệu (HTTP, FTP…) thì chịu lỗi tốt hơn do sử dụng TCP để phục hồi dữ liệu. Do đó, khi thực hiện QoS cần chú ý đến vấn đề packet loss.
QoS có thể giảm thiểu việc rớt gói tin bằng cách cấu hình cho các gói tin được gửi đi trước khi hàng đợi đầy (theo ví dụ trên thì số gói tin bị đánh rớt sẽ ít hơn 10). Hoặc sử dụng các hàng đợi mở rộng có kích thước lớn.
Tăng bandwidth cũng là một công cụ để ngăn chặn mất gói tin. Nhiều bandwidth hơn cho phép truyền dữ liệu nhanh hơn, các gói tin ra khỏi hàng đợi nhanh hơn, giảm độ dài hàng đợi và sẽ ít bị đầy hơn. Do đó, giảm được hiện tượng cắt đuôi (tail drop – hiện tượng các gói tin bị đánh rớt khi khi hàng đợi đầy) xảy ra.
Ngoài ra, còn có các công cụ phát hiện hiện tượng hàng đợi có dấu hiệu bị đầy như: Random Early Detection (RED), Weighted Random Early Detection (WRED)…