Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Hướng dẫn cài đặt NS-2 để mô phỏng MPLS-TE

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #46
    Originally posted by bahai View Post
    bạn có thể giải thích cho mình về các tham số trong lệnh $ns constraint-routing được không, xin cảm ơn trước.
    Đây là lệnh gọi thủ tục tự tạo constraint-routing. Các tham số:
    + lspid: số id của LSP cần được chọn đường ràng buộc
    + sLSR: nút LSR đầu đường LSP (ingress-LER)
    + dLSRid: số id của LSR cuối đường LSP (egress-LER)
    + bw: băng thông ràng buộc để chọn đường
    + SPrio: mức ưu tiên thiết lập LSP của traffic trunk
    + HPrio: mức ưu tiên cầm giữ LSP
    Sprio và HPrio thể hiện thuộc tính lấn chiếm (preemption) của traffic trunk :)

    proc constraint-routing { lspid sLSR dLSRid bw SPrio HPrio } {
    set ns [Simulator instance]
    set sLSRmodule [$sLSR get-module "MPLS"]

    # Chon duong rang buoc theo thuoc tinh BW
    set er [$sLSRmodule constraint-based-routing $dLSRid $bw]

    if {$er != -1} {
    set msg " [string range [$ns now] 0 3]s: Ket qua dinh tuyen LSP_$lspid: ER=$er. Bao hieu CR-LDP voi SPrio/HPrio=$SPrio/$HPrio ..."
    puts $msg
    $ns trace-annotate $msg

    # Thiet lap CR-LSP: {fec er lspid TRate Bucket_Size Packet_Size SPrio HPrio}
    $sLSRmodule setup-crlsp $dLSRid $er $lspid $bw 3000B 600B $SPrio $HPrio
    } else {
    set msg " [string range [$ns now] 0 3]s: Ket qua dinh tuyen LSP_$lspid: ER= NO PATH !"
    puts $msg
    $ns trace-annotate $msg
    }
    }


    Originally posted by lipper View Post
    [ATTACH]763[/ATTACH]
    cac ban giup minh voi ? sao moi lan chay cygwin thi bi bao loi
    "bash :$ '\r' command not found
    Xóa thư mục ngodinminh trong /home rồi chạy lại cygwin, edit lại file .bashrc

    Comment


    • #47
      rất cảm ơn huonglan32 đã nhiệt tình hướng dẫn

      Comment


      • #48
        Hix, em có mở 1 topic nhờ các bác giúp đỡ mà hổng có ai reply hết à, tội em quá :(( .
        Thôi em đành mạn phép post thêm ở đây, mong các bác giúp đỡ.
        Chả là em đang nghiên cứu về quản lý hàng đợi tích cực( active queue management) cụ thể là các thuật toán chống tắc nghẽn như RED, WRED,...
        Bác nào đã làm qua cái này có tài liệu thì share cho em với.
        Em cũng đang gặp vấn đề ở phần lập trình mô phỏng RED trong ns-2 nữa chứ, các bác giúp em với :((

        Comment


        • #49
          Huonglan32 ơi, bạn cho mình biết password luận văn pdf của bạn được không? Thank nhìu.
          Rất vui khi được giao lưu cùng các bạn.

          Comment


          • #50
            huonglan32 ơi cho mình biết password luận văn pdf của bạn nhé. Thank kìu.
            Rất vui khi được giao lưu cùng các bạn.

            Comment


            • #51
              Mình làm đến đây rồi:

              Chạy Xwindow : c:\cygwin\usr\X11R6\bin\startxwin.bat
              Chạy Cygwin. Tại dấu nhắc Cygwin, gõ dòng lệnh sau để kiểm tra:
              ns /ns-allinone-2.32/ns-2.32/tcl/ex/mns_v2.0/test-constraint-routing.tcl
              Nếu bạn cài đặt đúng, kết quả mô phỏng sẽ xuất hiện:

              --> The result of constraint-based routing for lspid 1100 : Explicit Route=1_3_5_7_9
              o The CR-LSP of lspid 1100 has been just established at 0.083327999999999999
              --> The result of constraint-based routing for lspid 1200 : Explicit Route=1_2_4_6_8_9
              o The CR-LSP of lspid 1200 has been just established at 0.30470399999999997
              --> The result of constraint-based routing for lspid 1300 : Explicit Route=1_3_4_6_5_7_8_9
              o The CR-LSP of lspid 1300 has been just established at 0.54732304761904738
              --> The result of constraint-based routing for lspid 1400 : Explicit Route= No path


              Và cho kết quả như vậy. Xong rồi làm thế nào tiếp ấy nhỉ? dùng các bài của bạn huonglan32 như thế nào đây? chương trình chạy như thế nào? Xgraph ở đâu? làm sao để cho chúng hiện kết quả như trong luận văn của bạn? thế chỉ cần lập trình như trong các bài ấy thôi hả? không phải cấu hình router à? kính mong các bạn và huonglan32 tiếp tục giúp đỡ. Xin cảm ơn rất nhiều!

              Comment


              • #52
                Chép file source (ví dụ: bai2.tcl) vào thư mục mà Cygwin nhìn thấy được. cd vào thư mục đó, gõ: ns bai2.tcl

                xgraph và nam được gọi luôn trong file source roài :)

                Riêng cửa sổ nam phải bấm nút Play để nó thể hiện trực quan mô phỏng.



                Không cần phải cấu hình router nào hết. Chỉ cần chỉ định bao nhiêu nút router, loại gì, đấu nối với nhau thế nào. Cái khỏe của NS là ở chổ đấy, chứ phải cấu hình toàn bộ như lab thật thì nội debug không cũng đủ chết.
                Attached Files
                Last edited by huonglan32; 29-12-2007, 11:52 PM.

                Comment


                • #53
                  Originally posted by thiensu2020
                  email cua minh la thiensu2020@yahoo.com, bạn oi ban giúp mình với, trong phần mô phỏng Hoạt động lấn chiếm (Preemption) phần hiển thị Xgraph có một chỗ mình không hiểu đó là sau khi luồng 2 ngưng truyền thì đáng lẽ luồng 1 phải lên 0.8M chứ tại sao nó lại chạy lên tới hơn 1M????Trong mô hình Haskin cũng tương tự tại sao nó lại có phần đò thị vượt lên trên sau khi liên kết 5_7 được khôi phục lại lúc 3.5s???.
                  Ah, mà bạn giải thích sự khác nhau giữa xgraph của Makam và Haskin cho mình với, tại vì mình làm lệnh "rtmodel-at 2.5 up $LSR5 $LSR7" ns2 nó không hiểu nó cứ báo lỗi ah????

                  Bạn ơi bạn giúp mình với thứ hai này mình bảo vệ rùi,bạn giải thích mình với. Ah mà bạn có thể share cho mình mấy câu trả lời mà bạn đã trả lời trong lúc bạn bảo vệ được không vậy????
                  Làm ơn giúp mình với, please help me....
                  Mong rằng mình sẽ nhận được email reply của bạn vào ngày mai mình chờ hồi âm của bạn lắm lắm đó. Cảm ơn bạn nhiều nhiều nhen!!!!!
                  Bạn thắc mắc như thế là hiểu bài rồi đấy :)

                  Trong bài lấn chiếm, lý do luồng 1 vọt lên tới 1M khi luồng 2 ngưng truyền: trước khi đưa ra đường truyền thì luồng nào cũng nằm trong các hàng đợi của router. Trong lúc luồng 1 bị lấn chiếm, nó bị ứ lại trong hàng đợi của router số 7 và khi hàng đợi tràn thì nó bị rớt gói. Khi luồng 2 ngừng thì gói của luồng 1 đang ứ trong hàng đợi được dịp tuôn ra và chiếm hết băng thông 1M của link ra. Có thể kiểm chứng điều này: bạn đặt thời gian stop mô phỏng dài hơn (ví dụ 20s) thì sẽ thấy sau khi bùng phát lên 1M một lúc thì nó sẽ trở về lại tốc độ 0.8M ban đầu vì gói ứ đọng trong hàng đợi đã được đưa ra hết.


                  Xgraph ở các bài khôi phục cũng có chổ lưu lượng tăng đột biến sau khi liên kết 5-7 phục hồi. Lý do được giải thích khi chạy hoạt hình trong cửa sổ nam. Bạn để ý là sau khi phục hồi link 5-7 dữ liệu đi về router số 9 theo nhánh dưới (R1-R3-R5-R7-R9) và một số gói còn sót lại chưa tới đích ở nhánh trên (R1-R2-R4-R6-R8-R9). Do gói từ hai nhánh nhập thành một tại R9 nên khi đến đích tạo ra gai đột biến trên đồ thị.

                  NS2 báo lỗi thì kiểm tra lại cách cài đặt, chứ code của 2 bài đó đều OK.
                  Lưu ý bài Haskin không có gai đột biến lưu lượng. Đây là bug của module mpls. Khi link 5-7 khôi phục thì đáng lẽ nó phải chuyển lưu lượng trở lại đường ban đầu nhưng ở đây nó lại vẫn tiếp tục truyền theo đường dự phòng nên không tạo ra đột biến như các bài khôi phục khác. Thầy có hỏi thì giải thích như thế.

                  Các câu hỏi thầy phản biện đã hỏi mình:

                  1. Nêu quá trình hình thành trung kế lưu lượng?

                  Trả lời: Các packet đến ỉngess-LER phân loại vào các FEC, 1 hoặc nhiều FEC có cùng các yêu cầu về QoS và cần đi ra ở cùng một egress-LER thì được đưa vào 1 traffic trunk. Sau khi hình thành traffic trunk mới chạy giải thuật định tuyến ràng buộc để tìm đường. Tìm được đường xong thì mới báo hiệu để thiết lập LSP theo đường đó. Thiết lập xong LSP thì gán traffic trunk vào LSP đó và kích hoạt traffic trunk để nó chuyển lưu lượng.

                  2. Mô tả các kiểu hàng đợi của router dùng trong các bài mô phỏng?
                  Phải mô tả các kiểu hàng đợi Drop Tail, CBQ.

                  3. Nêu những hiểu biết về mạng NGN của VNPT?
                  Cái này biết gì thì nói đấy. Mạng trục (lớp chuyển tải) mạng NGN của VNPT sử dụng IP/MPLS.

                  Một số câu hỏi phụ khác nhưng quên rồi.
                  Chúc bạn "lên thớt" đạt kết quả tốt.

                  Comment


                  • #54
                    Cám ơn bạn huonglan32 da tận tình giúp đỡ, cảm ơn bạn rất nhiều! mình đã làm theo hưóng dẫn nhưng vẫn chưa được. USer của mình login vao là SIR LONG, có khoảng trắng ở giữa. mình định cài lại nhưng khi chạy thử nó vẫn cho ra kết quả như vậy, nên mình tiếp tục làm tiếp:

                    --> The result of constraint-based routing for lspid 1100 : Explicit Route=1_3_5_7_9
                    o The CR-LSP of lspid 1100 has been just established at 0.083327999999999999
                    --> The result of constraint-based routing for lspid 1200 : Explicit Route=1_2_4_6_8_9
                    o The CR-LSP of lspid 1200 has been just established at 0.30470399999999997
                    --> The result of constraint-based routing for lspid 1300 : Explicit Route=1_3_4_6_5_7_8_9
                    o The CR-LSP of lspid 1300 has been just established at 0.54732304761904738
                    --> The result of constraint-based routing for lspid 1400 : Explicit Route= No path


                    Mình đã làm như huớng dẫn tiếp theo của bạn, mình ko biết là các bài của bạn có phải đổi đuôi tcl theo chương trình j ko? mình chỉ load về và đổi đuôi txt thành .tcl bằng cách rename thông thường thôi. sau đó mình copy file bai1.tcl vào thư mục gốc C:\cygwin. Sau đó mình chạy Cygwin và nó báo như sau: (SIR LONG :là user login, bk-6cbe3bc18cf8: là tên máy tính mình)

                    SIR LONG@bk-6cbe3bc18cf8 /cygdrive/c/cygwin
                    $ ns bai1.tcl
                    couldn't execute "clear": no such file or directory
                    while executing
                    "exec clear >@ stdout"
                    <file "bai1.tcl" line 188>

                    Như vậy là lỗi j, mình rất mong hồi âm từ bạn, mình cũng sắp bảo vệ rồi, chẳng còn thời gian nữa. cảm ơn rất rất nhiều! vietlongbka@yahoo.com
                    bạn huonglan32 có thể cho mình email và số điện thoại được ko? cảm ơn bạn nhiều lắm. bạn đã đóng góp cho diễn đàn và giúp đỡ các bạn rất nhiều.

                    Comment


                    • #55
                      Thêm nữa sau khi mình chạy xong các lệnh trên và nó báo như vậy. ở thư mục gốc c:\cygwin có thêm các file sau:

                      bai2.nam
                      luong_1
                      luong_2
                      luong_3
                      và một dạng data base file : te.db

                      xem hộ mình với nhé,xin cảm ơn rất nhiều

                      Comment


                      • #56
                        Originally posted by long_nv View Post
                        $ ns bai1.tcl
                        couldn't execute "clear": no such file or directory
                        while executing
                        "exec clear >@ stdout"
                        <file "bai1.tcl" line 188>

                        Như vậy là lỗi j
                        lệnh clear chỉ là để xóa màn hình cygwin thôi. Bạn bỏ luôn dòng lệnh exec clear >@ stdout cũng được, không ảnh hưởng gì đâu.

                        Originally posted by long_nv View Post
                        Thêm nữa sau khi mình chạy xong các lệnh trên và nó báo như vậy. ở thư mục gốc c:\cygwin có thêm các file sau:
                        bai2.nam
                        luong_1
                        luong_2
                        luong_3
                        và một dạng data base file : te.db
                        bai2.nam : file chứa kết quả mô phỏng animator. Muốn xem nó thể hiện thì gõ lệnh nam bai2.nam
                        luong_1, luong_2, luong_3: các file ghi lại tốc độ nhận lưu lượng của từng luồng, xgraph dùng các file này để vẽ đồ thị.
                        file te.db do NS tự sinh, không cần quan tâm.

                        Có gì thắc mắc bạn cứ post lên đây chúng ta cùng nghiên cứu. Mình online thường xuyên mà :)

                        Comment


                        • #57
                          CHết rùi, buồn quá, bài mình vẫn chưa chạy được, mình đã reinstall lại với user là long (để không còn còn khoảng trắng ). và vẫn cho kết quả như vậy.

                          long@bk-6cbe3bc18cf8 /cygdrive/c/cygwin
                          $ ns bai2.tcl (đây là lệnh mình đánh, còn những dòng sau là do cygwin sinh ra)
                          couldn't execute "clear": no such file or directory
                          while executing
                          "exec clear >@ stdout"
                          <file "bai1.tcl" line 188>


                          sau đó, mình gõ lệnh nam bai2.nam thì nó báo là :

                          cannot connect to existing nam instance. Starting a new one....
                          ***!!!***
                          nam cannot recognize the trace file bai2.nam
                          please make sure that the file is not empty and it is nam trace
                          ************

                          và ko hiện ra j cả. như vậy là sao hả bạn? làm sao để biết được là nam mình chạy được, xgraph hoạt động được? bạn hướng dẫn mình với!

                          Lưu lý : khi mình biên dịch ns, (khi nó đang build Xgraph12.1) có dòng thông báo là :

                          checking for diff....NO!
                          diff is not present on your system.

                          và hỏi mình có bỏ qua để cài tiếp không, mình vẫn cài tiếp và khi cài xong, chỉnh sửa file .bashrc, khi gõ lệnh: ns /ns-allinone-2.32/ns-2.32/tcl/ex/mns_v2.0/test-constraint-routing.tcl vẫn cho ra kết quả :

                          --> The result of constraint-based routing for lspid 1100 : Explicit Route=1_3_5_7_9
                          o The CR-LSP of lspid 1100 has been just established at 0.083327999999999999
                          --> The result of constraint-based routing for lspid 1200 : Explicit Route=1_2_4_6_8_9
                          o The CR-LSP of lspid 1200 has been just established at 0.30470399999999997
                          --> The result of constraint-based routing for lspid 1300 : Explicit Route=1_3_4_6_5_7_8_9
                          o The CR-LSP of lspid 1300 has been just established at 0.54732304761904738
                          --> The result of constraint-based routing for lspid 1400 : Explicit Route= No path

                          Rất mong hồi âm của bạn. Cảm ơn bạn rất nhiều!

                          Comment


                          • #58
                            Xóa luôn dòng lệnh exec clear >@ stdout trong file bai2.tcl rồi chạy lại xem sao. Chắc là khi cài không chọn package clear nên nó không hiểu.

                            Khi hết báo lỗi rồi thì các file *.nam và luong_1, luong_2 mới được NS ghi ra đĩa đầy đủ. nam và xgraph sẽ tự chạy luôn (được gọi trong thủ tục finish).

                            Có thể test lại bằng các lệnh:
                            Xem đồ thị: xgraph luong_1 luong_2 -geometry 500x230
                            Chạy animator: exec nam bai2.nam &
                            Last edited by huonglan32; 31-12-2007, 03:51 PM.

                            Comment


                            • #59
                              hỏi vể lỗi khi test

                              Hương Lan ơi mặc dù mình đã khai báo biến đường dẫn trong file .bashrc như hướng dẫn rồi mà khi chạy thử ns /ns-allinone-2.32/ns-2.32/tcl/ex/mns_v2.0/test-constraint-routing.tcl nó vẫn báo lỗi bash:ns:command not found
                              Khi mình bỏ dấu cách ở ns /ns-allinone-2.32... thành ns/ns-allinone-2.32...
                              thì lại báo no such file or directory

                              Bạn giúp mình xử lý lỗi này nhé! Thanks!

                              Comment


                              • #60
                                Originally posted by hieuvov View Post
                                Hương Lan ơi mặc dù mình đã khai báo biến đường dẫn trong file .bashrc như hướng dẫn rồi mà khi chạy thử ns /ns-allinone-2.32/ns-2.32/tcl/ex/mns_v2.0/test-constraint-routing.tcl nó vẫn báo lỗi bash:ns:command not found
                                Khi mình bỏ dấu cách ở ns /ns-allinone-2.32... thành ns/ns-allinone-2.32...
                                thì lại báo no such file or directory

                                Bạn giúp mình xử lý lỗi này nhé! Thanks!
                                Phải có space ở giữa chứ. Cú pháp NS là: ns [path]<file name>

                                Đây là file .bashrc của mình. Copy đè vào xem được không (nhớ xả nén).
                                Attached Files
                                Last edited by huonglan32; 23-03-2009, 11:21 PM.

                                Comment

                                Working...
                                X