Các mã phân biệt dịch vụ DSCP

Một phần của tài liệu Đánh giá và so sánh hiệu quả đảm bảo QoS cho truyền thông đa phương tiện của mô hình IntServ và DiffServ (Trang 60)

3. Cấu trúc các chương

4.3.3Các mã phân biệt dịch vụ DSCP

Sáu bit của trường DSCP cung cấp 64 khả năng hoán vị cho giá trị DSCP. RFC 2474 [8] chia 64 giá trị này thành 3 khối được gọi là các pool. Bảng dưới đây chỉ ra các khối của DSCP.

Mã phân biệt dịch vụ DSCP (6 bit)

CU (2 bit) Trường DS (8 bit)

Bảng 4.2: Các mã dịch vụ phân biệt DSCP

Pool Mã DSCP Ứng dụng

1 XXXXX0 Tiêu chuẩn

2 XXXX11 Thử nghiệm/Sử dụng nội bộ

3 XXXX01 Thử nghiệm/Sử dụng nội bộ

Pool 1 gồm các mã DSCP sử dụng cho toàn cầu, pool 2 và pool 3 sử dụng cho mục đích thử nghiệm và nội bộ miền DS riêng. Như vậy số lớp dịch vụ của Pool 1 có thể lên tới 32 và số lớp dịch vụ tối đa của các Pool 2 và Pool 3 là 16. Để hỗ trợ cho các bộ định tuyến truyền thống sử dụng các lớp của trường ToS trong Ipv4. 8 mã DSCP được sử dụng nên DSCP có dạng (XXX000). Dịch vụ cố gắng tối đa có mã phân biệt dịch vụ DSCP là (000000).

4.4 Phân loại và điều hoà lƣu lƣợng

Để thoả thuận các mức dịch vụ cung cấp bởi nhà cung cấp với khách hàng, DiffServ đưa ra khái niệm mức thoả thuận dịch vụ SLA (Service-Level Agreement). Sự thoả thuận này bao gồm cả phạm trù kỹ thuật như điều hoà lưu lượng, dịch vụ có sẵn và cả phạm trù kinh tế như giá cả, các hợp đồng giao kèo.

Một thoả thuận điều hoà lưu lượng TCA (Traffic Conditioning Agreement) là

một tập con của SLA, nó có các quy tắc phân loại và điều hoà lưu lượng nhằm áp dụng cho các luồng lưu lượng vào mạng.

Một thuật ngữ mới đã được giới thiệu để mô tả các thành phần của SLA và TCA được dùng cho DiffServ. Đặc tả mức dịch vụ SLS (Service-Level Specification) mô tả tập tham số và các giá trị của chúng dùng để xác định dịch vụ được yêu cầu cho một luồng lưu lượng bởi một miền DS. Đặc tả điều hoà lưu

lượng TCS (Traffic Conditioning Specification) được sử dụng để mô tả tập tham

Việc phân loại lưu lượng được sử dụng cho các hoạt động phân tách một dòng lưu lượng đơn đi vào thành nhiều dòng đi ra. Việc phân loại dựa vào nội dung của một số phần trong tiêu đề của gói tin. Có hai kiểu phân loại đã được định nghĩa. Bộ phân loại kết hợp hành vi BA (Behaviour Aggregate) phân loại các gói tin chỉ dựa vào trường DS. Bộ phân loại MF (Multi Field) phân loại gói tin dựa vào việc kết hợp một hoặc nhiều trường trong tiêu đề gói tin, ví dụ như địa chỉ nguồn, địa chỉ đích, trường DS, định danh giao thức, cổng nguồn và cổng đích và một số thông tin khác như là giao diện vào.

Hình 4.10: Dịch vụ phân biệt với PHB và TCA

Điều hoà lưu lượng dùng để mô tả các hoạt động đảm bảo lưu lượng vào DS thoả mãn các quy tắc được chỉ ra trong TCS, phù hợp với miền dịch vụ và các điều khoản chính sách. Hình 4.11 chỉ ra các khối điều hoà lưu lượng DiffServ.

