.Tởng quan về chương trình NS

Một phần của tài liệu Triển Khai IPTV Trên Công Nghệ WiMax (Trang 85 - 95)

NS là bộ công cụ mô phỏng mạng điều khiển theo các sự kiện rời rạc, được xây dựng và phát triển bởi trường đại học Berkeley – Mỹ, cho phép mô phỏng nhiều kiểu mạng IP khác nhau. 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à một số giao thức lớp điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN.

NS được xây dựng bằng ngôn ngữ lập trình hệ thống C++ và ngôn ngữ mô phỏng OTcl. Otcl là dạng ngôn ngữ kịch bản Tcl được mở rộng theo mơ hình hướng đới tượng.

Hình 4.1: Tổng quan về NS dưới góc độ người dùng

Theo quan điểm người dùng thuần túy, NS là một bộ thông dịch các kịch bản Tcl hướng đối tượng. NS gồm có các bộ định trình các sự kiện mô phỏng, các thư viện đối tượng thành phần mạng và thư viện các module tạo lập mạng.

Khi sử dụng NS, người dùng phải lập trình bằng ngôn ngữ kịch bản Tcl. Để tạo lập và triển khai một mạng mô phỏng, người dùng viết một kịch bản Tcl để khởi tạo một bộ định trình sự kiện, thiết lập topo mạng thông qua việc sử dụng các đối tượng thành phần mạng và các thành phần liên kết trong các thư viện của NS. Việc thiết lập một mạng là ghép nối các đường dữ liệu giữa các đối tượng mạng bằng cách đặt con trỏ của một đối tượng này tới địa chỉ của một đối tượng khác tương ứng. Khi muốn tạo một đối tượng mạng mới, thì người dùng có thể tạo ra đối tượng đó bằng cách xây dựng một đối tượng mới hoặc tổ hợp các đối tượng có sẵn trong các thư viện đối tượng của NS và tạo ra các đường liên kết dữ liệu giữa chúng.

Một thành phần quan trọng của NS (bên cạnh các đối tượng mạng) là bộ định trình sự kiện. Một sự kiện trong NS là một mã nhận dạng gói, mã này là duy nhất đối với một gói, sự kiện được định thời và gắn với một con trỏ trỏ đến đối tượng sẽ xử lý sự kiện đó. Trong NS, bộ định trình sự kiện giám sát toàn bộ thời gian mô phỏng, quản lý và kích hoạt các sự kiện theo một hàng đợi. Khi một sự kiện được kích hoạt, bộ định trình sẽ gọi tới thành phần đối tượng mạng xử lý tương ứng (thường cũng là đối tượng tạo ra sự kiện đó), cho phép đối tượng này thực hiện các tác vụ thích hợp lên gói gắn với sự kiện. Các thành phần đối tượng mạng truyền

thông với nhau bằng cách trao đổi các gói. Một ứng dụng nữa của bộ định trình sự kiện là tạo ra các bộ định thời. VD: giao thức TCP cần bộ định thời để giám sát thời gian chờ khi phát đi một gói nhằm thực hiện việc phát lại gói.

Hình 4.2: Mô hình kiến trúc của NS

Khi mơ phỏng kết thúc, nếu có yêu cầu từ các script Tcl (OTcl) đầu vào thì NS sẽ tạo ra các file text lưu chi tiết dữ liệu mơ phỏng. Dữ liệu đó có thể được dùng cho việc phân tích hay được dùng như đầu vào cho các cơng cụ trình diễn mơ phỏng đồ họa NAM.

Các tính năng của NAM:

 Cung cấp trình diễn ảo cho mạng đã được tạo  Có thể thi hành trực tiếp từ kịch bản Tcl

 NAM có giao diện đồ hoạ bắt mắt của CD player với các điều khiển bao gồm play, stop, fast forward, rw, pause, điều khiển tốc độ trình diễn và tính năng giám sát packet

 Biểu diễn thông tin như thông lượng, số packet trên từng link  Cung cấp giao diện rê và thả cho việc tạo ra các topology.

Xgraph

dưới dạng đồ thị. Bạn có thể tạo các file output trong kịch bản Tcl của mình được xem như là dữ liệu cho Xgraph. Hình 4.4 mơ tả một cửa sổ của Xgraph.

Hình 4.4: Giao diện đồ họa người dùng của Xgraph

Hình 4.6: Nam file mơ tả chế độ Multicast

Hình 4.7: Module WiMAX trong kiến trúc NS-2

Module WiMAX được tích hợp vào kiến trúc sẵn có của một nút wireless trong NS-2.

Trong kiến trúc trên, một nút wireless bao gồm các thành phần: Traffic Generating Agent (address classifier, port classifier, agent protocol, agent routing), lớp LL (Link Layer), lớp MAC, hàng đợi và kênh vật lý. Các classifier chịu trách nhiệm phân phối các gói tương ứng với các agent. Agent protocol biểu diễn cho lớp application và agent routing biểu diễn cho lớp IP. Khi một packet đi từ agent protocol đến agent routing, agent routing sẽ đặt địa chỉ của đích vào gói và chuyển tiếp đến lớp LL. Lớp LL sử dụng giao thức phân giải địa chỉ ARP (Address Resolution Protocol) để xác định địa

chỉ MAC của đích. Lớp LL đặt địa chỉ MAC của đích vào gói và chuyển đến lớp MAC. Lớp MAC sẽ thực hiện các chức năng tương ứng và xác định thời điểm gửi gói trên kênh. Sau đó, chuyển gói đến lớp vật lý. Lớp vật lý chịu trách nhiệm gửi gói trên kênh wireless đến nơi nhận.

Module WiMAX thực hiện mô phỏng lớp con phần chung MAC chuẩn IEEE 802.16 trong NS-2. Cụ thể, các thành phần được thực thi trong module:

• Cơ chế cấp phát băng thơng GPC (Grant per Connection).

• UCD, DCD, DL-MAP, UL-MAP, RNG-REQ, RNG-RSP, BW-REQ. • Tạo và truyền MAC PDU (tại BS và SS), phân mảnh và đóng gói.

• Cơ chế lập lịch (trên kênh uplink, downlink) bốn kiểu dịch vụ (UGS, rtPS, nrtPS, BE).

Module thực thi lớp MAC IEEE 802.16 có vai trị tương tự như module IEEE 802.11 và được đặt trong cùng thư mục ~/mac trong NS-2.

EvalVid trong mơ phỏng NS-2

Hình dưới đây minh họa khung hoạt động đánh giá QoS cho luồng video thiết lập bởi công cụ bao gồm EvalVid và NS-2. Ba kết nối mô phỏng bao gồm MyTrafficTrace, MyUDP, và MyUDPSink được thực thi giữa EvalVid và NS-2. Giao diện được thiết kế để đọc file trace video hay tạo ra dữ liệu cần thiết để đánh giá chất lượng truyền video.

Hình 4.8: Khung hoạt động giữa EvalVid và NS-2

Cách tạo file bám vết Trace và cấu trúc file Trace

Để thực hiện lưu giử dấu vết ta thiết lập như sau:

set tracefd [open out.tr w] set namtrace [open out.nam w] $ns_ trace-all $tracefd

$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)

Đối với một trace giữa các liên kết hữu tuyến thì bao gồm các trường như hình 4.9:

Hình 4.9: Các trường xuất hiện trong một trace

1. Loại sự kiện là một trong bốn ký hiệu r, +, -, d tương ứng phù hợp với nhận (tại đầu ra của link), đã cho vào hàng đợi, đã xuất khỏi hàng đợi và bị mất.

2. Thời điểm xảy ra sự kiện 3. Cho node vào của link 4. Cho node ra của link

5. Loại packet (ví dụ như Tcp, CBR) 6. Kích thước packet

7. Cờ

8. Mã luồng

9. Địa chỉ nguồn trong dạng “node port” 10. Địa chỉ đích trong dạng “node port”

11. Số thứ tự gói tin trong giao thức lớp mạng 12. Id duy nhất của packet

Cịn đối với trace trong wireless thì có thể phân tích qua mẩu trace sau:

r 160.093884945 _6_ RTR --- 5 tcp 1492 [a2 4 6 800] ------- [65536:0 16777984:0 31 16777984] [1 0] 2 0

• Trường đầu tiên là một từ nằm trong r, s, f, D tương ứng với đã nhận, gửi, chuyển tiếp và bị mất.

• Trường thứ hai là thời gian • Trường thứ ba là số node

• Trường thứ tư để chỉ hoặc gói tin liên quan đến lớp MAC, hoặc AGT để chỉ một gói tin lớp truyền dẫn, hoặc RTR để chỉ một gói tin định tuyến và nó cũng có thể là IFQ.

• Sau các kí hiệu là đến số thứ tự các gói tin tổng thể (khác với số thứ tự của Tcp).

• Trường tiếp theo là thơng tin về loại gói tin. • Tiếp theo là kích cở của gói tin tính theo byte.

• Bốn số trong ngoặc vuông thứ nhất liên quan đến thông tin lớp MAC. Số thập lục phân đầu tiên a2(162 hệ thập phân) là thời gian mong đợi chuyển gói tin trong kênh vơ tuyến. Số thứ hai và thứ ba lần lượt là MAC-id của node gửi và node nhận, số thứ tư chỉ loại MAC.

• Các số trong ngoặc vuông thứ hai lần lượt là địa chỉ IP nguồn và đích, tiếp theo là TTL của gói tin.

Một phần của tài liệu Triển Khai IPTV Trên Công Nghệ WiMax (Trang 85 - 95)