Showing posts with label queueing. Show all posts
Showing posts with label queueing. Show all posts

Thursday, June 5, 2014

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 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.
a. Các lớp dịch vụ
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”.
 b. 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.
c. 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.                                                                    

- 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ụ.


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.
12:26 AMNo comments

Monday, June 2, 2014

Khái niệm về băng thông và các độ trễ gói tin

1.       Băng thông



Băng thông là số lượng bit trong một giây có thể gởi trên đường truyền. Băng thông thường bằng với tốc độ của đường truyền vật lý hay xung clock của thiết bị kết nối đó. Trong vài trường hợp nó nhỏ hơn tốc độ thực sự của đường liên kết.
            Ví dụ trên là một mạng trống gồm client và server đầu cuối. Giữa các con router sử dụng các băng thông khác nhau. Băng thông cao nhất cả đoạn đường từ server đến client là bằng đường dẫn có băng thông thấp nhất  (trong ví dụ này là 256kbps).
            Đó là cách tính băng thông của một đoạn đường, tuy nhiên, còn nhiều vấn đề phức tạp trong nhiều trường hợp mà có nhiều dòng lưu lượng dữ liệu đang được vận chuyển trong mạng.

2.       End-to-end delay


  • End-to-end delay bằng tổng tất cả propagation, processing và queuing delay có trên đường dẫn.
  • Propagation (serialization): Sự chậm trễ truyền tải dữ liệu trên phương tiện truyền dẫn, hầu hết xảy ra ở các phần, chỉ phụ thuộc vào băng thông.
  • Processing, queuing delay: Xảy ra trong Router.

Ping ( ICMP ) có thể sử dụng để đánh giá thời gian đi của gói tin IP trong mạng. Một vài công cụ khác cũng có thể đánh giá thời gian đáp ứng của mạng.


3.     Processing, Queuing và Propagation delay



Processing Delay là thời gian để một router đặt một gói tin vào cổng vào và đẩy gói tin đó ra hàng đợi của cổng ra router. Thời gian xử lý phụ thuộc vào nhiều vấn đề như:
  •          Tốc độ xử lý CPU.
  •         Tài nguyên CPU
  •          Chế độ chuyển đổi IP.
  •          Cấu trúc router.

-         Cấu hình các tính năng ở cả hai cổng vào và ra của router.

Queuing Delay là thời gian gói tin nằm trong hàng đợi cổng ra của một router. Nó phụ thuộc vào số lượng và kích thước của các gói tin đã có trong hàng đợi, và băng thông của cổng. Nó cũng  phụ thuộc vào cơ chế hàng đợi.
Propagation Delay ( Serialization Delay) là thời gian để vận chuyển gói tin. Nó thường chỉ phụ thuộc vào băng thông của cổng. Công nghệ CSMA/CD có thể làm chậm trễ thêm một chút vì khả năng xung đột các gói tin khi một cổng sắp bị nghẽn.

4.       Mất gói tin ( Packet loss)


          Mất gói tin thông thường xảy ra khi các router hết bộ nhớ đệm ở hàng đợi cổng ra. Hình trên cho thấy ở hàng đợi cổng ra đã đầy, dẫn tới việc gói tin mới tới sẽ bị đánh rớt. Được tạm gọi đơn giản là “ đánh rớt gói tin cổng ra (output drop)” hoặc “đánh rớt gói tin ở đuôi (tail-drop)” ( tức là gói tin bị đánh rớt ở đuôi của hàng đợi).
Router cũng đánh rớt các gói tin với nhiều lý do khác, ví dụ như:
  •          Hàng đợi vào – CPU bị tắc nghẽn và không thể xử lý các gói tin ( hàng đợi cổng vào đầy).
  •          Từ chối – bộ nhớ đệm của router đầy.
  •          Tràn – CPU bị tắc nghẽn và không thể chỉ định bộ nhớ đệm cho gói tin mới.
  •         Lỗi khung – lỗi phần cứng trong khung.



       Một vài phương án để giải quyết các vấn đề trên về băng thông:
-                      Cách tốt nhất để cải thiện khả năng truyền dẫn cho tất cả các ứng dụng và người dùng là làm tăng diện tích băng thông. Giải pháp này nghe có vẻ đơn giản nhưng thực tế thì nó mang về cái giá tiền rất cao và thời gian thực hiện nó.

