1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo cơ sở truyền số liệu

23 215 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN VỀ NS-2

    • 1. Giới thiệu và cài đặt NS-2

      • 1.1 Giới thiệu về NS-2

      • 1.2 Cài đặt NS-2

      • 1.3 Chạy một chương trình NS-2

    • 2. Kiến trúc của NS-2

      • 2.1 Giới thiệu

      • 2.2 Các đặc tính của NS-2

    • 3. Các bước cơ bản trong mô phỏng kịch bản trong NS-2

      • 3.1 Khởi tạo và kết thúc

      • 3.2 Định nghĩa các nút và mạng liên kết

      • 3.3 Khởi tạo node

      • 3.4 Khởi tạo link

      • 3.5 Khởi tạo Network Agents

      • 3.6 Các loại traffic

      • 3.7 Các dịch vụ cơ bản trong internet

      • 3.8 Tracing

      • 3.9 Routing

      • 3.10 Mô phỏng một mạng không đây trong NS-2

  • CHƯƠNG 2: KẾT QUẢ MÔ PHỎNG CỦA BÀI TẬP LỚN

    • 1. Đề bài

    • 2. Chương trình mô phỏng

    • 3. Hình ảnh demo

Nội dung

Báo cáo cơ sở truyền số liệu

Mục Lục CHƯƠNG 1 TỔNG QUAN VỀ NS-2 1. Giới thiệu và cài đặt NS-2 1.1 Giới thiệu về NS-2 NS-2 là phần mền 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, được viết bằng ngôn ngữ C++ và Octcl. Bốn lợi ích lớn nhất của NS-2 phải kể đến 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 mô hình mạng lớn mà gần như không thể thực thi trong thực tế. Khả năng mô phỏng nhiều loại mạng khác nhau. Mặc dù NS-2 là phần mền mã nguồn mở có sẵn cho cả nền Window và Linux, nhưng trong bài tập này chúng em thực thi NS-2 trong môi trường Linux. 1.2 Cài đặt NS-2 Đầu tiên ta phải cài đặt hệ điều hành Linux, ở đây trong bài tập này sử dụng Linux Ubuntu 8.04 cho việc cài đặt NS-2.  Khởi động Ubuntu 8.04. Trong quá trình cài đặt phải đảm bảo việc kết nối với internet. Sau đó sao chép file ns-allinone-2.33.tar.gz vừa tải xong trong thư mục Home Folder.  Chúng ta thực hiện việc cập nhập cho hệ điều hành Ubuntu và cài đặt C, C++ complier. Chúng ta vào Applications/Accessories/Terminal. Lần lượt gõ từng lệnh sau đây. (Nếu có yêu cầu nhập password thi nhập vào password đăng nhập vào máy). 1. Sudo apt-get update 1 Sudo apt-get upgrade Sudo apt-get install build-essential Gcc-v Make-v Sau đó gõ lệnh tar-xzvf ns-allinone-2.33.tar.gz Di chuyển vào thư mục ns-allinone-2.33 bằng cách gõ lệnh: cd ns-allinone-2.33 Gõ lệnh tiếp theo: sudo apt-get install build-essential autoconf automake libxmudev. • Gõ lệnh ./install và chúng ta đã cài đặt xong. 2. 3. 4. 5. • • • 1.3 Chạy một chương trình NS-2 Để chạy một chương trình mô phỏng NS-2, di chuyển vào thư mục ns-2.33, thông qua Terminal gọi chương trình ns bằng lệnh ns . Ví dụ: để chạy file mô phỏng CSTSL.tcl trong thư mục ex trong ns-2 ta gõ như sau: Ns ns-allione-2.33/ns-2.33/tcl/ex/CSTSL.tcl 2. Kiến trúc của NS-2 2.1 Giới thiệu NS là một phần mền hướng đối tượng sử dụng hai ngôn ngữ C++ và OTcl. Phần dữ liệu và phần điều khiển được tách biệt. C++ cho phần dữ liệu: Xử lý mỗi gói tin, thực thi nhanh chóng, chi tiết hóa, bổ sung đầy đủ cho việc điều khiển, các thuật toán đối với bộ dữ liệu lớn. • OTcl cho phần điều khiển: - Mô phỏng các cấu hình cho kịch bản - Thực thi nhanh chóng, dễ dàng cấu hình lại - Thao tác đối với các đối tượng C++ hiện tại - Viết mã nhanh chóng và dễ dàng thay đổi • Dùng C++ để:  o o   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 thi bất kỳ việc gì mà cần phải 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. 2 Và dùng OTcl để:  Mô phỏng những thông số hay cấu hình thay đổi o Tham dò nhanh một số tình huống o 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 mà ta muốn bằng cách thao tác trên các đối tượng C++ đang tồn tại. 2.2 Các đặc tính của NS-2 NS-2 thực thi những tính 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 o Được phát triển bởi Sun Microsystems + UC Berkely (Dự án Daedalus). o Thuộc mặt đất (di động, ad hoc, GPRS, WLAN, BLUETOOTH), vệ tinh. o Chuẩn IEEE 802.11 có thể được mô phỏng, các giao thưc Mobile-IP và Ad      hoc như DSR, TORA, DSDV và AODV. Các agent truyền tải – UDP, TCP. Định tuyến (routing) Luồng packet (packet flow) Mô hình mạng (network topology) Các ứng dụng Telnet, FPT, Ping. Các packet tracing trên tất cả các link và trên các link xác định. 3. Các bước cơ bản trong mô phỏng kịch bản trong NS-2 3.1 Khởi tạo và kết thúc Một mô phỏng bắt đầu với câu lệnh: Set ns [new Simulator] Đây là dòng lệnh đầu tiên trong tập lệnh tcl. Dòng này khai báo một biến mơi dùng lệnh set. Dùng biến ns để có thể sử dụng tất cả các phương thức của lớp Simulator. Để lưu trữ dữ liệu mô phỏng và hiển thị kết quả mô phỏng chúng ta tạo file bằng cách sử dụng lệnh “open”. # open the trace file Set tracefile1 [open out.tr.w] $ns trace-all $tracefile1 3 #open the NAM trace.file Set namfile [open out.nam w] $ns trace-all $namfile Kết thúc chương trình được thực hiện bằng một thủ tục “finish” #Define a ‘finish’ procedure Proc finish {} { Global ns tracefile1 namfile $ns flush-trace Close $tracefile1 Close $namfile Exec nam out.nam & exit () } Cuối chương trình ns chúng ta sẽ gọi thủ tục finish và chỉ ra thời điểm kết thúc. Ví dụ: $ns at 125.0 “finish” Lệnh trên được dùng để gọi “finish” vào thời điểm 125 giây. Cuối cùng cho trình mô phỏng bắt đầu bằng lệnh: $ns run 3.2 Định nghĩa các nút và mạng liên kết Đầu tiên là quá trình thiết lập mạng cơ bản. NS script bắt đầu bằng việc tạo ra một instance cho đối tượng Simulator (đối tượng mô phỏng). Set ns [new Simulator]: Tạo instance của Simulator, gán vào biến ns. Dòng này sẽ thực hiện. - Khởi tạo định dạng packet. - Tạo bộ lập lịch (mặc đinh là Calendar scheduler – Bộ lập lịch thời gian). o Đối tượng ‘Simulator’ có các hàm thành viên thực hiện sau: - Tạo đối tượng gép như các node và các link. - Connect (nối) các đối tượng thành phần mạng đã được tạo lại với nhau (ví dụ như hàm attach-agent). • 4 - Gán giá trị cho các tham số cho các đối tượng thành phần mạng (thưởng cho các đối tượng ghép). Tạo các connection giữa các agent (ví dụ như tạo các connection giữa ‘tcp’ và ‘sink’). Xác định tuyến tùy chọn trình diễn NAM. V.v… Hầu hết các hàm thành viên dùng cho mục đích thiết lập mô phỏng (được đề cập đến như các hàm plumbing) và cho mục đích lập lịch. Các thực thi cho các hàm thành viên của đối tượng ‘Simulator’ được định vị trong file “ns-2/tcl/lib.ns-lib.tcl”. • • • • • • • $ns color fid color: gán màu các packet cho luồng có mã nhận dạng luồng fid. Hàm thành viên này của đối tượng Simulator được dùng cho việc mô phỏng, và không có tác dụng gì trên mô phỏng thực tế. $ns namtrace-all file-descriptor: Hàm thành viên này yêu cầu mô phỏng lưu lại các dấu vết mô phỏng vào trong định dạng đầu vào cho NAM. Đồng thời có thể cung cấp trên file mà trace (dấu vết) sẽ được ghi vào bằng lệnh $ns flush-trace. Tương tự, hàm thành viên trace-all dùng lưu trace theo định tuyến dạng chung. Proc finish{}: được gọi sau khi mô phỏng đã kết thúc. Trong hàm này các tiến trình post-simulation (mô phỏng thông báo được xác định). Set n0 [$ns node]: hàm thành viên node khởi tạo một node trong NS là đối tượng ghép bao gồm address (địa chỉ) và post classifiers (bộ phân loại cổng). User có thể tạo node bằng các tạo riêng đối tượng address và port classfier và nối chúng lại với nhau. Tuy nhiên các hàm thành viên của đối tượng Simulator đã thực hiện việc này rất đơn giản. $ns duplex-link node1 node2 bandwidth delay queue-type: tạo hai simplex link (liên kết đơn) với bandwidth và delay xác định tuyến, nối 2 node xác định lại với nhau. Trong NS, hàng đợi đầu ra của node được thực thi như một phần của link, vì vậy user nên xác định luôn queue-type khi khởi tạo link. Giống như node, link là đối tượng ghép, user có thể tạo và nối các link với các node. Mã nguồn link được tìm trong file “ns-2/tcl/lib/ns-lib.tcl” và “ns-2/tcl/lib/ns-link.tcl”. $ns queue-limit node1 node2 number: xác định giới hạn hàng đợi của hai simplex link kết nối node1 và node2 với nhau. $ns duplex-link-op node1 node2 …: dùng cho NAM. Quá trình tiếp theo thiết lập các agent như TCP, UDP: các nguồn traffic như FTP, CBR; connect các agent với các node và connect các nguồn traffic với các agent. • Set tcp [new Agent/TCP]: lệnh tạo ra một agent TCP, và đây cũng là cách tạo ra bất kỳ agent hay nguồn traffic nào. Các agent và các traffic chứa trong các đối 5 tượng cơ bản thực (không phải trong các đối tượng kép). Hầu như được thực thi trong C++ và được liên kết đến OTcl. Vì vậy, không có hàm thành viên của một đối tượng Simulator xác định là có thể tạo ra các instance của các đối tượng này. Để tạo được agent và nguồn lưu lượng thì user cần phải biết tên lớp của đối tượng này (Agent/TCP, Agent/TCPSink, Application/FTP v.v…). • $ns attach-agent node agent: hàm thành viên attach-agent gắn agent vào node. Hàm này sẽ gọi hàm thành viên attach của một node xác định tuyến, để gắn agent vào node đó. Vì vậy, user có thể làm tương tự, như $n0 attach $tcp chẳng hạn. Ngoài ra, một agent có thể dùng hàm attach của nó để gắn một nguồn traffic vào chính nó. • $ns connect agent agent2: hàm thiết lập liên kết luận lý giữa 2 agent, bằng cách thiết lập địa chỉ đích đến mạng của nhau và cặp địa chỉ cổng. Bây giờ giả sử tất cả các cấu hình của mạng đã được thực hiện. Tiếp theo là ghi kịch bản mô phỏng. Đối tượng Simulator hiện có nhiều hàm thành viên tập lịch. • $ns at time “string”: hàm này yêu cầu scheduler (bộ tập lịch) lập lịch cho “String” thực thi vào thời gian time. Trong NS, thực tế thì nguồn traffic không thực hiện truyền dữ liệu thật, nhưng nó lại thông báo cho agent phía dưới rằng nó có dữ liệu cần truyền. Khi đó agent sẽ tạo ra packet để truyền dữ liệu ấy đi. Cuối cùng là chạy mô phỏng bằng lệnh $ns run. Trong NS-2, một mạng máy tính bao gồm các node được nối với nhau bởi các link. Các event được lập lịch để truyền đi dọc theo các link, nghĩa là truyền giữa các node. Agent được gắn vào node để tạo các packet khác nhau (như agent TCP hay agent UDP). Traffic source (nguồn lưu lượng) chính là application được gắn vào agent. Kịch bản OTcl cho lập lịch sự kiện: Tạo bộ lập lịch, lập lịch sự kiện. Khởi động bộ lịch như sau: Set ns [new Simulator] $ns at $ns run 3.3 Khởi tạo node Đối tượng mô phỏng node được dùng để khởi tạo một node. Hai node được tạo với điều kiện n0, n1. Set n0 [$ns node] 6 Set n1 [$ns node] Để tạo liên tục 5 node, ta dùng cách sau: For {set i 0} {$i[...]... đường truyền dẫn từ server đến giao diện Wi-Fi của smartphone Giả thiết server gửi xuống trung bình mỗi bức ảnh mỗi 3s, dung lượng ảnh không lớn hơn 1 MByte Mỗi bức ảnh điều được gửi đi kèm theo 1 đoạn văn bản gồm ít nhất 100 ký tự 15 1 Thu thập số liệu mô phỏng vẽ đồ thị biểu diễn khả thông của đường truyền giữa 2 3 4 2 server và smartphone Thu thập số liệu mô phỏng vẽ đồ thị biểu diễn độ trễ truyền. .. 1 Thu thập số liệu mô phỏng vẽ đồ thị biểu diễn khả thông của đường truyền giữa 2 3 4 2 server và smartphone Thu thập số liệu mô phỏng vẽ đồ thị biểu diễn độ trễ truyền các gói dữ liệu từ server đến smartphone Thu thập số liệu mô phỏng vẻ đồ thị biểu diễn tỉ lệ, tỉ lệ chiếm dụng bộ đệm của máy tính xách tay tại giao diện Wi-Fi Tăng kích thước ảnh lên, thực hiện đo lường tại các mục 1 và 3, vẽ đồ thị... -initialEnergy (in Joules) -rxPower (in W) -txPower (in W) o o o o -agentTrace ON or OFF -routerTrace ON or OFF -macTrace ON or OFF -movementTrace ON or OFF Hầu hết các tham số là các giá trị đơn giản Cho phép giá trị của các tham số -topoInstance Topo mạng là một đối tượng định hình phải được khởi tạo Ví dụ: Set topo [new Topography]; # tạo đối tượng định hình mạng $topo load_flatgrid 500 500 ; # tạo... trường, mạng hoặc các node đó là quản lý toàn bộ có thể, nhưng nó không tạo nên để biết các chi tiết cụ thể trong mô phỏng o Gần đây, GOD định hướng các lưu trữ như là:  Số thông thường của các node di động (mobilenodes)  Một bảng của số ngắn nhất của các hop khi yêu cầu tìm kiếm từ 1 node này tới 1 node khác o Thông tin của hop tiếp theo là thông thường được tải vào trong đối tượng GOD từ việc di chuyển... kiểu(type) cho mỗi của các thành phần mạng đó o Thêm vào đó, ta cần định nghĩa cho các tham số khác như:  Loại antenna  Mô hình radio-propagation  Kiểu của giao thức định tuyến Ad-hoc sử dụng bởi các node di động (mobilenodes) v.v… o • Cấu hình của một node không dây(wireless) o Khởi tạo wireless nodes theo cách khai báo sau: Set ns_ [new Simulator]; # khởi tạo 1 đối tượng mô phỏng NS Set n1 [ns_ node];... tượng mô phỏng NS Set n1 [ns_ node]; # Tạo 1 node Wireless o Tuy nhiên: trước khi tạo 1 node wireless ta phải lựa chọn đầu tiên (cấu hình) là các tham số cấu hình node để “trơ thành” 1 node không dây(wireless node) o NS-2 thường lựa chọn (cấu hình) các tham số cấu hình của node là nodeconfig và nó thường sử dụng cho như sau: set ns_ [new Simulator] ;# Create a NS simulator object $ns_ node-config \ -llType ... agent Start: khởi động Application/FTP truyền liệu Stop: ngưng truyền liệu Produre n: n đệm số packet truyền Produremore n: n giá trị số packet vừa tăng truyền Send n: tương tự produremore, gửi... Thu thập số liệu mô vẽ đồ thị biểu diễn khả thông đường truyền server smartphone Thu thập số liệu mô vẽ đồ thị biểu diễn độ trễ truyền gói liệu từ server đến smartphone Thu thập số liệu mô vẻ... time Trong NS, thực tế nguồn traffic không thực truyền liệu thật, lại thông báo cho agent phía có liệu cần truyền Khi agent tạo packet để truyền liệu Cuối chạy mô lệnh $ns run Trong NS-2, mạng

Ngày đăng: 06/10/2015, 00:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w