Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING Bài tập lớn mạng máy tính DISTANCE VECTOR ROUTING
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THƠNG BÁO CÁO MẠNG MÁY TÍNH Đề tài: DISTANCE VECTOR ROUTING Giảng viên hướng dẫn TS 1| 2| LỜI NÓI ĐẦU Sự phát triển Internet đồng nghĩa với việc tăng trưởng quy mô công nghệ nhiều loại mạng LAN, WAN … Và đặc biệt lưu lượng thông tin mạng tăng đáng kể Chính điều làm cho vấn đề chia sẻ thông tin mạng vấn đề định tuyến trở nên quan trọng hết Trong việc thiết kế mạng lựa chọn giao thức định tuyến cho phù hợp với chi phí, tài nguyên tổ chức đặc biệt quan trọng Internet phát triển mạnh, lượng người truy nhập tăng yêu cầu định tuyến phải tin cậy, tốc độ chuyển mạch nhanh không gây lặp mạng Hơn nhiều tổ chức tham gia vào mạng nhiều giao thức đưa vào sử dụng dẫn đến phức tạp định tuyến gia tăng, số lượng giao thức để phục vụ cho việc định tuyến có nhiều Việc hiểu biết thiết kế mạng thơng tin cỡ lớn có sử dụng thiết bị định tuyến trở thành nhu cầu vơ cấp thiết thực tế Nó địi hỏi người thiết kế mạng phải có hiểu biết sâu giao thức sử dụng cho việc thiết kế mạng loại giao thức định tuyến khác Trong giới hạn tập lớn chúng em xin chọn đề tài “ Tìm hiểu giao thức định tuyến theo khoảng cách ” Trong trình thực đề tài này, chúng em cố gắng để hồn thành tốt có lẽ vốn kiến thức hạn hẹp yếu tố khách quan khác mà khơng tránh khỏi thiếu sót Chúng em mong đóng góp ý kiến, phê bình hướng dẫn thêm thầy bạn đọc Cuối chúng em xin gửi lời cảm ơn chân thành tới thầy hướng dẫn chúng em hoàn thành tập lớn Chúng em xin chân thành cảm ơn! 1| MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC DANH SÁCH HÌNH ẢNH .3 DANH MỤC BẢNG BIỂU .3 PHẦN MỜ ĐẦU .4 CHƯƠNG TÌM HIỂU VỀ DISTANCE VECTOR ROUTING 1.1 Sơ lược Distance Vector Routing 1.1.1 Giải thuật Distance vector 1.1.2 Routing Loop .5 1.1.3 Các giải pháp LOOP 1.2 Phân loại Distance Vector 1.2.1 Giao thức định tuyến RIP (Routing Information Protocol) 1.2.2 Giao thức định tuyến IGRP (Interio Gateway Routing Protocol) 1.3 Thuật toán Bellman-Ford 11 1.3.1 Tư tưởng thuật toán 11 1.3.2 Chứng minh tính đắn 11 1.3.3 Ứng dụng thuật toán 13 CHƯƠNG KẾ HOẠCH THỰC HIỆN MÔ PHỎNG 14 2.1 Phân tích yêu cầu .14 2.2 Kịch mô 15 CHƯƠNG KẾT QUẢ MÔ PHỎNG 16 KẾT LUẬN 22 TÀI LIỆU THAM KHẢO .23 PHỤ LỤC 24 2| DANH SÁCH HÌNH ẢNH Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 1: Vịng lặp định tuyến 2: Cấu hình mạng mô 14 3: Thời điểm bắt đầu mô 16 4: Thời điểm nguồn phát 16 5: Thời điểm nguồn phát 17 6: Thời điểm nguồn phát 17 7: Thời điểm liên kết 5-6 bị đứt 18 8: Thời điểm liên kết 9-10 bị đứt 18 9: Thời điểm liên kết 9-10 khôi phục 19 10: Thời điểm nguồn S1 ngừng phát 19 11: Thời điểm liên kết 5-6 khôi phục 20 12: Thời điểm nguồn S3 ngừng phát 20 13: Thời điểm kết thúc mô 21 DANH MỤC BẢNG BIỂU Bảng 1: kịch mô 15 3| PHẦN MỜ ĐẦU Thuật toán vector khoảng cách so sánh xác đường nhằm tìm đường tốt tới địa đích cho Thuật tốn cung cấp thơng tin cụ thể cấu trúc đường mạng hồn tồn khơng nhận biết router đường Các router theo vector khoảng cách thực gửi toàn phần bảng định tuyến gửi cho router kết nối trực tiếp với Vì thơng tin bảng định tuyến ngắn gọn, cho biết tương ứng với mạng đích cổng router, router có địa IP bao nhiêu, thông số định tuyến đường Do đó, router định tuyến theo vector khoảng cách đường cách cụ thể, router trung gian đường cấu trúc kết nối chúng Các router định tuyến theo vector khoảng cách thực cập nhật thông tin định tuyến theo định kỳ nên tốn nhiều băng thơng đường truyền Khi có cố thay đổi xảy ra, router nhận biết thay đổi cập nhật bảng định tuyến trước chuyển bảng định tuyến cập nhật cho router láng giềng Router láng giềng nhận thông tin mới, cập nhật vào bảng định tuyến cập nhật cho router láng giềng Quá trình cập nhật tồn hệ thống Do thời gian hội tụ chậm CHƯƠNG 1.TÌM HIỂU VỀ DISTANCE VECTOR ROUTING 1.1 Sơ lược Distance Vector Routing 1.1.1 Giải thuật Distance vector 4| Distance-vector: RIP, IGRP Hoạt động theo nguyên tắc "hàng xóm", nghĩa router sẻ gửi bảng routing-table cho tất router nối trực tiếp với Các router sau so sánh với bảng routing-table mà có kiểm xem route route nhận được, route tốt cập Các routing-update gởi theo định kỳ (30 giây với RIP , 60 giây RIP-novell , 90 giây IGRP) Do , có thay đổi mạng , router nhận biết khúc mạng bị down Ưu điểm : Dễ cấu hình Router khơng phải xử lý nhiều điều cho phép CPU MEM thực thêm công việc khác Nhược điểm: Hệ thống metric đơn giản (như rip hop-count ), nên xảy việc đường "tốt nhất" chưa phải tốt Do phải cập nhật định kỳ routing-table, nên lượng bandwidth (băng thông) đáng kể sẻ bị chiếm , làm thoughput (thông lượng) (mặc dù mạng khơng thay đổi nhiều) 1.1.2 Routing Loop Trước network bị down thì tất router xem đường route tới network tốt Router C nhận định muốn tới network phải qua router B với metric (ví dụ ta chạy RIP) 5| Hình 1: Vịng lặp định tuyến Khi network bị down xuống router E gửi update tới A là: N1 down router B, C, D Nhưng B D nhận biết N1 down cách nhanh chóng connect trực tiếp tới A nên nhận update nhanh Tuy nhiên C không nhận update N1 down nến gửi update tới B D đường tới N1 tồn Và B D update lại routing table N1 tốt Muốn đến N1 qua C Như sai trình lặp lặp lại (vì A gửi lại update nói với B D la N1 good) ===> routing loop Nguyên nhân: B D nhận update từ A cịn C khơng , "HƠI TỤ CHẬM" ( SLOW CONVERGENCE) Vậy sau topology change tất router cần time để tính tốn lại đường route mình, q trình thời gian gọi TIME TO CONVERGENCE 1.1.3 Các giải pháp LOOP SPLIT HORIZON: Router B D nhận update N1(down) không gửi lại update N1 (up, sau nhận từ C) tới cho router A Split horizon sử dụng để đảm bảo thông tin route router phát khơng quay lại Ví dụ, network chưa down, router E gửi thông 6| tin update đến router A Router A không gửi lại thông tin update đến N1 quay lại E làm thế, đương nhiên E khơng dùng thơng tin ==> lãng phí Cịn trường hợp route bị poison ==> Do có Split horizon, thơng tin route đến N1 không bị lặp lặp lại link A E (countto-infinite) Split horizon with Poison reverse : Bình thường, A khơng gửi lại cho E thông tin route đến N1 Nhưng A nhận tin update nói route đến N1 unreachable > A gửi lại cho E thông tin route đến N1 với metric infinite HOLD DOWN TIMER : Khi router nhận thông tin route unreachable, router đánh dấu route đặt vào trạng thái hold-down (Router đặt định thời = thời gian hold-down) Trong thời gian hold-down, router tiếp tục dùng route để forward gói tin, bỏ qua tất thông tin route với thông số metric hoăc xấu metric router có route Hold-down timer bị reset thời gian hold-down hết, router nhận thông tin route với metric tốt metric giữ Ví dụ: Khi A nhận thông tin route đến N1 bị down, holddown timer cho route thiết lập Tương tự với B, D Do D nhận update từ C, metric mà C gửi lớn (xấu hơn) metric D có route N1 nên D bỏ qua ==> Khơng cịn loop POSION REVERSE UPDATE : Là update đặc biệt gửi từ router connect với network down tới router neighbor ( khong bao gồm router có network bị down ) đường route tới network infinity Khi router phát route R bị down (router không nhận tin update từ router neighbor mà từ học route R), router đặt giá trị metric route R giá trị không xác định (infinite) gửi tin cập nhật định tuyến để thông báo với router mạng route R unreachable Trong hình vẽ, router E khơng nhận thơng tin route đến N1, đặt metric route đến N1 infinite gửi tin định tuyến Đồng thờ, E hủy bỏ route đến N1 bảng định tuyến 7| TRIGGER UPDATE: Trigger updates update gửi có route bị fail, khơng cần chờ đến thời gian định kỳ để gửi update 1.2 Phân loại Distance Vector Các giao thức định tuyến thuộc loại : RIP , IGRP , …… Hoạt động theo nguyên tắc Neighbor , nghĩa router sẻ gửi routing-table cho tất router nối trực tiếp với Các router sau so sánh với bảng routing-table mà có kiểm tra lại tuyến đường với tuyến đường nhận được, tuyến đường tối ưu sẻ đưa vào routingtable Các gói tin update gửi theo định kỳ (30 giây với RIP ,90 giây IGRP) 1.2.1 Giao thức định tuyến RIP (Routing Information Protocol) Routing Information Protocol (RIP) giao thức định tuyến vector khoảng cách (Distance Vector Protocol) xuất vào năm 1970 Xerox phần giao thức Xerox Networking Services (XNS) Và sau RIP chấp nhận rộng rải trước có chuẩn thức xuất Đến năm 1988 RIP thức ban bố RFC1058 Charles Hedrick RIP sử dụng rộng rãi tính chất đơn giản tiện dụng RIP giao thức định tuyến vector khoảng cách điển hình, đặn gửi tồn routing table Router hàng xóm Router phát tán tất Router bên cạnh đặn theo chu kỳ 30 giây RIP sử dụng metric hop-count để tính tuyến đường tốt tới mạng đích Thuật tốn mà RIP sử dụng để xây dựng nên routing table Bellman-Ford RIP sử dụng hop-count thước đo định tuyến để tìm kiếm đường tốt hai điểm Hop-count số lượng Router mà packet phải qua đến địa đích Để tránh tình trạng Lop vơ tận RIP giới hạn Hop-count tối đa 16 Khi Router nhận thông tin láng giềng Router tăng số Hop lên Router xem Hop 8| Hình 5: Thời điểm nguồn phát Ở thời điểm 3s, luồng (màu xanh lam) chạy, đường ngắn để đến đích d từ S3 d Kết mô cho thấy điều (Hình 6) Hình 6: Thời điểm nguồn phát Các luồng tiếp tục chạy hình vẽ thời điểm 10s Lúc liên kết 5-6 (màu đỏ) bị đứt, luồng theo đường cũ Luồng 1: S1 17 | d Luồng 2: S2 d Luồng 3: S3 10 11 d Kết mô cho (Hình 7) Hình 7: Thời điểm liên kết 5-6 bị đứt Tiếp theo thời điểm 15s, liên kết 9-10 bị đứt (cũng màu đỏ), luồng khơng theo đường cũ, từ S3 d Kết mô cho đường (Hình 8) Hình 8: Thời điểm liên kết 9-10 bị đứt Hình thời điểm 20s, liên kết - 10 khôi phục Đường luồng trước thời điểm tối ưu nhất, nên chuyển qua đường khác 18 | ngắn từ S3 10 11 d Kết mô cho (Hình 9) Hình 9: Thời điểm liên kết 9-10 khôi phục Thời điểm 22s, luồng bị tắt Kết mơ cho thấy luồng khồng cịn chạy (Hình 10) Hình 10: Thời điểm nguồn S1 ngừng phát 19 | Tiếp đến thời điểm 25s, liên kết 5-6 khơi phục, mơ hình mạng giống với mơ lúc ban đầu mà đường giống thời điểm từ 3s đến 10s (Hình 11) Hình 11: Thời điểm liên kết 5-6 khơi phục Hình 12 thời điểm 28s Luồng bị ngắt Theo kết mơ luồng khơng cịn chạy (Hình 12) Hình 12: Thời điểm nguồn S3 ngừng phát 20 | Cuối thời điểm 30s Q trình mơ kết thúc (Hình 13) Hình 13: Thời điểm kết thúc mơ KẾT LUẬN Kết mô đạt theo tính tốn mong đợi, gói tin theo dường ngắn có thay đổi mạng gói tin định hướng lại đường 21 | Thông qua việc thực tập lớn, chúng em tính lũy nhiều kiến thức thực tế chuyên ngành điện tử viễn thông,thầy tạo cho chúng em niềm say mê học tập, tìm tịi kiến thức mới, giúp chúng em hồn thiện kỹ mềm kỹ làm việc nhóm, phần mềm mơ phỏngchun dụng NS2, hệ điều hành mã nguồn mở Ubuntu Do vốn kiến thức hạn hẹp nên việc thực ý tưởng cịn nhiều hạn chế Nếu cịn có sai sót, chúng em mong thầy giúp đỡ tạo điều kiện để chúng em hồn thành cách tốt BTL Chúng em xin chân thành cám ơn! TÀI LIỆU THAM KHẢO Slide giảng Mạng máy tính thầy Tài liệu tham khảo SáchCOMPUTER NETWORKING A Top-Down Approachcủa tác giả James F Kurose, Keith W Ross 22 | Thuật toán Bellman-Ford https://vi.wikipedia.org/wiki/Thu%E1%BA %ADt_to%C3%A1n_Bellman-Ford Tài liệu hướng dẫn http://www.isi.edu/nsnam/ns/tutorial/ PHỤ LỤC Source code tcl #Tao mot doi tuong mo phong set ns [new Simulator] # Tao file trace set nr [open thro.tr w] $ns trace-all $nr # Tao file namtrace set nf [open thro.nam w] 23 | $ns namtrace-all $nf # Dinh nghia thu tuc "finish" proc finish { } { global ns nr nf $ns flush-trace close $nf close $nr exec nam thro.nam & exit } # Kich thuoc hang doi (coi nhu hang doi co kich thuoc vo han) set queuesize 1000000000 # Tao nguon s1 set s1 [$ns node] # Dat mau cho nguon s1 $s1 color Red # Dat hinh dang cho nguon s1 $s1 shape box #Tao nguon s2, dat mau va hinh dang cho s2 giong nhu s1 set s2 [$ns node] $s2 color Red $s2 shape box #Tao nguon s3, dat mau va hinh dang cho s2 giong nhu s1 set s3 [$ns node] $s3 color Red $s3 shape box 24 | #Tao dich d1 set d [$ns node] #Dat mau cho dich d $d color Blue #Dat hinh dang cho dich d $d shape hexagon # Tao 11 nodes for { set i } { $i < 12} { incr i } { set n($i) [$ns node]} # Tao lien ket giua cac node for {set i 1} {$i < 4} {incr i} { $ns duplex-link $n($i) $n([expr $i+1]) 10Mb 10ms DropTail } $ns duplex-link $s1 $n(1) 1Mb 10ms DropTail $ns duplex-link $s2 $n(1) 1Mb 10ms DropTail $ns duplex-link $n(1) $n(5) 10Mb 10ms DropTail for {set i 5} {$i < 7} {incr i} { $ns duplex-link $n($i) $n([expr $i+1]) 10Mb 10ms DropTail } $ns duplex-link $n(4) $n(7) 10Mb 10ms DropTail $ns duplex-link $s3 $n(8) 1Mb 10ms DropTail $ns duplex-link $n(5) $n(8) 10Mb 10ms DropTail for {set i 8} {$i < 11} {incr i} { $ns duplex-link $n($i) $n([expr $i+1]) 10Mb 10ms DropTail } $ns duplex-link $n(7) $n(11) 10Mb 10ms DropTail $ns duplex-link $n(7) $d 10Mb 10ms DropTail # Thiet lap mo hinh NAM $ns duplex-link-op $s1 $n(1) orient right-down $ns duplex-link-op $s2 $n(1) orient right $ns duplex-link-op $n(1) $n(2) orient right-up 25 | $ns duplex-link-op $n(1) $n(5) orient right $ns duplex-link-op $n(2) $n(3) orient right $ns duplex-link-op $n(5) $n(6) orient right $ns duplex-link-op $n(5) $n(8) orient down $ns duplex-link-op $n(3) $n(4) orient right $ns duplex-link-op $n(6) $n(7) orient right $ns duplex-link-op $n(8) $s3 orient left $ns duplex-link-op $n(8) $n(9) orient right $ns duplex-link-op $n(4) $n(7) orient down $ns duplex-link-op $n(9) $n(10) orient right $ns duplex-link-op $n(7) $n(11) orient down $ns duplex-link-op $n(7) $d orient right $ns duplex-link-op $n(10) $n(11) orient right # Kich thuoc hang doi $ns queue-limit $n(1) $n(2) $queuesize $ns queue-limit $n(1) $n(5) $queuesize $ns queue-limit $n(2) $n(3) $queuesize $ns queue-limit $n(5) $n(6) $queuesize $ns queue-limit $n(5) $n(8) $queuesize $ns queue-limit $n(3) $n(4) $queuesize $ns queue-limit $n(6) $n(7) $queuesize $ns queue-limit $n(8) $n(9) $queuesize $ns queue-limit $n(4) $n(7) $queuesize $ns queue-limit $n(9) $n(10) $queuesize $ns queue-limit $n(7) $n(11) $queuesize $ns queue-limit $n(10) $n(11) $queuesize $ns queue-limit $n(7) $d $queuesize # Tao agent UDP: upd1 set udp1 [new Agent/UDP] 26 | # Gan agent udp1 vao nguon: s1 $ns attach-agent $s1 $udp1 # Tao doi tuong traffic CBR: cbr1 set cbr1 [new Application/Traffic/CBR] # Co co dinh cua packet duoc tao $cbr1 set packetSize_ 500 # Khoang cach thoi gian giua cac goi $cbr1 set interval_ 0.005 # gan cbr1 vao agent udp1 $cbr1 attach-agent $udp1 # Tao agent Null set null1 [new Agent/Null] # Gan agent Null: null1 vao dich: d $ns attach-agent $d $null1 # Ket noi agent lai voi $ns connect $udp1 $null1 # Tao agent UDP: udp2 set udp2 [new Agent/UDP] # Gan agent upd2 vao nguon: s2 $ns attach-agent $s2 $udp2 # Tao doi tuong traffic CBR: cbr2 set cbr2 [new Application/Traffic/CBR] # Co co dinh cua packet duoc tao $cbr2 set packetSize_ 500 # Khoang cach thoi gian giua cac goi $cbr2 set interval_ 0.005 # Gan cbr2 vao agent upd2 $cbr2 attach-agent $udp2 # Tao agent Null set null1 [new Agent/Null] 27 | # Gan agent Null: null1 vao dich: d $ns attach-agent $d $null1 # Ket noi agent lai voi $ns connect $udp2 $null1 # Tao agent UDP: udp3 set udp3 [new Agent/UDP] # Gan agent UDP: udp3 vao nguon: s3 $ns attach-agent $s3 $udp3 # Tao doi tuong traffic CBR: cbr3 set cbr3 [new Application/Traffic/CBR] # Co co dinh cua packet duoc tao $cbr3 set packetSize_ 500 # Khoang cach thoi gian giua cac packet $cbr3 set interval_ 0.005 # Gan cbr3 vao agent upd3 $cbr3 attach-agent $udp3 # Tao agent Null: null1 set null1 [new Agent/Null] # Gan agent Null: null1 vao dich: d $ns attach-agent $d $null1 # Ket noi agent lai voi $ns connect $udp3 $null1 # Thiet lap giao thuc dinh tuyen, o day la Distance Vector $ns rtproto DV # Mo phong chay den giay thu 10 thi lien ket node va node bi dut $ns rtmodel-at 10.0 down $n(5) $n(6) # Mo phong chay den giay thu 15 thi lien ket node va node 10 bi dut $ns rtmodel-at 15.0 down $n(9) $n(10) 28 | # Mo phong chay den giay thu 20 thi lien ket node va node 10 duoc khoi phuc $ns rtmodel-at 20.0 up $n(9) $n(10) # Mo phong chay den giay thu 25 thi lien ket node va node duoc khoi phuc $ns rtmodel-at 25.0 up $n(5) $n(6) # Gan udp1 cho luong $udp1 set fid_ # Gan udp2 cho luong $udp2 set fid_ # Gan udp3 cho luong $udp3 set fid_ # Gan mau cac packet cho luong $ns color Red # Gan mau cac packet cho luong $ns color Green # Gan mau cac packet cho luong $ns color Blue # Tai thoi diem bat dau mo phong tao label cho cac node $ns at 0.0 "$s1 label \"S1\"" $ns at 0.0 "$s2 label \"S2\"" $ns at 0.0 "$s3 label \"S3\"" $ns at 0.0 "$n(1) label \"1\"" $ns at 0.0 "$n(2) label \"2\"" $ns at 0.0 "$n(3) label \"3\"" $ns at 0.0 "$n(4) label \"4\"" $ns at 0.0 "$n(5) label \"5\"" $ns at 0.0 "$n(6) label \"6\"" 29 | $ns at 0.0 "$n(7) label \"7\"" $ns at 0.0 "$n(8) label \"8\"" $ns at 0.0 "$n(9) label \"9\"" $ns at 0.0 "$n(10) label \"10\"" $ns at 0.0 "$n(11) label \"11\"" $ns at 0.0 "$d label \"d\"" # Thiet lap thoi gian mo phong # Tai thoi diem 1s doi tuong traffic cbr1 duoc chay $ns at 1.0 "$cbr1 start" # Tai thoi diem 2s doi tuong traffic cbr2 duoc chay $ns at 2.0 "$cbr2 start" # Tai thoi diem 3s doi tuong traffic cbr3 duoc chay $ns at 3.0 "$cbr3 start" # Tai thoi diem 22s doi tuong traffic cbr1 bi dung $ns at 22.0 "$cbr1 stop" # Tai thoi diem 28s doi tuong traffic cbr3 bi dung $ns at 28.0 "$cbr3 stop" # Tai thoi diem 30 ket thuc mo phong $ns at 30 "finish" # Chay mo phong $ns run 30 | 31 | ... VỀ DISTANCE VECTOR ROUTING 1.1 Sơ lược Distance Vector Routing 1.1.1 Giải thuật Distance vector 4| Distance- vector: RIP, IGRP Hoạt động theo nguyên tắc "hàng xóm", nghĩa router sẻ gửi bảng routing- table... ĐẦU .4 CHƯƠNG TÌM HIỂU VỀ DISTANCE VECTOR ROUTING 1.1 Sơ lược Distance Vector Routing 1.1.1 Giải thuật Distance vector 1.1.2 Routing Loop .5 1.1.3 Các giải... cầu Mơ mơ hình định tuyến sử dụng vector khoảng cách (Distance vector routing) tùy chọn thiết lập mạng chọn tham số phù hợp Hình 2: Cấu hình mạng mơ Với cấu hình mạng hình Có nguồn S1,S2,S3 :