Chương trình mô phỏng/tqt - pdf 16

Tải miễn phí

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

CHƯƠNG 4: MÔ PHỎNG.
4.1 Mục đích của việc mô phỏng. Mạng OBS có nhiều ưu điểm đáng được quan tâm tuy nhiên mạng OBS chưa thật sự được triển khai trong thực tế do đó cần thực hiện việc mô phỏng để đánh giá những chất lượng của mạng OBS. Mục tiêu của đề tài này là tìm hiểu chất lượng dịch vụ (QoS) dựa trên những thông số được giả định trước. Mô phỏng trong luận văn cũng so sánh và đánh giá chất lượng dịch vụ về xác suất mất gói trong điều kiện tải đưa vào mạng khác nhau. Phần mô phỏng sẽ thực hiện việc mô phỏng một mạng chuyển mạch quang chùm OBS với các trường hợp được đề cập trong chương III với các vấn đề chính như sau: QoS dựa trên việc đóng khối burst, QoS dựa trên việc xếp lịch kênh truyền, QoS dựa trên việc báo hiệu, QoS dựa trên việc giải quyết xung đột. Mô phỏng được thực hiện bằng phần mềm mô phỏng OBS4NS chạy trên nền của phần mềm mô phỏng mạng NS-2. Mô phỏng được thực hiện để tính toán xác suất mất gói và độ trễ với các tải lưu lượng khác nhau. Kết quả mô phỏng sẽ được đưa ra dưới dạng đồ thị. 4.2 Mô hình mạng và các thông số. Mô hình mạng mô phỏng được dựa theo mô hình mạng NSFNET (National Science Foundation Network) của Hoa Kỳ với 14 node mạng. Việc sử dụng mô hình này do mạng OBS chưa thực sự được triển khai trong thực tế, hơn nữa mạng NSFNET được sử dụng khá phổ biến trong các bài nghiên cứu về mạng OBS của các tác giả. Việc lựa chọn một mạng chuẩn được các nhà nghiên cứu đề xuất để so sánh kết quả là cần thiết.

- 64 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.1 Mô hình mạng NSFNET Sau đây là các thông số chính trong trong mô phỏng: Các node mạng đều là các node kết hợp. Liên kết là song hướng với mỗi hướng có hai kênh điều khiển và hai kênh dữ liệu. Do đó một liên kết có 8 bước sóng quang. Các gói đến có kích thước cố định là 1250 byte. Tốc độ truyền dẫn của liên kết là 10Gbps. Thời gian chuyển mạch là 10 µs . Công nghệ chuyển mạch toàn quang có thể dựa trên hai công nghệ là công nghệ chuyển mạch gương với thời gian chuyển mạch hàng ms và công nghệ chuyển mạch bán dẫn với thời gian chuyển mạch vài µs . Trường hợp mô phỏng này tác giả giả sử rằng chuyển mạch toàn quang đều là các chuyển mạch bán dẫn. Kích thước gói điều khiển là cố định và bằng 64byte. Thời gian xử lý gói điều khiển là 2.5 µs

4.3 Phần mềm mô phỏng mạng ns-2 4.3.1 Giới thiệu [17,18,5] Phần mềm NS-2 là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng được phát triển tại UC Berkely, viết bằng ngôn ngữ C++

- 65 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

và Otcl. Ns-2 là phần mềm mô phỏng mã nguồn mở hữu ích cho việc nghiên cứu mạng diện rộng (WAN) và mạng local (LAN). Bốn lợi ích lớn nhất của Ns-2 là: Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể thực thi được trong thực tế Khả năng mô phỏng nhiều loại mạng khác nhau 4.3.2 Kiến trúc của NS-2 NS thực thi các giao thức mạng như Giao thức điều khiển truyền tải (TCP) và Giao thức gói người dùng (UDP); các dịch vụ nguồn lưu lượng như Giao thức truyền tập tin (FTP), Telnet, Web, Tốc độ bit cố định (CBR) và Tốc độ bit thay đổi (VBR) ; các kỹ thuật quản lý hàng đợi như Vào trước Ra trước (Drop Tail), Dò sớm ngẫu nhiễn (RED) và CBQ; các thuật toán định tuyến như Dijkstra… NS cũng thực thi multicasting và vài giao thức lớp Điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN.

Hình 4.2 Tổng quan về NS dưới góc độ người dùng OTcl Script Simulation Program OTcl NS Simulation Library Event Scheduler Objects Network Component Objects Kịch bản OTcl Chương trình Mô phòng Bộ biên dịch Tcl mở rộng hướng đối tượng Thư viện Mô phỏng NS Các đối tượng Bộ lập lịch Sự kiện Các đối tượng Thành phần Mạng

- 66 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Network Setup Helping Modules Các mô đun Trợ giúp Thiết lập Mạng Plumbling Modules Simulation Results Analysis NAM Network Animator Các mô đun Plumbling Các kết quả Mô phỏng Phân tích Minh họa Mạng NAM

