Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
64,3 KB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THƠNG BÀI TẬP LỚN HỌC PHẦN MẠNG MÁY TÍNH ĐỀ TÀI: LẬP TRÌNH MƠ PHỎNG MƠ HÌNH ĐỊNH TUN SỬ DỤNG THUẬT TOÁN ĐƯỜNG ĐI NGẮN NHẤT (SHORTEST PATH ROUTING) Giảng viên: PGS.TS Trần Quang Vinh Nhóm 9: Phạm Trọng Phụng Lưu Văn Công Đồn Hữu Hải Đặng Văn Bình Lê Quang Huy Hà Nội, tháng 11 năm 2021 20182723 20182390 20182479 20182379 20182578 MỤC LỤC DANH MỤC HÌNH VẼ I LÝ THUYẾT Định tuyến mạng thông tin: a Định tuyến (routing): b Các lớp thuật toán định tuyến: Giao thức định tuyến: a b Giao Giao thức định tuyến trong: thức định tuyến ngoài: Nút mạng thông tin a Khái niệm nút b Vai trò nút c Các loại nút khác 4.Switch a b c d Khái niệm Switch Tầm quan trọng Switch Ích lợi chuyển mạch Switch Đặc điểm Switch Đường truyền II MÔ TẢ ĐỀ BÀI Định tuyến đường dẫn ngắn (Shortest Path Routing): Thuật toán Dijkstra: III Mô Ý tưởng giả thuật Code minh họa Kết mô Nhận xét DANH MỤC HÌNH VẼ Hình Switch Hình Các đường ngắn lồng Hình Ví dụ mạng Hình Mơ hình đường dẫn ngắn Hình Bảng chọn tuyến cho nút I LÝ THUYẾT Định tuyến mạng thông tin: a Định tuyến (routing): Định tuyến trình chọn lựa đường mạng máy tính để gửi liệu qua Việc định tuyến thực cho nhiều loại mạng, có mạng điện thoại, liên mạng, Internet, mạng giao thông Định tuyến hướng, di chuyển gói (dữ liệu) đánh địa từ mạng nguồn chúng, hướng đến đích cuối thông qua node trung gian Thiết bị phần cứng chuyên dùng gọi router (bộ định tuyến) Tiến trình định tuyến thường hướng dựa vào bảng định tuyến, bảng chứa lộ trình tốt đến đích khác mạng Vì việc xây dựng bảng định tuyến, tổ chức nhớ router, trở nên vô quan trọng cho việc định tuyến hiệu Routing khác với bridging (bắc cầu) chỗ nhiệm vụ cấu trúc địa gợi nên gần gũi địa tương tự mạng, qua cho phép nhập liệu bảng định tuyến đơn để mơ tả lộ trình đến nhóm địa Vì thế, routing làm việc tốt bridging mạng lớn, trở thành dạng chiếm ưu việc tìm đường mạng internet b Các lớp thuật toán định tuyến: Thuật toán vector (distance-vector routing protocol): Thuật tốn dùng thuật tốn Bellman-Ford Nó định số, gọi chi phí (hay trọng số), cho liên kết node mạng Các node gửi thông tin từ điểm A đến điểm B qua đường mang lại tổng chi phí thấp (là tổng chi phí kết nối node dùng) Thuật toán hoạt động với hành động đơn giản Khi node khởi động lần đầu, biết node kề trực tiếp với nó, chi phí trực tiếp để đến (thơng tin, danh sách đích, tổng chi phí node, bước để gửi liệu đến tạo nên bảng định tuyến, hay bảng khoảng cách) Mỗi node, tiến trình, gửi đến “hàng xóm” tổng chi phí để đến đích mà biết Các node “hàng xóm” phân tích thơng tin này, so sánh với thông tin mà chúng “biết”; điều cải thiện thơng tin chúng có đưa vào bảng định tuyến Đến kết thúc, tất node mạng tìm bước truyền tối ưu đến tất đích, tổng chi phí tốt Thuật toán trạng thái kết nối (Link-state routing protocols): Khi áp dụng thuật toán trạng thái kết nối, node sử dụng sở liệu đồ mạng với dạng đồ thị Để làm để làm điều này, node phát tới tổng thể mạng thông tin node khác mà kết nối được, node góp thơng tin cách độc lập vào đồ Sử dụng đồ này, router sau định tuyến đường tốt từ đến node khác Các router trao đổi gói tin LSA với router khác Đây gói tin nhỏ, chứa thông tin router Mỗi router dựa vào LSAs để tạo topological database, sử dụng giải thuật SPF (Short Path First) để tìm đường Mỗi router xác định xác topology mạng Chính router đưa định để đưa packet đến đích tốt Mỗi router mạng báo cáo trạng thái nó, link nối trực tiếp trạng thái link Router nhân thông tin tới tất router mạng Cuối tất router mạng có nhìn giống topology mạng Thuật toán làm theo cách thuật tốn Dijkstra (thuật tốn mà ta tìm hiểu ứng dụng), cách xây dựng cấu trúc liệu khác, dạng cây, trng node gốc, chứa node khác mạng Bắt đầu với ban đầu chứa Sau từ tập node chưa thêm vào cây, thêm node có chi phí thấp để đến node có Tiếp tục trình đến node thêm Cây sau phục vụ để xây dựng bảng định tuyến, đưa bước truyền tối ưu để từ node đến node khác mạng Thuật toán định tuyến trạng thái kết nối phản ứng nhanh nhạy hơn, khoảng thời gian có hạn, thay đổi kết nối Ngồi ra, gói gửi qua mạng định tuyến trạng thái kết nối nhỏ gói dùng định tuyến vector Giao thức định tuyến: Giao thức định tuyến dùng thi hành thuật toán định tuyến để thuận tiện cho việc trao đổi thông tin mạng, cho phép router xây dựng bảng định tuyến cách linh hoạt Trong số trường hợp, giao thức định tuyến tự chạy đè lên giao thức định tuyến Danh sách giao thức định tuyến: a Giao thức định tuyến trong: Router Information Protocol (RIP) Open Shortest Path First (OSPF) Intermediate System to Intermediate System (IS-IS) Interior Gateway Routing Protocol (IGRP) (thuộc sở hữu Cisco) Enhanced IGRP (EIGRP) (thuộc sở hữu Cisco) b Giao thức định tuyến ngoài: Exterior Gateway Protocol (EGP) Border Gateway Protocol (BGP) Constrained Shortest Path First (CSPF) Nút mạng thông tin a Khái niệm nút Nút thiết bị vật lý mạng thiết bị khác gửi, nhận / chuyển tiếp thơng tin Máy tính nút phổ biến nhất, thường gọi nút máy tính nút internet Modem, switch, hub, bridge, server, printer nút, thiết bị khác kết nối qua WiFi Ethernet Ví dụ, mạng kết nối ba máy tính máy in, với hai thiết bị khơng dây khác, có sáu nút tổng Các nút mạng máy tính phải có số dạng nhận dạng đó, địa IP địa MAC, để thiết bị mạng khác nhận diện Một nút khơng có thơng tin nút thực ngoại tuyến, khơng cịn hoạt động nút b Vai trò nút Các nút mạng phần vật lý tạo thành mạng, thường có vài loại khác Nút mạng thường thiết bị nhận sau truyền đạt thơng tin qua mạng, thay vào nhận lưu trữ liệu, chuyển tiếp thông tin nơi khác tạo gửi liệu Ví dụ, nút máy tính lưu tập tin trực tuyến gửi email, dòng video tải tập tin khác Máy in mạng nhận yêu cầu in từ thiết bị khác mạng máy qt gửi ảnh trở lại máy tính Một định tuyến xác định liệu cung cấp cho thiết bị yêu cầu tải tệp xuống mạng, sử dụng để gửi yêu cầu tới Internet công cộng c Các loại nút khác Trong mạng lưới truyền hình cáp dựa cáp, nút nhà / doanh nghiệp kết nối với thu sợi quang Một ví dụ khác nút thiết bị cung cấp dịch vụ mạng thông minh mạng di động, điều khiển trạm gốc (BSC) Nút Hỗ trợ GPRS Cổng (GGSN) Nói cách khác, nút di động cung cấp phần mềm điều khiển phía sau thiết bị di động, giống cấu trúc với anten sử dụng để truyền tín hiệu đến tất thiết bị mạng di động Siêu nút nút mạng ngang hàng không hoạt động nút thơng thường mà cịn máy chủ proxy thiết bị chuyển tiếp thông tin cho người dùng khác mạng P2P Bởi điều này, siêu âm địi hỏi nhiều CPU băng thơng nút thông thường 4.Switch a Khái niệm Switch Switch thiết bị chuyển mạch tối quan trọng mạng, dùng để kết nối đoạn mạng với theo mô hình hình (Star) Trong mơ hình này, switch đóng vai trò trung tâm tất thiết bị vệ tinh khác kể máy tính kết nối đây, từ định tuyến tạo đường nối tạm trung chuyển liệu Ngoài ra, Switch hỗ trợ công nghệ Full Duplex dùng để mở rộng băng thông đường truyền, điều mà thiết bị khác khơng làm Hình Switch Có thể hiểu đơn giản thiết bị chuyển mạch Switch giống cảnh sát giao thông phân luồng liệu mạng cục Nó có khả chọn đường dẫn để định chuyển frame (đơn vị tầng liên kết liệu) nên mạng LAN hoạt động hiệu Switch có khả nhận dạng máy kết nối với nhờ cách đọc địa MAC nguồn frame nhận Khi hai máy mạng liên lạc với nhau, Switch tạo mạch ảo hai cổng tương ứng mà không làm ảnh hưởng đến lưu thông cổng khác b Tầm quan trọng Switch Hiểu tầm quan trọng thiết bị chuyển mạch giải thích Switch lại cần thiết phải có sở mạng đến Mạng LAN hoạt động ổn định, hiệu suất cao nhờ Switch có khả tạo đường dẫn kết nối ảo hai thiết bị với mà không làm ảnh hưởng đến kết nối khác Tương tự Switch, thiết bị khác phổ biến Hub Về hai thiết bị chuyển mạch có vai trị tương đương nhau, giúp kết nối nhiều máy tính thiết bị với mạng chúng đóng vai trị trung tâm Tuy nhiên, thay tạo mạng ảo kết nối hai thiết bị Hub chia sẻ bang thơng đường truyền Khi có hai máy trạm giao tiếp với chúng chiếm dung lượng băng thơng đáng kể, hoạt động thiết bị khác kết nối vào Hub bị giảm xuống Nói để biết thiết bị chuyển mạch Switch thông minh ưu việt hẳn nhờ khả tạo đường truyền ảo để kết nối riêng biệt hai thiết bị, đảm bảo cung cấp trọn băng thơng c Ích lợi chuyển mạch Switch Có thể bạn hình dung phần lợi ích thiết bị chuyển mạch gì, cần thiết tổ chức hay doanh nghiệp Switch giúp cho hoạt động diễn cách song cơng (có thể đọc - ghi, nghe - nói) lúc thiết bị Ưu việt chia sẻ băng thông giống thiết bị tương tự khác, không ảnh hưởng đến kênh truyền khác không bị ảnh hưởng chúng Hơn với chế tự kiểm tra lỗi Frame nên giảm tỉ lệ lỗi frame, gói tin tốt nhận lưu lại trước chuyển (công nghệ store-andforward) Switch hoạt động chủ yếu tầng liên kết liệu Layer hay gọi Switch Layer mơ hình tham chiếu OSI (mơ hình lý giải cách trừu tượng kỹ thuật kết nối truyền thông máy vi tính thiết kế giao thức mạng chúng) Nó giới hạn lưu lượng truyền mức ngưỡng Một Switch Layer kèm với loại giao diện khác 10Mbps, 100Mbps, IGbps, 10Gbps Tất nhiên hỗ trợ giao tiếp Full-duplex cổng Khơng có thế, Switch tạo điều kiện để mở rộng mạng kết nối với phần lại mạng thông qua cổng Uplink tốc độ cao, kết nối với thiết bị chuyển mạch Switch Layer khác hay Switch Layer định tuyến Tóm lại, Switch hoạt động điều khiển trung tâm, cho phép tất thiết bị kết nối đến giao tiếp hiệu Thông qua việc chia sẻ thông tin phân bổ nguồn lực giúp tăng suất làm việc nhân viên tiết kiệm tiền bạc cho doanh nghiệp d Đặc điểm Switch Có trường hợp người dùng internet bình thường hỏi thiết bị chuyển mạch gì? Nó có tác dụng nào? Đặc điểm sao? Tơi có cần phải trang bị cho mạng gia đình khơng? Xin trả lời ln với bạn “Không”, tổ chức hay doanh nghiệp phải xây dựng sở mạng tốt, phục vụ cho nhiều người cần phải quan tâm tới Switch Nhìn chung Switch có đặc điểm giống thiết bị tương tự khác Hub hay Router Tuy nhiên Switch có hai đặc điểm riêng biệt: Phân chia kết nối riêng biệt đoạn mạng: Switch chia nhỏ hệ thống mạng thành đơn vị cực nhỏ gọi microsegment Chính điều cho phép nhiều người dùng nhiều segment khác giao tiếp gửi liệu lúc mà không làm ảnh hưởng đến Cung cấp băng thông lớn cho người dùng cách tạo miền đụng độ nhỏ Switch chia nhỏ mạng LAN thành nhiều đoạn mạng nhỏ, tương ứng kết nối riêng giống đường riêng Đường truyền Đường truyền hệ thống thiết bị truyền dẫn có dây hay khơng dây dùng để chuyển tín hiệu điện tử từ máy tính đến máy tính khác Các tín hiệu điện tử biểu thị giá trị liệu dạng xung nhị phân (On - Off) Tất tín hiệu truyền máy tính thuộc dạng sóng điện từ Tùy theo tần số sóng điện từ dùng đường truyền vật lý khác để truyền tín hiệu Ở đường truyền kết nối dây cáp đồng trục, cáp xoắn, cáp quang, dây điện thoại, sóng vơ tuyến Các đường truyền liệu tạo nên cấu trúc mạng Tốc độ truyền liệu đường truyền gọi thơng lượng đường truyền - thường tính số lượng bit truyền giây (Bps) Thơng lượng cịn đo đơn vị khác Baud (lấy từ tên nhà bác học Emile Baudot) Baud biểu thị số lượng thay đổi tín hiệu giây Một đơn vị đo tốc độ truyền dẫn liệu khác megabyte giây (MBps MB\s), bằng: megabyte\s (1MBps) = 1024 Kilobytes\s (1024 KBps) = 1024*1024 Bytes\s = 1024*1024*8 bits\s II MÔ TẢ ĐỀ BÀI Định tuyến đường dẫn ngắn (Shortest Path Routing): Bài tốn tìm đường ngắn tốn quan trọng trình thiết kế phân tích mạng Hầu hết tốn định tuyến giải giải tốn tìm đường ngắn “độ dài” thích hợp gắn vào cạnh (hoặc cung) mạng Trong thuật tốn thiết kế cố gắng tìm kiếm cách tạo mạng thỏa mãn tiêu chẩn độ dài đường Bài toán đơn giản loại tốn tìm đường ngắn hai nút cho trước Loại tốn tốn tìm đường ngắn từ nút tới tất nút lại, tương đương tốn tìm đường ngắn từ tất điểm đến điểm Đơi địi hỏi phải tìm đường ngắn tất cặp nút Ta xét graph hữu hướng giả sử biết độ dài cung cặp nút i j l Các độ dài không cần phải đối xứng Khi cung không tồn độ dài l giả sử lớn (chẳng hạn lớn gấp n lần độ dài cung lớn mạng) Chú ý áp dụng q trình cho mạng vơ hướng cách thay cạnh hai cung có độ dài Ban đầu giả sử l dương hoàn tồn; sau giả thiết thay đổi Phần lớn mạng chuyển mạch gói sử dụng thuật toán khác phương pháp chọn tuyến đường ngắn lớp mạng thực Một số mạng chọn tuyến theo cách thức tập trung, thiết lập đường dẫn nút nguồn nút đích trung tâm điều hành mạng NMC (Network Management Center) hay trung tâm điều khiển chọn tuyến RCC (Routing Control Center) sau phân phối thơng tin chọn tuyến đến tất nút chuyển mạch mạng Các nút mạng khác sử dụng cách thức phi tập trung hay gọi cách thức phân bố, nút trao đổi thông tin chọn tuyến giá thành với nút khác mạng sở tương tác bảng định tuyến đáp ứng yêu cầu định tuyến ngắn 2 Thuật toán Dijkstra: Tất thuật tốn tìm đường ngắn dựa vào việc lồng đường ngắn nghĩa nút k thuộc đường ngắn từ i tới j đường ngắn từ i tới j đường ngắn từ i tới k kết hợp với đường ngắn từ j tới k Vì tìm đường ngắn cơng thức đệ quy sau: d = (d + d) Hình Các đường ngắn lồng Dxy độ dài đường ngắn từ x tới y Khó khăn cách tiếp cận phải có cách khởi động đệ quy khởi động với giá trị vế phải phương trình Thuật tốn Dijkstra phù hợp cho việc tìm đường ngắn từ nút i tới tất nút khác Bắt đầu cách thiết lập d = d = TO V i ^ j Sau thiết lập d ^ l V j nút kề cận i Sau tìm nút j có d bé Tiếp lấy nút j vừa chọn để khai triển khoảng cách nút khác, nghĩa cách thiết lập d ^ (d, d + l) Tại giai đoạn trình, giá trị d giá trị ước lượng có đường ngắn từ i tới k, thực độ dài đường ngắn tìm thời điểm Xem d nhãn nút k Quá trình sử dụng nút để triển khai nhãn cho nút khác gọi trình quét nút Thực tương tự, tiếp tục tìm nút chưa qt có nhãn bé qt Chú ý rằng, giả thiết tất l dương nút gán cho nút khác nhãn bé nhãn nút Vì vậy, nút qt việc qt lại thiết không xảy Nếu nhãn nút thay đổi, nút phải qt lại Ví dụ: xét mạng hình sau, đường ghép nối có trọng số tương ứng với giá thành đường, để đơn giản ta coi trọng số theo hai chiều nhau, thực tế chúng khác giá trị Để chọn đường dẫn ngắn từ nguồn tới tất nút mạng, đòi hỏi phải có kiến thức cấu hình tổng thể mạng (danh sách nút ghép nối chúng) giá thành đường nối Điều dẫn tới việc tính tốn tập trung dựa thông tin đầy đủ lưu sở liệu trung tâm (Central Database) Hình Vỉ dụ mạng Thuật toán thực theo bước, xây dựng mơ hình đường ngắn (Shortest Path Tree) có gốc nút nguồn (nút 1) Các đường dẫn ngắn tới k nút khác tính tốn k bước, chúng tập hợp lại tập N Coi D(v) khoảng cách (tổng trọng số đường nối dọc theo đường dẫn) từ nút nguồn tới nút v Coi l(i,j) giá thành cho nút i j Thuật toán gồm bước: Bước khởi đầu Đặt N={1} (tập N ban đầu gồm nút), với nút v Ể N đặt D(v)=l(l,v), với nút không nối trực tiếp với nút l ta coi giá thành TO Bước lặp Tìm nút w khơng thuộc N cho D(w) tối thiểu bổ sung w vào tập N Sau thay D(v) cho tồn nút khơng thuộc N cịn lại cách tính: D(v) ^ min[D(v),D(w) + l(w,v)] Bước lặp lại tất nút có N Sau thực hiện, ta có bước mô tả bảng thống kê sau: Bước Tập N D (2) D (3) D (4) D (5) D (6) {1} TO TO TO {1,2} TO TO {1,2,3} 3 {1,2,3,6} {1,2,3,6,4} 5 {1,2,3,6,4,5} Mơ hình đường ngắn lấy nút làm nút nguồn mơ tả hình vẽ sau: Hình 4.Mơ hình đường dẫn ngắn Đích Nút 2 3 4 5 Hình 5.Bảng chọn tuyến cho nút Với thuật toán ta tính tuyến đường có đường dẫn ngắn cho nút, cụ thể ta coi nút nút nguồn thực bước giải thuật kể Trong trường hợp chọn tuyến theo phương thức tập trung, NMC gửi bảng chọn tuyến cho nút sau thiết lập xong, cịn mạng sử dụng phương thức phân bố nút phải tính lấy bảng định tuyến, sử dụng thông tin tổng thể (được cung cấp nút lân cận NMC) chọn đường dẫn cho riêng III Mơ Ý tưởng giả thuật Dựa giải thuật Dijkstra, nhóm em mơ lại cách hoạt động giải thuật ngôn ngữ C++ thông qua bước đây: Step 1: Khởi tạo khoảng cách tất đỉnh vô hạn Step 2: Tạo tập hợp trống Mỗi mục cặp (trọng số, đỉnh) Trọng số (hoặc khoảng cách) sử dụng để so sánh hai cặp Step 3: Chèn đỉnh gốc vào tập hợp tạo khoảng cách Step 4: Trong Set khơng trống: a) Trích xuất khoảng cách tối thiểu đỉnh Cho đỉnh trích xuất u b) Vịng qua tất lân cận u làm cho đỉnh v Nếu dist [v]> dist [u] + weight (u, v) (i) Cập nhật khoảng cách v, tức là: dist [v] = dist [u] + weight (u, v) (ii) Nếu v đặt, cập nhật khoảng cách cách xóa trước, sau chèn với khoảng cách (iii) Nếu v khơng có bộ, chèn với khoảng cách Step 5: In mảng khoảng cách dist [] để in tất khoảng cách ngắn Code minh họa #include using namespace std; # define INF 0x3f3f3f3f class Graph{ int V; list< pair > *adj; public: Graph(int V); // Constructor void addEdge(int u, int v, int w); void shortestPath(int s); }; Graph::Graph(int V){ this->V = V; adj = new list< pair >[V]; } void Graph::addEdge(int u, int v, int w){ adj[u] push_back(make_pair(v, w)); adj[v] push_back(make_pair(u, w)); } void Graph::shortestPath(int src){ set< pair > setds; vector dist(V, INF); setds.insert(make_pair(0, src)); dist[src] = 0; while (!setds.empty()){ pair tmp = *(setds.begin()); setds erase(setds.begin()); int u = tmp.second; list< pair >::iterator i; for (i = adj[u].begin(); i != adj[u].end(); ++i) { int v = (*i).first; int weight = (*i).second; if (dist[v] > dist[u] + weight){ if (dist[v] != INF) setds erase(setds.find(make_pair(dist[v], v))); dist[v] = dist[u] + weight; setds insert(make_pair(dist[v], v)); } } } printf("Vertex Distance from Source\n"); for (int i = 0; i < V; ++i) printf("%d \t\t %d\n", i, dist[i]); } int main(){ int V = 9; Graph g(V); g.addEdge(0, 1, 4); g.addEdge(0, 7, 8); g.addEdge(1, 2, 8); g.addEdge(1, 7, 11); g.addEdge(2, 3, 7); g.addEdge(2, 8, 2); g.addEdge(2, 5, 4); g.addEdge(3, 4, 9); g.addEdge(3, 5, 14); g.addEdge(4, 5, 10); g.addEdge(5, 6, 2); g.addEdge(6, 7, 1); g.addEdge(6, 8, 6); g.addEdge(7, 8, 7); g.shortestPath(0); return 0; } Kết mô Vertex Distance from Source 0 12 19 21 11 8 14 Nhận xét Độ xác mơ phỏng: đạt u cầu, mơ xác đạt kết kì vọng ban đầu Độ phức tạp thời gian: Thiết lập C++ thường thực cách sử dụng tìm kiếm nhị phân tự cân Do đó, độ phức tạp thời gian hoạt động tập hợp chèn, xóa logarit độ phức tạp thời gian giải pháp O (ELogV)) ... Kết mô Nhận xét DANH MỤC HÌNH VẼ Hình Switch Hình Các đường ngắn lồng Hình Ví dụ mạng Hình Mơ hình đường dẫn ngắn Hình Bảng chọn tuyến cho nút I LÝ THUYẾT Định tuyến. .. bitss II MÔ TẢ ĐỀ BÀI Định tuyến đường dẫn ngắn (Shortest Path Routing): Bài tốn tìm đường ngắn tốn quan trọng trình thiết kế phân tích mạng Hầu hết tốn định tuyến giải giải tốn tìm đường ngắn “độ... Đặc đi? ??m Switch Đường truyền II MÔ TẢ ĐỀ BÀI Định tuyến đường dẫn ngắn (Shortest Path Routing): Thuật toán Dijkstra: III Mô Ý tưởng giả thuật