-                       Một sự lựa chọn khác đó chính là phân loại lưu lượng truy cập vào QoS và độ ưu tiên của nó theo tầm quan trọng của dữ liệu. Có nhiều cơ chế có sẵn trong Cisco IOS cung cấp đảm bảo băng thông, ví dụ:

o   Priority Queuing.
o   Custom Queuing.
o   Modified Deficit Round Robin.
o   IP RTP prioritzation.
o   Class-based Weighted Fair Queuing.
o   Class-based Low-latency Queuing.

-                       Tối ưu hoá việc sử dụng đường dẫn bằng cách nén gói tin để làm tăng băng thông đường dẫn. Mặt khác, nén cũng làm tăng độ trễ do tính phức tạp trong giải thuật nén. Sử dụng phần cứng để nén có thể làm tăng tốc độ nén một gói tin. Stacker và Predictor là 2 giải thuật nén có sẵn trong Cisco IOS.

-         Một phương pháp hiệu quả khác đó là nén tiêu đề. Cơ chế này đặc biệt hiệu quả trong mạng, nơi vận chuyển nhiều gói tin với lượng dữ liệu nhỏ. Ví dụ như nén tiêu đề TCP và RTP.
Dưới đây là bảng yêu cầu cho các ứng dụng của doanh nghiệp:


Khi QoS được xem xét, các ứng dụng quan trọng và yêu cầu về QoS phải được xác định. Hình trên minh hoạ về các loại ứng dụng khác nhau với yêu cầu QoS tương ứng. (throughput, bandwidth, delay, jitter and loss).
Phương pháp để cung cấp QoS tới các ứng dụng thường được sử dụng trong các mạng doanh nghiệp nơi có nhiều ứng dụng quan trọng (Bussiness-critical).
Hầu hết các ứng dụng có thể được phân loại dựa trên số cổng trên TCP hoặc UDP. Một vài ứng dụng sử dụng cổng động (dynamic port), nó làm khó khăn trong việc phân loại. Cisco IOS hỗ trợ Network-based Application Recognition ( NBAR), có thể phân loại cho các ứng dụng như vậy.

Bảng minh hoạ từng cấp độ trong QoS
Nhà cung cấp dịch vụ, hay nói cách khác, là cung cấp kết nối tới người dùng. Họ thường không quan tâm tới các ứng dụng mà người dùng đang sử dụng. Tuy nhiên, họ cung cấp các cấp độ khác nhau của dịch vụ cho người dùng. Một số người dùng sẵn sàng trả nhiều hơn cho kết nối của họ tới Internet, và nhận được một số đảm bảo. Bảng trên minh hoạ từng cấp độ mà nhà cung cấp dịch vụ có thể đáp ứng tới người dùng của họ.
Trong lịch sử Internet, có thể chia QoS thành 3 mô hình:
  •          Best-effort: Internet được thiết kế cho best-effort, không đảm bảo việc vận chuyển gói tin. Ngày nay, mô hình best-effort vẫn chiếm ưu thế trong Internet.
  •          Mô hình tích hợp dịch vụ ( Integrated Services model): Được ra đời nhằm bổ sung vào best-effort bằng cách cài đặt băng thông cho ứng dụng, những ứng dụng được yêu cầu về băng thông và đảm bảo độ trễ. Mô hình tích hợp dịch vụ này cho ứng dụng báo hiệu yêu cầu khi vào mạng. Phương thức dành tài nguyên ( Resource Reservation Protocol – RSVP) được sử dụng để báo hiệu yêu cầu QoS tới mạng.
  •          Mô hình phân biệt dịch vụ ( Defferentiated Services model): Được thêm vào để cung cấp khả năng mở rộng hơn trong việc cung cấp QoS tới các gói tin IP. Sự khác biệt chính là mạng nhận ra các gói tin ( không yêu cầu về tín hiệu) và cung cấp dịch vụ thích hợp tới chúng.


Ngày này, mạng IP có thể sử dụng 3 mô hình trên trong cùng một thời điểm.
1:13 AM1 comment