Trong hình trên, NS là Bộ biên dịch Tcl mở rộng hướng đối tượng; bao gồm các đối tượng Bộ lập lịch Sự kiện, các đối tượng Thành phần Mạng và các mô đun Trợ giúp Thiết lập Mạng (hay các mô đun Plumbing). Để sử dụng NS-2, user lập trình bằng ngôn ngữ kịch bản OTcl. User có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tượng mới trong OTcl. Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc. Kịch bản OTcl có thể thực hiện những việc sau: • Khởi tạo Bộ lập lịch Sự kiện • Thiết lập Mô hình mạng dùng các đối tượng thành phần Mạng • Báo cho nguồn lưu lượng khi nào bắt đầu truyền và ngưng truyền gói trong bộ lập lịch sự kiện Thuật ngữ plumbing được dùng để chỉ việc thiết lập mạng, vì thiết lập một mạng nghĩa là xây dựng các đường dữ liệu giữa các đối tượng mạng bằng cách thiết lập con trỏ “neighbour” cho một đối tượng để chỉ đến địa chỉ của đối tượng tương ứng. Module plumbing OTcl trong thực tế thực hiện việc trên rất đơn giản. Plumbing làm nên sức mạnh của NS. Thành phần lớn khác của NS bên cạnh các đối tượng Thành phần Mạng là Bộ lập lịch Sự kiện. Bộ lập lịch Sự kiện trong NS-2 thực hiện những việc sau: • Tổ chức Bộ định thời Mô phỏng • Huỷ các sự kiện trong hàng đợi sự kiện • Triệu gọi các Thành phần Mạng trong mô phỏng Phụ thuộc vào mục đích của user đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể được lưu trữ như file trace. Định dạng file trace sẽ được tải vào trong các ứng dụng khác để thực hiện phân tích:

- 67 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

File nam trace (file.nam) được dùng cho công cụ Minh họa mạng NAM File Trace (file.tr) được dùng cho công cụ Lần vết và Giám sát Mô phỏng XGRAPH hay TRACEGRAPH

Hình 4.3Luồng các sự kiện cho file Tcl chạy trong NS NAM Visual Simulation Tracing and Monitoring Simulation C++ và OTcl Hình sau biểu diễn kiến trúc chung của NS. User có thể tưởng tượng mình đang đứng ở góc trái dưới, thiết kế và chạy các mô phỏng trong Tcl. Tcl dùng các đối tượng mô phỏng trong OTcl. Các đối tượng Bộ lập lịch Sự kiện và hầu hết các đối tượng Thành phần Mạng thực thi bằng C++ và sẵn có cho OTcl qua một liên kết OTcl. Liên kết OTcl này được thực thi dùng TclCL. Tất cả đã làm nên NS, bộ biên dịch Tcl mở rộng hướng đối tượng và các thư viện mô phỏng mạng. Mô phỏng ảo NAM Mô phỏng Lần vết và Giám sát

- 68 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.4 Kiến trúc của NS-2 NS sử dụng hai ngôn ngữ lập trình: Ngôn ngữ kịch bản (Tcl – Tool Command Language, đọc là tickle) và Ngôn ngữ lập trình hệ thống (C/C++) NS là tầng biên dịch Tcl để chạy các kịch bản Tcl Bằng cách sử dụng C++/OTcl, bộ mô phỏng mạng phải hoàn toàn là hướng đối tượng Hình sau chỉ ra các đối tượng C++ có liên kết OTcl. Khi đó, nếu chúng tạo nên một phân cấp thì các đối tượng OTcl cũng có một phân cấp tương ứng như vậy.

- 69 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.5 C++ và OTcl: Sự đối ngẫu TclCL là ngôn ngữ được sử dụng để cung cấp liên kết giữa C++ và OTcl. Các kịch bản Tcl/OTcl được viết để thiết lập và cấu hình topology của mạng. TclCL cung cấp liên kết giữa phân cấp lớp, khởi tạo đối tượng, nối kết biến và gửi lệnh.

Hình 4.6 TclCL hoạt động như liên kết giữa A và B Việc sử dụng hai ngôn ngữ vì Bộ mô phỏng cần thực hiện hai việc khác nhau. Một mặt là vì các mô phỏng cho các giao thức yêu cầu một ngôn ngữ lập trình hệ thống có thể tính toán một cách hiệu quả các byte, các tiêu đề packet và các

- 70 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

thuật toán thực thi đang chạy trên một tập dữ liệu lớn. Với tác vụ này, run-time speed (tốc độ thời gian chạy thực) là quan trọng trong khi turn-around time (thời gian thay đổi) thì ít quan trọng hơn. Turn-around time bao gồm thời gian chạy mô phỏng, thời gian tìm lỗi, thời gian sửa lỗi, thời gian biên dịch lại và thời gian chạy lại. Mặt khác, khi nghiên cứu mạng thì rất cần quan tâm đến các tham số và các cấu hình có thay đổi nhưng không đáng kể, hay quan tâm đến các scenario (tình huống) cần khám phá thật nhanh chóng. Trong tác vụ này thì iteration time (thời gian lặp lại, tức là thời gian hay đổi mô hình và chạy lại) là quan trọng hơn. Vì cấu hình chỉ chạy một lần lúc bắt đầu mô phỏng nên run-time trong tác vụ này rõ ràng kém quan trọng hơn. Dùng C++ để: • Mô phỏng giao thức chi tiết yêu cầu ngôn ngữ lập trình hệ thống • Thao tác trên byte, xử lý gói, thực thi thuật toán • Tốc độ thời gian thực là quan trọng nhất • Thực hiện bất kỳ việc gì mà cần xử lý tứng packet của một luồng. • Thay đổi hành vi của lớp C++ đang tồn tại theo những hướng đã không được lường trước. Và dùng OTcl để: • Mô phỏng những thông số hay cấu hình thay đổi • Tham dò nhanh một số tình huống • Thời gian tương tác (thay đổi mô hình hay chạy lại) là quan trọng • Cấu hình, thiết lập hay những gì chỉ làm một lần. • Thực hiện những cái ta muốn bằng cách thao tác trên các đối tượng C++ đang tồn tại. Ví dụ như các link là những đối tượng OTcl liên kết các mô đun delay (trì hoãn), queueing (hàng đợi) và possibly loss (khả năng mất mát). Còn nếu muốn thực hiện những việc chuyên nghiệp hơn thì cần tạo ra đối tượng C++ mới.

- 71 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hầu hết định tuyến được viết bằng OTcl (dù thuật toán Dijkstra lõi viết bằng C++). Mô phỏng HTTP có từng luồng bắt đầu tại OTcl nhưng việc xử lý từng gói lại được viết bằng C++. Phương pháp này chạy tốt cho đến khi có đến 100 luồng bắt đầu thời gian mô phỏng mỗi giây. Nói chung, nếu phải triệu gọi Tcl nhiều lần mỗi giây thì có lẽ nên chuyển sang C++. Về phương diện mã nguồn, NS-2 được viết với 100k dòng mã lệnh C++, 70k dòng mã Tcl và 20k dòng tài liệu. 4.3.3 Các đặc tính của NS-2 NS-2 thực thi những chức năng sau: Các kỹ thuật quản lý hàng đợi Router như DropTail, RED, CBQ, Multicasting Mô phỏng mạng không dây Được phát triển bởi Sun Microsystems + UC Berkeley (Dự án Daedalus) Thuộc mặt đất (di động, adhoc, GPRS, WLAN, BLUETOOTH), vệ tinh Chuẩn IEEE 802.11 có thể được mô phỏng, các giao thức Mobile-IP và adhoc như DSR, TORA, DSDV và AODV Hành vi nguồn traffic – www, CBR, VBR Các agent truyền tải – UDP, TCP Định tuyến Luồng packet Mô hình mạng Các ứng dụng – Telnet, FTP, Ping Các packet tracing trên tất cả các link và trên các link xác định

- 72 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

4.4 Phần mềm mô phỏng mạng quang OBS4NS 4.4.1 Giới thiệu. Ns-2 khá đầy đủ cho việc mô phỏng mạng thông thường, tuy nhiên lại ít hỗ trợ cho lớp quang và mô phỏng mạng OBS vì trong OBS các burst dữ liệu được chuyển mạch toàn quang, không bị delay hay xử lý tại các node mạng. Vì lý do đó, phần mềm mở rộng OBS4NS chạy trên nền NS-2 được xây dựng để giải quyết vấn đề mô phỏng mạng toàn quang. Phần mềm mô phỏng mạng OBS4NS được các tác giả ở trường đại học Vigo-Tây Ban Nha xây dựng và phát triển phần lớn các chức năng phục vụ tương đối đầy đủ cho mô phỏng một mạng OBS hoàn chỉnh. Phần mềm OBS4NS có khả năng: - Tạo các node biên, node lõi và node kết hợp - Tạo các liên kết WDM. - Thực hiện quá trình đóng khối. - Thực hiện định tuyến. - Thực hiện việc giải quyết xung đột bằng bộ đệm, chuyển hướng và phân đoạn burst. - Thực hiện việc lập lịch kênh truyền LAUC, LAUC-VF,….. 4.4.2 Các module trong OBS4NS. Phần mềm OBS4NS được xây dựng từ các module sau: Module tạo node mạng (ObsNode) Các node trong mạng OBS bao gồm node biên và node lõi. Phần mềm này cũng xây dựng một module tạo các node này trong mạng, các node mạng trong phần mềm này là node unicast không hỗ trợ node multicast. - Node biên Ngõ vào của node biên là lưu lượng lấy từ module tạo lưu lượng. Các thông số của lưu lượng tuỳ từng trường hợp vào lưu lượng đưa vào. Giá trị ngõ ra của node biên là các burst dữ liệu, gói điều khiển, thông tin về đường đi ngắn nhất, bước sóng cho gói điều khiền và burst dữ liệu.

- 73 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình dưới đây mô tả kiến trúc của node biên và node lõi trong OBS4NS. Hình vẽ cho thấy những phần giống nhau trong khi xây dựng đối tượng mô phỏng là cả node biên và node lõi đều sử dụng chung thành phần tạo kết nối (Connector/ObsLink) và sử dụng biến entry_ để xác định lối vào. Phần khác nhau giữa node biên và node lõi là ở node biên có phần giao diện lớp MAC còn ở node lõi có chuyển mạch quang khối (Classifier/ObsSwitch)

Hình 4.7 Giao diện lớp MAC Giao diện đến lớp MAC là thành phần cơ bản của node biên có nhiệm vụ nhận lưu lượng từ khối tạo lưu lượng (lưu lượng được tạo ra bằng một số module trong NS-2). Nó phân loại gói đến theo đích đến (Classifier/Addr) và theo lớp dịch vụ (Classifier/CoS). Kế đến bộ đóng khối (Agent/Burstifier) có chức năng tập trung các gói tin lớp cao vào bộ đệm rồi tạo thành burst dữ liệu cùng với việc phát gói điều khiển. Cuối cùng là bộ lập lịch kênh truyền (ChannelScheduler) chọn một bước sóng thích hợp cho burst dữ liệu ở ngõ ra. Node biên đích có bộ giải đóng khối (Agent/Deburstifier) tách các gói tin từ burst dữ liệu nhận được.

- 74 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Thành phần quan trọng nhất của giao diện lớp MAC là bộ đóng khối (Agent/Burstifier). Các biến số cho bộ đóng khối quyết định việc đóng khối như thế nào: MaxDBsize_ : đóng khối theo tiêu chuẩn về dung lượng tối đa. Max_packets_ : đóng khối theo tiêu chuẩn về số lượng gói tối đa trong burst. Time_out_ : đóng khối theo tiêu chuẩn thời gian tối đa. Np_ : số lượng gói trong một burst thực tế được phát đi. Size_ : dung lượng thực tế được phát đi.

Hình 4.8 Giao diện lớp MAC Khi một burst dữ liệu được đưa vào mạng, một gói điều khiển được tạo ra cho burst này. Gói điều khiển này được gởi vào mạng ngay tức khắc còn burst dữ liệu phải đợi trong bộ đệm một khoảng thời gian bù mới được phát đi. Thời gian bù được tính như sau:

Toffset ,i = max(TBHPproc )(n + 1) + Tswitch + (Toffset ,i −1 + TTx ,i −1 ) + Textra

- 75 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Với n: số bước nhảy từ nguồn đến đích. i: mức ưu tiên dịch vụ.
max(T BHPproc)

: thời gian xử lý gói điều khiển tại mỗi node. Nếu chúng ta giả
max(T BHPproc)

sử rằng thời gian xử lý gói điều khiển cực đại tại mỗi node là bằng nhau kể cả node nguồn thì tổng thời gian xử lý gói điều khiển là (n+1)

Tswitch : thời gian chuyển mạch tại mỗi node trung gian Toffset ,i −1 TTx ,i −1

: thời gian offset time của burst có mức ưu tiên cao hơn.

: thời gian truyền burst có mức ưu tiên cao hơn tối đa. Điều này tạo ra

sự cách ly 100% giữa các lớp dịch vụ. - Textra : là thời gian phát sinh do các tình huống khác và được tính như say:
Textra = max(TBHPproc )ndefl + TBHPqueue + Trandom + δ ndefl

: là số lần chuyển hướng tối đa của một burst theo một cách

chống loop.
TBHPqueue

: là thời gian gói điều khiển còn phải chứa trong hàng đợi.

δ : là khoảng thời gian rất nhỏ, là khoảng thời gian bảo vệ, cho phép chuyển

mạch chuyển từ trạng thái hoạt động sang trạng thái cấu hình lại.
Trandom : là khoảng thời gian được tạo ngẫu nhiên trong một khoảng nào đó

đóng vai trò một thông số ngẫu nhiên nào đó trong mạng. Max_bhp_queue_time_: biến này cho phép cài đặt
TBHPqueue

Extra_random_time_: biến này cho phép cài đặt Trandom
T Extra_fixed_time_: biến này giới hạn sự biến đổi Trandom và Tx ,i −1

Equal_offset_: cho phép giá trị offset time của các lớp dịch vụ khác nhau bằng nhau.

- 76 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Bhp_struct_map_: cho phép gói điều khiển có thể sửa lại khi thông tin về burst trên đường truyền bị thay đổi (ví dụ như burst bị rớt một phần). Bhp_size_: biến thiết lập kích thước gói điều khiển. Segmentation_: cho phép phân đoạn burst trong miền điện. Max_segmentation_: số lượng đoạn lớn nhất trong một burst. Min_segmentation_size_: kích thước tối thiểu của mỗi đoạn. Stats_ : cho phép gọi chức năng thống kê.

Hình 4.9 Thời gian offset - Node lõi Thành phần chủ yếu của node lõi là đơn vị điều khiển chuyển mạch SCU và ma trận chuyển mạch quang OXC. Các thành phần này thuộc lớp Classifier/ObsSwitch

- 77 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Ngõ ra

SCU BHP

DB OXC

(Classifier/ObsSwitch)

Hình 4.10 Node lõi trong OBS4NS Chương trình xây dựng SCU với các biến số sau: Bhp_proc_time_: thời gian xử lý gói điều khiển. Channel_schedule_: chọn lựa loại lập lịch kênh truyền. Multipath_: cho phép chọn lựa nhiều đường đi hay không. Deflection_ : cho phép SCU cấu hình cho OXC chuyển hướng burst trong việc giải quyết xung đột. Segmentation_: cho phép SCU cấu hình cho OXC phân đoạn burst trong việc giải quyết xung đột. Max_segmentation_size_: kích thước nhỏ nhất cho mỗi đoạn. Switch_time_: thời gian chuyển mạch của ma trận chuyển mạch quang.

- 78 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

- Node kết hợp Ngoài node biên và node lõi với các chức năng riêng biệt, phần mềm còn xây dựng một node kết hợp bao gồm cả chức năng node biên lẫn chức năng node lõi.
Node kết hợp Agent

Agent (Classifier/TypeSwitch) Agent IP Ngõ vào Giao diện kết nối đến lớp MAC Giải đa hợp (Classifier/Port)

OBS Node lõi OBS

(Connector/ObsLink)

Ngõ ra

Ngõ ra

Hình 4.11 Node kết hợp Từ hình ta thấy node kết hợp có thể xử lý hai loại lưu lượng IP và burst dữ liệu. Classifier/TypeSwitch có nhiệm vụ xét xem lưu lượng đến là IP hay là burst, từ đó đưa ra quyết định lưu lượng này xử lý ở phần nào (node lõi hay node biên). Các thông số liên quan khác được cấu hình giống như cấu hình đối với node biên và cấu hình đối với node lõi. Module tạo liên kết trong mạng (Connector/ObsLink) Do liên kết trong mạng OBS là các liên kết WDM nên trong xây dựng chương trình cũng có chức năng tạo liên kết WDM. Liên kết WDM trong chương trình tạo nên các biến số sau: ndc_: số kênh dữ liệu. ncc_: số kênh điều khiển.

- 79 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

dc_bandwidth_: băng thông kênh dữ liệu. cc_bandwidth_: băng thông kênh điều khiển. delay_: độ trễ lan truyền trên mỗi liên kết. Module đơn vị truyền dẫn trong mạng (ObsPacket) Hai đơn vị truyền dẫn trong mạng là gói điều khiển OBS_BHP và burst dữ liệu OBS_DB, burst dữ liệu trong OBS4NS không phải là một gói cụ thể như trong NS-2, chương trình mô phỏng chỉ xét hai giá trị về điểm bắt đầu DB_START và kết thúc DB_END của mỗi burst. Cụ thể trong chương trình hai giá trị này là hai biến NULL, điều này làm cho việc xử lý burst dữ liệu nhanh hơn và thích hợp cho việc xử lý của máy tính. OBS_BHP: chương trình sẽ tạo ra gói điều khiển với các thông số sau: Id_: biến số nhận diện mỗi gói BHP. Db_start_time_: thời điểm bắt đầu của burst. Db_end_time_: thời điểm kết thúc của burst. Channel_: gói BHP này sẽ đưa đến kênh nào. Ttl_: thời gian sống của gói BHP. Offset_obs_bhp_: thông số về thời gian bù. Stats_: biến gọi module thống kê. Id_ Db_start_time_ Db_end_time_ Channel_ Ttl_ Offset_obs_bhp_ Stats_

OBS_DB: Chương trình tạo ra burst dữ liệu với các thông số sau: Type_: cho biết là DB_START hay DB_END. Id_: số nhận diện burst, cùng chỉ số với OBS_BHP tương ứng. Src_: địa chỉ node nguồn. Dst_: địa chỉ node đích. Channel_: burst này sẽ được đưa lên kênh nào. Stats_: biến gọi module thống kê.

- 80 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Phần Dbpayload thay mặt cho phần dữ liệu của burst được phát đi bao gồm 3 biến số liên quan: Np_: số gói tin thực tế trong một burst. Size_: kích thước thực tế của burst Number_DB_: số lượng đoạn trong một burst dữ liệu trong trường hợp đóng khối kiểu phân đoạn. Module lập lịch kênh truyền (ChannelScheduler) Khi một burst dữ liệu được tạo ra hay khi nó đi qua các node trung gian, nó cần được sắp xếp đến một bước sóng nào đó ở ngõ ra. Ba cách lập lịch được nhiều nhà nghiên cứu quan tâm nhất được xây dựng trong OBS4NS đó là: FFUC, LAUC và LAUC-VF. ChannelScheduler/FFUC: Thuật giải lập lịch kênh là FFUC. ChannelScheduler/LAUC: Thuật giải lập lịch kênh truyền là LAUC. ChannelScheduler/LAU_VF: Thuật giải lập lịch kênh truyền là LAUC-VF. Module định tuyến (ObsRoute) OBS4NS tính toán đường đi dựa trên giải thuật đường đi ngắn nhất SPF. Mỗi node mạng cùng với các liên kết tạo ra một topo mạng. Sau đó mỗi node mạng sẽ lưu trữ một bảng các node lân cận của nó. Việc tính toán đường đi ngắn nhất từ node này đến node kia ban đầu dựa vào số chặng để tìm đường đi ngắn nhất. Nếu như việc tìm đường đi dựa vào số bước nhảy tìm được nhiều hơn một con đường đến đích thì con đường ngắn nhất được chọn chính là con đường có độ trễ lan truyền nhỏ nhất. Module thống kê (stats)

- 81 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Trong phần mềm OBS4NS burst dữ liệu không phải là một gói cụ thể như trong NS-2, chương trình chỉ mô phỏng hai giá trị thời điểm bắt đầu và kết thúc mỗi burst, do đó không thể đưa ra kết quả bằng file trace như NS-2. Phần mềm OBS4NS hỗ trợ việc theo dõi kết quả bằng một module thống kê. Các biến trong hàm thống kê này gồm: Get-global-stats-collector: Dùng để thống kê tất cả các gói đi vào hệ thống. Get-flow-stats-collector:Dùng để thống kê tất cả các gói đi vào theo từng luồng riêng rẻ 4.5 Các trường hợp thực hiện mô phỏng. TRƯỜNG HỢP 1: QoS dựa trên việc thay đổi các thông số đóng gói. [20,1]: Việc thực hiện việc so sánh các thông số đóng gói khác nhau được thực hiện dưới tiêu chuẩn drop policy (DP) và phân mảnh để giải quyết xung đột (SDP). Hai tiêu chuẩn này được đề cập đến trong chương II. Một ngưỡng với hai mức độ ưu tiên: Trong phần này chúng ta giả sử mạng mang hai lớp lưu lượng chạy trên hai lớp dịch vụ với hai mức độ ưu tiên khác nhau: lớp 1 có mức độ ưu tiên thấp, lớp 2 có mức độ ưu tiên cao, tốc độ gấp đôi lớp 1. Việc thiết lập một thông số ngưỡng cho tất cả các burst dữ liệu trong mạng lần lượt là:100, 150, 300 gói trong burst. Chúng ta sẽ đánh giá khả năng mất gói của các tải đưa vào mạng với các thông số ngưỡng khác nhau. TRƯỜNG HỢP 2: QoS dựa trên việc thay đổi các tiêu chuẩn xếp lịch kênh. [10]: Việc thực hiện mô phỏng đánh giá QoS dựa trên việc thay đổi các tiêu chuẩn xếp lịch kênh với sử dụng tiêu chuẩn drop policy và phân mảnh để giải quyết xung đột với một ngưỡng đóng gói cố định. Mạng OBS mô phỏng mang hai lớp dịch vụ. - Mô phỏng mạng OBS với tiêu chuẩn xếp lịch kênh LAUC. - Mô phỏng mạng OBS với tiêu chuẩn xếp lịch kênh FFUC. - Mô phỏng mạng OBS với tiêu chuẩn xếp lịch kênh LAUCVF. TRƯỜNG HỢP 3: QoS dựa trên việc giải quyết xung đột.[1]: trường hợp này sẽ thực hiện mô phỏng mạng OBS mang hai lớp traffic với hai mức ưu tiên khác nhau. Các tiêu chuẩn giải quyết xung đột được sử dụng là DP, SDP, DFSDP,

- 82 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

DFDP, SFDP. Chúng ta sẽ đánh giá kết quả dựa trên khả năng mất gói của lưu lượng đưa vào mạng với một ngưỡng đóng gói cố định. TRƯỜNG HỢP 4: QoS dựa trên tín hiệu ưu tiên: Việc mô phỏng sẽ thực hiện trên mạng OBS với hai tín hiệu được sử dụng là JET và JIT. Chúng ta cũng sẽ đánh giá kết quả dựa trên khả năng mất gói với các mức lưu lượng khác nhau. TRƯỜNG HỢP 5: Trường hợp này đề cập đến độ trễ do chuyển mạch OBS gây ra. Trường hợp này xét đến 3 tình huống: - Tình huống thứ nhất: mạng chuyển mạch quang chùm OBS có hai lớp dịch vụ, lớp dịch vụ thứ nhất có độ ưu tiên thấp hơn lớp thứ hai, lập lịch kênh truyền LAUCVF, giải quyết xung đột DP, ngưỡng 100. - Tình huống thứ hai: mạng chuyển mạch quang chùm OBS có hai lớp dịch vụ, lớp dịch vụ thứ nhất có độ ưu tiên thấp thứ hai, lập lịch kênh truyền LAUCVF, giải quyết xung đột SDP, ngưỡng 100. - Tình huống thứ ba: mạng chuyển mạch quang chùm OBS có hai lớp dịch vụ, lớp thứ nhất có độ ưu tiên thấp hơn lớp thứ hai, sử dụng giao thức báo hiệu JET, lập lịch kênh truyền LAUCVF, ngưỡng 100. 4.6 Xây dựng kịch bản mô phỏng. 4.6.1 Lưu đồ xây dựng kịch bản mô phỏng.

- 83 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Bắt đầu

Lấy nguồn cho mô phỏng

Tạo mô hình mạng NSFNET

Thiết lập các thông số mạng

Khởi tạo các biến

Thiết lập các thông số SCU giải quyết xung đột

Đưa lưu lượng vào mạng trên mỗi cặp node Đúng Số gói gửi <= 1000000 gói Sai Kết thúc lưu lượng

Thu thập kết quả

Kết thúc

Hình 4.12 Lưu đồ mô phỏng

- 84 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

4.6.2 Các bước thực hiện mô phỏng. Lấy nguồn Phần mềm mô phỏng OBS4NS xây dựng tương đối đầy đủ các thư viện cần thiết cho việc mô phỏng một mạng quang, chúng ta gọi lại các nguồn cần thiết cho việc mô phỏng bằng cách trỏ đường dẫn đến các thư viện như sau: Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-lib.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-node.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-link.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-stats.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-defaults.tcl Khởi tạo các biến Khai báo các biến đã được định nghĩa bên ngoài kịch bản mô phỏng để đưa tải vào mạng. Biến load thay đổi từ 0,1 (Erlang) đến 1 (Erlang). Đối với mỗi loại lưu lượng thời điểm phát gói đầu tiên phụ thuộc vào hàm ngẫu nhiên. Hàm ngẫu nhiên này tạo ra một số ngẫu nhiên dựa vào biến seed. Set load [lindex $argv 0] // Đưa tải vào mạng Set opt(seed) [lindex $argv] // Khởi tạo các số ngẫu nhiên. Tạo đối tượng mô phỏng mới. Set ns [new Simulator] Tạo các node mạng. Như đã đề cập trong chương 2, một mạng OBS gồm có các node biên, node lõi và node kết hợp. Phần mềm OBS4NS-3.4 hỗ trợ việc xây dựng các node mạng như sau: Set c($i) [$ns ObsCoreNode $ncc $ndc ChannelScheduler/$stype CoS] // Khởi tạo các node lõi Set e($i) [$ns ObsEdgeNode $ncc $ndc ChannelScheduler/$stype CoS] // Khởi tạo node biên. Set h($i) [$ns ObsHybridNode $ncc $ndc ChannelScheduler/$stype CoS] // Khởi tạo các node kết hợp

- 85 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Trong đó: ChannelScheduler/$stype: loại lập lịch kênh truyền. Ndc: số lượng kênh dữ liệu ở ngõ ra của mỗi node. Ncc: số kênh điều khiển ở ngõ ra của mỗi node. CoS: số mức dịch vụ. Tạo các liên kết trong mạng. Sau khi tạo các node mạng bước tiếp theo chúng ta sẽ xây dựng các liên kết trong mạng để tạo nên một topology mạng hoàn chỉnh. Câu lệnh tạo liên kết song hướng giữa hai node mạng có dạng như sau: $ns duplex-obs-link $c($i) $c($j) $ncc $ndc $d ChannelScheduler/$stype Trong đó: C($i): node thứ i C($j): node thứ j d: khoảng cách giữa node thứ i và node thứ j, đơn vị km. duplex-obs-link: liên kết là song hướng. Dùng lệnh $ns compile-obs để hoàn tất việc liên kết giữa các node mạng. Thiết lập các thông số mạng. Để mô phỏng hoạt động của mạng OBS, chúng ta sẽ thiết lập các thông số mạng theo các giả định ban đầu. Các thông số cần thiết lập là băng thông liên kết, các thông số đóng khối (burst assembly), các thông số bộ kết nối quang chéo OXC, các thông số điều khiển chuyển mạch SCU. Connector/ObsLink dc_bandwidth Connector/ObsLink cc_bandwidth khiển. Agent/Burstifier set max_db_size_ [expr 1250*$number] Agent/Burstifer set timeout_ Agent/OXC switch_time Agent/Burstifier set bhp_size_ // đóng khối theo kích thước tối đa với number là số lượng gói tin trong một burst. // đóng khối theo tiêu chuẩn thời gian. // thiết lập kích thước gói điều khiển. // thiết lập thời gian chuyển mạch. // thiết lậpbăng thông kênh dữ liệu. // thiết lập băng thông kênh điều

- 86 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Agent/SCU max_bhp_proc_time // thiết lập thời gian xử lý gói điều khiển. Agent/Burstifier set max_segmentations_ đa khi phân đoạn một burst. Agent/Burstifier set min_segmentable_size_ nhất của mỗi đoạn. Agent/Burstifier set segmentation_ // thiết lập các thông số cho phép giải quyết xung đột trong bộ đóng khối bằng phân đoạn burst. Agent/SCU set signalling_ // thiết lập kỹ thuật báo hiệu. Đây là phần quan trọng nhất trong việc mô phỏng, việc xác lập các thông số của bộ kết nối quang chéo OXC và các thông số điều khiển chuyển mạch SCU quyết định việc thay đổi các thông số QoS trên mạng. Đưa lưu lượng vào mạng. Bước tiếp theo là đưa tải vào mạng với lưu lượng đưa vào mạng theo phân bố Poisson: Set rate [expr $load*$ndc*$n_link*[Connector/ObsLink dc_bandwidth]/$n_app] // Tốc độ của mỗi luồng lưu lượng được tính ra từ tải đưa vào mạng. Set Poi($i$j) [new Application/Traffic/Poisson] // Tạo lưu lượng theo phân bố Poisson. $Poi($i$j) set rate_ $rate // Gán tốc độ cho lưu lượng. $Poi($i$j) set packetSize_ // Gán kích thước gói. Set udp($i$j) [$c($i) set burstifier_([$c($j) id]:QoS) // Tạo udp gắn lưu lượng với QoS là thứ tự lớp dịch vụ. $Poi($i$j) attach-agent $udp($i$j) // đặt lưu lượng trên tất cả các cặp node. $udp($i$j) set-traffic-generator $Poi($i$j) $ns at 0.0 “$udp($i$j) start” // thiết lập kích thước nhỏ // thiết lập số lượng đoạn tối

- 87 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

// cho phép bắt đầu chạy lưu lượng khi mới bắt đầu chạy mô phỏng. Kết thúc lưu lượng. Mô phỏng được giả sử sẽ kết thúc khi số gói phát đi vào mạng đạt đến con số như mong muốn. Phần mềm OBS4NS chỉ xác định các biến số đầu vào và đầu ra nên trong phần này phải gọi chức năng thống kê để thực hiện việc đếm gói set sc [$ns get-global-stats-collector k] // khởi tạo biến sc ghi nhận các sự kiện, k là số thự tự của lớp dịch vụ $sc set-counter-convergence IP_IND 1000000 // mô phỏng kết thúc khi dữ liệu được đưa vào mạng đạt đến mức 1 triệu gói. Stats stop-command “stop” // gọi hàm “stop” để kết thúc mô phỏng. $ns at [RouteLogic/ObsRoute transit_time] “$ns enable-stats” // cho phép gọi chức năng thống kê trong thời gian thực hiện mô phỏng. Hàm stop được tạo ra như sau: Proc stop {} { Global ns udp $ns at-now “$udp($i$j$k) stop” // Kết thúc phát burst Set now [$ns now] $ns at [expr $now +0.2] “finish” // chờ 0.2s sau khi các burst đã đến đích rồi mới kết thúc mô phỏng Kết thúc mô phỏng và lấy kết quả. Sau khi kết thúc mô phỏng, sẽ thu thập kết quả và ghi kết quả này vào một file text. Tạo hàm “finish” như sau: Proc finish {} { Global ns sc Set ip_snd [expr [$sc get-counter-value IP_SND]] // lấy số lượng gói được phát đi.

- 88 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Set ip_rcv [expr [$sc get-counter-value IP_RCV]] // lấy số lượng gói nhận được. Set ip_drop [expr $ip_snd - $ip_rcv] // tính số lượng gói bị rớt. Set ip_p [expr 1.0*$ip_p/$ip_snd] // tính xác suất mất gói. Set file [open “results.txt” “a”] // khởi tạo một file ghi kết quả. Puts $file “$ip_p” // ghi kết quả xác suất mất gói vào một file Exit 0 } Bắt đầu chạy mô phỏng. Bắt đầu chạy mô phỏng bằng lệnh: $ns 4.7 Kết quả mô phỏng. Các số liệu từ việc chạy mô phỏng được biểu diễn dưới dạng đồ thị. Những đồ thị này được vẽ bằng phần mềm matlab 6.5. TRƯỜNG HỢP 1: QoS dựa trên các thông số ngưỡng đóng khối (burst assembly). Việc mô phỏng lấy 3 mức ngưỡng là 100, 150, 300 trên hai lớp dịch vụ, với hai tốc độ khac nhau. Lớp dịch vụ thứ nhất có độ ưu tiên thấp, lớp dịch vụ thứ hai có tốc độ gấp đôi lớp thứ nhất và có độ ưu tiên cao. Tiêu chuẩn giải quyết xung đột là drop policy (DP) và Phân mảnh để giải quyết xung đột (SDP), giao thức báo hiệu là JET.

- 89 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.13 Kết quả mô phỏng dựa trên các thông số đóng khối 100, 150, 300 và giải quyết xung đột dựa trên tiêu chuẩn DP.

- 90 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.14 Kết quả mô phỏng dựa trên các thông số đóng khối 100, 150, 300 và giải quyết xung đột dựa trên tiêu chuẩn SDP. Những kết quả trên cho thấy rằng trong cả hai trường hợp DP và SDP cho những kết quả sau: - Thông số đóng khối càng lớn khả năng mất gói càng cao. - Lưu lượng đưa vào càng cao khả năng mất gói càng lớn. - Burst có độ ưu tiên cao ít mất gói hơn so với burst có độ ưu tiên thấp. Trường hợp đóng khối với tiêu chuẩn SDP cho độ mất gói thấp hơn trong trường hợp đóng khối theo tiêu chuẩn DP. TRƯỜNG HỢP 2: QoS dựa trên các thông số xếp lịch kênh. Việc mô phỏng thực hiện trên hai lớp dịch vụ với hai mức độ ưu tiên khác nhau dựa trên tiêu chuẩn lập lịch kênh là FFUC, LAUC, LAUCVF với ngưỡng là 100 gói. Hai tiêu chuẩn giải quyết xung đột là SDP và DP, giao thức báo hiệu là JET.

- 91 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.15 Kết quả mô phỏng dựa trên các thông số xếp lịch kênh FFUC, LAUC, LAUCVF và giải quyết xung đột dựa trên tiêu chuẩn DP.

- 92 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.16 Kết quả mô phỏng dựa trên các thông số xếp lịch kênh FFUC, LAUC, LAUCVF và giải quyết xung đột dựa trên tiêu chuẩn SDP. Trong các trường hợp trên cho các kết quả sau: - Tiêu chuẩn lập lịch kênh LAUCVF cho độ mất gói thấp nhất. - Lưu lượng đưa vào càng lớn khả năng mất gói càng lớn. - Lớp dịch vụ có độ ưu tiên cao cho độ mất gói thấp hơn rất nhiều so với lớp dịch vụ có độ ưu tiên thấp. - Tiêu chuẩn giải quyết xung đột SDP cho độ mất gói ít hơn so với DP. TRƯỜNG HỢP 3: QoS dựa trên việc thay đổi các tiêu chuẩn giải quyết xung đột. Các tiêu chuẩn giải quyết xung đột lần lượt là: DP, SDP, DDP, SDDP, DSDP. Ngưỡng đóng khối là 100, tiêu chuẩn lập lịch kênh là LAUCVF, giao thức báo hiệu là JET.

- 93 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.17 Kết quả mô phỏng dựa trên các tiêu chuẩn giải quyết xung đột. Các mô phỏng trên cho những kết quả sau: - Hai tiêu chuẩn giải quyết xung đột DSDP và SDDP cho khả năng mất gói thấp. - Tải đưa vào mạng càng cao khả năng mất gói càng cao. - Lớp dịch vụ có độ ưu tiên cao khả năng mất gói thấp hơn lớp dịch vụ có độ ưu tiên thấp. TRƯỜNG HỢP 4: QoS dựa trên các thông số báo hiệu. Mô phỏng sử dụng hai giao thức báo hiệu là JET và JIT với hai lớp dịch vụ khác có mức độ ưu tiên khác nhau, ngưỡng đóng khối là 100, tiêu chuẩn giải quyết xung đột là DP và SDP.

- 94 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.18 Kết quả mô phỏng dựa trên thông số báo hiệu với tiêu chuẩn giải quyết xung đột DP.

- 95 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.19 Kết quả mô phỏng dựa trên các thông số báo hiệu với tiêu chuẩn giải quyết xung đột SDP. Các mô phỏng trên cho các kết quả: - JET cho độ mất gói thấp hơn JIT. - Tải đưa vào mạng càng lớn khả năng mất gói càng thấp. - Lớp dịch vụ có độ ưu tiên cao ít mất gói hơn lớp dịch vụ có độ ưu tiên thấp. - Tiêu chuẩn SDP cho độ mất gói ít hơn so với DP.

- 96 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

TRƯỜNG HỢP 5: Xem xét độ trễ trung bình do chuyển mạch quang chùm gây ra.

Hình 4.20 : Delay trên mạng OBS với hai lớp dịch vụ, lập lịch kênh tryền LAUCVF, giải quyết xung đột DP, ngưỡng 100

- 97 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.21: Delay trên mạng OBS với hai lớp dịch vụ, lập lịch kênh tryền LAUCVF, giải quyết xung đột SDP, ngưỡng 100

- 98 -

GVHD: TS. LÊ QUỐC CƯỜNG

HVTH: CAO NHỰT BÌNH

Hình 4.22: Delay trên mạng OBS với hai lớp dịch vụ, lập lịch kênh tryền LAUCVF, ngưỡng 100, giao thức báo hiệu JET Nhận xét: Trong cả ba trường hợp trên cho thấy những lớp có độ ưu tiên cao hơn cho độ trễ trung bình ít hơn. Lưu lượng đưa vào mạng càng cao độ trễ trung bình càng giảm xuống. Kỹ thuật báo hiệu JET và JIT có độ trễ gần giống nhau nhưng JET có độ trễ thấp hơn so với JIT do phương pháp đăng ký trì hoãn, giải phóng băng thông tốt hơn. SDDP cho độ trễ cao hơn so với DP vì cần nhiều thời gian xử lý hơn.

- 99 -


Link download:
20jFln3WKCoo4c7
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status