Bộ phân loại: phân loại các gói tin trong dòng lưu lượng dựa vào một số

giá trị nội dung trong trường DSCP.

Bộ đo: đo dòng lưu lượng hiện tại dựa vào đặc tả lưu lượng đã thoả thuận

trong TCS. Kết quả đo sẽ xác định liệu mỗi gói tin trong dòng lưu lượng đó nằm trong hay ngoài hồ sơ mạng.

Bộ đánh dấu: thiết lập trường DS của mỗi gói tin với một mã cụ thể, đưa

các gói tin được đánh dấu tới một hành vi tập hợp DS cụ thể.

Bộ định dạng, loại bỏ: tiến hành định dạng dòng lưu lượng cho đúng với

dòng lưu lượng. Nó luôn có bộ đệm với dung lượng xác định, các gói số liệu có thể bị loại nếu xảy ra tình trạng tràn bộ đệm.

Khối điều hoà lưu lượng đã được giới thiệu để thuận tiện hơn trong việc xác định các hàm điều hoà lưu lượng cụ thể. Nó có thể được xem như là một thực thể với một đầu vào và nhiều đầu ra và một tập các tham số điều khiển.

Hình 4.11: Các khối điều hoà lưu lượng DiffServ (TCB)

Một TCB không cần thiết phải có tất cả đầy đủ bốn thành phần. Nó thường được sử dụng trong các nút vào và ra của biên mạng, nhưng nó cũng có thể được sử dụng ở các nút trong miền DS hoặc các nút ngoài miền DS [8].

4.5 Hành vi theo chặng PHB (Per-Hop Behaviors)

Hành vi theo chặng là sự mô tả cách ứng xử chuyển tiếp của một nút DS áp dụng cho một tập ứng xử DS cụ thể. Hành vi theo chặng được giới thiệu trong phần này nhằm sáng tỏ phương pháp xử lí gói trong mô hình DiffServ. Để tạo ra các hành vi chuyển tiếp gói được định nghĩa theo quy tắc ứng xử từng chặng, cần có các cơ cấu kỹ thuật đảm bảo QoS như AQM và bộ lập lịch gói được trình bày trong phần trước. Một PHB có thể không cần phụ thuộc vào nguyên tắc chung mà có thể được phát triển trên kỹ thuật riêng của các nhà cung cấp thiết bị. (adsbygoogle = window.adsbygoogle || []).push({});

Nhóm làm việc về DiffSer của IETF định nghĩa hai loại PHB trong RFC 2598 [8], RFC 3246 và RFC 2597 [8]: Chuyển tiếp nhanh EF (Expedited Forwarding) và chuyển tiếp bảo đảm AF (Assured Forwarding).

Bộ phân loại Bộ đánh dấu dạng, loại bỏ Bộ định Bộ đo

Loại bỏ Định dạng

4.5.1 Chuyển tiếp nhanh EF PHB.

Về cơ bản, EF PHB đảm bảo tính năng về tốc độ hơn là độ tin cậy. Nó cung cấp các dịch vụ có khả năng tổn hao thấp, trễ thấp, thăng giáng trễ thấp và đảm bảo băng thông. Vì trễ và thăng giáng trễ gây nên bởi thời gian mà gói tin phải nằm đợi trong bộ đệm và hàng đợi nên một bộ định tuyến EF phải đảm bảo rằng lưu lượng EF được đưa đến những bộ đệm có dung lượng nhỏ. Tốc độ đầu ra của bộ định tuyến này phải bằng hoặc lớn hơn tốc độ vào. Khi xảy ra hiện tượng quá tải, nút biên DS không cho phép luồng lưu lượng dạng này đi vào trong miền đó vì nó sẽ là nguyên nhân gây tắc nghẽn tại bộ định tuyến trong miền DS. Vấn đề này được điều chỉnh bởi xác định mức dịch vụ SLA và xác định lưu lượng truyền có điều kiện.

Hình 4.12:Xử lý chuyển tiếp nhanh EF PHB.

Chuyển tiếp EF PHB khả thi nếu băng thông đầu ra và kích thước bộ nhớ đệm đủ để các luồng lưu lượng ra với tốc độ phục vụ . Tốc độ phục vụ  luôn lớn hơn tốc độ đầu vào  tại các bộ đệm EF. Các luồng không phải EF ở đây là các luồng dịch vụ cố gắng tối đa. Với kỹ thuật lập lịch ưu tiên như đã giới thiệu trong chương trước, chuyển tiếp EF đảm bảo được tính ưu tiên cho các luồng lưu lượng theo yêu cầu.

Phân loại gói theo BA Lập lịch Cổng đầu ra . . . Bộ định tuyến IP Hàng đợi PHB Gói tin đến DSCP 3 DSCP 2 DSCP 1 Giao diện người dùng mạng SLA   EF EF Không EF  

4.5.2 Chuyển tiếp đảm bảo AF PHB

Chuyển tiếp bảo đảm AF PHB gần tương đương với dịch vụ tải có điều khiển trong mô hình IntServ. Có nhiều mức chuyển tiếp bảo đảm khác nhau cho các gói tin IP qua một miền DS. Ví dụ, các nhóm PHB có thể được sử dụng tại nhiều mức độ khác nhau của quan hệ tụ hợp (Telnet, SMPT, và FTP có thể được gán mức độ cao hơn so với HTTP). Đặc điểm của AF PHB là phân phối dữ liệu đảm bảo với khả năng mất gói thấp. Đó là điều kiện tốt nhất khi sử dụng các giao thức không thực hiện xử lý sửa lỗi hoặc không có giải pháp truyền lại gói.

AF PHB bao gồm 4 lớp chuyển tiếp và mỗi lớp chuyển tiếp có 3 mức ưu tiên loại bỏ gói tin, mỗi lớp được gán một băng thông và khoảng nhớ đệm xác định. Lớp A có thể có bộ nhớ đệm lớn hơn nhưng băng thông nhỏ và lớp D có thể có bộ nhớ đệm nhỏ nhưng băng thông lớn hơn. Nếu một gói phải bị loại bỏ, bộ định tuyến có cách nhận biết gói nào bị loại bỏ đầu tiên. Nếu bộ nhớ đệm đầy, thì quá trình loại bỏ gói sẽ bắt đầu theo trật tự loại bỏ theo mức ưu tiên. Một nhóm PHB AF là Afxy trong đó x là nhóm và y là mức thứ tự loại bỏ. Các phân loại AF được thể hiện trên bảng dưới đây.

Bảng 4.3: Chi tiết phân lớp đảm bảo AF PHB

Mức ƣu tiên Lớp 1 Lớp 2 Lớp 3 Lớp4 Thấp (AF11) 001010 (AF21) 010010 (AF31) 011010 (AF41) 100010 Trung bình (AF12) 001100 (AF22) 010100 (AF32) 011100 (AF42) 100100 Cao (AF13) 001110 (AF23) 010110 (AF33) 011110 (AF43) 100110

CHƢƠNG 5. THỰC NGHIỆM MÔ PHỎNG

5.1 Hệ mô phỏng NS2

5.1.1 Giới thiệu

NS (Network Simulator) là một phần mềm mô phỏng mạng, được phát triển bởi dự án VINT (Virtual InterNetwork Testbed) của Bộ Quốc phòng Mỹ. VINT đã chọn bộ mô phỏng NS, do nhóm nghiên cứu ở phòng thí nghiệm quốc gia Lawrence Berkeley, Hoa Kỳ, xây dựng và phát triển. Mục đích của dự án này là xây dựng một bộ mô phỏng công cộng với một tập rất lớn các mô hình để nghiên cứu về mạng, cung cấp cho các nhà nghiên cứu nhiều khả năng mới trong thực nghiệm, giúp các nhà nghiên cứu đánh giá được các giao thức trong các điều kiện khác nhau. Bộ mô phỏng được vận hành theo cơ chế sử dụng các sự kiện rời rạc, có thứ tự. Người sử dụng có thể thay đổi cấu hình và mở rộng mô hình mạng rất dễ dàng bằng cách lập trình thêm vào một số mô-đun chương trình. Hiện nay NS có nhiều phiên bản, phiên bản sử dụng để mô phỏng trong luận văn này là NS - 2.33.

Một công cụ khác được phát hành cùng với NS là Network Animator (NAM). Công cụ này cung cấp hình ảnh đồ họa về tô-pô mạng, sự chuyển động của các nút trong mạng không dây và truyền thông giữa chúng. Đây là một công cụ rất có ích để tìm lỗi trong chương trình mô phỏng mà người sử dụng tạo ra.

5.1.2 Kiến trúc của NS2

NS là bộ mô phỏng hướng sự kiện viết bằng C++, với một trình thông dịch OTcl (Object Oriented Tool Command Language) giao tiếp với người sử dụng. Để giảm thời gian xử lý gói tin và thời gian xử lý sự kiện, bộ lập lịch sự kiện và các đối tượng mạng cơ bản trong đường truyền dữ liệu được viết và dịch bằng C++. Những đối tượng được biên dịch này sẽ được kết nối tới bộ thông dịch OTcl qua trình liên kết OTcl. Trình liên kết này sẽ tạo ra các đối tượng OTcl tương ứng với mỗi đối tượng trong C++. Các hàm và biến trong đối tượng C++

chuyển thành các hàm và biến trong đối tượng OTcl tương ứng. Do đó, việc điều khiển các đối tượng C++ có thể được thực hiện trong ngôn ngữ mô phỏng OTcl. Các lớp trong C++ được tổ chức dưới dạng cây phân cấp, và tạo ra tương ứng trong OTcl. Hai cây phân cấp này có mối quan hệ chặt chẽ với nhau, với một lớp trong cây phân cấp thông dịch OTcl thì cũng có một lớp tương ứng trong cây phân cấp biên dịch. Đỉnh của cây phân cấp OTcl là TclObject. Người sử dụng tạo ra những đối tượng mô phỏng mới thông qua trình thông dịch OTcl, những đối tượng này được thiết lập tự động thông qua các phương thức được định nghĩa trong lớp TclClass. Chúng ta có thể thay đổi các tham số cho các đối tượng mô phỏng thông qua các phương thức được định nghĩa trong lớp TclObject.

Hình 5.1: Sự tương đồng giữa C++ và OTcl

NS sử dụng hai ngôn ngữ là vì hai lý do. Thứ nhất, các giao thức mô phỏng yêu cầu một ngôn ngữ lập trình hệ thống có thể làm việc hiệu quả với các thao tác trên byte, các header của gói tin và cài đặt các giải thuật thực hiện trên các tệp dữ liệu lớn. Với nhiệm vụ này thì tốc độ xử lý là quan trọng, còn thời gian thay đổi chương trình và thực hiện mô phỏng ít quan trọng hơn. Thứ hai, phần lớn công việc nghiên cứu về mạng là thay đổi các tham số mô phỏng, thực hiện cấu hình mạng, hoặc thăm dò nhanh một số trường hợp được cho là có khả năng. Trong trường hợp này, thời gian lặp đi lặp lại quan trọng hơn. C++ chạy nhanh hơn nhưng khi thay đổi thì chậm hơn, nên C++ thích hợp cho việc cài đặt chi tiết các giao thức và các đối tượng mạng. OTcl chạy chậm hơn nhưng có thể thay đổi rất nhanh, thích hợp cho việc cấu hình mô phỏng.

Quy trình thực hiện mô phỏng từ góc nhìn người dùng:

Hình 5.2: Tổng quan về NS từ góc nhìn của người sử dụng

