User Tag List

+ Trả lời chủ đề
Trang 1/3 123 CuốiCuối
Hiện kết quả từ 1 tới 10 của 26

Chủ đề: OMNeT++ for beginer

  1. #1
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định OMNeT++ for beginer

    1. Giới thiệu chung
    OMNet++ là cụm từ viết tắt của: Objective Modular Network Tested in C++. Chức năng chính của nó là:

     Mô phỏng lưu lượng của một mạng viễn thông
     Mô phỏng các giao thức
     Mô phỏng mạng có cấu trúc kiểu hàng đợi
     Mô phỏng mạng đa xử lý và phân bố rời rạc các hệ phần cứng
     Kiểm tra tính hợp lệ của cấu trúc phần cứng
     Đánh giá hoạt động của những hệ thống phần mềm phức tạp
     Và những hệ thống sự kiện rời rạc khác.....


    Trong bài viết này sẽ giới thiệu về 2 chức năng đầu tiên của OMNet++ dựa trên những kinh nghiệm của tôi trong quá trình viết một chương trình mô phỏng phục vụ cho đồ án tốt nghiệp của mình. Qua quá trình sử dụng nó tôi thấy có những ưu điểm sau:

    - Đơn giản trong việc sử dụng và lập trình vì chạy trên Windows và sử dụng ngôn ngữ C++

    - Có thể vừa dùng để mô phỏng mạng viễn thông (mạng báo hiệu) và mạng máy tính (IP).

    - Giao diện mô phỏng đồ họa đẹp và có nhiều lựa chọn cho tốc độ xử lý sự kiện trong mạng

    -.....

    Về nhược điểm: (tôi chưa sử dụng một chương trình nào khác nên chưa thể rút ra nhược điểm của nó )

    2. Tìm hiểu chức năng của OMNet++ thông qua một ví dụ ( chương trình mô phỏng mạng toàn quang định tuyến theo bước sóng)

    Các giao diện của một chương chình mô phỏng hoàn thiên khi viết trên nến của hệ mô phỏng OMNeT++ như sau:

    Giao diện người điều khiển



    Giao diện hoạt động của mạng



    Cấu trúc của một nút mạng (phần tử không thể thiếu của bất kỳ một mạng nào)

    Kẻ thù lớn nhất của tôi là sự lười biếng và tự mãn
    Điểm yếu lớn nhất của tôi là sự thiếu tự tin và kém cỏi

    canhnguyen@svbkol.org

  2. Tớ cảm ơn Aprilsnow đã chia sẻ.


  3. #2
    svBK's Member Avatar của Đông ki sốt
    Tham gia ngày
    Aug 2004
    Bài gửi
    25

    Mặc định

    Hic mừng quá. Đúng thứ em cần đây rồi. Bác có thể hướng dẫn bọn em về OMNet++ được không. Em biết bác bây giờ rất bận nhưng vài nét cơ bản về OMNet thì chắc là được bác nhỉ.

  4. #3
    Quân Nhân Danh Dự Avatar của Bandani
    Tham gia ngày
    Feb 2003
    Bài gửi
    599

    Mặc định

    Chú cần phải xác định xem chú định dùng omnetpp làm cái gì? rồi bọn anh tư vấn cho. Rồi anh sẽ gửi cho chú bộ cài OmNett++ 2.3. Và chú vào site omnetpp.org tìm hiểu về nó đi, đọc tutorial về nó. Lúc lập model có gì khúc mắc thì bọn anh sẽ giúp chứ tutor ngay từ ABC thì không hiểu quả. Năm ngoái bọn anh lúc đầu chẳng có ai hướng dẫn mãi sau mới có một ông bên Ý một chú bên TQ giúp còn làm được, huống hồ hậu sinh khả úy.
    Vũ Trụ Nội Mạc Phi Phận Sự www.traveltovietnam.cc www.bookilook.com

  5. #4
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định Các bước bắt đầu một chương trình mô phỏng của riêng bạn

    3. Cấu trúc lập trình của một chương trình mô phỏng dùng OMNeT++

    - Trước hết trong máy phải cài chương trình VC++ để lập trình mọi thao tác trên đó.

    - Cấu trúc liên kết của một chương trình mô phỏng


    • *.ned là các file mô tả topo mạng cũng như cấu trúc của các modul, nó sự dụng ngôn ngữ NED (NEwork Description ), là ngôn ngữ chuyên biệt dùng riêng cho OmNet++. Sự phát triển tiếp theo của NED là GNED (Graphic NED) làm cho việc mô tả topo mạng được trực quan hơn bằng cách dùng các công cụ đồ hoạ để mô tả. Các file ned sau đó được NEDC (NED compiler) dich sang code C++ để mô tả cấu trúc mạng sang ngôn ngữ C++ dưới dạng file *_.cc.
    • Các file xử lý của các simple moduls là phần cốt lõi khi viết chương trình mô phỏng và được viết bằng ngôn ngữ C++ bằng cách kế thừa các lớp có sẵn của OmNet++, người viết triển khai các hoạt động của mạng như định tuyến, xử lí gói tin đến và đi, xác định hành vi của các simple modul được mô tả trong *.ned khi có sự kiện xảy ra với nó….
    • Thư viện lõi của chương trình mô phỏng được cung cấp bởi OmNet++ nó bao gồm rất nhiều các lớp và các hàm có sẵn phục vụ cho chương trình mô phỏng như các lớp cSimplemodul, cMessage..., các hàm ngẫu nhiên… Thư viện giao diện người dùng cung cấp giao diện cho chương trình mô phỏng. OmNet++ với các phiên bản gần đây sử dụng hai kiểu giao diện là giao diện dòng lệnh cmd (command) và giao diện đồ hoạ dựa trên tcl/tk. Giao diện đồ hoạ rất trực quan nên được ưa dùng hơn. Sau khi dịch và liên kết ta được một chương trình mô phỏng dựa trên nền OmNet++.
    • File omnetpp.ini để khởi động các giá trị cần thiết. omnetpp.ini do người lập trình viết, nó rất quan trọng để chạy một chương trình mô phỏng với các tham số được thay đổi để có được kết quả thống kê mong muốn.
    • Cuối cùng là các file kết quả bao gồm file *.vec là các file vector, nó là các biến thay đổi theo thời gian trong quá trình mô phỏng, giá trị của biến và thời gian tương ứng được lưu và file này. Trong quá trình viết code sẽ xác định biến nào được lưu. File *.sna phục vụ cho quá trình sửa lỗi. File *.sca (scalar file) lưu các giá trị thông kê có được sau khi kết thúc mô phỏng, ví dụ như số cuộc gọi đã thực hiện số cuộc gọi bị từ chối… Để xử lí kết quả thống kê đạt được, ta có thể viết một chương trình nhỏ hoặc sử dụng các công cụ có sẵn. OmNet++ cung cấp chương trình Plove để vẽ các file *.vec, còn đối với các file *.sca ta có thể dùng một chương trình tính toán bất kì. Để xử lí kết quả thông kê của chương trình mô phỏng RWA các tác giả dùng excel để tính toán và dùng gnuplot để vẽ đồ thị. Ví dụ đồ thị xác suất tắc nghẽn ững với số Erlang như sau:

    Lần sửa cuối bởi Aprilsnow; 28-07-2005 lúc 10:52 PM

  6. #5
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định Cấu trúc của một node mạng được mô tả trong OMNeT++

    - Tùy thuộc vào độ phức tạp của mạng mà bạn định thực hiện môt phỏng mà node mạng có những thành phần con trong nó.

    - Nhìn chung một node mạng để mô phỏng (và cũng tương tự như cấu trúc của một node mạng thật) bao gồm 4 thành phần chính:
    + Khối Receiver: Khối nhận bản tin hay yêu cầu từ bên ngoài vào node
    + Khối Processor: Khối xử lý yêu cầu từ bên ngoài. Trước hết nó kiểm tra đích đến của bản tin. Nếu bản tin hướng tới nó thì chỉ việc tiếp nhận nó. Nếu không phải thì nó thực hiện định tuyến tới Node tiếp theo hoặc căn cứ vào thông tin điều khiển của bản tin mà forword đến node tiếp theo.

    + Khối Transfer: Forward bản tin đến đúng đích mà khối processor đã chỉ ra

    + Khối Generator: Phát sinh yêu cầu cuộc gọi với đích đến theo xác suất đều.

    - Mô tả cấu trúc node trogn Omnet++: Như đã phân tích ở trên một node mạng mô phỏng thường có 4 khối chức năng chính. Để thuận tiện cho việc mô tả cấu trúc mạng ta chia ra làm 2 phần chính được thực hiện ở 2 file khác nhau. File 1 sẽ mô tả cấu trúc của 4 khối chức năng với số các cổng vào và cổng ra của mỗi khối, các thông số của khối như khối đó thuộc node nào trong mạng,.....

    Ví dụ nội dung một file mô tả cấu trúc của 4 khối chức năng đó như sau:

    simple trans
    parameters:
    nodeID : numeric,
    num_node : numeric,
    convert : numeric,
    k : numeric,
    nwavelength : numeric;


    gates:
    in: tingen;
    in: tinpro;
    in: tinrou;
    out: tout[];
    endsimple
    simple recei
    parameters:
    nodeID : numeric,
    num_node : numeric,
    convert : numeric,
    nwavelength : numeric;

    gates:
    in: rin[];
    out: rout;
    endsimple
    simple proce
    parameters:
    nodeID : numeric,
    num_node : numeric,
    convert : numeric,
    nwavelength : numeric;

    gates:
    in: pin;
    out: pout;
    endsimple
    simple gene
    parameters:
    nodeID : numeric,
    holdTime : numeric,
    interArrivalTime : numeric,
    num_node : numeric,
    convert : numeric,

    nwavelength : numeric;

    gates:
    out: gout;
    endsimple
    File 2 mô tả cấu trúc và mối liên hệ của các khối chức năng với nhau trong cùng một node.



    Ta thực hiện việc kết nối đó theo ngôn ngữ NED của Omnet như sau:

    import
    "file 1.ned";



    module node //
    parameters:
    nodeID : numeric const,
    nwavelength : numeric,
    num_node : numeric,
    convert : numeric, //0: no converter equiped
    //1: has converter equiped
    k : numeric;

    gates:
    in: nin[];
    out: nout[];

    submodules:
    receiver: recei; //
    parameters:
    nodeID = ancestor nodeID,
    num_node = ancestor num_node,
    convert = ancestor convert,
    nwavelength = ancestor nwavelength;

    gatesizes:
    rin[num_node];
    display: "p=92,108;b=72,40";
    generator: gene; //
    parameters:
    nodeID = ancestor nodeID,
    num_node = ancestor num_node,
    convert = ancestor convert,
    nwavelength = ancestor nwavelength,
    holdTime = input,

    interArrivalTime = input;
    display: "p=276,108;b=72,40";
    processor: proce; //
    parameters:
    nodeID = ancestor nodeID,
    num_node = ancestor num_node,
    convert = ancestor convert,
    nwavelength = ancestor nwavelength;
    display: "p=92,196;b=72,40";
    transfer: trans;
    parameters:
    nodeID = ancestor nodeID,
    num_node = ancestor num_node,
    convert = ancestor convert,
    k = ancestor k,
    nwavelength = ancestor nwavelength;
    gatesizes:
    tout[num_node];
    display: "p=272,196;b=64,40";
    connections nocheck:
    receiver.rout --> processor.pin;
    processor.pout --> transfer.tinpro;
    generator.gout --> transfer.tingen;

    for i=0..num_node-1 do
    transfer.tout[i] --> nout[i]; //
    endfor;
    for i=0..num_node-1 do
    receiver.rin[i] <-- nin[i]; //
    endfor;
    display: "p=18,10;b=356,276";
    endmodule

  7. #6
    svBK's Member Avatar của Đông ki sốt
    Tham gia ngày
    Aug 2004
    Bài gửi
    25

    Mặc định

    Được cả hai bác hướng dẫn thế này thì còn gì bằng. Ngày trước làm về điện tử bây giờ làm về viễn thông phải tìm hiểu từ đầu nên lúc đầu khó quá bác ạ. Không biết ngày trước vác bác có cảm thấy nản như em bây giờ không? Em mới cài OMNet, bây giờ đang đọc tutorial của nó. Mông lung quá. Hic hic. Hy vọng thời gian tới em sẽ có nhiều cái để hỏi các bác

  8. #7
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định

    Quote Nguyên văn bởi quangnv_bk
    Được cả hai bác hướng dẫn thế này thì còn gì bằng. Ngày trước làm về điện tử bây giờ làm về viễn thông phải tìm hiểu từ đầu nên lúc đầu khó quá bác ạ. Không biết ngày trước vác bác có cảm thấy nản như em bây giờ không? Em mới cài OMNet, bây giờ đang đọc tutorial của nó. Mông lung quá. Hic hic. Hy vọng thời gian tới em sẽ có nhiều cái để hỏi các bác
    Học VT thì có vẽ nó trừu tượng hơn là học điện tử. Hơn nữa không phải ai cũng có điều kiện tiếp cận các mạng viễn thông để mà thực tập. Trong khi đó linh kiện điện tử và các thứ liên quan có thể tìm được ở chợ giời và Hàng trống. Cuối tuần tớ sẽ viết tiếp loạt bài về Omnet++

  9. Tớ cảm ơn Aprilsnow đã chia sẻ.


  10. #8
    Stanley Ipkiss Avatar của The Fool
    Tham gia ngày
    Jul 2003
    Bài gửi
    867

    Mặc định

    Cái omnet++ này làm hết cho mình rồi còn gì nữa Nó có khả năng linh hoạt cho mình tự cài đặt các giải thuật của mình không
    Học như nghịch thủy hành châu, bất tiến tất thoái.
    Tâm như bình nguyên mục mã, dị phóng nan truy.


  11. #9
    Laziness is killing me... Avatar của Aprilsnow
    Tham gia ngày
    Oct 2002
    Bài gửi
    1.187

    Mặc định

    Quote Nguyên văn bởi Sgt. Pepper
    Cái omnet++ này làm hết cho mình rồi còn gì nữa Nó có khả năng linh hoạt cho mình tự cài đặt các giải thuật của mình không
    Thế nào là làm hết? Cấu trúc mạng thế nào? Quan hệ giữa các khối ra làm sao? Thiết lập gói tin, truyền gói tin, xử lý gói tin thế nào là do lập trình cả đấy. Nói tóm lại OMNET cung cấp cái gì

    1. Xác suất phân bố cuộc gọi nó tự phân bố theo luật poison (xác suất thiết lập gói tin của mỗi node thì tự người dùng lập ra)

    2. Giao diện đồ họa với các chức năng chạy chương trình, dừng chương trình, các thông số cơ bản: số gói tin đã tạo, số gói tin đang xử lý,..

    3. Một ngôn ngữ mô tả mạng NED (còn thế nào thì người dùng tự viết lấy nhé)

    4. Các function xử lý của mỗi khối trong một node (trong đó viết cái gì thì người dùng cũng tự viết thôi)

    5. Ngôn ngữ mô tả cấu trúc gói tin (thành phần thế nào thì người dùng tự định nghĩa)

    Nói tóm lại nó cung cấp cho ta những gì cơ bản và chung nhất của một bộ mô phỏng. Còn từ cái đó xây ra cái gì là việc của người dùng. Cũng giống như nó cung cấp gạch rồi. Bi giờ các bác đi mà xây cái nhà của mình. Chứ không phải nó làm sẵn căn nhà. Các bác chỉ việc quét vôi ve rồi kê nội thất đâu nhé

  12. Tớ cảm ơn Aprilsnow đã chia sẻ.


  13. #10
    binhjuventus
    Guest

    Mặc định

    Quote Nguyên văn bởi Sgt. Pepper
    Cái omnet++ này làm hết cho mình rồi còn gì nữa Nó có khả năng linh hoạt cho mình tự cài đặt các giải thuật của mình không
    Câu hỏi này kiểu như MATLAB làm cho mình tất rồi, cần gì phải làm nữa đâu :biggrin:

    Thực ra, theo tớ, bộ công cụ mô phỏng nào cũng thế, nó chỉ cung cấp cho mình các viên gạch, xi măng, cát, sỏi (thậm chí có cái còn cả mảng bê tông :2) ) Việc sắp xếp, trộn cát với xi măng thế nào là ở mình, kiến trúc ngôi nhà thế nào là ở mình, việc xây dựng dựng nó lên cũng là của mình

    Mỗi lĩnh vực có những công cụ riêng, tớ đọc cái OmNet này, thú thật, cũng chỉ để biết là ở trên đời cũng tồn tại một cái như thế chứ k dùng nên cũng chẳng để ý.

    Dạo này, vô công rồi nghề đang mò mẫm cái Proteus, thấy bọn nước ngoài khen hay nhưng mà mình thì chả biết gì

+ Trả lời chủ đề
Trang 1/3 123 CuốiCuối

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Hỏi về OMNET++
    Gửi bởi franklamparden trong mục Lập Trình
    Trả lời: 6
    Bài cuối: 03-04-2010, 08:38 AM
  2. OMNET++ Ai biết chỉ dùm
    Gửi bởi mabu trong mục Mạng máy tính
    Trả lời: 4
    Bài cuối: 20-10-2006, 08:43 AM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube