13 YÊU CẦU CỦA BÀI TẬP Thiết kế mạng Topology theo thuật toán MenTor Viết một phần mềm tạo topology mạng viễn thông theo thuật toán Mentor... cho viễn thông điện tử đã trở nên phức tạp h
Trang 1MỤC LỤC
Yêu cầu đề tài 2
Giới thiệu đề tài 3
I.Lý thuyết 6
II Thuật toán Kruskal 8
III Thuật toán Mentor 10
IV Thiết kế chương trình 13
YÊU CẦU CỦA BÀI TẬP
Thiết kế mạng Topology theo thuật toán MenTor
Viết một phần mềm tạo topology mạng viễn thông theo thuật toán Mentor INPUT :
nn : Số lượng nút trong mạng
Cost : Ma trận [ n x n ] chi phí kết nối giữa các nút
Req : Ma trận [ n x n ] yêu cầu
Pc ,W , R ,D : các tham số xác định nút BACKBONE
α : Tham số xác định cây
γ : Hệ số sử dụng băng thông
Trang 2Cmax[ n x n ] : Giá trị tối đa dung lượng của liên kết giữa các nút ( hiệu dụng )
Tìm cây kết nối các nút α cho biết cây là dạng MST hay PST, MenTor
Tổng chiều dài cây , chiều dài đường đi
Direct link : Tìm kết nối Direct link
Đường đi trên cây
Tất cả thể hiện trên màn hình đồ hoạ
Giới Thiệu
Công nghệ viễn thông điện tử đã tiếp tục tiến bộ nhanh chóng kể từ khi
có phát minh hệ thống điện tín và điện thoại đến mức nó đã cách mạng hoá các phương tiện thông tin truyền thông khoảng một thế kỷ trước đây Ngày nay hệ thống thông tin viễn thông điện tử được xem như các phương tiện kinh tế nhất có được để trao đổi tin tức và số liệu Ngoài ra song song với sự
Trang 3cho viễn thông điện tử đã trở nên phức tạp hơn và có khuynh hướng kỹ thuật cao nhằm đáp ứng nhu cầu đang tăng về các dịch vụ có chất lượng cao và dịch vụ viễn thông tiên tiến Do đó việc tổ chức một mạng viễn thông nhằm tạo ra một mạng viễn thông có đủ khả năng đáp ứng các yêu cầu trên đóng một vai trò rất quan trọng Đồng thời tổ chức mạng lưới này phát triển trở thành một phần cơ bản quan trọng của xã hội thông tin hoá cao trong tương lai
Hệ thống mạng viễn thông là tập hợp các trang thiết bị kỹ thuật để cung cấp dịch vụ viễn thông cho người sử dụng
Các bộ phận cấu thành hệ thống mạng viễn thông :
Nhìn từ quan điểm phần cứng , hệ thống viễn thông bao gồm các thiết bị : + Thiết bị đầu cuối thông tin : để đưa thông tin của người sử dụng vào mạng và nhận thông tin của mạng cho người sử dụng
+ Thiết bị chuyển mạch : Để liên hệ giữa các đầu cuối theo yêu cầu + Thiết bị truyền dẫn : Để liên kết nhóm a với nhóm b và nhóm b với nhóm b
( a-b ) : Đường dây thuê bao
( b-b ) : Đường trục ( trung kế )
( a-b ) : Mạng AN và mạng lõi có LE làm biên giới phân cách
Các phần mềm ( Kỹ thuật mạng )
+ Cho biết các phần cứng liên hệ với nhau như thế nào -> Topo mạng Với Topo mạng ta sẽ phân biệt được rõ về mạng AN và mạng lõi AN ( a - b ) ,lõi ( b- b)
+ Các giao thức mạng : Cung cấp dịch vụ viễn thông cho người sử dụng + Giao thức để liên kết
Trang 4+ Giao thức để trao đổi thông tin , giữa hai giao thức này có thể tách rời ,
có thể kết hợp với nhau
+ Quản lý và khai thác mạng
Về phần mềm thì việc tổ chức mạng viễn thông ngày nay đã trở thành một phần quan trọng trong hệ thống viễn thông trên thế giới Để xây dựng mạng thì ta phải xây dựng được cấu hình của các phần tử mạng MENTOR- Mesh Network Topology Optimization Routing là một thuật toán rất thích hợp cho việc các thiết kế mạng thông tin vì nó không phụ thuộc vào đặc điểm của bất kỳ một công nghệ hay kiến trúc mạng nào thay vào đó nó chỉ phụ thuộc vào nguyên tắc thiết kế mạng MENTOR có thể ứng dụng cho nhiều loại mạng, đặc biệt là mạng ATM
Chương trình MENTOR là một ứng dụng tin học trong việc thiết kế Topology cho mạng bằng thuật toán cùng tên Tất nhiên do còn nhiều hạn chế nên chương trình vẫn mang tính chất mô phỏng, các giả thiết, điều kiện chưa thể giống hoàn toàn như yêu cầu thực tế nhưng nó cũng giúp chúng ta nắm được quá trình xây dựng Topology cho mạng
Trong quá trình viết chương trình tuy có rất nhiều khó khăn nhưng nhờ sự hướng dẫn tận tình của thầy Nguyễn Văn Thắng cũng như nỗ lực của bản thân mà chúng em đã hoàn thành được bài tập này, nhưng do thời gian cũng như trình độ sinh viên có hạn nên không thể tránh khỏi một vài sai sót Chúng em mong nhận được những lời khuyên của thầy để chúng em có thể hiểu thêm về bài tập này nói riêng và môn học này nói chung
Em xin chân thành cảm ơn sự giúp đỡ của thầy Nguyễn Văn Thắng
Trang 5I.Lý Thuyết
I Lý thuyết chung.
Trong mạng viễn thông chúng ta có các nút mạng liên kết với nhau tạo thành hệ thống mạng Trong hệ thống mạng chúng ta có nhiều mạng truy nhập ( Access Network ) và các mạng access liên hệ với nhau thông qua mạng đường trục ( Backbone Network ) Vì vậy các nút mạng chia làm 2 loại, nút truy nhập (Access) và nút Backbone Trong mạng truy nhập (AN) thì chỉ có 1 nút Backbone và các nút Access khác, các nút Access muốn kết nối với các nút ở mạng truy nhập khác phải thông qua nút Backbone Mạng Backbone là cầu nối để các mạng truy nhập kết nối với nhau, là một mạng được thiết lập qua các nút Backbone
Trang 6Các chỉ tiêu, yêu cầu kĩ thuật và tính chất của hai mạng này khác nhau, chính vì vậy bài toán đặt ra ở đây là thiết lập hệ thống mạng trên các nút mạng cho trước để đảm bảo một số tiêu chuẩn, yêu cầu nhất định và tối ưu hoá về một số mặt là cần thiết
Chương trình sẽ sử dụng thuật toán MENTOR để giải quyết bài toán này
Để thiết lập mạng Access chúng ta sử dụng thuật toán Kruskal, và để thiết lập mạng Backbone ta dùng thuật toán Mentor Ta có các thông số và giả thiết sau
+ Tổng số nút mạng trong toàn bộ hệ thống mạng kí hiệu là N và được đánh
số từ 0 ÷ ( N – 1 )
+ Để biểu diễn sự liên hệ giữa các nút mạng với nhau ta có các ma trận sau :
• Ma trận chi phí Cost[NxN] Đây là ma trận 2 chiều đối xứng, chứa chi
phí kết nối giữa các nút Hàng i và cột j chứa giá trị là chi phí đi từ nút
i đến nút j
• Ma trận yêu cầu Req[NxN] Là ma trận 2 chiều đỗi xứng, chứa mức
độ yêu cầu liên lạc giữa các nút với nhau Hàng i cột j chứa giá trị là yêu cầu từ nút i đến nút j
• Ma trận dung lượng tối đa C MAX [NxN] Cũng là ma trận đối xứng 2
chiều Chứa giá trị ( hiệu dụng ) tối đa dung lượng của kênh liên kết giữa các nút
• Từ ma trận yêu cầu C MAX và ma trận chi phí Cost ta có thể xây dựng
được ma trận trọng số W của các nút Là ma trận một chiều, và trọng
số nút thứ i được tính theo công thức là
N 1
j=0
W =∑− C W
Trang 7II.Thuật toán Kruskal.
1 Các tham số và yêu cầu của thuật toán.
Thuật toán dùng để thiết lập mạng truy nhập, tạo ra cây CMST ( Capacitied Minimum Spanning Tree ), có đặc điểm giữa 2 nút luôn có đường đi, có dung lượng giới hạn và có chiều dài nhỏ nhất
Đầu vào ( Input ) gồm :
− Cho trước nút trung tâm N0 ( Nút Backbone )
− Tập các nút Access { N1,N2, ,Nn }
− Trọng số các nút w i
− Giới hạn dung lượng là W
− Ma trận chi phí Cost
Yêu cầu đầu ra ( Output ): Tìm tập các cây T1 , T2 , Tk sao cho
− Mỗi nút thuộc một cây duy nhất
− Tất cả các cây đều chứa nút gốc N0
− Tổng trọng lượng các nút trên cây không vuợt quá W
− Tổng độ dài tất cả các cạnh là nhỏ nhất
2 Các bước tiến hành thuật toán.
Thuật toán gồm 4 bước :
Trang 8• Bước 1 Xắp xếp tất cả các liên kết tăng dần theo chi phí, và lưu vào một danh sách có thứ tự
• Bước 2 Kiểm tra xem nếu tất cả các nút đều đã được kết nối
o Nếu đúng : Kết thúc thuật toán
o Nếu sai : Thực hiện bước 3
• Bước 3 Chọn kết nối đầu tiên trong danh sách ( kết nối có chi phí nhỏ nhất còn lại trong danh sách )
• Bước 4 Kiểm tra nếu liên kết thêm vào tạo thành chu trình hay liên kết vừa tạo có làm cho tổng trọng số của các nút trên cây vượt quá mức giới hạn W hay không ?
o Nếu đúng : Xoá liên kết vừa tạo, quay lại bước 2
o Nếu sai : Thêm liên kết vừa kiểm tra vào cây
III Thuật toán MENTOR.
Trang 9Thuật toán dùng để thiết lập mạng các nút Backbone Thuật toán gồm 4 bước chính
1 Bước 1:Tìm tâm C của mạng
Ta tính i j ij i
Nút C là tâm của mạng nếu có giá trị MC tương ứng
là nhỏ nhất trong tất cả các nút
Tâm của mạng là nút có chi phí đến các nút khác bé ( Cij nhỏ ) và có khả năng xử lý thêm nhiều lưu lượng ( Wj nhỏ )
2.Bước 2: Tìm các nút backbone.
Cho các giá trị :
− Ngưỡng ( threshold ) W
− Bán kính R
Tìm các nút Backbone là các nút có trọng số Wj≥ W
Sau đó dùng nút Backbone vừa tìm ra quay vòng tròn tâm R Các nút trong vòng tròn mà không phải là Backbone sẽ là nút Access của nút backbone này
+ Đối với các nút còn lại chưa được thiết lập Ta tính giá trị
F =F 1 P
D + − W
Với :
• Cjc : Là chi phí từ nút j đến nút tâm của mạng
• D là đường kính của mạng ( là chi phí lớn nhất giữa 2 nút )
• PC tham số điều khiển mối quan hệ tương đối trong việc chọn nút Backbone theo khoảng cách hay theo trọng số Có giá trị từ 0 đến 1 Chọn nút j có Fj MAX là nút backbone Và quay bán kính R để chọn thêm các nút Access cho nút backbone này
Trang 10Lặp lại bước vừa rồi cho đến khi tất cả các nút được chọn.
Bước 3 Tìm cây Mentor.
Khởi tạo :
− Tìm lại tâm C trong các nút Backbone theo cách như bước 1
− Gọi N là tập các nút đã nằm trên cây Khởi tạo N = {}
− Thêm nút gốc C vào N
Thực hiện
− Gán nhãn cho các nút còn lại Lj = dij + αLi ( i là các nút đã nằm trong tập L, Li là chi phí từ nút i đến nút tâm , dijlà chi phí từ i đến j )
− Chọn các nút j mà Lj nhỏ nhất thêm vào tập N, và thêm cạnh ( j, nút liền trước ) vào cây
− Lặp lại đến khi N chứa tất cả các nút Backbone
Nếu α = 1 thì đây là thuật toán Dijkistra tìm ra cây PST
Nếu α = 0 thì đây là thuật toán Prim ra cây MST
Bước 4 Thêm Direct Link.
Tìm tập các nút không lân cận nhau
Thêm Direct Link ( Link trực tiếp ) cho các cặp nút nếu lưu lượng bị quá tải Lưu lượng một liên kết bị quá tải khi tổng lưu lượng qua liên kết ( tổng các giá trị Req của các link khác đi qua liên kết này ) lớn hơn băng thông hiệu dụng của liên kết là : γ.C MAX ij
Trong đó γlà hệ số sử dụng băng thông có liên kết ( Thường lấy γ = 80% )
IV Thiết kế chương trình.
Giao diện chính của chương trình
Vì chương trình đòi hỏi nhiều thuật toán, và sử dụng nhiều cấu trúc dữ liệu
Trang 11Với các chức năng cơ bản :
+ Nhập vào số lượng nút (N) Và nhấn nút tạo mới chương trình sẽ sinh
ngẫu nhiên N nút được đánh số từ 0 đến N-1 và hiển thị lên màn hình
Sau đó ta nhập các thông số đầu vào :
+ Pc : Hệ số lựa chọn nút backbone
+ Alpha : Là hệ số α dùng trong thuật toán Mentor
+ W ( threshold ) là giá trị ngưỡng để chọn nút Backbone
+ R : Bán kính của mạng truy nhập
+ Gamma : Là hệ số sử dụng băng thông γ
Sau khi nhập các thông số đầu vào ta nhấn nút Thiết lập mạng để chương
trình thực hiện thuật toán Mentor thiết lập mạng giữa các nút Backbone và thực hiện thuật toán Kruskal để thiết lập mạng truy nhập
Để đơn giản khi thực hiện thuật toán Kruskal ta coi trọng số các nút đều
bằng 1 và giá trị giới hạn là W K được nhập bởi người sử dụng
Sau đó ta có thể thiết lập các Direct link và hiển thị ra màn hình bằng cách đánh dấu vào ô hiển thị trong phần Direct Link
Chương trình còn có chức năng tìm đường đi giữa 2 nút bất kì với nhau ( đường đi được hiển thị màu tím )