Nghiên cứu mô phỏng đánh giá chất lượng dịch vụ trên mạng MPLS

134 25 0
Nghiên cứu mô phỏng đánh giá chất lượng dịch vụ trên mạng 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 HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỒNG TRƯỜNG NGHIÊN CỨU MƠ PHỎNG ĐÁNH GIÁ CHẤT LƯỢNG DỊCH VỤ TRÊN MẠNG MPLS Ngành: Công nghệ Điện tử - Viễn thông Chuyên ngành: Kỹ thuật điện tử Mã số: 60 52 70 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN KIM GIAO Hà Nội - 2009 MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CHỮ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG MỞ ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ CHUYỂN MẠCH NHÃN ĐA GIAO THỨC 10 1.1 Khái quát Chuyển mạch nhãn đa giao thức MPLS 1.1.1 Giới thiệu 1.1.2 Vấn đề mạng IP ATM 1.2 Công nghệ Chuyển mạch nhãn đa giao thức (MPLS) 1.2.1 Sự đời MPLS 1.2.2 Một số đặc điểm MPLS 1.2.3 Một số ưu điểm MPLS 1.3 Các thành phần Chuyển mạch nhãn Đa giao thức 1.3.1 Định tuyến Cơ 1.3.2 Các Khái niệm Cơ sở 1.4 Các Thành phần điều khiển hoạt động Hệ thống MPLS 1.4.1 Thành phần chuyển tiếp chuyển mạch nhãn 1.4.2 Các thiết bị MPLS 1.4.3 Các Giao thức sử dụng MPLS 1.5 Các ứng dụng Chuyển mạch nhãn Đa giao thức CHƢƠNG 2: CHẤT LƢỢNG DỊCH VỤ TRONG CHUYỂN MẠCH NHÃN ĐA GIAO THỨC 2.1 Vấn đề Chất lƣợng dịch vụ (QoS) 2.1.1 Chất lượng dịch vụ ? 2.1.2 Những lợi ích QoS 2.2 Các đặc tính QoS 2.2.1 Băng thông (bandwidth) 2.2.2 Độ trễ (delay) 2.2.3 Độ trượt (Jitter) 2.2.4 Mất gói (loss) 2.2.5 Hoạt động QoS 2.3 Các công nghệ QoS 2.3.1 Cơ chế Xử lý Lưu thông 2.3.2 Các chế cung cấp thiết lập 2.3.3 Chất lượng 2.4 Chất lƣợng dịch vụ MPLS 2.4.1 Kỹ thuật lưu lượng trước MPLS 2.4.2 Kỹ thuật lưu lượng với MPLS 2.5 MPLS công nghệ định luồng CHƢƠNG 3: CÔNG NGHỆ ĐỊNH LUỒNG (STREAMING) 3.1 Tổng Quan Công nghệ Streaming Media 3.1.1 Codecs – Nén liệu 3.1.2 Luồng Video làm việc ? 3.1.3 Các thiết bị Hệ thống Luồng Video 3.1.4 Các Thông số mạng cần quan tâm 3.2 Bộ Mã hoá/Giải mã chuẩn định luồng Media 3.2.1 H.263 3.2.2 Tổng quan MPEG-1 3.2.3 Tổng quan MPEG-2 3.2.4 MPEG-4 3.3 Các giao thức Định luồng Video 3.3.1 Tổng quan giao thức 3.3.2 Real-Time Transport Protocol (RTP) 3.3.3 Real-Time Control Protocol (RTCP) 3.3.4 Resource Reservation Protocol (RSVP) 3.3.5 Real-Time Streaming Protocol CHƢƠNG 4: NGHIÊN CỨU MƠ HÌNH ĐÁNH GIÁ CHẤT LƢỢNG TRONG ĐỊNH LUỒNG MPLS 4.1 Lựa chọn tiêu chí đánh giá chất lƣợng Định luồng Đa phƣơng tiện 4.1.1 Những Tiêu chuẩn Chất lượng Định luồng 4.1.2 Thiết lập tiêu chí kiểm tra chất lượng định luồng 4.1.3 Lựa chọn tiêu chuẩn đánh giá chất lượng Định luồng Đa phương tiện sử dụng Chuyển mạch nhãn Đa giao thức 4.2 Xây dựng mơ hình thực nghiệm mơ Công nghệ định luồng MPLS 4.2.1 Phương pháp tiến hành 4.2.2 Xây dựng mơ hình thực nghiệm 4.3 Xây dựng Phần mềm Đánh giá Chất lƣợng định luồng MPLS 4.3.1 Phân rã Chức 4.3.2 Sơ đồ luồng liệu 4.3.3 Lựa chọn Công cụ Lập trình 4.3.4 Mô tả chi tiết Module Chương trình 4.3.5 Kết xuất Tiêu chí thời gian 4.3.6 Kết xuất Tiêu chí Chất lượng Hình ảnh, Âm 4.4 Kết Đánh giá 4.4.1 Các tiêu chí thời gian 4.4.2 Độ mát gói tin KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC A PHỤ LỤC B PHỤ LỤC C DANH MỤC CHỮ VIẾT TẮT ATM BGP CoS CBR CR-LDP EGP FEC FTN GMPLS IETF IGP IML LDP LER LIB LSP LSR MPLambdaS MPLS MPEG NHLFE NS OSPF PCM QoS RIP RSVP RTP Real-Time Prot RTCP RTSP Real-Time Con Real-Rime Stre TE TTL Traffic Enginee Time-To-Live UDP VC Universal Datag Virtual Chanel VCI Virtual Chanel DANH MỤC CÁC HÌNH VẼ Hình 1.1: Định tuyến mạng IP Hình 1.2: Mơ hình chồng lấn mạng IP/ATM Hình 1.3: Ví dụ chuyển mạch truyền thống Hình 1.4: Ví dụ MPLS TE Hình 1.5: Định dạng nhãn MPLS chung Hình 1.6: Lớp liên kết liệu ATM Hình 1.7: Ngăn xếp nhãn Hình 1.8: Minh hoạ lớp chuyển tiếp tương đương Hình 1.9: Giao thức LDP với giao thức khác Hình 1.10: Thủ tục báo hiệu RSVP Hình 1.11: Mạng Nhà cung cấp dich vụ Hình 1.12: IP over ATM với vấn đề N(N-1)/2 Hình 1.13: MPLS mạng ATM tồn Hình 1.14: Ánh xạ MPLS/ATM QoS Hình 2.1: Ví dụ độ trượt Hình 2.2: Mất gói mạng Hình 2.3: Mối liên hệ Công nghệ định luồng MPLS Hình 3.1: Truyền liệu Video phương pháp Download file Video Hình 3.2: Truyền Video theo phương pháp Luồng Video Hình 3.3: Bộ đệm sử dụng để lưu trữ truyền đẳng thời Hình 3.4: Máy chủ gửi luồng video riêng biệt đến điểm Hình 3.5: Multicast Hình 3.6: Ethernet chuyển mạch cho truyền mạng LAN tín hiệu Video luồng Hình 3.7: Tín hiệu Video định luồng thơng qua Internet Hình 3.8: Thâm nhập Video định luồng thông qua mạng truyền thông công cộng 56 Hình 3.9: Bộ mã hố mã hố H.263 Hình 3.10: Quá trình giải mã H.263 Hình 3.11: Mơ hình hệ thống MPEG-1 MPEG-2 Hình 3.12: Kiến trúc Dựa vào đối tượng (Object-Based) Hình 3.13: Truyền liệu định luồng Hình 3.14: Các phiên MPEG-4 Hình 3.15: Các Giao thức Định luồng ngăn xếp TCP/IP Hình 3.16: Đóng gói RTP Hình 3.17: Khuôn dạng Header RTP Hình 3.18: Gói tin RTCP Sender Report Hình 3.19: Kết hợp yêu cầu RSVP Multicast Hình 3.20: Quy trình Yêu cầu RSVP Hình 3.21: Kết nối điều khiển RTSP Hình 3.22: Kết nối RTSP Hình 3.23: Các trạng thái RTSP[12] Hình 4.1: Mơ hình thực nghiệm Hình 4.2: Mơ hình mơ NS2 Hình 4.3: Khn dạng file log Hình 4.4: Quy trình tiến hành thực nghiệm Hình 4.5: Phân rã Chức Chương trình Hình 4.6: Sơ đồ luồng liệu Hình 4.7: Lưu đồ Thuật tốn Mơ Máy trạm Định luồng Hình 4.8: Lưu đồ Thuật tốn Kết xuất Tiêu chí thời gian Hình 4.9: Lưu đồ Thuật tốn Kết xuất Tiêu chí Chất lượng Hình ảnh Âm Hình 4.10: Độ mát gói tin toàn thể đoạn phim Hình 4.11: Độ mát gói tin Phim Cơng viên kỷ Jura ( khơng MPLS) Hình 4.12: Độ mát gói tin Phim Ngài Bean ( khơng MPLS) Hình 4.13: Độ mát gói tin Phim Aladdin đèn thần (khơng MPLS) Hình 4.14: Độ mát gói tin Phim Cơng viên kỷ Jura (có MPLS) Hình 4.15: Độ mát gói tin Phim Ngài Bean ( có MPLS) Hình 4.16: Độ mát gói tin Aladdin đèn thần ( có MPLS) Hình 4.17: So sánh độ mát gói tin trường hợp (có MPLS không MPLS) Phim Công viên kỷ Jura Hình 4.18: So sánh độ mát gói tin trường hợp (có MPLS khơng MPLS) Phim Ngài Bean Hình 4.19: So sánh độ mát gói tin trường hợp (có MPLS khơng MPLS) Aladdin đèn thần Hình 4.20: So sánh Độ mát cực đại hệ thống Hình 4.21: So sánh Độ mát trung bình hệ thống DANH MỤC CÁC BẢNG Bảng 1.1: Các công nghệ chuyển mạch đa lớp Bảng 2.1: Một số vấn đề gặp phải mạng không hỗ trợ QoS Bảng 4.1 Các tiêu chí lựa chọn để đánh giá chất lượng định luồng Bảng 4.2 Khn dạng file liệu mã hóa Bảng 4.3 Các phim lựa chọn thể loại Bảng 4.4 Thông số kỹ thuật Phim Công viên kỷ Jura Bảng 4.5 Thông số kỹ thuật Phim Ngài Bean Bảng 4.6 Thông số kỹ thuật Phim Ala Bảng 4.7 Các Tham số Mơ hình thực Bảng 4.8 Các Module chức Chư Bảng 4.9 Thống kê gói tin Cơng viên Bảng 4.10 Thống kê gói tin Ngài Bean Bảng 4.11 Thống kê gói tin Aladdin đèn thần MỞ ĐẦU Trong thời gian qua mạng Internet phát triển cách bùng nổ, với dịch vụ mạng phổ biến mạng xã hội, blog, chia sẻ video, đặc biệt dịch vụ điện toán đám mây Đằng sau thành công rực rỡ dịch vụ trực tuyến kể đến trợ giúp đắc lực công nghệ mạng lõi đặc biệt Công nghệ Chuyển mạch nhãn Đa giao thức (MPLS) Vậy với công nghệ vậy, bên cạnh việc tìm hiểu để làm chủ cơng nghệ việc đánh giá hiệu của cơng nghệ ứng dụng cụ thể việc làm có ý nghĩa lý thuyết lẫn thực tiễn Chính lý đó, tác giả chọn đề tài “Nghiên cứu mô phỏng, đánh giá chất lượng dịch vụ mạng MPLS” nhấn mạnh việc đánh giá hiệu công nghệ Chuyển mạch nhãn Đa giao thức ứng dụng cụ thể Công nghệ Định luồng (Streaming Media) - công nghệ thời gian thực phổ biến Internet Để báo cáo kết thực được, luận văn tổ chức thành chương: Các chương 1, 2, tập trung vào sở lý thuyết, trình bày vấn đề Chuyển mạch nhãn Đa giao thức, chất lượng dịch vụ, công nghệ định luồng, mối liên hệ chúng Chương sâu vào việc xây dựng phương pháp tiến hành thực nghiệm đánh giá hiệu phân tích số kết thu Phần kết luận đưa số hướng nghiên cứu để làm rõ thêm hiệu Chuyển mạch nhãn Đa giao thức với Công nghệ định luồng Đồng thời với việc thực luận văn này, tác giả mong muốn xây dựng mơ hình mơ thực nghiệm triển khai phịng LAB trường Đại học Cơng Nghệ - Đại học Quốc gia Hà Nội, để giúp sinh viên, học viên trường có cơng cụ phục vụ công việc học tập nghiên cứu tin (%) mát gói Độ Hình 4.19: So sánh độ mát gói tin trường hợp (có MPLS không MPLS) Độ mát cực đại (%) Tác giả so sánh giá trị cực đại giá trị trung bình Độ mát gói tin đoạn tắc nghẽn từ 0% đến 50% kết thể hình 4.20 4.21 Có MPLS Khơng MPLS Hình 4.20: So sánh Độ mát cực đại hệ thống (%) gói tin trung bình Độ mát Có MPLS Khơng MPLS Hình 4.21: So sánh Độ mát trung bình hệ thống 108 KẾT LUẬN Công nghệ Chuyển mạch nhãn Đa giao thức MPLS, với hàng loạt ưu điểm trình bày trên, thực cơng nghệ chuyển mạch tiên tiến phù hợp với đòi hỏi cấp bách môi trường mạng đa dịch vụ Nó cho phép kết hợp hàng loạt công nghệ truyền dẫn mức lõi ATM hay FrameRelay, đồng thời cung cấp giải pháp đảm bảo Chất lượng Dịch vụ (QoS) Đặc biệt với dịch vụ thời gian thực, có cơng nghệ định luồng (Streaming Media), MPLS thực đáp ứng nhu cầu đảm bảo tài nguyên hệ thống thông qua tính QoS Bản luận văn cố gắng đánh giá tính hiệu MPLS với ứng dụng định luồng thu số kết định Do điều kiện hạn chế thời gian thực lực thân người thực hiện, kết thu hạn chế Hơn nữa, điều kiện khơng cho phép, tác giả khơng có điều kiện thực đo đạc, đánh giá môi trường thực, mà chỉ thực qua mơ phần mềm, nên khơng có điều kiện đánh giá kỹ hệ thống MPLS Tuy vậy, chỉ thơng qua mơ thực hiện, kết luận tính hiệu hệ thống MPLS Cơng nghệ định luồng nói riêng ứng dụng thời gian thực nói chung Trong thời gian tới, được, người thực tiến hành nghiên cứu sâu theo hướng : Tìm cách mơ giao thức định luồng thực RTP, RTCP, RTCP, MMS, để đánh giá hiệu MPLS theo tiêu chí thời gian Tiến hành đo kiểm hệ thống thực có điều kiện đồng thời so sánh với kết đạt mô máy tính Hy vọng với kết đạt luận văn, tác giả có mong muốn triển khai mơ hình phịng LAB trường Đại học Cơng Nghệ Trên sở đó, sinh viên học viên dựa mơ hình tiến hành thử nghiệm phát triển thêm module để phục vụ cho công tác học tập nghiên cứu 109 TÀI LIỆU THAM KHẢO [1] Bùi Quang Hưng (2001), ―Nghiên cứu cơng cụ mơ phân tích đánh giá hiệu suất hệ thống mạng thông tin máy tính NS‖ [2] Nguyễn Thị Đoan Trang (2008), “Kết hợp DiffServ MPLS việc đảm bảo chất lượng dịch vụ”, đồ án tốt nghiệp, ĐH Bách Khoa Đà Nẵng [3] Trần Thị Tố Uyên, “Chuyển mạch nhãn đa giao thức”, Truy cập ngày 14 tháng 05 năm 2009, từ http://www.ebook.edu.vn/?page=1.6&view=10204 [4] “[Giới thiệu & Hướng dẫn] NS2 mô MPLS”, Truy cập ngày 14 tháng 10 năm 2009, từ http://hoangtrongminh.info/diendan/showthread.php?t=181 [5] D Adami, C Callegari, S Giordano, F Mustacchio, M Pagano, F Vitucci (2002), “Overview of the RSVP-TE Network Simulator: Design and Implementation‖, Dept of Information Engineering, University of Pisa, ITALY [6] Charnvithya Sresthadatta (2002), “Multi-protocol label switching : building MPLS based virtual private networks and services for service”, Project Report (MSTM) Assumption University [7] Gregory J Conklin, Gary S Greenbaum, Karl O Lillevold,Alan F Lippman,Yuriy A Reznik (2000), ―Video Coding for Streaming Media Delivery on the Internet‖ [8] Kevin Fall, Kannan Varadhan (2009), “The ns Manual”, The VINT Project, December 13 [9] Frank H.P Fitzek, Martin Reisslein (2000), “MPEG-4 and H.263 Video Traces for Network Performance Evulation”, Technical University Berlin [10] F Paul, H Geoff (1998), “Quality of service : delivering QoS on the Internet and in corporate networks” [11] E Rosen, A Viswanathan, R Callon (2001), “Multiprotocol Label Switching Architecture‖, IETF RFC3031 [12] Chuck Semeria (2002), “RSVP Signaling Extensions for MPLS Traffic Engineering‖ White Page, Juniper Networks, Inc [13] Black, Uyless (2002), “MPLS & label switching networks‖, Prentice Hall PTR [14] Nortel Networks (2001), “MPLS—An introduction to multiprotocol label switching‖ White Page, Nortel Networks Marketing Publications 110 PHỤ LỤC A Mã nguồn NS2 mô mơ hình thực nghiệm ( Mã nguồn phụ lục A, B, C mang tính chất tham khảo, chương trình đầy đủ copy đĩa CD kèm luận văn) # # # # # # Nguyen Hoang Truong K12D2 Khoa Dien tu – Vien thong – Truong Dai hoc Cong nghe Dien thoai: 0983109637 Email: nh.truong@gmail.com Mo phong Streaming Media tren MPLS Phien ban: 1.00 - Dai hoc Quoc gia - Ha Noi proc usage {} { global argv0 puts stderr "Cach su dung: ns $argv0 [][][]" puts puts puts puts stderr stderr stderr stderr "Ten file Du lieu : File trace cua du lieu media" "RSVP-TE : Co dung RSVP-TE hay khong ?" "UDP/TCP: Su dung UDP hay TCP ?" "BW : Bang thong gay tac nghen" exit } proc finish {} { global ns tf tfs #close $nf close $tf #close $tfs puts "END" #exec nam -f dynamic-nam.conf testing.nam & exit } proc attach-cbr-traffic { node sink udp size rate interval} { global ns $ns attach-agent $node $udp set traffic [new Application/Traffic/CBR] $traffic set packetSize_ $size $traffic set interval_ $interval $traffic set rate_ $rate $traffic attach-agent $udp $ns connect $udp $sink return $traffic } proc createVideoSource { videoSourceName traceName } { global end_sim_time_ set original_file_id [open $videoSourceName r] set trace_file_id [open $traceName w] # REQUIRED in Windoze version: fconfigure $trace_file_id -encoding binary fconfigure $trace_file_id -translation binary #set trace_file_id [open video.dat w] set last_time while {[eof $original_file_id] == 0} { gets $original_file_id current_line if {[string length $current_line] == || [string compare [string index $current_line 0] "#"] == 0} { continue } scan $current_line "%d%s%d" next_time type length set time [expr 1000*($next_time$last_time)] set last_time $next_time puts -nonewline $trace_file_id [binary format "II" $time $length] } 111 close $original_file_id close $trace_file_id # set the simulation end time: set end_sim_time_ [expr 1.0*$last_time/1000+0.001] } proc attach-vdo-traffic { node sink filename} { global ns createVideoSource $filename video_1.dat # set udp [new Agent/UDP] $ns attach-agent $node $tp set trace_file_name video_1.dat set trace_file [new Tracefile] $trace_file filename $trace_file_name set traffic [new Application/Traffic/Trace] $traffic attach-tracefile $trace_file $traffic attach-agent $tp $ns connect $tp $sink return $traffic } #Thiet lap cac thong so dau vao set end_sim_time_ set video_file_ "" set rsvp_te_ "N" set tp_ "U" set bw_ "344K" switch $argc { { set video_file_ [lindex $argv 0] } { set video_file_ [lindex $argv 0] set rsvp_te_ [lindex $argv 1] } { set video_file_ [lindex $argv 0] set rsvp_te_ [lindex $argv 1] set tp_ [lindex $argv 2] } { set set set set video_file_ [lindex $argv 0] rsvp_te_ [lindex $argv 1] tp_ [lindex $argv 2] bw_ [lindex $argv 3] } default { usage } } set ns [new Simulator] set nf [open $video_file_$rsvp_te_$tp_$bw_.nam w] $ns namtrace-all $nf $ns $ns $ns $ns $ns color color color color color red magenta blue red green #Tao cac node mang set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns mpls-node] set n4 [$ns mpls-node] set n5 [$ns mpls-node] set n6 [$ns mpls-node] set n7 [$ns mpls-node] 112 set set set set set n8 [$ns mpls-node] n9 [$ns mpls-node] n10 [$ns node] n11 [$ns node] n12 [$ns node] $ns duplex-rsvp-link $n0 $n5 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n3 $n4 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n4 $n5 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n1 $n4 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n4 $n9 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n2 $n3 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link duplex-rsvp-link $n5 duplex-rsvp-link $n6 duplex-rsvp-link $n7 duplex-rsvp-link $n8 $n4 $n5 1Mb 10ms 0.99 1000 10000 Param Null $n6 1Mb 10ms 0.99 1000 10000 Param Null $n7 1Mb 10ms 0.99 1000 10000 Param Null $n8 1Mb 10ms 0.99 1000 10000 Param Null $n9 1Mb 10ms 0.99 1000 10000 Param Null $ns $ns $ns $ns $ns duplex-rsvp-link $n7 $n10 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n7 $n11 1Mb 10ms 0.99 1000 10000 Param Null $ns duplex-rsvp-link $n7 $n12 1Mb 10ms 0.99 1000 10000 Param Null $n2 label "Server" $n12 label "Client" $n0 label "CBR 400Kb" $n1 label "CBR $bw_\Kb" set tf [open $video_file_$rsvp_te_$tp_$bw_.tr w] $ns trace-queue $n7 $n12 $tf set tfs [open $video_file_$rsvp_te_$tp_$bw_.input.tr w] $ns trace-queue $n2 $n3 $tfs # Enable upcalls on all nodes Agent/RSVP set noisy_ 255 # # configure ldp agents on all mpls nodes # $ns configure-ldp-on-all-mpls-nodes set set set set set set set set set set set set set rsvp0 [$n0 add-rsvp-agent] rsvp1 [$n1 add-rsvp-agent] rsvp2 [$n2 add-rsvp-agent] rsvp3 [$n3 add-rsvp-agent] rsvp4 [$n4 add-rsvp-agent] rsvp5 [$n5 add-rsvp-agent] rsvp6 [$n6 add-rsvp-agent] rsvp7 [$n7 add-rsvp-agent] rsvp8 [$n8 add-rsvp-agent] rsvp9 [$n9 add-rsvp-agent] rsvp10 [$n10 add-rsvp-agent] rsvp11 [$n11 add-rsvp-agent] rsvp12 [$n12 add-rsvp-agent] set udp0 [new Agent/UDP] $udp0 set packetSize_ 500 $udp0 set fid_ set udp1 [new Agent/UDP] $udp1 set packetSize_ 500 $udp1 set fid_ if {$tp_=="U"} { set tp2 [new Agent/UDP] $tp2 set packetSize_ 8500 $tp2 set fid_ } if {$tp_=="T"} { set tp2 [new Agent/TCP] $tp2 set packetSize_ 8500 $tp2 set fid_ $tp2 set window_ $tp2 set class_ } 113 ############################################################################### set sink10 [new Agent/LossMonitor] $ns attach-agent $n10 $sink10 set sink11 [new Agent/LossMonitor] $ns attach-agent $n11 $sink11 if {$tp_=="U"} { set sink12 [new Agent/LossMonitor] } if {$tp_=="T"} { set sink12 [new Agent/TCPSink] } $ns attach-agent $n12 $sink12 #node sink udp size rate interval set bw $bw_\Kb set cbr0 [attach-cbr-traffic $n0 $sink10 $udp0 500 400Kb 0.010] set cbr1 [attach-cbr-traffic $n1 $sink11 $udp1 500 $bw 0.010] set vdo2 [attach-vdo-traffic $n2 $sink12 $tp2 $video_file_] for {set i 3} {$i < 10} {incr i} { set a n$i set m [eval $$a get-module "MPLS"] eval set LSRmpls$i $m } ############################################################################### $ns $ns $ns $ns $ns $ns at 0.0 at at 0.0 at at 0.0 at "$cbr0 $end_sim_time_ $end_sim_time_ "$vdo2 $end_sim_time_ if {$rsvp_te_=="Y"} { $ns at -0.1 "$LSRmpls3 create-crlsp $n3 $ns at -0.1 "$LSRmpls3 bind-flow-erlsp 12 0" } $ns at $end_sim_time_ "finish" $ns run "$cbr1 114 PHỤ LỤC B Mã nguồn FoxPRO mô Máy trạm định luồng * Tao viec mo phong viec choi file video tai may tram * Dau vao : lpDir : Thu muc chua du lieu * lpMaxBuffer, lpMinBuffer : Thong so Buffer PARAMETERS lpReportDir,lpDir,lpDataFile,lpMaxBuffer, lpMinBuffer * Mo file luu tru sReportFile = lpReportDir + "report.txt" IF (!FILE(sReportFile )) nReportHandle = FCREATE(sReportFile) ELSE nReportHandle = FOPEN(sReportFile) ENDIF * Kiem tra su ton tai cua file sInput = lpDir + lpDataFile + ".dbf" sOutput = lpDir + left(lpDataFile,at("_",lpDataFile)-1) + ".dbf" IF !(FILE(sInput) AND FILE(sOutput)) ?'Khong ton tai file' RETURN ENDIF * File log sLogFile = lpDir + "log.txt" * Mo file SELECT USE &sInput ALIAS tInput SELECT USE &sOutput ALIAS tOutput nLogHandle = FCREATE(sLogFile) * Trang thai : : Init,1 : Play, :Buffer sStatus = * Seq cua Frame dau tien cua trang thai Play hien thoi nFirstSeq = nFirstTime = * Hang doi buffer * Kich thuoc buffer hien thoi nItemCount = * Thoi gian he thong (ms) nTime = 0; * Thong ke loai packet mat nPLost = nPBLost = nILost = nPAmount = nPBAmount = nIAmount = * Seq goi tin gan nhat nLastSeq = * Viet thoi diem init vao log 115 sLogString = PADL(ALLTRIM(STR(nTime)), 10, SPACE(1)) + PADL("INIT", 6, SPACE(1)) + PADL(nItemCount, 4, SPACE(1)) ?sLogString =FPUTS(nLogHandle ,sLogString) DO WHILE T * Kiem tra trang thai hien thoi nTime = nTime + 10 * Dua them Frame vao Buffer SELECT tInput IF (!EOF()) IF (m.nTime >= tInput.timestamp) * neu dung thoi gian den thi nap vao buffer nItemCount = nItemCount + dSeqBuffer[nItemCount] = seq ?nItemCount SKIP ENDIF ELSE sStatus = ENDIF * Kiem tra lon cua buffer IF (nItemCount >= lpMaxBuffer) * neu khong phai dang trang thai Play thi chuyen trang thai va ghi log IF (sStatus 2) * Ghi log * Chuyen trang thai sStatus = nFirstSeq = dSeqBuffer[1] ENDIF ENDIF * Dua khoi buffer IF (sStatus = 2) bDay = F * Neu vua Buffering xong thi day IF (nFirstSeq = dSeqBuffer[1]) nFirstTime = nTime bDay = T ELSE * Tinh toan Interval * Lay Seq dau tien cua buffer nSeq = dSeqBuffer[1] SELECT tOutput GO TOP LOCATE FOR seq = nSeq IF (!FOUND()) EXIT ENDIF nCurTime = tOutput.timestamp GO TOP LOCATE FOR seq = nFirstSeq IF (!FOUND()) EXIT ENDIF nTimeofFirst = tOutput.timestamp nInterval = nCurTime - nTimeofFirst IF ((nTime - nFirstTime )>= nInterval ) 116 bDay = T ENDIF ENDIF * Day khoi buffer IF (bDay) * Tinh toan cac Packet bi mat nSeq = dSeqBuffer[1] FOR i = nLastSeq + TO nSeq -1 SELECT tOutput GO TOP LOCATE FOR seq = i IF (FOUND()) DO CASE CASE ALLTRIM(tOutput.packettype) = "I" nILost = nILost + nIAmount = nIAmount + tOutput.packetsize CASE ALLTRIM(tOutput.packettype) = "P" nPLost = nPLost + nPAmount = nPAmount + tOutput.packetsize CASE ALLTRIM(tOutput.packettype) = "PB" nPBLost = nPBLost + nPBAmount = nPBAmount + tOutput.packetsize ENDCASE ENDIF ENDFOR FOR i = TO nItemCount + dSeqBuffer[i-1] = dSeqBuffer[i] ENDFOR nItemCount = nItemCount - ?nItemCount * Kiem tra ve lpMinBuffer IF (nItemCount

Ngày đăng: 11/11/2020, 22:00

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

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

Tài liệu liên quan