Điều chỉnh tiết lưu băng thông qua QoS (Phần 1)
Điều chỉnh tiết lưu băng thông qua QoS (Phần 2)
Điều chỉnh tiết lưu băng thông qua QoS (Phần 3)
Brien M. Posey
Cho đến phần này, chúng tôi đã giới thiệu cho các bạn về QoS và cách nó có thể được sử dụng để điều tiết luồng lưu lượng trong một mạng nào đó như thế nào. Mỗi một phần trong loạt bài này đều đã giới thiệu đến QoS từ phối cảnh của lưu lượng nhạy cảm thời gian, chẳng hạn như lưu lượng video và giọng nói trên một mạng chất lượng cao. Trong phần này chúng tôi muốn tập trung vào các cách trong đó QoS được sử dụng để điều tiết lưu lượng trên các liên kết tốc độ thấp hoặc không có khả năng tin cậy.
QoS và Modem
Trong thời đại băng thông phổ dụng sẵn có ngày nay, đề cập đến các modem dường như là một điều kỳ lạ. Mặc dù vậy, vẫn có rất nhiều doanh nghiệp nhỏ và người dùng gia đình sử dụng các modem để kết nối Internet. Ví dụ như gần đây, chúng tôi còn thấy một số tập đoàn lớn sử dụng modem để kết nối với các văn phòng vệ tinh được đặt tại vùng ở xa, nơi không có sự bao phủ băng thông.
Rõ ràng vấn đề lớn nhất với việc sử dụng các modem là số lượng băng tần hạn chế mà chúng cung cấp. Kém rõ ràng hơn nhưng cũng khá quan trọng đó là người dùng không thay đổi hành vi online của họ khi sử dụng một liên kết modem. Chúng ta có thể quả quyết rằng, một người dùng nào đó có thể sẽ không download một file lớn khi kết nối với Internet thông qua modem, nhưng phần còn lại trong số đó thường duy thực hiện download các file lớn như vậy khi họ sử dụng kết nối băng thông rộng.
Một cách điển hình, người dùng không hề nghĩ gì về việc mở Microsoft Outlook liên tục cùng với đó là lướt Internet trong khi họ download một file nào đó ở chế độ background. Một số người dùng thậm chí có thể mở kèm cả IM (instant messaging). Vấn đề gây ra đối với hành vi này là mỗi một ứng dụng hoặc nhiệm vụ này đều tiêu tốn đến một số lượng đáng kể băng tần Internet.
Để xem QoS có thể giúp ích như thế nào, chúng ta hãy xem xét những gì xảy ra trong điều kiện thông thường khi QoS không được sử dụng. Thông thường, ứng dụng đầu tiên truy cập Internet đều được chấp nhận sử dụng độc quyền kết nối. Điều này không có nghĩa là không có ứng dụng nào khác có thể sử dụng kết nối Internet nữa mà đúng hơn là Windows thừa nhận rằng không ứng dụng nào khác sẽ sử dụng kết nối.
Khi kết nối đã được thiết lập, Windows sẽ bắt đầu việc điều chỉnh động kích thước cửa sổ nhận TCP. Kích thước cửa sổ nhận TCP dựa vào số lượng dữ liệu có thể được gửi trước khi đợi xác nhận rằng dữ liệu đã được nhận. Kích thước cửa sổ này càng lớn thì càng nhiều gói dữ liệu một người gửi có thể truyền tải trước khi phải đợi tín hiệu phúc đáp báo đã nhận thành công.
Kích thước cửa sổ nhận này phải được điều chỉnh một cách cẩn thận. Nếu cửa sổ nhận TCP được thiết lập quá nhỏ thì hiệu quả sẽ bị ảnh hưởng xấu vì TCP sẽ yêu cầu các tín hiệu phúc đáp thường xuyên xác nhận gửi thành công. Nếu kích thước cửa sổ lại quá lớn thì máy tính sẽ phải truyền đi rất nhiều dữ liệu trước khi biết rằng có vấn đề nào đó xuất hiện trong khi truyền. Điều này cũng gây ra phải truyền lại một số lượng lớn dữ liệu, cũng ảnh hưởng xấu đến hiệu quả.
Khi ứng dụng nào đó bắt đầu sử dụng một kết nốt dial-up, Windows sẽ điều chỉnh động đối với kích thước cửa sổ nhận TCP khi các gói đã được gửi. Mục đích của Windows ở đây là đạt được một trạng thái ổn định trong đó kích thước cửa sổ nhận TCP được thiết lập một cách tối ưu.
Lúc này, hãy giả dụ rằng một người dùng nào đó mở một ứng dụng thứ hai cũng yêu cầu đến kết nối Internet. Khi thực hiện điều đó, Windows sẽ khởi tạo một thuật toán có trách nhiệm điều chỉnh kích thước cửa sổ nhận TCP để đạt giá trị tối ưu. Tuy nhiên vấn đề ở đây là TCP đang được sử dụng bởi ứng dụng đã chạy sẽ ảnh hưởng đến ứng dụng thứ hai ở hai vấn đề. Đầu tiên, ứng dụng thứ hai sẽ mất nhiều thời gian hơn để đạt được kích thước cửa sổ nhận TCP tối ưu. Thứ hai là tốc độ truyền tải dữ liệu của ứng dụng thứ hai sẽ luôn chậm hơn so với ứng dụng đã được mở trước đó.
Tuy nhiên bạn có thể khắc phục vấn đề này trong Windows XP và Windows Server 2003 bằng cách kích hoạt bộ lịch trình gói QoS (QOS packet scheduler). Khi thực hiện điều đó, QOS packet scheduler sẽ tự động sử dụng Deficit Round Robin để Windows có thể phát hiện ra liên kết chậm.
Deficit Round Robin làm việc bằng cách tạo động một hàng đợi phân biệt cho mỗi ứng dụng có yêu cầu đến kết nối Internet. Windows sẽ bảo trợ cho các hàng đợi này theo kiểu Robin vòng, cách thức tạo cải thiện đáng kể hiệu quả của tất cả các ứng dụng cần truy cập Internet. Trong trường hợp này, bạn sẽ phân vân rằng tại sao Deficit Round Robin cũng có trong Windows 2000 Server nhưng lại không được kích hoạt một cách tự động.
Chia sẻ kết nối Internet
Trong Windows XP và Windows Server 2003, QoS cũng hỗ trợ chia sẻ kết nối Internet. Có lẽ các bạn đều biết, chia sẻ kết nối Internet là một cách thức đơn giản trong việc tạo một bộ định tuyến dựa trên NAT. Máy tính được kết nối vật lý sẽ đóng vai trò như một router và máy chủ DHCP cho các máy tính khác trên mạng, vì thế cho phép chúng truy cập Internet thông qua host đó. Kết nối Internet chia sẻ điển hình được sử dụng chỉ trong các mạng nhỏ, ngang hàng, các mạng này không có cơ sở hạ tầng domain một cách đúng nghĩa. Các mạng lớn hơn thường sử dụng router phần cứng hoặc các dịch vụ định tuyến hay truy cập từ xa.
Trong phần trên, chúng tôi đã giải thích về cách Windows điều chỉnh động kích thước cửa sổ nhận TCP như thế nào. Sự điều chỉnh động này đôi khi có thể đem lại hiệu quả ngược như mong đợi khi việc chia sẻ kết nối Internet được sử dụng. Lý do cho vấn đề này là kết nối giữa các máy tính trong cùng mạng nội bộ đều rất nhanh có thể lên đến 100 Mb Ethernet.
Máy khách cần truyền thông trên Internet, nhưng nó không thể thực hiện việc truyền thông một cách trực tiếp, mà thay vào đó là sử dụng kết nối Internet chia sẻ cấu hình như một sự ủy quyền. Khi Windows tính toán kích thước cửa sổ nhận TCP tối ưu, nó chỉ dựa vào tốc độ liên kết giữa máy nội bộ và máy chia sẻ kết nối Internet. Sự khác biệt giữa số lượng dữ liệu mà máy nội bộ có thể nhận từ Internet và số lượng dữ liệu máy có thể nhận dựa vào tốc độ kết nối với máy cấu hình chia sẻ kết nối Internet có thể gây ra nhiều vấn đề. Đặc biệt, có nhiều sự khác nhau trong tốc độ liên kết có thể làm cho dữ liệu dồn ứ trong hàng đợi đã kết nối với liên kết chậm.
Đây chính là chỗ QoS thể hiện được vai trò của nó. Nếu bạn cài đặt QoS packet scheduler trên host chia sẻ kết nối Internet thì host này sẽ ghi đè lên kích thước cửa sổ nhận TCP. Điều này có nghĩa rằng host chia sẻ kết nối Internet sẽ thiết lập trên host nội bộ một kích thước cửa sổ nhận TCP bằng với kích thước nếu nó kết nối trực tiếp với Internet. Điều này có thể làm giảm bớt các vấn đề bị gây ra bởi tốc độ mạng không hợp kiểu.
Kết luận
Trong phần này, chúng tôi đã giới thiệu cho các bạn về QoS và cách nó được sử dụng như thế nào để điều tiết luồng lưu lượng trên các kiểu liên kết mạng khác nhau. Như những gì trong bài các bạn đã được giới thiệu, QoS có thể làm cho hiệu quả kết nối mạng được cải thiện nhiều nhờ lợi dụng thời gian tạm lắng của mạng, trong khi đó vẫn bảo đảm cung cấp nhanh cho luồng dữ liệu có mức mức ưu tiên cao.