được phân chia thành, cũng như kích thước của mỗi cụm đó là cần thiết.Phương pháp phân vùng đồ thị được áp dụng chủ yếu trong tính toán song song, phân vùng mạch và một số các giải thuật
Trang 1Giải pháp phục hồi lỗi trong mạng SDN-over-IP
Chuyên ngành: Truyền thông và Mạng máy tính
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN:
PGS.TS Ngô Hồng Sơn
HÀ NỘI – 2018
Trang 2LỜI CAM ĐOAN
Tôi – Tạ Minh Trí – cam kết luận văn là công trình nghiên cứu của bản thân tôi dưới
sự hướng dẫn của PGS.TS Ngô Hồng Sơn
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác
Hà Nội, ngày 25 tháng 9 năm 2018
Học viên
Tạ Minh Trí
Trang 3
ĐẶT VẤN ĐỀ 5
1 Tổng quan 5
2 Mục tiêu 6
3 Phương pháp giải quyết 6
4 Nội dung của luận văn 7
Chương 1: Cơ sở lý thuyết 8
1.1 Tổng quan về Software-Defined Networking 8
1.1.1 Giới thiệu 8
1.1.2 Open flow 9
1.1.3 OpenvSwitch 10
1.2 Ứng dụng của SDN 10
1.2.1 Phạm vi doanh nghiệp 11
1.2.2 Phạm vi các nhà cung cấp hạ tầng và dịch vụ viễn thông 11
Chương 2: Ứng dụng thuật toán Girvan-Newman vào trong mạng SDN 13
2.1 Một số thuật toán cơ bản 13
2.1.1 Thuật toán Dijkstra 13
2.1.2 Thuật toán phát hiện cộng đồng 15
2.2 Tích hợp thuật toán toán Girvan-Newman vào mạng SDN 26
2.2.1 Mô hình hệ thống 26
2.2.2 Khung đề xuất 28
Chương 3: Mô phỏng và kết quả thử nghiệm 32
3.1 Mô phỏng mạng SDN nhận địa chỉ IP từ Vmware giao tiếp với môi trường Internet 32
3.2 Tích hợp thuật toán Dijkstra vào mạng SDN trong môi trường mininet 38
3.3 Triển khai và đánh giá bài toán đặt ra trong Mininet 40
3.4 Kết luận 49
KẾT LUẬN 50
DANH MỤC THAM KHẢO 52
Trang 4LỜI CẢM ƠN
Để có thể hoàn thành luận văn tốt nghiệp này, tôi xin chân thành cảm ơn thầy hướng dẫn luận văn tốt nghiệp, PGS.TS Ngô Hồng Sơn, Bộ môn Truyền thông và Mạng máy tính, Trường đại học Bách Khoa Hà Nội Thầy đã nhiệt tình hướng dẫn, truyền đạt những kiến thức cần thiết và định hướng cho tôi trong quá trình thực hiện đề tài
Tôi xin chân thành cảm ơn các thầy cô giáo ở Bộ môn Truyền thông và Mạng máy tính, trường Đại học Bách Khoa Hà Nội
Dù đã cố gắng nhưng luận văn chắc chắn không tránh khỏi thiếu sót, tôi rất mong nhận được ý kiến đóng góp của các thầy cô
Tôi xin chân thành cảm ơn!
Trang 5ĐẶT VẤN ĐỀ
1 Tổng quan
Internet và hệ thống mạng nói chung đóng một vai trò thiết yếu trong việc thay đổi cách sống của chúng ta thông qua việc tạo ra nhiều loại công nghệ tham gia vào các hoạt động hàng ngày như phương tiện truyền thông xã hội, kinh tế và kinh doanh Các thiết bị mạng trao đổi dữ liệu trong một mạng lưới đa dạng Hiện tại có khoảng 9 tỷ thiết bị kết nối Internet vào năm 2017 và con số này sẽ tăng gấp đôi vào năm 2020 Tuy nhiên, cơ sở hạ tầng mạng IP hiện nay không có khả năng đáp ứng được một số lượng lớn các thiết bị, do đó việc phân tầng Internet rất được mong đợi[1] Giải pháp hiệu quả để giải quyết vấn đề là thay thế các hệ thống mạng phức tạp và cứng nhắc bằng một hệ thống mạng có thể lập trình được Hệ thống mạng lưới kiểm soát tập trung bằng phần mềm (SDN) là kết quả của một quá trình dài nỗ lực đã được thực hiện nhằm mục đích đơn giản hóa việc quản lý và kiểm soát mạng máy tính[2] Trong mặt phẳng SDN, bộ điều khiển đã được tách ra khỏi mặt phẳng dữ liệu và đặt ở vị trí trung tâm thường được gọi là bộ điều khiển mạng hoặc hệ điều hành mạng Do sự tách rời này, các phần tử chuyển tiếp mạng (ví dụ như bộ định tuyến và chuyển mạch) trở thành một thiết bị ảo hóa, được điều khiển bởi bộ điều khiển mạng Giao thức OpenFlow[3] thường được sử dụng để thiết lập kết nối giữa các phần tử chuyển tiếp giữa dữ liệu và
bộ điều khiển, do đó bộ điều khiển sẽ gửi các quy tắc chuyển tiếp tới mỗi thiết bị nằm trên vùng của nó Mặc dù mạng SDN đã mang lại những lợi ích đáng kể cho khái niệm mạng, nhưng một số thách thức mới đi kèm với sự đổi mới này như xảy ra lỗi, cấu hình, bảo mật và hiệu năng[5] Do đó, mục tiêu của tôi trong luận văn là loại bỏ những hạn chế của mạng SDN thông qua việc giảm thiểu một trong những thách thức, đó là khả năng chịu lỗi của hệ thống mạng
Trang 62 Mục tiêu
Software-defined networking là một mô hình mạng mới phát triển, nó như là một giải pháp đầy hứa hẹn để giải quyết sự không linh hoạt của các mạng IP cổ điển Cách tiếp cận tập trung của mạng SDN tạo ra nhiều thách thức việc tối ưu hóa trong mạng ở các cấp độ khác nhau Fault Tolerance được coi là một trong những thách thức nghiên cứu hiện tại mà Software-defined networking phải đối mặt, do đó chúng tôi giới thiệu một phương pháp mới để tính toán phương pháp tìm đường thay thế trong mạng lưới kiểm soát tập trung như Software-defined networking Phương pháp được đề xuất nhằm giảm chi phí hoạt động cập nhật mà bộ điều khiển mạng Software-defined networking sẽ sử dụng để phục hồi từ một lỗi liên kết Thông qua việc sử dụng nguyên tắc phát hiện cộng đồng, tôi xác định mô hình mạng mới nhằm nâng cao khả năng chịu lỗi của mạng Dựa trên kết quả, một số hướng đi xa hơn được đề xuất trong bối cảnh học máy để đạt được những tiến bộ hơn nữa trong lĩnh vực nghiên cứu này
3 Phương pháp giải quyết
Vấn đề chịu lỗi và phục hồi lỗi trong mạng SDN đã được nghiên cứu, vì vậy tôi sẽ thảo luận về các tài liệu liên quan trong phần này
Vì mạng SDN có hai mặt phẳng riêng biệt (kiểm soát và dữ liệu), do đó mỗi mặt phẳng dễ bị lỗi Cơ chế phục hồi sau lỗi của mặt phẳng dữ liệu có thể được phân loại thành các kỹ thuật bảo vệ và phục hồi[6] Trong phương thức bảo vệ, được gọi là chủ động, các các đường dẫn dự phòng được xác định trong giai đoạn đầu của sự liên kết thất bại, do đó các gói dữ liệu sẽ được truyền thông qua đường dẫn sao lưu trực tiếp tại thời điểm thất bại Mặt khác, trong phương thức phục hồi, được gọi là phản ứng, đường dẫn dự phòng sẽ được xác định bởi bộ điều khiển sau khi xảy ra lỗi, do đó cần thêm thời gian để thiết lập đường thay thế được phát hiện
Các bài liên quan trong[7] và[8] đã chỉ ra cách phục hồi dữ liệu nhanh có thể đạt được trong cách tiếp cận phương thức bảo vệ Tuy nhiên, chi phí cho các cơ chế chủ động cao vì nó tiêu thụ dung lượng của Bộ nhớ địa chỉ Ternary (TCAM)[6] là nơi lưu
Trang 7trữ các quy tắc chuyển tiếp Ngoài ra, không có gì đảm bảo rằng các đường dẫn được lên kế hoạch trước sẽ tốt khi đường dẫn chính bị lỗi
Ngược lại, một số bài liên quan đã tìm ra hiệu quả của phương pháp phản ứng Trong bối cảnh này, các bài viết trong[9] và[10] đã chỉ ra cách phục hồi nhanh có thể thực hiện được, tuy nhiên trong cả hai công trình, các cấu trúc liên kết thử nghiệm có quy mô nhỏ (tương ứng là 6 và 14 nút) Hơn nữa, thời gian xử lý để thiết lập đường dẫn đã chọn là bị bỏ qua, đó là một yêu cầu trong mạng SDN để định tuyến từ đường chính bị ảnh hưởng đến đường dẫn sao lưu
Không giống như các nghiên cứu trước đây, các bài viết liên quan[12] đã đề xuất một phương pháp mới để phục hồi nhanh bằng cách giảm thời gian xử lý, thường được trả bởi bộ điều khiển, thông qua việc tìm đường thay thế (từ đầu đến cuối) có yêu cầu vận hành tối thiểu Nhược điểm chính của công việc này là nó không đảm bảo tính tuần
tự của các nút Ngoài ra, thiếu thông tin liên quan đến công cụ mô phỏng đã được sử dụng
Tất cả các vấn đề trên đã thúc đẩy tôi nỗ lực hơn nữa để nghiên cứu một giải pháp khả thi hơn cho vấn đề về khả năng chịu lỗi trong mạng SDN
4 Nội dung của luận văn
Nội dung luận văn bao gồm 3 chương:
Chương 1: Tổng quan về Software-Defined Networking
Chương 2: Sử dụng thuật toán phát hiện cộng đồng Girvan-Newman vào trong mạng Software-Defined Networking
Chương 3: Mô phỏng mạng SDN giao tiếp với Internet và đánh giá kết quả thử nghiệm sau khi áp dụng thuật toán phát hiện cộng đồng Girvan-Newman
Trang 8Chương 1: Cơ sở lý thuyết 1.1 Tổng quan về Software-Defined Networking
1.1.1 Giới thiệu
Mạng SDN hay mạng điều khiển bằng phần mềm (Software Defined Networking) [4] được dựa trên cơ chế tách riêng việc kiểm soát một luồng mạng với luồng dữ liệu (control plane và data plane) SDN dựa trên giao thức luồng mở (Open Flow) và là kết quả nghiên cứu của Đại học Stanford và California Berkeley SDN tách định tuyến và luồng dữ liệu thành các phần riêng rẽ Flow Controller là thành phần kiểm soát luồng Điều này cho phép luồng các gói dữ liệu đi qua mạng được kiểm soát theo lập trình Trong mạng SDN, control plane được tách ra từ các thiết bị vật lý và chuyển đến các
bộ điều khiển Bộ điều khiển này có thể nhìn thấy toàn bộ mạng lưới, và do đó cho phép các kỹ sư mạng làm cho chính sách chuyển tiếp tối ưu dựa trên toàn bộ mạng Các bộ điều khiển tương tác với các thiết bị mạng vật lý thông qua một giao thức chuẩn OpenFlow Kiến trúc của mạng SDN gồm 3 lớp riêng biệt: lớp ứng dụng, lớp điều khiển, và lớp cơ sở hạ tầng (lớp chuyển tiếp)
Hình 1: Model 3 lớp của SDN
Trang 9Lớp ứng dụng: Là các ứng dụng kinh doanh được triển khai trên mạng, được kết nối tới lớp điều khiển thông qua các API, cung cấp khả năng cho phép lớp ứng dụng lập trình lại (cấu hình lại) mạng (điều chỉnh các tham số trễ, băng thông, định tuyến, …) thông qua lớp điều khiển
Lớp điều khiển: Là nơi tập trung các bộ điều khiển thực hiện việc điều khiển cấu hình mạng theo các yêu cầu từ lớp ứng dụng và khả năng của mạng Các bộ điều khiển này có thể là các phần mềm được lập trình
Lớp cơ sở hạ tầng: Là các thiết bị mạng thực tế(vật lý hay ảo hóa) thực hiện việc chuyển tiếp gói tin theo sự điều khiển của lớp điểu khiển Một thiết bị mạng có thể hoạt động theo sự điều khiển của nhiều bộ điều khiển khác nhau, điều này giúp tăng cường khả năng ảo hóa của mạng
1.1.2 Open flow
OpenFlow là tiêu chuẩn đầu tiên, cung cấp khả năng truyền thông giữa các giao diện của lớp điều khiển và lớp chuyển tiếp trong kiến trúc SDN OpenFlow cho phép truy cập trực tiếp và điều khiển mặt phẳng chuyển tiếp của các thiết bị mạng như switch và router, cả thiết bị vật lý và thiết bị ảo, do đó giúp di chuyển phần điều khiển mạng ra khỏi các thiết bị chuyển mạch thực tế tới phần mềm điều khiển trung tâm Các quyết định về các luồng traffic sẽ được quyết định tập trung tại OpenFlow Controller giúp đơn giản trong việc quản trị cấu hình trong toàn hệ thống Một thiết bị OpenFlow bao gồm ít nhất 3 thành phần:
• Secure Channel: kênh kết nối thiết bị tới bộ điều khiển (controller), cho phép các lệnh và các gói tin được gửi giữa bộ điều khiển và thiết bị
• OpenFlow Protocol: giao thức cung cấp phương thức tiêu chuẩn và mở cho một
bộ điều khiển truyền thông với thiết bị
• Flow Table: một liên kết hành động với mỗi luồng, giúp thiết bị xử lý các luồng thế nào
Trang 101.1.3 OpenvSwitch
OpenvSwitch (OVS) là một dự án về chuyển mạch ảo đa lớp (multilayer) Mục đích chính của OpenvSwitch là cung cấp lớp chuyển mạch cho môi trường ảo hóa phần cứng, trong khi hỗ trợ nhiều giao thức và tiêu chuẩn được sử dụng trong hệ thống chuyển mạch thông thường OpenvSwitch hỗ trợ nhiều công nghệ ảo hóa dựa trên nền tảng Linux như Xen/XenServer, KVM, và VirtualBox
Hình 2: Hỗ trợ công nghệ ảo hóa đa nền tảng
OpenvSwitch hỗ trợ các tính năng sau: - VLAN tagging & 802.1q trunking - Standard Spanning Tree Protocol(802.1D) - LACP - Port Mirroring (SPAN/RSPAN) - Tunneling Protocols - QoS
Các thành phần chính của OpenvSwitch:
ovs-vswitchd: thực hiện chuyển đổi các luồng chuyển mạch
ovsdb-server: là một lightweight database server, cho phép ovs-vswitchd thực hiện các truy vấn đến cấu hình
ovs-dpctl: công cụ để cấu hình các switch kernel module
ovs-vsctl: tiện ích để truy vấn và cập nhật cấu hình ovs-vswitchd
ovs-appctl: tiện ích gửi command để chạy OpenvSwitch
1.2 Ứng dụng của SDN
Với những lợi ích mà mạng SDN mang lại, SDN có thể triển khai trong phạm vi các doanh nghiệp (Enterprises) hoặc trong cả các nhà cung cấp hạ tầng và dịch vụ viễn
Trang 111.2.1 Phạm vi doanh nghiệp
a) Áp dụng trong mạng doanh nghiệp
Mô hình tập trung, điều khiển và dự phòng tự động của mạng SDN hỗ trợ việc hội
tụ dữ liệu, voice, video, cũng như là việc truy cập tại bất kỳ thời điểm nào, bất kỳ đâu Điều này được thực hiện thông qua việc cho phép nhân viên IT thực thi chính sách nhất quán trên cả cơ sở hạ tầng không dây và có dây Hơn nữa, SDN hỗ trợ việc quản lý và giám sát tự động tài nguyên mạng, xác định bằng các hồ sơ cá nhân và các yêu cầu của ứng dụng, để đảm bảo tối ưu trải nghiệm người dùng với khả năng của mạng
b) Áp dụng trong Data Center (DC)
Việc ảo hóa các thực thể mạng của kiến trúc mạng SDN cho phép việc mở rộng trong DC, di cư tự động các máy ảo, tích hợp chặt chẽ hơn với kho lưu trữ, sử dụng server tốt hơn, sử dụng năng lượng thấp hơn, và tối ưu băng thông
c) Áp dụng đối với dịch vụ Cloud
Khi được sử dụng để hỗ trợ một môi trường đám mây riêng hoặc tích hợp, SDN cho phép các tài nguyên mạng được cấp phát theo phương thức linh hoạt cao, cho phép dự phòng nhanh các cấp đám mây bên ngoài Với các công cụ để quản lý an toàn các mạng ảo của mình, các doanh nghiệp và các đơn vị kinh doanh sẽ tin vào các dịch vụ đám mây hơn
1.2.2 Phạm vi các nhà cung cấp hạ tầng và dịch vụ viễn thông
SDN cung cấp cho các nhà mạng, các nhà cung cấp đám mây công cộng, và các nhà cung cấp dịch vụ, sự mở rộng và tự động cần thiết để triển khai một mô hình tính toán
có ích cho ITaaS (IT-as-a-Service) Điều này được thực hiện thông qua việc đơn giản hóa triển khai các dịch vụ tùy chọn và theo yêu cầu, cùng với việc chuyển dời sang mô mình selfservice Mô hình tập trung, dự phòng và điều khiển tự động của SDN dễ dàng
hỗ trợ cho thuê linh hoạt tài nguyên, đảm bảo tài nguyên mạng được triển khai tối ưu, giảm CapEx và OpEx, tăng giá trị và tốc độ dịch vụ
1.3 Sự khác nhau giữa khả năng chịu lỗi của mạng và khả năng sẵn sàng của mạng
Trang 12“Fault tolerance” và “High Availability” là một trong hai thuộc tính của hệ thống nhằm bảo đảm sự hoạt động bình thường của hệ thống máy chủ
Sự khác nhau cơ bản giữa Fault Tolerance và High Availability là: Fault tolerance không gây ra sự gián đoạn cho hệ thống nhưng chi phí sẽ cao hơn nhiều, còn High Availablility giảm thiểu tới mức tối đa sự gián đoạn của hệ thống
Fault Tolerance dựa vào các phần cứng đặc biệt để xác định các lỗi phần cứng và ngay lập tức thay thế bằng các thành phần dự trữ Điều này có vẻ khá thuận tiện vì hệ thống luôn chạy mượt mà không ngừng nghỉ nhưng thực tế thì phải trả giá khá cao cho
cả phần cứng và hiệu năng bởi vì các phần cứng dự trữ chả làm gì cả mà chỉ chờ hệ thống chính bị hỏng thay thế Ngoài ra, khi có sự cố thì hiệu năng có thể sẽ giảm xuống nếu như các thành phần thay thế có tốc độ xử lý không bằng thành phần bị hỏng
Trong khi đó, High Availability không tiến hành thay thế các thành phần phần cứng
bị lỗi High Avalibility sử dụng tập hợp các hệ thống chia sẻ tài nguyên nhằm giảm thiểu tới mức tối đa thời gian hệ thống không hoạt động bằng cách nhanh chóng phục hồi các dịch vụ thiết yếu trong khoảng thời gian chưa tới 1 phút Do vậy, với High Availability, người dùng sẽ có thể chịu đựng một vài khoảng thời gian “downtime” ngắn của hệ thống
High Availibility thường được sử dụng nhiều hơn bởi vì chi phí thấp hơn nhiều
so với Fault Tolerance và các công ty, tập đoàn có thể chấp nhận được khoảng thời gian “downtime” của hệ thống Các công ty Dịch vụ thường đưa ra con số ước lượng khoảng thời gian mà dịch vụ của các công ty đó sẵn sàng bằng “nines of availabillity” như Amazone là three nines of availibility (99.9% uptime) – tức là downtime khoảng 43.2 phút/tháng Còn Hadoop sử dụng Fault Tolerance như một giải pháp đảm bảo dữ liệu trên HDFS Ngoài ra RAID cũng là một cách thể hiện của Fault Tolerance khi dữ liệu được lưu trữ và back-up trên nhiều đĩa cứng khác nhau
Trang 13Chương 2: Ứng dụng thuật toán Girvan-Newman vào trong mạng SDN 2.1 Một số thuật toán cơ bản
2.1.1 Thuật toán Dijkstra
a Khái niệm
Giải thuật Dijkstra, mang tên của 1 nhà khoa học máy tính người Hà Lan Edsger W Dijkstra, là một thuật toán giải quyết bài toán đường đi ngắn nhất trong một đồ thị có hướng không có cạnh trọng số âm Ứng dụng lớn nhất của thuật toán này là trong công nghệ Hệ thống định vị toàn cầu (GPS)
Cho 1 đồ thị có hướng G = (V, E) với các cạnh có trọng số không âm, có dữ liệu nhập vào là ma trận trọng số L và 2 đỉnh x, y cho trước Việc ta cần làm là tìm đường
đi ngắn nhất từ x đến y trong đồ thị G
Việc chúng ta cần làm là chỉ ra đỉnh v bất kì sao cho x -> v là đường đi ngắn nhất
Ta gọi length[v] là giá trị đường đi ngắn nhất từ x -> v, có thể hiểu length[v] là giá trị đường đi ngắn nhất trong các đường đi từ đỉnh x qua các đỉnh trong tập hợp S (nếu có) rồi đến v
Tạo vòng lặp với biến chạy k, xét nếu label[k] = 1 (Chưa đánh dấu) và có đường đi
từ v -> k: Nếu length[k] > length[v] + trọng số từ v -> k hoặc length[k] = inf, có nghĩa là nếu ta tìm được 1 đường từ v -> k là nhỏ nhất, hoặc là chưa tìm được đường nào ngắn nhất (inf) => Gán length[k] = length[v] + trọng số v -> k, prev[k] = v (Tạo
vết chân đỉnh trước đó)
Nếu label[last] = 0 (Đã đánh dấu đỉnh đến), kết thúc vòng lặp Nếu không thì quay
lại bước 2
Ví dụ ta có 1 đồ thị như sau
Trang 14Chỉ ra đường đi ngắn nhất từ đính A tới F Vậy các bước sẽ như sau:
tới các đỉnh kề.Đỉnh C là đỉnh có đường đi ngắn nhất
từ A => Đánh dấu C (3,C) (2,A)* (4,C) inf inf Tìm khoảng cách từ đỉnh C
tới các đỉnh kề.Đỉnh B là đỉnh có đường đi ngắn nhất
từ A => Đánh dấu D
tới các đỉnh kề.Đỉnh B là đỉnh có đường đi ngắn nhất
từ A => Đánh dấu B (4,C) (6,B) (3,D)* Tìm khoảng cách từ đỉnh B
tới các đỉnh kề.Đỉnh G là đỉnh có đường đi ngắn nhất
từ A => Đánh dấu G
Trang 15tới các đỉnh kề.Đỉnh E là đỉnh có đường đi ngắn nhất
từ A => Đánh dấu E
(4,G)* Tìm khoảng cách từ đỉnh E
tới các đỉnh kề.Đỉnh F là đỉnh có đường đi ngắn nhất
từ A => Đánh dấu F(kết thúc)
Về nguyên lý, thuật toán Dijkstra giống như việc chạy thi đua vậy Từ điểm đến ban đầu, ta sẽ mỗi người chạy đến điểm kết thúc theo các đường đi khác nhau Nếu người nào chạy tới đích trước (tìm min và đánh dấu điểm kết thúc sớm nhất) thì ta xuất ra các đỉnh mà người đó đã đi qua
2.1.2 Thuật toán phát hiện cộng đồng
Tổng hợp các phương pháp/thuật toán phát hiện cộng đồng :
− Các phương pháp truyền thống
− Các thuật toán chia
− Các phương pháp dựa trên mô đun hóa
− Các thuật toán dựa trên phổ
− Các thuật toán động
− Các phương pháp dựa trên suy luận thống kê
− Các phương pháp phát hiện chồng chéo cộng đồng
− Các phương pháp nhiều lời giải và hệ thống phân cụm phân cấp
Trang 16được phân chia thành, cũng như kích thước của mỗi cụm đó là cần thiết.Phương pháp phân vùng đồ thị được áp dụng chủ yếu trong tính toán song song, phân vùng mạch và một số các giải thuật nối tiếp
• Phương pháp phân cụm phân cấp thường được sử dụng khi mạng xã hội có cấu trúc phân cấp ( tức một mạng chia làm nhiều cộng đồng con, mỗi cộng đồng con chia ra làm nhiều cộng đồng con khác, cứ như vậy …)Ý tưởng cơ bản của thuật toán phân cụm phân cấp là xác định được sự tương tự của các đỉnh trong đồ thị mạng bằng một độ đo tương tự, sau đó các đỉnh có độ tương
tự cao được xếp vào cùng một nhóm.Phương pháp phân cụm phân cấp được
áp dụng phổ biến trong phân tích mạng xã hội, sinh học, kỹ thuật, tiếp thị,…
• Phương pháp phân cụm theo vùng dựa trên ý tưởng như sau: định nghĩa trước một số k là số lượng các cụm, ta biểu diễn đồ thị trong một không gian metric sao cho mỗi đỉnh của đồ thị được biểu diễn bằng một điểm trong không gian đó.Sau đó người ta tính toán khoảng cách giữa các điểm trong không gian và lấy đó làm độ đo sự khác nhau giữa các đỉnh trong đồ thị.Mục tiêu của phương pháp là phân tách không gian trên thành k cụm các điểm sao cho một hàm chi phí dựa trên khoảng cách của các điểm trong cụm đến tâm của cụm
là lớn nhất / nhỏ nhất.Phương pháp phân cụm theo vùng được áp dụng để xác định các cụm trong các tập điểm dữ liệu
• Phương pháp phân cụm theo phổ bao gồm tất cả các phương pháp và kỹ thuật chia tập đối tượng thành các cụm sử dụng vector riêng của ma trận được định nghĩa từ tập đối tượng đó.Đối tượng ở đây có thể được hiểu là các đỉnh của
đồ thị, hoặc có thể là các điểm của không gian metric nào đó.Phương pháp phân cụm bao gồm việc chuyển hóa các tập đối tượng thành các điểm trong một không gian, mà các điểm này là các thành phần của vector đặc trưng, sau
đó các điểm được phân cụm dựa trên các phương pháp chuẩn, ví dụ phương pháp phân cụm k-mean
b) Các phương pháp áp dụng thuật toán phân chia
Trang 17Dựa trên mục đích cơ bản là tìm ra được các cạnh nối giữa các đỉnh của các cộng đồng khác nhau, sau đó loại bỏ chúng khỏi đồ thị.Như vậy các cụm trong đồ thị
sẽ bị ngắt kết nối với nhau, từ đó ta có thể phân đồ thị thành các cộng đồng.Điểm mấu chốt của phương pháp này là xác định được tính chất nào đó của các cạnh nối các cộng đồng trong đồ thị, từ đó có thế phát hiện và loại bỏ chúng ra khỏi đồ thị.Phương pháp
áp dụng thuật toán chia có thể coi là một kiểu thuật toán phân cụm phân cấp, chỉ khác
là thay vì tìm các cạnh có độ tương đồng cao để ghép các đỉnh của các cạnh đó thành cộng đồng, thì ở đây người ta tìm cách loại bỏ các cạnh nối giữa các cộng đồng để thu được từng cộng đồng riêng biệt.Vì vậy kết quả của các thuật toán chia có thể biểu diễn dưới dạng các mô hình phân cấp dưới dạng cây Thuật toán điển hình nhất trong các thuật toán chia này là thuật toán GirvanNewman.Thuật toán này mang tính phổ biến cao, vì nó có ý nghĩa về mặt lịch sử (đánh dấu bước khởi đầu của một thời kỳ mới trong sự phát triển của phát hiện cộng đồng) cũng như về mặt phương pháp Do có nhiều lợi thế, thuật toán Girvan-Newman [17] được sử dụng rộng rãi và phát triển thành nhiều thuật toán cải tiến sau này, tạo thành 14 họ thuật toán Girvan-Newman
c) Họ thuật toán Girvan-Newman
➢ Giới thiệu về thuật toán Girvan-Newman nguyên thủy
Các yêu cầu cơ bản cho một thuật toán phát hiện cộng đồng nói chung đó là nó phải chỉ ra một phép phân chia tự nhiên giữa các đỉnh mà không đòi hỏi người ta phải xác định số cộng đồng nên có là bao nhiêu, hay một giới hạn trong kích thước của các cộng đồng, và cũng không cần phải chỉ ra các đường đi rõ ràng như trong thuật toán phân cụm phân cấp thông thường ở phần trên.Girvan và Newman đã đề xuất một
phương pháp đáp ứng được các mục tiêu này trong đó có 3 tính chất như sau :
• Đây là một phương pháp chia nhỏ, trong đó các cạnh được loại bỏ dần dần ra khỏi đồ thị, trái ngược với phương pháp phân cụm phân cấp thông thường
• Các cạnh cần loại bỏ trong mỗi bước được xác định qua một độ đo trung gian
• Sau khi loại bỏ mỗi cạnh, độ đo trung gian của các cạnh còn lại được tính lại dựa vào cạnh bị loại bỏ đó
Trang 18Ý tưởng đằng sau thuật toán này là tìm và loại bỏ các cạnh nối các cộng đồng trong mạng, các cạnh đóng vai trò các nút giao thông trong mạng đó.Một đường đi giữa 2 đỉnh trong mạng thuộc 2 cộng đồng khác nhau nhất thiết phải đi qua ít nhất một trong
số các cạnh như vậy, vì thế nếu ta thiết lập các đường đi giữa tất cả các đỉnh trong mạng và xác định được cạnh nào trong đồ thị được các đường đi này đi qua nhiều nhất,
ta có thể loại bỏ nó để phân chia mạng thành các cộng đồng riêng biệt
Để tính toán cạnh nào có lưu lượng giao thông nhiều nhất trong mạng theo ý tưởng
mô tả ở trên, Girvan và Newman sử dụng độ đo trung gian giữa các cạnh, một độ đo được phát triển lên từ khái niệm độ đo trung gian giữa các đỉnh rất phổ biến do Freemen đề xuất Độ đo trung gian giữa các cạnh được định nghĩa là tổng số đường đi trắc địa giữa các cặp đỉnh trong toàn bộ đồ thị mà đi qua cạnh được xét tới.Một kiểu đường đi trắc địa được sử dụng đó là “đường đi ngắn nhất giữa hai đỉnh”.Với một đồ thị m cạnh và n đỉnh thì thời gian tính toán cho giai đoạn này là O(mn) Với đồ thị có trọng số, độ đo trung gian của cạnh có trọng số đơn giản được tính bằng độ đo trung gian của cạnh không có trọng số chia cho trọng số của cạnh đó
Thuật toán Girvan và Newman khá đơn giản, nội dung chính của nó chỉ là xác định cạnh có độ trung gian lớn nhất và loại bỏ nó Sau đó độ trung gian được tính lại và lại thực hiện loại bỏ dần các cạnh tiếp tục như vậy cho đến khi không còn cạnh nào trong
đồ thị.Nếu trong trường hợp có 2 cạnh với độ trung gian như nhau, ta có thể loại bỏ một cạnh bất kỳ, hoặc loại bỏ cả 2 cạnh cùng một lúc.Toàn bộ thuật toán có thể được biểu diễn trong một dendrogram,ở đây ta có thể hiểu là thuật toán đi từ gốc đến các lá Các nhánh của cây biểu diễn cho các phép loại bỏ cạnh để chia đồ thị thành các cộng đồng riêng rẽ Thuật toán Girvan và Newman đưa lại kết quả tương đối tốt trong nhiều trường hợp, tuy nhiên nó có hai nhược điểm chính.Thứ nhất, cũng như các thuật toán thuộc loại truyền thống, thuật toán Girvan-Newman không xác định trước được số cộng đồng mà mạng phân chia ra sẽ là bao nhiêu, và với rất nhiều phép phân vùng như vậy, khó có thể xác định được phép phân vùng nào mang lại hiệu quả tốt nhất Thứ hai, thuật toán có độ phức tạp thời gian khác cao với tổng cộng m cạnh cần loại bỏ, và với thời gian tính toán O(mn) trong mỗi bước lặp, tổng thời gian tính toán là 𝑂(𝑚2𝑛 ) hoặc
Trang 19xấu nhất có thể là 𝑂(𝑛3 ) Hơn thế nữa, thuật toán Girvan và Newman không giải quyết được sự chồng chéo cộng đồng, tức là một đỉnh có thể thuộc vào nhiều cộng đồng khác nhau trong mạng
➢ Họ thuật toán Girvan-Newman
Với những nhược điểm như trên của thuật toán Girvan-Newman, các nhà khoa học đã tìm cách cải tiến nó để thuật toán chạy tốt hơn nữa S.Fortunato [20] đã trình bày một cách tổng hợp về một số cải tiến quan trọng sau đây đối với thuật toán Girvan-Newman:
− Năm 2004, Newman và Girvan đưa ra một phương pháp để chọn phép phân vùng tốt nhất, đó là chọn lựa phân vùng với giá trị mô đun hóa lớn nhất.Giá trị mô đun hóa
là một hàm đánh giá chất lượng của phân vùng được Newman và Girvan đề xuất, có thể được biểu diễn bằng công thức:
𝑄 = 1
2𝑚∑ (𝐴𝑖𝑗 𝑖𝑗− 𝑃𝑖𝑗)𝛿(𝐶𝑖, 𝐶𝑗)Trong đó A là ma trận đỉnh kề, m là tổng số cạnh của đồ thị, 𝑃𝑖𝑗 biểu diễn số lượng cạnh có thể giữa 2 đỉnh i và j trong mô hình rỗng.Hàm δ có giá trị 1 nếu i và j thuộc cùng một cộng đồng và bằng 0 nếu ngược lại.Tuy nhiên, người ta nhận thấy rằng mô hình rỗng trong công thức trên không phù hợp lắm trong các mạng thực tế, vì phân phối bậc của nó là phân phối Poisson khác nhiều so với các phân phối trong mạng thực
tế Người ta thường ưa chuộng hơn các mô hình rỗng với phân phối bậc tương đương với phân phối của đồ thị ban đầu.Một cách chặt chẽ hơn, mô hình rỗng chuẩn của hệ môđun yêu cầu chuỗi bậc giống với chuỗi bậc của đồ thị ban đầu.Biểu thức của hệ môđun này như sau:
𝑄 = 12𝑚∑(𝐴𝑖𝑗 − 𝑘𝑖𝑘𝑗
2
]
𝑛𝑐
𝑐=1
Trang 20Trong đó 𝑛𝑐 là số lượng cụm, 𝑙𝑐 là tổng số cạnh nối các đỉnh trong môđun c và 𝑑𝑐
là tổng các bậc của các đỉnh thuộc c Dựa vào công thức trên ta thấy một đồ thị con là môđun nếu đóng góp tương ứng của nó vào hệ môđun trong tổng là dương.Số lượng cạnh bên trong của cụm càng vượt quá con số dự kiến thì cộng đồng càng được định nghĩa tốt.Vì vậy giá trị hệ môđun càng lớn thì phân vùng càng tốt Giá trị hệ môđun tối
đa của đồ thị nói chung là tăng khi kích thước đồ thị và số lượng cụm được phân biệt
rõ ràng tăng.Vì thế hệ môđun không dùng để so sánh chất lượng của các cấu trúc cộng đồng của các đồ thị có kích thước quá khác biệt.Hệ môđun luôn luôn nhỏ hơn 1 và có thể đạt giá trị âm trong trường hợp đồ thị chia ra mỗi đỉnh là một cộng đồng Hệ môđun đạt giá trị 0 khi cả đồ thị là một cộng đồng duy nhất
− Để cải tiến tốc độ của thuật toán Girvan-Newman, Tyler và cộng sự vào năm 2003 [21] đã đưa ra một phương pháp mặc dù phương pháp này dẫn tới sự giảm độ chính xác.Thuật toán của Tyler và cộng sự nêu ra rằng, thay vì tính toán độ trung gian của các cạnh bằng cách tính tất cả số đường đi ngắn nhất qua một đỉnh i bất kỳ đến các 17 đỉnh còn lại của đồ thị mà đi qua cạnh cần xét, sau đó tổng tất cả lại như thuật toán của Girvan và Newman, thì chỉ một tập nhỏ các đỉnh i được sử dung để tính toán độ trung gian thành phần Trong trường hợp chọn một mẫu ngẫu nhiên bất kỳ, điều này sẽ dẫn đến một ước lượng Monte-Carlo cho độ trung gian của từng cạnh.Ước tính này sẽ có
xu hướng trở thành đúng như độ đo thật nếu kích thước của mẫu trở thành lớn.Số lượng các đỉnh mẫu được chọn để sao cho độ đo trung gian của ít nhất một cạnh là lớn hơn một ngưỡng nào đó cho trước.Các ước tính Monte Carlo như thế này đtôi lại một vài sai số trong tính toán, tuy nhiên Tyler chỉ ra rằng kết quả thu được là chấp nhận được nếu ta chọn được các mẫu có kích thước thỏa đáng và lặp đi lặp lại các bước tính toán nhiều lần
− Một phiên bản nhanh hơn của thuật toán Girvan-Newman cũng được Rattigan [22] và các đồng sự trình bày năm 2007.Trong đó, một phép xấp xỉ nhanh chóng của
độ trung gian của các cạnh được chỉ ra bằng cách sử dụng một chỉ mục cấu trúc mạng, bao gồm một tập các chú thích đỉnh kết hợp với một độ đo khoảng cách.Về mặt cơ bản
Trang 21Rattigan chia đồ thị thành các miền và tính toán khoảng cách của các điểm trong từng miền đó.Rattigan chỉ ra rằng có thể hạ thấp độ phức tạp của thuật toán xuống thành O(m) mà vẫn giữ được độ chuẩn xác nhất định trong các ước tính độ trung gian của các cạnh.Phiên bản này của thuật toán Girvan-Newman đưa lại kết quả tốt trong mô hình thử nghiệm của Brandes đề xuất năm 2003, cũng như một số mạng khác
− Chen và Yuan[23], 2006 cũng chỉ ra rằng, việc tính toán độ trung gian của các cạnh bằng cách đếm tất cả các đường đi ngắn nhất có thể dẫn đến sự phân vùng không cân bằng, tức cộng đồng này có kích thước lớn hơn nhiều so với các cộng đồng khác.Chen và Yuan đề xuất việc tính toán chỉ trên các đường đi không dư thừa, ví dụ các đường đi mà điểm kết thúc khác hẳn so với các đường đi khác, như vậy độ trung gian thu được áp dụng vào phân vùng sẽ đtôi lại kết quả tốt hơn so với độ trung gian ban đầu mà Girvan-Newman đề xuất
− Holme và các đồng sự vào năm 2003 cũng sử dụng một phương pháp dựa trên thuật toán Girvan-Newman đã được sửa đổi.Thay vì việc loại bỏ các cạnh, ở đây Holme đề ra một độ đo trung tâm cho các đỉnh của đồ thị, sau đó dựa vào đó để xác định biên của các đỉnh và loại bỏ đỉnh và các cạnh của nó ra khỏi đồ thị một cách lặp đi lặp lại
− Thuật toán Girvan-Newman có một nhược điểm là không phát hiện được sự chồng chéo cộng đồng, tức một đỉnh có thể thuộc nhiều cộng đồng khác nhau.Để khắc phục vấn đề này, Pinney và Westhead năm 2006 đã đề xuất một phương pháp cải tiến cho thuật toán Girvan-Newman.Trong phương pháp đó, các tác giả cũng sử dụng độ đo trung gian của các cạnh và các đỉnh của đồ thị.Tuy nhiên các tác giả nhận định rằng độ trung gian của các cạnh và độ trung gian của đỉnh không thể so sánh với nhau một cách thông thường, do sự chuẩn hóa theo các cách khác nhau của chúng.Các tác giả đưa ra một khẳng định là hai đỉnh của một cạnh mà nối liền 2 cụm thì phải có độ trung gian tương đương nhau, vì các đường đi ngắn nhất qua cạnh đó đi qua đỉnh này thì cũng phải đi qua đỉnh kia.Từ đó, các tác giả tính toán cạnh có độ đo trung gian lớn nhất và loại bỏ nó ra khỏi đồ thị nếu như tỉ số của độ trung gian 2 đỉnh của nó nằm trong khoảng 1 𝛼⁄ và α với α = 8.0 Nếu không, đỉnh với độ trung gian lớn nhất và các cạnh
Trang 22kề của nó tạm thời bị loại bỏ ra khỏi đồ thị.Khi đồ thị con đã được tách ra từ đồ thị ban đầu sau các phép loại bỏ đỉnh và cạnh, đỉnh và các cạnh bị loại bỏ được đưa vào từng phần vừa được tách ra đó.Như vậy, các cộng đồng được tách ra có thể chứa các đỉnh giống nhau, từ đó xử lý được vấn đề chồng chéo cộng đồng
− Gregory năm 2007 đề xuất một hướng tiếp cận tương tự, đặt tên là CONGA [24](Cluster Overlap Newman-Girvan Algorithm), trong đó các đỉnh được phân chia giữa các cụm nếu như độ trung gian của nó vượt quá độ trung gian cạnh lớn nhất.Một phép phân chia của một đỉnh được thực hiện bằng cách chia nó thành nhiều bản sao, trong đó một số cạnh của nó được đưa vào một bản sao, số cạnh còn lại phân chia trong các bản sao khác.Gregory đề xuất một độ đo để xác đinh phép phân chia tối ưu nhất, gọi là độ trung gian phân chia của các đỉnh, là số đường đi ngắn nhất mà chạy hai phần của đỉnh sau khi được phân chia.Phương pháp này có độ phức tạp tối đa là 𝑂(𝑛3)như trong thuật toán Girvan-Newman
➢ Thuật toán CONGA
Thuật toán CONGA được Gregory [25] cải tiến từ thuật toán Girvan-Newman nhằm mục đích giải quyết vấn đề về chồng chéo cộng đồng Dựa trên ý tưởng thuật toán Girvan-Newman, tác giả đề xuất thêm một ý tưởng mới đó là phép chia các đỉnh thành nhiều phần khác nhau, để một phần của đỉnh được chia đó có thể xuất hiện trong các cộng đồng con Phép chia các đỉnh này là phù hợp với ý tưởng của thuật toán Girvan-Newman bởi lẽ, cũng như việc loại bỏ các cạnh, việc phân chia các đỉnh cũng có thể làm cho một cộng đồng lớn chia thành các cộng đồng con Tác giả đề ra một độ đo mới, là độ trung gian của phép phân chia, độ đo này cho phép ta có thể xác định được khi nào cần phân chia một đỉnh, thay vì loại bỏ các cạnh, đỉnh nào cần phân chia và phân chia như thế nào.Giả sử mỗi đỉnh v trong đồ thị đều được chia làm 2 phần, 𝑣1 và
𝑣2.Khi đó, coi 𝑣1𝑣2 là một cạnh và tính toán độ trung gian cho cạnh này, nếu độ đo trung gian tính được là lớn nhất đỉnh v sẽ được phân chia thành 2 phần 𝑣1 và 𝑣2 Giả sử với mỗi u là đỉnh kề với 𝑣1 và w là đỉnh kề với 𝑣2, ta có mọi đường đi qua u,v,w theo thứ tự giờ sẽ thành đường đi đi qua u, 𝑣1, 𝑣2,w.Từ đó ta có thể tính được số đường đi ngắn nhất mà đi qua cạnh 𝑣 𝑣 này.Có tổng cộng 2d(v)−1 cách phân chia v ra làm đôi,
Trang 23trong đó d(v) là bậc của v trong đồ thị.Phép phân đôi nào dẫn đến độ trung gian lớn nhất là phép phân chia được lựa chọn
Từ đó, ta tính toán được độ trung gian của phép phân chia cho tất cả các đỉnh.Với mỗi đỉnh có độ trung gian của phép phân chia lớn hơn giá trị lớn nhất trong các độ đo trung gian của cạnh, ta thực hiện chia đỉnh đó làm đôi, sử dụng phép phân chia tối ưu nhất của nó.Hình số 4 thể hiện một ví dụ về một đồ thị với 2 cộng đồng chồng chéo nhau là (a,b,c) và (a,d,e) với độ trung gian các cạnh được ký hiệu ở trên các cạnh đó.Ta
có thể thấy độ trung gian của phép phân chia của đỉnh a là 8, lớn hơn tất cả các độ trung gian của các cạnh, vì thế, đỉnh a được phân chia thành 2 phần như hình 3b.Hình 3c và 3d miêu tả một số phép phân chia khác, tuy nhiên không mang lại hiệu quả tối ưu như phép phân chia ở hình 3b
Hình 3: Ví dụ về phép phân chia một đỉnh trong đồ thị
Nhóm tác giả cũng khẳng định phương pháp này không bao giờ phân một đỉnh thành hai đỉnh con mà trong đó một trong hai đỉnh con chỉ có duy nhất một đỉnh kề.Chính vì vậy, các đỉnh có bậc nhỏ hơn 4 trong đồ thị không bao giờ bị chia nhỏ và tổng quát lại chỉ có 2d(v)−1 –d(v)-1 cách phân chia một đỉnh thành hai phần trong một
đồ thị
Trang 24Định nghĩa của độ trung gian của một đỉnh v trong đồ thị là tổng số đường đi ngắn nhất giữa các cặp đỉnh của đồ thị mà đi qua v.Ta có thể dễ tính được độ trung gian của đỉnh 𝐶𝐵 (v) từ các độ đo trung gian của cạnh 𝐶𝐵 (e) :
𝐶𝐵 (v) = 1
2 ∑e∈Γ(v)𝐶𝐵 (e) − (n − 1)Trong đó Γ(v) là tập các cạnh có v là đỉnh cuối và n là số đỉnh của đồ thị chứa v.Ta
có thể thấy từ định nghĩa, độ trung gian của các đỉnh luôn lớn hơn độ trung gian phép phân chia của các đỉnh.Vì vậy tác giả sử dụng độ trung gian của các đỉnh là cận trên của độ trung gian phép phân chia, nếu độ trung gian của các đỉnh mà nhỏ hơn giá trị lớn nhất độ trung gian của các cạnh, đỉnh đó coi như không được phân chia
Để tính toán độ trung gian phép phân chia của đỉnh v, ta sử dụng một độ đo khác là
độ trung gian theo cặp của v theo (u,w).Giả sử u, w là 2 đỉnh kề bất kỳ của v, độ trung gian theo cặp của v theo (u,w) chính là số đường đi ngắn nhất của bất kỳ cặp đỉnh trong
đồ thị mà đi qua (u,v) và (v,w)
Người ta biểu diễn các độ đo trung gian theo cặp của đỉnh v bậc k bằng một kclique, trong đó mỗi đỉnh được gán nhãn một hàng xóm của v và mỗi cạnh (u,w) được gán 1
số bằng độ đo trung gian theo cặp của v theo (u,w).Từ đó ta có thể tìm được phép phân chia tốt nhất của đỉnh v theo cách như sau:
Trang 25Hình 4: Tìm phép phân chia tối ưu trong trường hợp ở hình 3
Các độ trung gian theo cặp của một đỉnh được tính toán hoàn toàn theo định nghĩa của nó.Như vậy, tổng quát lại, thuật toán CONGA chia làm các bước như sau:
− Tính độ trung gian của tất cả các cạnh trong đồ thị
− Tính độ trung gian của các đỉnh trong đồ thị, dựa vào độ trung gian của các cạnh như trong công thức ở trên
− Tìm danh sách các đỉnh mà độ trung gian của đỉnh đó lớn hơn giá trị lớn nhất của các độ trung gian cạnh
− Nếu danh sách ở bước 3 không rỗng, tính các độ trung gian theo cặp của các đỉnh trong danh sách, sau đó xác định phép phân chia tối ưu nhất cho các đỉnh đó
− Thực hiện việc loại bỏ cạnh, hoặc phân chia đỉnh để chia đồ thị thành các thành phần
− Tính lại độ trung gian của các cạnh trong tất cả các thành phần vừa được chia ra
− Lặp lại bước 2 đến khi không còn cạnh nào
Như vậy, bài luận đã trình bày toàn bộ các bước thực hiện của thuật toán CONGA.Thuật toán này có ưu điểm là giải quyết được vấn đề chồng chéo cộng đồng bằng cách đặt ra phép phân chia đỉnh, ngoài ra nội dung thuật toán tương đối dễ hiểu
và xác định được phép phân chia tối ưu nhất trong các trường hợp,một điều mà thuật toán Girvan-Newman nguyên thủy không làm được.Tuy nhiên nhược điểm của thuật toán vẫn là thời gian tính toán, với độ phức tạp tính toán lên tới 𝑂(𝑚3) với m là số cạnh
Trang 262.2 Tích hợp thuật toán toán Girvan-Newman vào mạng SDN
Router trong Clique (vùng) xảy ra lỗi
Router trong Clique (vùng) xảy ra lỗi
Thuật toán tìm đường ngắn nhất Dijkstra qua từng hop
Thuật toán tìm đường ngắn nhất Dijkstra trong vùng lớn G
Thuật toán tìm đường ngắn nhất Dijkstra trong vùng con c
Sử dụng lý thuyết đồ thị vô hướng làm cơ sở để mô hình hóa cấu trúc liên kết mạng máy tính Nói chung, mỗi đồ thị G = (V, E) bao gồm V là một tập hợp các đỉnh (tức là các nodes), E là một tập hợp các cạnh (tức là các links) kết nối các nút với nhau Tập hợp tất cả các liên kết trong G có thể được định nghĩa là tập hợp con gồm 2 phần tử của các nút, E ⊆ V × V Xác định đường dẫn P, từ nguồn đến đích như một chuỗi các đỉnh liên tiếp đại diện cho các nút hoặc bộ định tuyến trong mạng Đường dẫn bắt đầu
từ bộ định tuyến nguồn 𝑟𝑠 và kết thúc bằng bộ định tuyến đích 𝑟𝑑 với 𝑟𝑖𝑐 và 𝑟𝑗𝑐 là bất
kỳ hai bộ định tuyến liền kề nào dọc theo P:
P = (𝑟𝑠, , 𝑟𝑖𝑐, 𝑟𝑗𝑐, , 𝑟𝑑)
Trang 27𝑃𝑟𝑠,𝑟𝑑 là định nghĩa tập hợp tất cả các đường dẫn có thể có giữa bất kỳ bộ định tuyến nguồn 𝑟𝑠 và bộ định tuyến đích 𝑟𝑑, như sau:
𝑃𝑟𝑠,𝑟𝑑 = {P | (first(P) = 𝑟𝑠) ∧ (last(P) = 𝑟𝑑)}
Hình 5:Phân vùng ảo
Phát hiện cộng đồng (đôi khi được gọi là nhận dạng cliques) đã được đề xuất một cách hiệu quả như một giải pháp để giải quyết các loại vấn đề liên quan đến mạng bao gồm cả vấn đề tối ưu hóa đường dẫn mạng Trong bối cảnh này, tôi sẽ sử dụng khái niệm về các nhóm không chồng chéo như một cách tiếp cận để tối ưu hóa phục hồi mạng SDN thông qua việc đẩy nhanh quá trình phục hồi lỗi Bằng cách chia đồ thị của mạng G thành một số vùng nhất định, giả sử rằng khi xảy ra lỗi liên kết thì chỉ có một clique sẽ bị lỗi Trong khi đó, các cliques khác hoạt động bình thường Rất có thể hầu hết các liên kết của đường dẫn sẽ được phân phối trên nhiều vùng khác nhau, do đó tại thời điểm liên kết thất bại thì chỉ có clique c được xử lý thay vì xử lý tìm đường thay thế trên toàn bộ graph G
Chia graph G thành các vùng mạng ảo bằng cách áp dụng bất kỳ thuật toán phát hiện cộng đồng, số lượng trích xuất các vùng có thay đổi và thường phụ thuộc vào cấu trúc liên kết mạng và thuật toán được sử dụng Trong mô hình, luận văn của tôi xác định tập hợp các vùng phân chia biểu đồ mạng G là C ⊆ G, trong đó các vùng riêng lẻ
c ∈ C được định nghĩa như sau: