Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Cơ sở dữ liệu Báo cáo cơ sở truyền số liệu...

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

.DOCX
24
304
67

Mô tả:

Báo cáo cơ sở truyền số liệu
Mục Lục CHƯƠNG 1 TỔNG QUAN VỀ NS-2.......................................................................................................2 1. Giới thiệu và cài đặt NS-2.............................................................................................................2 1.1 Giới thiệu về NS-2..................................................................................................................2 1.2 Cài đặt NS-2...........................................................................................................................2 1.3 Chạy một chương trình NS-2................................................................................................3 2. Kiến trúc của NS-2............................................................................................................................3 2.1 Giới thiệu.................................................................................................................................3 2.2 Các đặc tính của NS-2............................................................................................................4 3. Các bước cơ bản trong mô phỏng kịch bản trong NS-2..................................................................4 3.1 Khởi tạo và kết thúc................................................................................................................4 3.2 Định nghĩa các nút và mạng liên kết.....................................................................................5 3.3 Khởi tạo node..........................................................................................................................7 3.4 Khởi tạo link............................................................................................................................8 3.5 Khởi tạo Network Agents........................................................................................................8 3.6 Các loại traffic..........................................................................................................................9 3.7 Các dịch vụ cơ bản trong internet........................................................................................11 3.8 Tracing..................................................................................................................................12 3.9 Routing.................................................................................................................................12 3.10 Mô phỏng một mạng không đây trong NS-2.......................................................................13 CHƯƠNG 2: KẾT QUẢ MÔ PHỎNG CỦA BÀI TẬP LỚN...............................................................16 1. Đề bài............................................................................................................................................16 2. Chương trình mô phỏng..............................................................................................................17 3. Hình ảnh demo.............................................................................................................................21 1 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 2. Sudo apt-get upgrade 3. Sudo apt-get install build-essential 4. Gcc-v 5. 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 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. 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: 3  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à Adhoc 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 #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 4 $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). - 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”. 5  $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 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. 6 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
- Xem thêm -

Tài liệu liên quan