Từ góc nhìn của người dùng, NS là bộ thông dịch script OTcl chứa bộ lập lịch các sự kiện mô phỏng, thư viện đối tượng các thành phần mạng, thư viện mô- đun thiết lập mạng. Để mô phỏng với NS, người nghiên cứu phải viết kịch bản bằng ngôn ngữ OTcl được gọi là chương trình mô phỏng hay kịch bản mô phỏng. Chương trình mô phỏng sẽ khởi tạo bộ lập lịch các sự kiện, thiết lập cấu hình mạng mô phỏng sử dụng các đối tượng mạng và các hàm thiết lập mạng trong thư viện, lập lịch cho các nguồn lưu lượng bắt đầu và kết thúc truyền tin…

Khi mô phỏng kết thúc, NS sinh ra một hay nhiều tệp tin vết chứa các thông tin chi tiết về các sự kiện xảy ra trong mạng mô phỏng dưới dạng văn bản. Tệp vết có hai loại, tệp vết có tên mở rộng .tr và tệp vết có tên mở rộng .nam. Tệp vết có tên mở rộng .tr chứa các thông tin chi tiết về những gì xảy ra và xảy ra khi nào. Có thể thực hiện rất nhiều phân tích khác nhau dựa vào file này. Tệp vết có đuôi là .nam ghi lại các sự kiện trong mạng và các thông tin liên quan đến sự kiện, dùng cho chương trình NAM để hiển thị dưới dạng đồ hoạ topo mạng và sự hoạt động của mạng.

Như đã nói trước đây, bộ mô phỏng NS-2 là mã nguồn mở. Điều này có nghĩa là trong trường hợp cần thiết, muốn tăng lượng thông tin trong tệp vết hoàn toàn có thể sửa đổi mã nguồn của NS-2 để thực hiện điều này.

Để phân tích, đánh giá được các tham số hiệu suất cần thiết từ các thông tin mà NS kết xuất ra tệp tin vết, người nghiên cứu thường phải dùng thêm một số công cụ dùng để vẽ đồ thị (như XGRAPH, gnuplot,...) và công cụ để tổng hợp các dữ liệu trong các tệp tin vết. Tất nhiên, người nghiên cứu hoàn toàn có thể tự viết lấy các đoạn mã (script) hoặc chương trình để phân tích kết quả theo yêu cầu của mình. Các ngôn ngữ Awk, PERL, hoặc Tcl thường được sử dụng để làm việc này. Nhiều nhà nghiên cứu đã chia sẻ một số kịch bản mô phỏng cũng như kịch bản xử lý kết quả tệp tin vết cho cộng đồng người sử dụng NS. Đây cũng chính là lợi thế cho người mới nghiên cứu mô phỏng mạng sử dụng bộ mô phỏng NS.

5.1.3 Các nguồn sinh lƣu lƣợng trong NS-2 (adsbygoogle = window.adsbygoogle || []).push({});

Trong mô phỏng NS, lưu lượng được tạo ra bởi các nguồn sinh lưu lượng

bằng nhiều cách khác nhau, như sử dụng các mô hình toán học hoặc ghi lại các sự kiện và thời gian xảy ra các sự kiện của các hệ thống thực rồi đưa vào mô phỏng. Mỗi nguồn phát sinh lưu lượng thường chỉ thích hợp cho việc mô phỏng một vài loại ứng dụng nhất định. Vấn đề của người thực hiện mô phỏng là phải chọn nguồn lưu lượng cho thích hợp với ứng dụng được nghiên cứu. Để làm được điều này, người thực hiện mô phỏng cần hiểu rõ các đặc tính của các nguồn sinh lưu lượng cũng như các đặc tính của tải thực của các hệ thống truyền thông.

Hiện tại, NS hỗ trợ bốn loại nguồn phát sinh lưu lượng [14]:

1. EXPOO_Traffic: tạo lưu lượng dựa vào một phân phối On/Off theo hàm

Một phần của tài liệu Đánh giá và so sánh hiệu quả đảm bảo QoS cho truyền thông đa phương tiện của mô hình IntServ và DiffServ (Trang 60)