Sử dụng tính toán thông minh để tăng hiệu quả của định tuyến qos trong MPLS

93 8 0
Sử dụng tính toán thông minh để tăng hiệu quả của định tuyến qos trong MPLS

Đ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

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN TIẾN KHÁNH SỬ DỤNG TÍNH TỐN THƠNG MINH ĐỂ TĂNG HIỆU QUẢ ĐỊNH TUYẾN QoS TRONG MPLS Chuyên ngành : Kỹ thuật điện tử LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 06 năm 2010 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học : (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận văn thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ luận văn thạc sĩ) 6………………………………………… Xác nhận Chủ tịch Hội đồng đánh giá LV Bộ môn quản lý chuyên ngành sau luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV Bộ môn quản lý chuyên ngành TRƯỜNG ĐẠI HỌC BÁCH KHOA PHÒNG ĐÀO TẠO SĐH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc Tp HCM, ngày tháng năm 2010 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Tiến Khánh Phái: Nam Ngày, tháng, năm sinh: 08/11/1983 Nơi sinh: Hà Tĩnh Chuyên ngành: Kỹ thuật điện tử MSHV: 01408372 I- TÊN ĐỀ TÀI: SỬ DỤNG TÍNH TỐN THƠNG MINH ĐỂ TĂNG HIỆU QUẢ CỦA ĐỊNH TUYẾN QoS TRONG MPLS II- NHIỆM VỤ VÀ NỘI DUNG: - Tìm hiểu cơng nghệ MPLS Tìm hiểu định tuyến QoS MPLS Tìm hiểu thuật tốn học ước lượng ngẫu nhiên Xây dựng phương pháp áp dụng thuật toán học ước lượng ngẫu nhiên định tuyến QoS với mạng MPLS Viết chương trình mơ phỏng, đánh giá hiệu phương pháp đề xuất So sánh kết mô Kết luận III- NGÀY GIAO NHIỆM VỤ: 15 – 01 – 2010… IV- NGÀY HOÀN THÀNH NHIỆM VỤ:25 – 06 – 2010 V- CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): TS NGUYỄN MINH HOÀNG CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) KHOA QL CHUYÊN NGÀNH (Họ tên chữ ký) LỜI CẢM ƠN Đầu tiên xin chân thành cảm ơn thầy TS Nguyễn Minh Hồng, thầy trực tiếp hướng dẫn góp ý để tơi hồn thành luận văn Qua làm việc với thầy học hỏi thầy nhiều điều, đặc biệt cách thức làm việc người nghiên khoa học Tôi xin gửi lời cảm ơn đến thầy cô trường Đại Học Bách Khoa TP HCM, đặc biệt thầy cô khoa, người trực tiếp giảng dạy tuyền đạt kiến thức cho suốt thời gian học cao học trường TÓM TẮT Trong định tuyến QoS (Quality of Service) thuật toán định tuyến có vai trị quan trọng, thuật tốn định tuyến khơng phải tìm đường thỏa mãn yêu cầu QoS cho luồng liệu mà cịn phải tiết kiệm tài ngun băng thơng cho kết nối sau Nếu thuật toán ưu tiên chọn đường ngắn trước băng thơng dự trữ cho mạng tiết kiệm Tuy nhiên nhiều trường hợp ưu tiên chọn đường ngắn trước có khả gây nghẽn vài vùng mạng Trong trường hợp ưu tiên chọn đường băng thông lớn trước tài ngun băng thơng mạng bị sử dụng nhiều hơn, điều ảnh hưởng đến yêu cầu kết nối tương lai Các thuật toán định tuyến dựa hai phương pháp Thêm vào định tuyến xây dựng bảng định tuyến cách trao đổi thông tin định tuyến với nhau, nhiều trường hợp thơng tin khơng xác cập nhật không kịp thời dẫn đến định chọn đường sai lầm cho luồng liệu MPLS (Multiprotocol Label Switching) công nghệ phát triển dùng chủ yếu mạng lõi MPLS cho phép thực kỹ thuật lưu lượng mạng, nhiên việc định tuyến kết nối QoS MPLS thực theo phương pháp nên gặp phải vấn đề nêu Luận văn giới thiệu phương pháp định tuyến có sử dụng thuật tốn học ước lượng ngẫu nhiên [1] để hỗ trợ việc tìm đường cho kết nối QoS qua mạng MPLS Thuật toán ước lượng ngẫu nhiên nghiên cứu áp dụng mạng ATM [2] Phương pháp định tuyến QoS với hỗ trợ thuật toán học ước lượng ngẫu nhiên vừa có ưu tiên chọn đường ngắn trước, vừa dự đốn vài trường hợp nghẽn, đồng thời tránh số định khơng xác mà trạng thái mạng không biết, cập nhật cách rõ ràng Chính thuật tốn cho hiệu cao hơn, thể tổng số yêu cầu kết nối thực toàn mạng cao Điều chứng minh kết mô khuôn khổ luận văn ABSTRACT In QoS (Quality of Service) routing, the routing algorithm plays a very important role, not only routing algorithm must find path to satisfy the QoS requirements for stream data but also save bandwidth resources for later connecting requests If the algorithm priority select the shortest path first, the network bandwidth resource will be saving more However, in many cases, priority select the shortest path first will l cause some congestion in certain areas in the network In the case of priority select maximum available bandwidth path first, the network bandwidth resources will being used more, it affects the connection request in the future The current routing algorithms are based on two basic methods above In addition the router routing table is build by exchanging routing information with other routers, in many cases this information is inaccuracy or not updated promptly This can lead to wrong routingdecisions MPLS (Multiprotocol Label Switching) technology is well developed nowadays and mainly used in the core network MPLS allows traffic engineering in the network, but the basic routing of QoS connections in MPLS still follow the above method and should also face the problem described above This thesis introduces a routing algorithms that use Stochastic Estimator Learning Algorithm [1] to support finding path for QoS connection requests over MPLS networks Stochastic Estimator Learning Algorithm was also applied in ATM networks [2] QoS routing method with the aid of learning algorithms can estimate the environment, priority select the shortest path, it can predict some cases of congestion, and can avoid some inaccurate decisions when the state of the network is not known clearly Therefore this algorithm get greater efficiency, reflected in the total number of connection requests made higher This is evidenced in the simulation results in this thesis Mục Lục DANH MỤC HÌNH DANH MỤC BẢNG 10 DANH MỤC TỪ VIẾT TẮT 11 Chương GIỚI THIỆU 13 1.1 Giới thiệu 13 1.2 Mục tiêu luận văn 14 1.3 Bố cục luận văn 15 Chương TỔNG QUAN CÔNG NGHỆ MPLS 16 Giới thiệu công nghệ MPLS 16 2.1 2.1.1 Miền MPLS (MPLS domain) 17 2.1.2 Forwarding Equivalence Class (FEC) 18 2.1.3 Label switching path (LSP) 19 2.1.4 Mào đầu MPLS (MPLS Header) 21 2.2 MPLS Control Plane Forwarding Plane 21 2.3 Quyết định đường cho liệu 23 2.3.1 Tính tốn đường cơng cụ Off-Line 23 2.3.2 Thiết lập đường MPLS 23 Giao thức báo hiệu MPLS 24 2.4 2.4.1 LDP 24 2.4.2 CR-LDP 25 2.4.3 RSVP-TE 25 2.4.4 BGP-4 27 2.5 Độ ưu tiên LSP 28 2.6 Thiết lập trước ngắt (Make Before Break) 28 Chương QoS TRONG MẠNG MPLS 32 QoS 32 3.1 3.1.1 Quản lý hàng đợi 32 3.1.2 Quản lý rớt gói 33 3.2 Chuyển tiếp gói tin đảm bảo yêu cầu QoS 33 Định tuyến QoS mạng MPLS 36 3.3 3.3.1 Định tuyến có ràng buộc (Constraint-Based Routing) 36 3.3.2 Trao đổi thông tin định tuyến 37 Chọn đường định tuyến QoS 38 3.4 3.4.1 Least load-Shortest path routing (LSPR) 38 3.4.2 Shortest-lead Loaded path routing (SLPR) 39 3.4.3 Least Loaded-Alternate Path Routing (LALT) 40 Chương THUẬT TOÁN HỌC ƯỚC LƯỢNG NGẪU NHIÊN SELA (STOCHASTIC ESTIMATOR LEARNING ALGORITHM) 42 4.1 Giới thiệu thuật toán SELA 42 4.2 Nguyên lý hoạt động thuật toán SELA 43 4.3 Các thông số ảnh hưởng đến hiệu thuật toán SELA 46 Chương ÁP DỤNG SELA HỖ TRỢ ĐỊNH TUYẾN QoS TRONG MẠNG MPLS 49 5.1 Các lý để áp dụng SELA việc hỗ trợ định tuyến QoS mạng MPLS 49 5.2 Áp dụng SELA việc hỗ trợ định tuyến QoS mạng MPLS 50 Chương 6.1 THỰC HIỆN MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU QUẢ CỦA SELA 53 Thông số đánh giá 53 6.1.1 BRR (Bandwidth Rejection Ratio) 53 6.1.2 ENRR (Earned network revenue) 53 6.2 Chương trình mơ mạng NS2 54 6.3 Mơ hình mạng 54 6.4 Mô Phỏng mạng 56 6.5 Các thuật toán dùng để so sánh 61 6.6 Kết đánh gián hiệu thuật toán 62 6.6.1 Kết mô trường hợp tải không thay đổi 62 6.6.2 Kết mô trường hợp yêu cầu kết nối biến đổi theo thời gian 64 6.6.3 Nhận xét 66 Chương KẾT LUẬN 68 7.1 Kết luận 68 7.2 Hướng phát triển 69 PHỤ LỤC 72 PHỤ LỤC 80 DANH MỤC HÌNH Hình 2.1 Miền MPLS 18 Hình 2.2 Minh họa chuyển mạch nhãn 20 Hình 2.3 Khung mào đầu MPLS 21 Hình 2.4 Kiến trúc router chuyển mạch nhãn LSR 22 Hình 2.5 Thiết lập đường RSVP-TE 26 Hình 2.6 Khung Record Route Object 27 Hình 2.7 Khung session attribute object 27 Hình 2.8 Ví dụ Make before Break 30 Hình 3.1 Chuyển tiếp gói tin ingress LSR 34 Hình 3.2 Chuyển tiếp gói tin LSR 35 Hình 3.3 Chuyển tiếp gói tin egress LSR 36 Hình 3.4 Ví dụ minh họa đường có ràng buộc băng thơng 37 Hình 3.5 Đường chọn phương pháp LSPR 39 Hình 3.6 Đường chọn bằng phương pháp SLPR 40 Hình 4.1 Sơ đồ khối thuật toán ước lượng 42 Hình 4.2 Sơ đồ khối thuật toán SELA 45 Hình 4.3 Các yếu tố ảnh hưởng đến chất lượng thuật toán SELA 47 Hình 5.1 Sơ đồi khối sử dụng SELA QoS routing 52 Hình 6.1 Topo mạng dùng để mơ 55 Hình 6.2 Trao đổi tin định tuyến 56 Hình 6.3 Các tin LDP trao đổi thông tin nhãn 57 Hình 6.4 Truyền liệu 58 Hình 6.5 Gửi tin yêu cầu LSP 59 Hình 6.6 Gửi tin xác nhận 60 Hình 6.7 Dữ liệu từ node gửi theo đường thiết lập 61 Hình 6.8 Chỉ số BRR với tốc độ yêu cầu kết nối khác 63 Hình 6.9 Chỉ số ENRR với tốc độ yêu cầu kết nối khác 64 Hình 6.10 Chỉ số BRR với tốc độ yêu cầu kết nối thay đổi với chu kỳ khác 65 Hình 6.11 Chỉ số ENRR với tốc độ yêu cầu kết nối thay đổi với chu kỳ khác 65 10 DANH MỤC BẢNG Bảng Bảng Bảng Bảng Bảng 6.1 Các thông số mô 55 6.2 Kết mô số BRR với tốc độ yêu cầu kết nối khác 63 6.3 Kết mô số BRR với tốc độ yêu cầu kết nối khác 64 6.4 Chỉ số BRR với tốc độ yêu cầu kết nối thay đổi với chu kỳ khác 66 6.5 Chỉ số ENRR với tốc độ yêu cầu kết nối thay đổi với chu kỳ khác 66 79 ( ) ≥0và ii) ( )− ( ) ≤∑ ( ) Nếu điều kiện (13) thoả mãn khả ii) trở thành [ ( )] − [ ( )] = ( ) = ( )− ( ) =∑ ( ) ⇒ [ ( )] = ⇒ V ì vậy, điều kiện (13) đ ợc thoả mãn trường hợp i) v ii) ta có ( ) =0 = Với cặp hành động V ì v ậy = (18) (max { } > thời điểm = 1, … , Vì vậy, với giá trị hành động ( ≠ Nếu ta chọn = max { ( ≠ ) ta có > hệ từ (14) suy với ) có số mà [ ( )] = } [ ( )] = với ≠ Như toán giải [ ( )] = v hệ 80 PHỤ LỤC Đoạn chương trình NS2 viết định tuyến áp dụng SELA # set ns [new Simulator] # # Tao file trace-data for NAM and Xgraph # set nf [open mpls.nam w] $ns namtrace-all $nf set f0 [open mpls.tr w] set qm [open qm.out w] # # Thu tuc ket thuc, doc trace file va mo Xgraph and NAM # proc finish {} { global ns nf f0 qm $ns flush-trace close $nf close $f0 close $qm exec nam mpls.nam & exit } # # su dung giao thuc Links State # $ns rtproto LS # # Tao cac LSR # $ns node-config -MPLS ON set LSR0 [$ns node] $ns node-config -MPLS ON set LSR1 [$ns node] $ns node-config -MPLS ON 81 set LSR2 [$ns node] $ns node-config -MPLS ON set LSR3 [$ns node] $ns node-config -MPLS ON set LSR4 [$ns node] $ns node-config -MPLS ON set LSR5 [$ns node] $ns node-config -MPLS ON set LSR6 [$ns node] $ns node-config -MPLS ON set LSR7 [$ns node] $ns node-config -MPLS ON set LSR8 [$ns node] $ns node-config -MPLS ON set LSR9 [$ns node] $ns node-config -MPLS ON set LSR10 [$ns node] $ns node-config -MPLS ON set LSR11 [$ns node] $ns node-config -MPLS ON set LSR12 [$ns node] $ns node-config -MPLS ON # cac node set LSR13 [$ns node] $ns node-config -MPLS ON set LSR14 [$ns node] $ns node-config -MPLS ON set LSR15 [$ns node] $ns node-config -MPLS ON set LSR16 [$ns node] $ns node-config -MPLS ON set LSR17 [$ns node] $ns node-config -MPLS ON set LSR18 [$ns node] $ns node-config -MPLS ON set LSR19 [$ns node] $ns node-config -MPLS ON set LSR20 [$ns node] $ns node-config -MPLS ON set LSR21 [$ns node] $ns node-config -MPLS ON set LSR22 [$ns node] 82 $ns node-config -MPLS ON # Tao links va bandwidth Mb, delay 10ms, queue managementDropTail # $ns duplex-link $LSR0 $LSR1 10Mb 10ms DropTail $ns duplex-link $LSR0 $LSR11 10Mb 10ms DropTail $ns duplex-link $LSR1 $LSR11 10Mb 10ms DropTail $ns duplex-link $LSR1 $LSR2 10Mb 10ms DropTail $ns duplex-link $LSR2 $LSR3 10Mb 10ms DropTail $ns duplex-link $LSR3 $LSR12 10Mb 10ms DropTail $ns duplex-link $LSR12 $LSR11 10Mb 10ms DropTail $ns duplex-link $LSR12 $LSR10 10Mb 10ms DropTail $ns duplex-link $LSR10 $LSR11 10Mb 10ms DropTail $ns duplex-link $LSR12 $LSR5 10Mb 10ms DropTail $ns duplex-link $LSR10 $LSR7 10Mb 10ms DropTail $ns duplex-link $LSR7 $LSR9 10Mb 10ms DropTail $ns duplex-link $LSR7 $LSR8 10Mb 10ms DropTail $ns duplex-link $LSR7 $LSR6 10Mb 10ms DropTail $ns duplex-link $LSR9 $LSR8 10Mb 10ms DropTail $ns duplex-link $LSR8 $LSR6 10Mb 10ms DropTail $ns duplex-link $LSR5 $LSR6 10Mb 10ms DropTail $ns duplex-link $LSR3 $LSR4 10Mb 10ms DropTail $ns duplex-link $LSR4 $LSR5 10Mb 10ms DropTail $ns duplex-link $LSR4 $LSR6 10Mb 10ms DropTail $ns duplex-link $LSR0 $LSR13 10Mb 10ms DropTail $ns duplex-link $LSR0 $LSR14 10Mb 10ms DropTail $ns duplex-link $LSR0 $LSR15 10Mb 10ms DropTail $ns duplex-link $LSR0 $LSR16 10Mb 10ms DropTail $ns duplex-link $LSR0 $LSR17 10Mb 10ms DropTail $ns duplex-link $LSR8 $ns duplex-link $LSR8 $ns duplex-link $LSR8 $ns duplex-link $LSR8 $ns duplex-link $LSR8 # add set dest(1) $LSR18 set dest(2) $LSR19 set dest(3) $LSR20 set dest(4) $LSR21 $LSR18 $LSR19 $LSR20 $LSR21 $LSR22 10Mb 10Mb 10Mb 10Mb 10Mb 10ms DropTail 10ms DropTail 10ms DropTail 10ms DropTail 10ms DropTail 83 set dest(5) $LSR22 # add # # ve cac LSR va ket noi tren NAM # $ns duplex-link-op $LSR0 $LSR1 orient 270 $ns duplex-link-op $LSR1 $LSR2 orient right-down $ns duplex-link-op $LSR2 $LSR3 orient right $ns duplex-link-op $LSR3 $LSR12 orient up $ns duplex-link-op $LSR0 $LSR11 orient 0deg $ns duplex-link-op $LSR1 $LSR11 orient right-up $ns duplex-link-op $LSR11 $LSR12 orient right $ns duplex-link-op $LSR11 $LSR10 orient right $ns duplex-link-op $LSR10 $LSR12 orient down $ns duplex-link-op $LSR10 $LSR7 orient right $ns duplex-link-op $LSR7 $LSR9 orient right-up $ns duplex-link-op $LSR7 $LSR8 orient right $ns duplex-link-op $LSR7 $LSR6 orient right-down $ns duplex-link-op $LSR9 $LSR8 orient down $ns duplex-link-op $LSR8 $LSR6 orient down $ns duplex-link-op $LSR12 $LSR5 orient right $ns duplex-link-op $LSR5 $LSR6 orient right $ns duplex-link-op $LSR3 $LSR4 orient right $ns duplex-link-op $LSR4 $LSR5 orient up $ns duplex-link-op $LSR4 $LSR6 orient right-up $ns duplex-link-op $LSR0 $LSR13 orient 120deg $ns duplex-link-op $LSR0 $LSR14 orient 150deg $ns duplex-link-op $LSR0 $LSR15 orient 180deg $ns duplex-link-op $LSR0 $LSR16 orient 200deg $ns duplex-link-op $LSR0 $LSR17 orient 220deg $ns duplex-link-op $LSR8 $LSR18 orient 60deg $ns duplex-link-op $LSR8 $LSR19 orient 30deg $ns duplex-link-op $LSR8 $LSR20 orient 0deg $ns duplex-link-op $LSR8 $LSR21 orient 300deg $ns duplex-link-op $LSR8 $LSR22 orient 330deg # trao doi ban tin ldp 84 for {set i 0} {$i < 23} {incr i} { set a LSR$i for {set j [expr $i+1]} {$j < 23} {incr j} { set b LSR$j eval $ns LDP-peer $$a $$b } set m [eval $$a get-module "MPLS"] $m enable-reroute "new" } # Danh dau mau ldp-message NAM # $ns ldp-request-color blue $ns ldp-mapping-color red $ns ldp-withdraw-color magenta $ns ldp-release-color orange $ns ldp-notification-color yellow # Xac dinh, khoi tao co che trao doi nhan (Label Distribution Control Mode) # and Label Allocation and Distribution Scheme Classifier/Addr/MPLS set control_driven_ Classifier/Addr/MPLS enable-on-demand Classifier/Addr/MPLS enable-ordered-control # # tao banb lenh truc tiep len ca LSR # [$LSR1 get-module "MPLS"] enable-control-driven [$LSR2 get-module "MPLS"] enable-data-driven #add (phan them vao doi voi cac LSR khac) [$LSR2 get-module "MPLS"] enable-control-driven [$LSR1 get-module "MPLS"] enable-data-driven [$LSR3 get-module "MPLS"] enable-control-driven [$LSR3 get-module "MPLS"] enable-data-driven [$LSR4 get-module "MPLS"] enable-control-driven [$LSR4 get-module "MPLS"] enable-data-driven [$LSR5 get-module "MPLS"] enable-control-driven 85 [$LSR5 get-module "MPLS"] enable-data-driven [$LSR6 get-module "MPLS"] enable-control-driven [$LSR6 get-module "MPLS"] enable-data-driven [$LSR7 get-module "MPLS"] enable-control-driven [$LSR7 get-module "MPLS"] enable-data-driven [$LSR8 get-module "MPLS"] enable-control-driven [$LSR8 get-module "MPLS"] enable-data-driven [$LSR9 get-module "MPLS"] enable-control-driven [$LSR9 get-module "MPLS"] enable-data-driven [$LSR10 get-module "MPLS"] enable-control-driven [$LSR10 get-module "MPLS"] enable-data-driven [$LSR11 get-module "MPLS"] enable-control-driven [$LSR11 get-module "MPLS"] enable-data-driven [$LSR12 get-module "MPLS"] enable-control-driven [$LSR12 get-module "MPLS"] enable-data-driven [$LSR0 get-module "MPLS"] enable-control-driven [$LSR0 get-module "MPLS"] enable-data-driven [$LSR13 get-module "MPLS"] enable-control-driven [$LSR13 get-module "MPLS"] enable-data-driven [$LSR14 get-module "MPLS"] enable-control-driven [$LSR14 get-module "MPLS"] enable-data-driven [$LSR15 get-module "MPLS"] enable-control-driven [$LSR15 get-module "MPLS"] enable-data-driven [$LSR16 get-module "MPLS"] enable-control-driven [$LSR16 get-module "MPLS"] enable-data-driven [$LSR17 get-module "MPLS"] enable-control-driven [$LSR17 get-module "MPLS"] enable-data-driven [$LSR18 get-module "MPLS"] enable-control-driven [$LSR18 get-module "MPLS"] enable-data-driven [$LSR19 get-module "MPLS"] enable-control-driven [$LSR19 get-module "MPLS"] enable-data-driven [$LSR20 get-module "MPLS"] enable-control-driven [$LSR20 get-module "MPLS"] enable-data-driven [$LSR21 get-module "MPLS"] enable-control-driven [$LSR21 get-module "MPLS"] enable-data-driven [$LSR22 get-module "MPLS"] enable-control-driven [$LSR22 get-module "MPLS"] enable-data-driven # xuat LDP man hinh dau nhac Agent/LDP set trace_ldp_ Classifier/Addr/MPLS set trace_mpls_ 86 # tao mot proc de thuc hien truyen goi tin proc truyen { A B C } { # tao thoi gian truyen duration global ns global LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 LSR7 LSR8 LSR9 LSR10 LSR11 LSR12 LSR0 LSR13 LSR14 LSR15 LSR16 LSR17 LSR18 LSR19 LSR20 LSR21 LSR22 global dest(1) dest(2) dest(3) dest(4) dest(5) fec(1) fec(2) fec(3) fec(4) fec(5) set Tdura set Tstop [expr $C + $Tdura] set aidiA [$A id] set aidiB [$B id] if { $A!= $B} { set udp [new Agent/UDP] $ns attach-agent $A $udp set null [new Agent/Null] $ns attach-agent $B $null $ns connect $udp $null # can them fid # $udp set fid # tao ket noi CBR set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set type_ CBR $cbr set packetSize_ 1000 $cbr set rate_ 0.7Mb $ns at $C "$cbr start" $ns at $Tstop "$cbr stop" } } } # tao thoi gian ngau nhien set rng [new RNG] set seed set rvstart [new RandomVariable/Uniform] $rvstart set min_ $rvstart set max_ $rvstart use-rng $rng 87 set startT [expr [$rvstart value]] ####### #tao cac route tu A den B set dt(1) 0_11_10_7_8_ set dt(2) 0_1_11_12_5_6_8_ set dt(3) 0_1_3_4_6_8_ set dt(4) 0_11_12_5_6_7_8_ set dt(5) 0_1_11_10_7_8_ #khoi tao thuat tuan sela chon ngau nhien duong di set rng2 [new RNG] set seed set routenn [new RandomVariable/Normal] $routenn set avg_ $routenn set std_ $routenn use-rng $rng2 $routenn value set rng3 [new RNG] set seed set tnn [new RandomVariable/Normal] $tnn set avg_ 0.5 $tnn set std_ 0.2 $tnn use-rng $rng3 $tnn value #procedure tim max proc max { a b c d e } { set max $a ; set m(1) $a ;set m(2) $b ; set m(3) $c ;set m(4) $d ;set m(5) $e for { set i } { $i < } {incr i } { if { $max = $m($i) } { set $m($i) }} return $min } #### vong lap tinh sela proc sela {t} { # n la so yeu cau ket noi global ns rng2 routenn rng3 tnn global LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 LSR7 LSR8 LSR9 LSR10 LSR11 LSR12 LSR0 LSR13 LSR14 LSR15 LSR16 LSR17 LSR18 LSR19 LSR20 LSR21 LSR22 global dest(1) dest(2) dest(3) dest(4) dest(5) set dest(1) $LSR18 ;set dest(2) $LSR19 ;set dest(3) $LSR20 ; set dest(4) $LSR21 ; set dest(5) $LSR22 ; set fec(1) 18 set fec(2) 19 set fec(3) 20 set fec(4) 21 set fec(5) 22 set dt(1) 0_11_10_7_9_8_ set dt(2) 0_1_11_12_5_6_8_ set dt(3) 0_1_3_4_6_8_ set dt(4) 0_11_12_5_6_7_8_ set dt(5) 0_1_11_10_7_8_ # truyen thong tin vong phut # khoi dong truyen thong tin vao thoi gian t(1), t(2) khoang cach giua moi t(i) la 0.5s # mot t(i) la mot vong for co yeu cau ket noi # gia tri danh gia dg(i) va gia tri sac xuat p(i,j) (trong j la lan chon thu j va i la sac xuat chon duong i) 89 # sac xuat chon duog di tai thoi diem 1, p(i,j) la xac suat chon duong di tai thoi diem thu i chon duong di # sac xuat nao lon nhat thi chon diem set p(1,1) 0.2 set tstep 0.5 # dung luong duong di set dl(0,1) ; set dl(0,2) ; set dl(0,3) 0; set dl(0,4) ; set dl(0,5) ; set tong set call 400 for {set j } { $j < 19} { incr j } { for {set i } { $i < 6} { incr i } { # sac xuat chon ngau nhien duong di #set pn(1) 0.2 set k1($j,$i) [integer 5] set k($j,$i) [expr $k1($j,$i) + 1] set tong1 [expr $tong - 1] #danh gia sac xuat chon duong di set min1($tong) [min $dl($tong1,1) $dl($tong1,2) $dl($tong1,3) $dl($tong1,4) $dl($tong1,5)] for {set h 1} { $h < } { incr h } { if { $dl($tong1,$h) == $min1($tong) } { set dgdi($tong) $h } } # tinh dap ung cua moi truong if { $k($j,$i) == 1} { set bk(1) } if { $k($j,$i) == } { set bk(2) } if { $k($j,$i) == 3} { set bk(3) 90 } if { $k($j,$i) == 4} { set bk(4) } if { $k($j,$i) == } { set bk(5) } # tinh uoc luong ngau nhien cua moi truong for { set w } { $w < 6} { incr w } { set rnn($w) [expr [$routenn value]] set u($w) [expr bk($W) + rn($w)] } # chon uoc luong lon nhat set umin [ $u(1) $u(2) $u(3) $u(4) $u(5) ] # thay doi gia tri sac xuat for { set w } { $w < } { incr w } { if { $u($w) != umin } { set pnn($w) [expr $pnn($w) - 0.3] set tt [expr $tt + $pnn($w) ] } } for { set w } {$w < 6} { incr w} { if { $u($w) == umin } { set pnn($w) [expr - $tt] } } #################### # tinh toan lai dung luong cua cac link sau moi thoi diem ket noi duoc thiet lap for {set g } { $g < } { incr g } { if { $k($j,$i) == $g} { set dl($tong,$g) [expr $dl($tong1,$k($j,$i)) + 1] } if {$k($j,$i) != $g } { set dl($tong,$g) $dl($tong1,$g) } } ##################### 91 set tnn1($j,$i) [expr [$tnn value]] set tnn2($j,$i) [expr $tnn1($j,$i) + $t] set tb($j,$i) [expr $tnn2($j,$i) + 0.6] $ns at $tnn2($j,$i) "[$LSR0 get-module MPLS] make-explicit-route $dt($k($j,$i)) $j$i -1 " $ns at $tb($j,$i) "[$LSR0 get-module MPLS] flow-erlsp-install $fec($k($j,$i)) -1 $j$i " #$ns at $t "[$LSR0 get-module MPLS] make-explicit-route 0_1_3_4_6_8_ 301 1" #$ns at $tb "[$LSR0 get-module MPLS] flow-erlsp-install 22 -1 301 " set tong [expr $tong + ] truyen $LSR0 $dest($k($j,$i)) $tb($j,$i) } # thoi gian tryen tang len 0.5 set t [expr $t + 0.5] # tong so ket not } #puts " tong ket noi $tong" puts " so ket noi cua dl(49,1) $dl(50,1)" puts " so ket noi cua dl(49,2) $dl(50,2)" puts " so ket noi cua dl(49,3) $dl(50,3)" puts " so ket noi cua dl(49,4) $dl(50,4)" puts " so ket noi cua dl(49,5) $dl(50,5)" puts " duong di nho nhat $min1(50)" puts " duong di nho nhat $dgdi(50)" puts " tong so cong $suc" } ####################### set qmon1 [$ns monitor-queue $LSR1 $LSR2 $qm 0.1] [$ns link $LSR1 $LSR2] start-tracing set barrivals [$qmon1 set barrivals_] proc khoitao {t} { 92 global ns rng rvstart global LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 LSR7 LSR8 LSR9 LSR10 LSR11 LSR12 LSR0 set LSR(0) $LSR0 set LSR(1) $LSR1 set LSR(2) $LSR2 set LSR(3) $LSR3 set LSR(4) $LSR4 set LSR(5) $LSR5 set LSR(6) $LSR6 set LSR(7) $LSR7 set LSR(8) $LSR8 set LSR(9) $LSR9 set LSR(10) $LSR10 set LSR(11) $LSR11 set LSR(12) $LSR12 for {set i 0} {$i < 13} {incr i} { set Tstart1($i) [expr [$rvstart value]] set Tstart2($i) [expr $Tstart1($i) + $t] set nn1 [integer 13] set nn2 [integer 13] truyen $LSR($nn1) $LSR($nn2) $Tstart2($i) } } # xuat bang ldp va erb #$ns at 0.1 "[$LSR3 get-module MPLS] trace-mpls" #$ns at 0.1 "[$LSR4 get-module MPLS] trace-ldp" $ns at 13 "[$LSR8 get-module MPLS] erb-dump" $ns at 13 "[$LSR8 get-module MPLS] lib-dump" $ns at 13 "[$LSR8 get-module MPLS] pft-dump" ################### $ns at 13 "puts \"at 13: [$ns now] [$qmon1 set barrivals_]\"" $ns at 13.5 "set barrivals [$qmon1 set barrivals_]" #$ns at 0.5 " truyen $LSR(3) $LSR(9) 0.5" $ns at " sela 1" $ns at 60 "finish" $ns run 93 LÝ LỊCH TRÍCH NGANG Họ tên : NGUYỄN TIẾN KHÁNH Ngày, tháng, năm sinh : 08-11-1983 Nơi sinh : Hà Tĩnh Địa thường trú : 26/3B Nguyễn Tri Phương, Nha Trang, Khánh Hòa Địa liên hệ : 354/2 Lý Thường Kiệt, P14, Q10, Hồ Chí Minh Q TRÌNH ĐÀO TẠO 2001-2006 : Sinh viên ngành Kỹ Thuật Viễn Thông Trường Đại Học Giao Thông Vận Tải 2008-2010 : Học viên cao học ngành Kỹ Thuật Điện Tử, Trường Đại Học Bách Khoa, TP HCM Q TRÌNH CƠNG TÁC Từ 6-2006 đến : Cơng tác Công Ty Cổ Phần Viễn Thông Tin Học Bưu Điện Chi nhánh TP HCM ... 01408372 I- TÊN ĐỀ TÀI: SỬ DỤNG TÍNH TỐN THÔNG MINH ĐỂ TĂNG HIỆU QUẢ CỦA ĐỊNH TUYẾN QoS TRONG MPLS II- NHIỆM VỤ VÀ NỘI DUNG: - Tìm hiểu cơng nghệ MPLS Tìm hiểu định tuyến QoS MPLS Tìm hiểu thuật... BGP-4 Giao thức định tuyến BGP sử dụng để phân phối nhãn BGP giao thức định tuyến sử dụng AS (autonomous system) để trao đổi thông tin định tuyến Phần tin cập nhật BGP-4 sử dụng để phân phối đường... đến hiệu thuật tốn SELA 46 Chương ÁP DỤNG SELA HỖ TRỢ ĐỊNH TUYẾN QoS TRONG MẠNG MPLS 49 5.1 Các lý để áp dụng SELA việc hỗ trợ định tuyến QoS mạng MPLS 49 5.2 Áp dụng SELA việc hỗ trợ định

Ngày đăng: 04/04/2021, 00:41

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan