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.
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 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.
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ụ).
Ví dụ tốc độ bandwidth trong mạng Frame Relay
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 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.
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.
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).
Độ 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
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.
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ụ trên 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.
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 như trên, 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ư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.
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.
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.
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ụ).
Ví dụ tốc độ bandwidth trong mạng Frame Relay
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 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 tin trong từng hàng đợi tương ứng. Đồng thời bảo đảm lượng bandwidth tối thiểu cho một hàng đợi cụ thể.
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.
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).
Độ 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
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:
Loại delay |
Định nghĩa | Nơi xảy ra |
Serialization delay (cố định) | Thời gian trễ để đặt tất cả các bit của một đặt frame (đơn vị của gói tin ở tầng Data Link) trên đường truyền vật lý. Tùy thuộc vào kích thước frame và tốc độ đường truyền vật lý. | Ngõ ra của các interface vật lý. Không ảnh hưởng trên đường truyền T3 (45Mbps) hay nhanh hơn. |
Propagation delay (cố định) | Thời gian trễ cần cho 1 bit dữ liệu được truyền giữa hai thiết bị đầu cuối. Thời gian trễ này tùy thuộc vào tốc độ ánh sánh của mô trường truyền và độ dài của đường truyền. | Tại các đường truyền vật lý. Không ảnh hưởng trên đường truyền trong mạng LAN (Local Area Network). |
Queuing delay (thay đổi được) | Thời gian trễ của gói tin trong hàng đợi khi gói tin chờ để được truyền đi hoặc chờ để được chuyển mạch. | Ngõ ra của các interface vật lý. Ít xảy ra ở hàng đợi vào của router mà xảy ra nhiều ở LAN switch. |
Fowarding delay (thay đổi được) | Thời gian trễ khi nhận Frame cho đến khi Frame được vô hàng đợi để truyền. | Tại các thiết bị mạng (router, Lan switch, Frame Relay switch, ATM switch…). |
Shaping delay (thay đổi được) | Làm chậm tốc độ truyền các gói tin để tránh việc mất gói tin giữa các mạng Frame Relay và mạng ATM. | Tại nơi được cấu hình Traffic Shaping. Đặc biệt là tại router khi gửi gói tin tới mạng Frame Relay hoặc mạng ATM. |
Network delay (thay đổi được) | Thời gian trễ được tạo ra khi sử dụng dịch vụ (Frame Relay, ATM…). Ví dụ thời gian trễ của Frame Relay frame khi đi qua mạng Frame Relay. | Bên trong mạng của nhà cung cấp dịch vụ. |
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.
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.
Theo ví dụ trên 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.
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 như trên, 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)…