Mạng do phần mềm xác định SDN [1] là một mô hình trong đó có mộtchương trinh phần mềm trung tâm, được gọi là bộ điều khiển, ra lệnh cho hành vi mạngtongthe.. Mục đích nghiên cứu Mục đích
Trang 1Phan Thanh Toàn
Thành phố Hồ Chí Minh - 2022
Trang 2Phan Thanh Toàn
Chuyên ngành: Công nghệ thông tin
Mã số: 8480201
NGƯỜI HƯỚNG DẦN KHOA HỌC:
Thành phố Hồ Chí Minh - 2022
Trang 3Em cam đoan những kết quả nghiên cửu được trình bày trong luận văn hoàn toàn trung
thực Tất cả các tàiliệu tham khảo có nguồngốc, xuất xứ rõ ràng Luận vănđảmbảo tínhđộc lập
và khách quan theo đúng quy định của Khoa
Tác giả luận văn
Phan Thanh Toàn
Trang 4Trước khi trình bày nội dung chính của luận văn Thạc sì, em xin cảm ơn sâu sắc tới thầy
PGS.TS Phan Công Vinh, Phó Trưởng khoa - khoa Công nghệ thông tin - Trường Đại học
Nguyễn Tất Thành người đà tận tình dạy bảo, hướng dầnem hoàn thành tốt luận văn này
Em cũng xin cảm ơn chân thành đen thầy TS Nguyễn Kim Quốc, Trưởng khoa Công nghệthông tin là co vấn học tập và quý Thầy khoa Công nghệ thông tin, Viên sau đại học - Trường Đại học Nguyễn Tất Thànhđã dạybảo em trong suốt quátrình học tập tại Trường
Nhân dịp này em xin gửi lời cảm ơn chân thành nhất tới gia đình, bạn bè, đồng nghiệp đã
luôn động viên, cố vũ, giúp đờ em trong suốtquá trình học tập và thực hiện luận văn tốtnghiệp
Họviên
PhanThanh Toàn
Trang 5LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH SÁCH CÁC HÌNH V DANH SÁCH CÁC BẢNG V DANH MỤC KÝ HIỆU VÀ VIẾT TẮT vi
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 Lý do chọn đề tài 1
1.2 Mục đích nghiên cứu 2
1.3 Mục tiêu tổng quát 2
1.4 Mục tiêu cụ thể 3
1.5 Đối tượng nghiên cứu và phạm vi nghiên cứu 3
1.5.1 Đối tượng nghiên cứu 3
1.5.2 Phạm vi nghiên cứu 3
1.6 Nhiệm vụ nghiên cứu 3
1.7 Phưong pháp nghiên cứu 4
1.7.1 Phươngpháp lí luận 4
1.7.2 Phươngpháp thựctiễn 4
1.8 Những đóng góp mới cua đề tài 4
1.9 Dự kiến kế hoạch nghiên cứu 4
CHƯƠNG 2: MÔ TẢ VỀ MẠNG DO PHẦN MỀM XÁC ĐỊNH DƯỚI KIẾN TRÚC ĐA ĐIỀU KHIẾN, VÀ KIẾN THỨC NỀN TẢNG VỀ CSP VÀ PAT 6
2.1 Mô tả về mạng do phần mềm xác định dưới kiến trúc đa điều khiển 6
2.1.1 Mạng do phần mềm xác định dướikiến trúc đa điều khiến 8
2.1.2 Kiến trúc HyperFlow 11
2.1.3 Kiến trúc Kandoo 11
2.2 Kiến thức nền tảng về CSP và PAT 12
2.2.1 Tong quan về ngôn ngừ đại số tiến trìnhCSP 12
2.2.2 Tổng quát về bộcông cụ phân tích tiến trình PAT 24
CHƯƠNG 3: MÔ HÌNH HÓA MẠNG DO PHẦN MỀM XÁC ĐỊNH DƯỚI KIẾN TRÚC
Trang 63.1 Chuyển mạch 39
3.1.1 InputBuffer 40
3.1.2 Wait 41
3.1.3 Switchprocessor 42
3.2 Bộ điều khiển HyperFlow 45
3.2.1 TopoBuffer 46
3.2.2 Controllerprocessor 48
3.3 Bộ điều khiển Kandoo 52
3.4 Hệ thống mạng do phần mềm xác định dưới kiến trúc đa điều khiển 54
CHƯƠNG 4: KIẾM CHÚNG MÔ HÌNH MẠNG DO PHẦN MỀM XÁC ĐỊNH DƯỚI KIẾN TRÚC ĐA ĐIỀU KHIẾN VÀ co CHẾ BẢO MẬT 55
4.1 Kiểm chứng mô hình mạng do phần mềm xác định dưới kiến trúc đa điều khiển 55
4.1.1 Tính khôngbế tắc (Deadlock-freeness) 55
4.1.2 Tính nhất quán (Consistency) 57
4.1.3 Khảnăng chịu lồi (Faulttolerance) 58
4.2 Kiểm chứng cơ chế bảo mật 62
4.2.1 Từ choi dịch vụ (Denial of Service) 62
4.2.2 Tiết lộ thông tin (Information Disclosure) 64
4.2.3 Kẻxâmnhập giả mạo(Intruder faking) 67
4.2.4 Tin nhắn giả mạo (A tampered message) 70
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIẾN 73
5.1 Kết luận 73
5.2 Hướng phát triển 73
TÀI LIỆU THAM KHẢO 74
Trang 7Hình 2.1 Kiếntrúc SDN (Phỏng theo [1]) 10
Hình 2.2 Kiếntrúc HyperFlow [2] 11
Hình 2.3 Kiếntrúc Kandoo [2] 12
Hình 2.4 Kiếntrúc PAT [3] 25
Hình 2.5 Trình biên tập PAT [3] 26
Hình 2.6 Chế độ chọn nhấp chuột và hàng loạt 28
Hình 2.7 Mô-đun CSP [3] 29
Hình 3.1 Truyền thông cùa chuyến mạchOpenFlow [2] 39
Hình 3.2 Truyền thông của một bộ điều khiến [2] 45
Hình 3.3 Truyền thông củabộ điều khiển cục bộ [2] 52
Hình 3.4 Truyền thông cùabộ điều khiển gốc [2] 53
Hình 4.1 Tính không bế tắc của kiến trúc HyperFlow 56
Hình 4.2 Tính không bế tắc của kiếntrúc Kandoo 56
Hình 4.3 Tính nhất quán của kiếntrúc HyperFlow 58
Hình 4.4 Khôi phục lồi liên kết đơn của kiến trúcHyperFlow 59
Hình 4.5 Khôi phục lồi liên kết đơn của kiếntrúc Kandoo 60
Hình 4.6 Khắc phục lồi điếmđơn của kiếntrúc HyperFlow 61
Hình 4.7 Ket quả kiểm chứng Từ chốidịch vụ 64
Hình 4.8 Ket quảkiếm chứng Tiết lộ thông tin 66
Hình 4.9 Giao tiếp với kẻ xâm nhập [2] 67
Hình 4.10 Kết quả kiểm chứng Kẻ xâm nhập giả mạo 69
Hình 4.11 Mô phỏng cho mộtthông điệp giả mạo 70
Hình 4.12 Kếtquả kiểm chứng Tin nhắn giả mạo 71
Hình 4.13 Mô phỏng cho một đường dẫn giả mạo 72
Trang 8Bảng2.1 So sánh PAT và FDR [4] 7
Trang 9STT Chữ viết tắt Diễn giải tiếng Anh Diễn giải tiếng Việt
Processes
Các tiển trình tuấn tự của
truyền thông
6 LTL LinearTemporal Logic Logic thời gian tuyền tính
9 OFDP OpenFlow DiscoveryProtocol Giaothức khám phá OpenFlow
10 TLS Transport Layer Security Bảo mật tẩng truyền tải
11 MitM Attack Man-in-the-MiddleAttack Tấn công xen giữa
12 SLFR Single Link Failure Recovery Khôi phục lỗiliên kềt đơn
13 SPFR Single Point Failure Recovery Khôi phục lỗi diêmđơn
Trang 10CHƯƠNG 1: GIỚI THIỆU • ĐÈ TÀI
1.1 Lý do chọn đề tài
Cùng với sự phát triển khôngngừngcủa khoa học và công nghệ, côngnghệ thông tin đã và đang được ứng dụng một cách triệt để trong cuộc sống và nghiên cứu Đầutiên
là sự bùng no cùa số lượng thiết bị kết nối mạng, gom cả thiết bị di động lần loT, kéo
theo đó là sựbùng nổ về nội dung, dữ liệu được truyền tải trên mạng, đặt ra một áp lựcrất lớn đốivớimạng truyềnthống, vốn dìđược thiết kế với khảnăng mởrộng nhất định.Tiếp đến, hạ tầngtính toán và lưu trừ đã cónhững phát triển vượt bậc trong những nămgần đây Đặc thù của hạ tầng tính toánvà lưutrừ ngày nay là khả năng mở rộng, thuhẹpcực kỳ nhanh chóng và linh hoạt Điều này đặt ra yêu cầu lỏn cho độ linh hoạt của hạtầng mạng Mạng do phần mềm xác định (SDN) [1] là một mô hình trong đó có mộtchương trinh phần mềm trung tâm, được gọi là bộ điều khiển, ra lệnh cho hành vi mạngtongthe Tuy nhiên, việc dựavào một bộ điều khiển duy nhất cónhữnghạn chế lớn baogồm thiếu khả năng mở rộng Trong luận văn đề xuất phương án nhiều bộ điều khiến
quản lý nhiều thiết bị mạngvà một thiết bị mạng có thể được quản lýbởi nhiều bộ điều
khiển [2]
SDN với nhiều bộ điều khiến thu hút nhiều sự chú ý hơn đối với quy mô ngày càng tăng của mạng Kiến trúc đa điều khiển có thể xử lý những gì SDN với bộ điều khiểnđơn không thể giải quyết Đe hiểu chính xác những gì mà những kiến trúcnày có
thểđạt đượcvà phải đối mặt, đề tài luận văn cần phân tích chúng bằng các phương pháphình thức Trongđề tài này, sẽ áp dụng CSP đe môhìnhhóa dịch vụ định tuyến cùaSDN theo kiến trúc đa điều khiển, đặc biệt là kiến trúc HyperFlow [5] và kiến trúc Kandoo
dựa trên giaothức OpenFlow [6], Bằng cách sử dụng PAT, còn kiểm chứng [7] các môhình đáp ứng ba thuộc tính, đó là tính không có be tắc (deadlock-freeness), tính nhất
quán (consistency) và khả năng chịu lồi (fault-tolerance)
Ngoài ra, Mạng dophần mềm xácđịnhcho phép các nhà khai thác mạng linh hoạt
hơn trong việc lập trình mạng của họ Với SDN, quản lý mạng chuyến từchức năng mã
Trang 11hóa theo cấuhình thiếtbị cấp thấp sang xây dựng phần mềm hồ trợ quản lý mạng và gỡlồi Bằng cách tách biệt sự phức tạp của phân phối trạng thái khỏi đặc tả mạng, SDN cung cấp những cách mớiđế giải quyếtcácvấn đề lâu nay trong mạng- ví dụ:định tuyến
- đồng thời cho phép sử dụng các kỳ thuật bảo mật và độ tin cậy, chăng hạn như kiêm soát truy cập hoặc đa đường truyền Tuy nhiên, tínhbảo mật và độ tin cậy của bản thân SDN vần còn là mộtvấnđề còn bỏ ngỏ, đe nghiên cứutínhbảo mật củacácmôhình đó,một số tiện ích mở rộng được thêm vào, đề xuất nghiên cứu các môhình mở rộng có khả
năng đối phó với việc từ chối dịch vụ (Denial of Service) và có thế bị tiết lộ thông tin (Information Disclosure)
Nội dung trong đetài được tố chức như sau Trong Chương 1, sẽ giới thiệu về đề
tài luậnvăn Chương 2 sẽ môtả về Mạng do phần mềm xác định dưới kiến trúcđa điều
khiến, và kiến thức nền tảng về CSP và PAT Và sẽ mô hình hóa Mạng do phần mềm
xác định dưới kiến trúcđa điều khiến trong Chương 3 Trong Chương 4, kiếmchứng môhình Mạng do phần mềm xác định dưới kiến trúc đa điều khiểnvà cơ chế bảo mật Cuối cùng, là cung cấp các nhận xét kết luận vàhướng phát triểntrong Chương 5
1.2 Mục đích nghiên cứu
Mục đích của luận văn nhằm Mô hình hóa và kiểm chứng Mạng do phần mềm
xác định dưới kiến trúc đa điều khiển bằngcách sử dụng cáctiếntrình tuần tự cùatruyền
thông
1.3 Mục tiêu tổng quát
Sẽ áp dụng các tiến trình tuần tự của truyền thông để mô hình hóa dịch vụ định
tuyếncủa SDNtheokiến trúcđa điều khiến, đặcbiệtlàkiến trúc HyperFlow và kiến trúcKandoo dựa trên giaothức OpenFlow
Bằngcách sửdụng Bộ công cụ phân tíchtiến trình, kiêmchứng các mô hình đápứng ba thuộc tính, đó là tính không có bế tắc, tính nhất quán và khả năng chịu lồi Tuynhiên, tính bảo mật và độ tin cậy củabản thân SDN vẫn còn là một vấnđề còn bởngỏ,
đe nghiên cứutínhbảo mậtcủa các mô hình đó, một sốtiện ích mở rộng được thêmvào,
Trang 12đề xuất nghiên cứu các mô hình mở rộng có khả năng đối phó với việc từ chối dịch vụ
và có the bị tiết lộ thông tin
1.4 Mục tiêu cụ thể
Thông qua việc mô hình hóa và kiếm chứng mạng do phần mềm xác định dưới
kiến trúc đa điều khiến bằng ngônngừ đại số tiến trình CSP, sẽ hoàn thành luận văn tốt nghiệp
1.5 Đối tượng nghiên cứu và phạm vi nghiên cứu
1.5.1 Đối tượng nghiên cứu
Mô hình hóa và kiểmchứng SDN dưới kiến trúcđa điềukhiển bằng cách sử dụng ngôn ngừ đại số tiến trinh CSP
1.5.2 Phạm vi nghiên cứu
Sử dụng ngôn ngữ đại số tiến trình CSP và PAT để kiếm tra mô hình và kiểm
chứng các mô hình đáp ứng bathuộc tính, đó là tính không có bế tắc, tínhnhất quán và
khả năng chịu lồi vàđối phó vớitừ chối dịchvụ và có the bị tiết lộ thông
1.6 Nhiệm vụ nghiên cứu
Nghiên cứu SDN vớikiến trúcđa bộ kiều khiểnbao gồm kiến trúc HyperFlowvà
kiến trúc Kandoo trên giao thức OpenFlow
Nghiên cứu ngôn ngừ đại số tiến trình CSP và sử dụng bộ công cụ phân tíchtiếntrình đế kiểmtra mô hình PAT
Mô hình hóa chuyển mạch, bộ điều khiển HyperFlow, bộ điều khiển Kandoo và
hệ thống mạng SDN
Kiểm chứng tính không có bếtắc, tính nhấtquán và khả năng chịu lồi
Đe xuất đối phó với từchối dịch vụ và có the bị tiết lộ thông tin
Thực nghiệm đánh giá tính khả thi và hiệu quả của đề tài trên bộ công cụ phântích tiến trình đe kiểm tra môhình PAT
Trang 131.7 Phương pháp nghiên cứu
1.7.1 Phương pháp lí luận
Nghiêncứu lý thuyết SDN, Ngôn ngữ đại số tiến trình CSP, Kiến trúcHyperFlow,
Kiến trúc Kandoo, Giao thức OpenFlow, PAT và các tài liệu có liên quan Phân tíchvàtông họp
1.7.2 Phương pháp thực tiễn
Phân tích và tông họp kinh nghiệm: đề xuất PAT thực nghiệm trên Kiến trúc
HyperFlow, Kiến trúc Kandoo, Giao thức OpenFlow
Phuong pháp hỏi ý kiến chuyên gia
Phuongpháp toánhọc: Ngôn ngừ tiến trìnhCSP
1.8 Những đóng góp mới của đề tài
Sử dụng kiến trúc đa điều khiển và CSP đe mô hình hóadịch vụ địnhtuyến cùa SDN theo kiếntrúcđa điều khiển, đặc biệt là kiến trúc HyperFlow và kiến trúc Kandoodựa trên giao thức OpenFlow Bằng cáchsử dụng PATđểkiểm tra mô hình, kiếm chứng
các mô hình đáp ứng ba thuộc tính, đó là tính không có bế tắc, tính nhất quán và khả
năng chịu lỗi Ngoài ra, đe nghiên cứu tính bảo mậtcủa các mô hìnhđó, một số tiện ích
mở rộng được thêm vào và nghiên cứu mở rộng các mô hình có khả năng đối phó với việc từ chối dịchvụ và có thể bị tiết lộ thông tin
1.9 Dự kiến kế hoạch nghiên cứu
Giai đoạn 1: Nghiên cứu lý thuyết SDN,kiến trúc HyperFlow,kiến trúc Kandoo,
giao thức OpenFlow và cáctài liệu có liên quan
Giai đoạn 2: Nghiên cứu ngôn ngừ đại số tiến trình CSP và PAT và các tài liệu
Trang 14Giai đoạn 5: Kết luậnvà phát triển.
Giai đoạn 6: Viết các chương báocáo và hoàn thiện luận văn
Trang 15CHƯƠNG 2: MÔ TẢ VÈ MẠNG DO PHÀN MÈM XÁC ĐỊNH
TẢNG VÈ CSP VÀ PAT
Giới thiệu tổng quát toàn bộ nội dung của đề tài bao gồm: mạng do phần mềm
xác định SDN, kiến trúc HyperFlow, kiến trúc Kandoo và giao thức OpenFlow
2.1 Mô tả về mạng do phần mềm xác định dưói kiến trúc đa điều khiển
SDN là cách tiếp cận mạng sử dụng bộ điều khiến dựa trên phần mềm hoặc API
đe giao tiếp với cơsở hạ tầng phần cứng bên dưới và lưu lượng truy cập trực tiếp trên mạng Mô hình này khác với mô hình của các mạng truyền thống, sử dụng các thiết bịphần cứng chuyên dụng (tức là bộ định tuyến và bộ chuyển mạch) để điều khiển lưu
lượng mạng SDN có thể tạo và điều khiển mạng ảo hoặc điều khiểnphần cứng truyền
thống thông qua phần mềm
Mặc dù ảo hóa mạng cho phép các to chức phân đoạn các mạng ảo khác nhau
trong một mạng vật lý duy nhất hoặc kết nối các thiết bị trên các mạng vật lýkhác nhau
đe tạo ra một mạng ảo duy nhất, mạng do phần mềm xác định cho phép một cách mới
đe kiểm soát việc địnhtuyến các gói dữ liệu thông qua một máychủ tậptrung
Tuy nhiên SDN với một điều khiển có nhiều rủi ro về bảo mật là tập trung điều khiến lưu lượng của toàn mạng vào một diem duy nhất, do đó có the là một trọng điếm
cho các cuộc tấn công vào hệ thống Trước tình hìnhđó sè đề xuất SDN đa điều khiển
Áp dụng CSPđể mô hình hóa dịch vụ định tuyến của SDNvà kiểm chứng bằng PAT
Đe hiểu rõ hơn tại sao trong đề tài lại chọn CSP để mô hình hóa dịch vụ địnhtuyến cùa SDN mà không phải là mô hình Actor, vì mô hình Actor cũng rất giống với
CSP Tuy nhiên, CSP có những ưu diem sau [8]: Các tiến trình CSP là ẩn danh, trong
khi các Actor là có danh tính CSP chỉ có the chứa tối đa một tin nhắn, điều này giúpcho việc lập luận trở nên dề dàng hơn nhiều Trong khi với mô hình Actor, nó giongnhư có
một hộp thư vô hạn có khảnăng chứa các tin nhắn
Trang 16Trong CSP, các tin nhắn được gửi theothứ tự mà chúng đãđược gửi đi.
Truyền thôngđiệp CSP về cơbản liên quan đến mộtđiếm hẹn giữa các quá trình
liênquan đến việc gửi và nhận thông điệp, tức là người gửi khôngthe truyền thông điệp
cho đến khi người nhận sẵn sàng chấp nhận nó
Ngược lại, việc truyền thông điệp trong các hệ thống Actor về cơbản là không
đồngbộ, tức là việctruyền và nhận thôngbáokhôngphải diễn ra cùng một lúc, và người
gửi có thể truyền thông điệp trước khi người nhận sằn sàngchấp nhận chúng
Và tiếp theo sè nêu rõ lý do vì sau lại chọn PAT mà không chọnnhững công cụkiểm chứngkhác như FDR, ProB đặt biệt là FDR gần tươngtự như PAT [9]:
So sánh PAT với FDR [4] bằng cách sử dụng các mô hình điểm chuẩn để kiểm
tra sàng lọc Đe so sánh công bằng, tất cả các kiểu máy chỉ sử dụng các tính năng CSPtiêu chuẩn được hồ trợ bởicả hai Bảng sauđâycho thấykếtquả thử nghiệm cho ba kiểu
máy, thu được trên CPU IntelCore Duo 2.0 GHzvà bộ nhớ 1 GB
MÔ hình N Thuộc tính Kểt quả PAT FDR
-Milner’s Cyclic Scheduler 11 p [T=s true < 1 19.011
Milner’s Cyclic Scheduler 13 p [T= s true < 1 419.021
Milner’s Cyclic Scheduler 14 p [T=s true < 1
-Milner’s Cyclic Scheduler 50 p [T=s true 2.406
-Milner’s Cyclic Scheduler 100 p [T=s true 9.765
-Milner’s Cyclic Scheduler 200 p [T= s true 60.453
Báng 2.1 So sánh PA T và FDR [4]
Trang 17p [T = s là thuộc tính đã xác minh sàng lọc theo dõi, N là số tiến trình.
Ví dụ đầu tiên làbàitoánDining Philosophers, trongđóN là số triết giavà số nĩa
Do mô hình hóa, việc giảm đon hàng một phần không hiệu quả đối vớiví dụ này FDR
hoạt động rat tốt cho ví dụ này Cụ the, nó xây dựng một hệ thống ở mồi giai đoạn sènén các hệ thống con để tìm ra một quá trình tương đương với (ví dụ cụ thê này) nhiều
trạng thái ít hơn
Ví dụ thứ hai là van de Reader/Writers, trong đó người đọc và người viết phối hợp để đảmbảo thứ đọc viết chínhxác Với N là số lượng Reader/Writers PAT rất hiệu
quả cho ví dụ này Do đó, PAT xử lý hiệu quảhàng trăm Reader/Writers, trong khi FDR
bị húy do đầy bộ nhớ nhanh chóng (đoi với N = 18)
Ví dụ thứ ba là thuật toán Milner’s Cyclic Scheduler, trong đó nhiều tiến trình
được lập lịch theo chu kỳ Do đó, PAT xử lý hàng trăm tiến trình, trong khi FDR xử lý
íthơn 14 tiến trình Tóm lại, kết quả thử nghiệm cho thấy PAT hoạt động tốt hơn FDRtrong một số trường hợp Nên trong đề tài nàysè lựa chọn PAT đế kiêm chứng các mô
hình
2.1.1 Mạng do phần mềm xác định dưới kiến trúc đa điều khiển
SDN, là viết tắt cùa Software Defined Networking - Mạng do phần mềm xác
định, là một kiểu kiến trúc mạngmới, lậtngược hoàn toàn kiến trúc truyền thống Tính
năng lớn nhất của nó là tách mặt phangdữ liệu khỏi mặt phăng điều khiển Do đó, lưu
lượng mạng có thể được kiếm soát một cách linh hoạt, về cơ bản, kiến trúc SDN baogồm mặt phẳng dữ liệu, mặt phẳng điều khiển và mặt phẳng ứng dụng [10] được hiển thị trong Hình 2.1. Các thiết bị phần cứng, chẳng hạn như bộ chuyển mạch và bộ định tuyên, tạo nên mặt phăng dữ liệu Khả năng điêu khiên được chuyên sang mặt phăng
điềukhiển Do đó, nhữnggì phần cứngcơ bản có thể làm là chỉ chuyển tiếp các gói theo
hướng dẫn từ bộ điều khiển Bộ điều khiển,thành phần cốt lõi của SDN, chạy trong mặt phang điều khiển Tất cả các hành vi được chúng chỉ huy trong mạng [11] Mặt phang ứng dụng bao gomrất nhiềuứng dụng kinh doanh Các ứngdụng đó có the quản lý các
Trang 18thiếtbị mạngmột cách hợp lý bằngcáchđiềukhiển các bộđiều khiển Bên cạnh đó, giao diện hướng namvà giao diện hướng bắc cũng rấtquantrọng Trước đâygiữa lóp dữliệu
và lóp điều khiển có một tiêu chuẩn thống nhất API hướng nam phổ biến nhất làOpenFlow [12] là ưu tiên nghiên cứu trong đề tàinày Tuy nhiên, cái sau được xácđịnh bởi nhu cầu thực tế của người dùng vì không có sằn API hướng bắc tiêu chuan [1] Đoi với phần lớn các mạng, các chức năng điều khiển tương ứng có thể đạt được với mộtbộđiều khiến duy nhất Tuynhiên, các mạng quy mô lớn với bộ điều khiến duy nhất phảiđối mặt với một số vấnđề Thứ nhất, số lượngthiết bị chuyểnmạchngàycàngtăngmanglại lưu lượngtruy cập ngày càng tăng Tuy nhiên, băng thông giữa bộ điều khiểnvà bộchuyến mạch quá hạn chế đe tải lưu lượng Thứhai, bất cứ nơi nào bộ điều khiến đượcđặt, một số chuyến mạch luôn bị trềthời gian do thiết lập bảng lưu lượng Bên cạnhđó,một mạng nhất định có nguy cơ lồi duy nhất Có nghĩa là, nó dần đến thất bại, một khi
bộđiềukhiếnbị hỏng Vàcóthể giải quyết nhữngvấnđềđóbằng cách mở rộng số lượng
bộ điều khiển Bộ điều khiểnphân tán có thểđược thực hiện theo hai cách [13] Những
bộ điều khiển đó có thể được đặt trong một mặt phẳng hoặc một mặt phẳng phân cấp Cái thứnhất, lấy kiến trúc HyperFlow làm ví dụ, yêu cầu mọi bộ điều khiểnphải ở cùng
một cấp, trong khi cái thứ hai phân loại các bộ điều khiển dựa trên cơ sở sử dụng của
chúng, nhưkiếntrúcKandoo
Nhiều nồ lực nghiên cứu đã được dành cho việc mô tảkiến trúc đa bộđiều khiểnbao gồm kiếntrúc HyperFlow và kiến trúc Kandoo và phân tíchtính bảo mật cùa SDN
Tống quan toàn diện về từng vấn đề bảo mật giao diện/lóp SDN được trình bày trong [1,14] Và, một số phương pháp tiếp cậnđược đưa ra đe phát hiện các cuộc tấn công vàochuyến tiếp mặt phang dữ liệuvà cấu trúc liên kết mạng [15] Tuy nhiên, vần thiếu sựhình thức hóa củatừngthành phần trong cáckiến trúcđó Việc ápdụng cácphương pháphình thứcđểxác nhận sựtồn tạithực sự của các cuộc tấn côngvà tính đúng đắn của các giải pháp này vần chưa được giải quyết
Trong đề tài này, sử dụngđại số tiến trình CSP [16] đe môhình hóa dịch vụ định
Trang 19tuyến của SDN dựa trên OpenFlowtheo kiến trúc HyperFlow và kiếntrúc Kandoo Sau
đó, sử dụng PAT [17] để kiếm chứng ba thuộc tính, bao gồm tính không có bế tắc, tínhnhất quán và khả năng chịu lồi Tính không có bế tắcđề cập đen việc truyền thônggiữa
các tiến trình diền ra suôn sẻ và không bao giờ bị gián đoạn Thực tế là mọi bộ điềukhiển
chia sẻ cùng một cấu trúc liên kết theo kiếntrúc HyperFlow được coi là tínhnhất quán Khả năng chịu lồi minh họa hai cảnh Một là các gói tin có the được chuyến tiếp bình
thường dưới HyperFlow và Kandoo, khi liên kếtgiữa các bộchuyển mạch bị hỏng Một
điều khác là mặc dùmột số bộ điều khiến khônghoạt động, nhưng kiến trúc HyperFlow
có the hoạt động tốt Nhừng gì có thế học đượctừcác thuộc tính là kiến trúc đa bộ điều khiển có một số chức năng độc đáo, so với SDN với bộ điều khiểnđơn và mạng truyềnthống Ngoài ra, nhờ các mô hình bảo mật bổ sung thấy rằng bộ đệm trong bộ chuyến mạch và bộ điều khiển cóthế xử lý bằng Từ chối dịch vụ thông qua phương pháp được
mô tả trong [15] Bộ điều khiển/bộ chuyển mạch, có tốc độ gừi tin nhắn đạtđến một giá
trị nhấtđịnh, được coi là kẻ tấn công Đồng thời, các bộ đệmcóthể bị Tiết lộ Thông tin Những kẻ tấn công có thể sử dụng nó để hiểu nhừng gì không được công khai đối với chúng Hơn nữa, một đường dần giả và một tin nhắn giả mạo có the ton tại trong SDN
Rõ ràng, các vấn đề bảo mật cũng tồn tại trong SDN với bộđiều khiển duy nhất
API hướng Bắc
Mặt phăng ứng dụng Các ứng dụng
Măt phăng điêu kiên Phần mềm điều khiển SDN
API hướng Nam
Mặt phăng
cơ sở hạ tâng Thiết bị mạng Thiết bị mạng Thiết bị mạng Thiết bị mạng
Hình 2.1 Kiền trúc SDN (Phòng theo [ 1] )
Trang 202.1.2 Kiến trúc HyperFlow
Các nhà khai thác mạngđược phép triển khai bất kỳ số lượng bộ điều khiển nào
ở bất kỳ đâu về mặt vật lý, các bộ điều khiến được phân tán, trong khi về mặt logic, chúng được tập trung Do đó, kiến trúc này vầnphục vụ cho ý tưởngcủa Mạng do phần
mềm xác định Khi xem xét cấu trúc liên kết mạng, chúng có the được coi là bộ điều khiếntoàn cụcvì chúng có cùng chế độ xem toàn mạng [18] Khi cấu trúc liên kết từng phần thay đổi, tất cả các bộ điềukhiến cầnphải sửa đổi cấu trúc liên kết của chúng Nếutính đen các gói chuyển tiếp, các bộ điều khiển đó nằm trong các miền khác nhau và
chúng chỉ quảnlý mạngcủa riêng mình tương ứng Các bộ điều khiếngiao tiếp với nhauthôngqua cơ chếxuấtbản/đăng ký được minh họatrong [ 19], Với điều kiện một bộ điều khiển gặp sựcố, những bộ chuyển mạch mà nó phụ trách có thể được kết nối thủ công
với bộ điều khiến liền kề Hình 2.2 đưa ra một ví dụ đơn giản về kiến trúc này
ControllerO và Controller1 ở cùng một mức. Controller!) quản lý Switch!) và Switch 1.
Switch!)vàSwitch 1 sẽ được kết nối với Controller!
2.1.3 Kiến trúc Kandoo
Kiến trúc Kandoo bao gồm một bộ điều khiển gốc và một số bộ điều khiển cục
bộ Bộ điều khiển cục bộ phụ trách mạng riêng lẻ được tạo thành từ các chuyển mạch,
và bộ điều khiển gốc phụ trách tất cả các bộ điều khiển cục bộ Sự liên lạc giữa các bộđiều khiển cục bộ có thể được thực hiện bởi bộ điều khiển gốc duy nhất [20] Khi một
Trang 21bộ chuyển mạch không biết cách chuyển tiếp một gói tin, nó sè yêu cầu bộ điều khiển cục bộ giúp đỡtrước.Nếubộ điều khiểncụcbộ chuyểntới địachỉcủa góitin, bộ chuyểnmạch sẽ nhanh chóng nhận được phản hoi Neu không, bộ điều khiển gốc sè được hỏi ý
kiến Cách xử lý gói này làmgiảm tương tác thường xuyên giữa các thực the khácvà bộđiềukhiến gốc Mộtví dụ đơn giản được đưa ra sau đây Rootcontroller là bộ điều khiến chung duy nhất phụ trách LocalControllerO và Localcontroller 1 SwitchO và Switchl nằm trong miền của LocalControllerO LocalControllerl phụ trách Switch2, Switch 3,
cũng như Switch4 Hình 2.3 minh họa kiếntrúc trên
CSP, làviết tắt của Communicating Sequential Processes - Tổng quan về các tiến
trình tuần tự của truyền thông [16], được đưa ra trong phần này CSP có thế được sử
dụng đe minh họa các hệthốngđongthời một cách dễ dàng dethe hiện các hệthốngmột
cách trực quan và nền tảng toán học chặt chè Nó đã được sử dụng đe kiếm chứng một
Trang 22Số giao thức và hệ thống thành công [21,22] CSP được hình thành để xác định và lập
luận về các hệ thống tương tranh có các tiến trình thành phần tương tác với nhau bằng cách truyềnthông
Chú giải các ký hiệu trong ngôn ngữ đại số CSP
-1P không phải p (P không đúng) -13 >5
Tập họp
e làphần tửcủa Napoleon E mankind
Ễ không phải là phần tử của Napoleon Ệ mankind
{% 1 p(x)} tập họp cùa tấtcảX sao cho P(x) {a} = [x 1 X = a]
X : A 1 P(%)} tập họp cùa X trong A sao cho P(x)
Trang 23{% 1 P(x)}
Ảx •fix')
tập hợp cùa tâtcảX saocho P(x)
hàm ánh xạ từnggiá trị củaX thành /(%) (Ax •/(x))(18) = /(18)
Các sự kiện đặt biệt
thành công (chấm dứt thành công)
I a tham gia vào sự kiện a bởi mộttiến trìnhcó tên l
c V truyền thông giá trị V trên kênh c
l c kênh c của mộttiến trình cótên l
bảng chữ cái cùa tiến trìnhp
ac tập hợp các thông điệp được truyền tải trên kênh c
lựa chọn có điềukiện giữap và ọ
p (thành công)theo sau là Q P&Q p bị ngắt bởi Q
Trang 24Tiến trình
Ta hãyquên đi mộtchút vềmáy tính và lập trình máytính, thay vào đó hãy nghĩ
vềcácđối tượng trong the giới xung quanh, chúng hoạtđộng và tương tác với nhau theo
một số kiểuhành vi đặc trưng Hãy nghĩ đến đồng hồ, quầy bánhàng, điệnthoại, trò chơi
trên bàn và máy bán hàng tự động Đe mô tả các kiêu hành vi đó, trước tiên hãy quyết
định loại sự kiện hoặc hành động nào sè được quan tâm
Một tiến trình thể hiện một kiểu hành vi trong đó nó đưa ra những sự kiện nhất
định đe đồng bộ hóa với môi trường cùa nó
• Mồi sựkiện tạo thành một sự tương tác giữa tiến trình và môi trường củanó
• Neu tương táckhông xảy ra, thì tiến trình sè bị chặn
Trong trườnghọp của một máy bán hàng tự động đơn giản, có hai loại sựkiện:
xu - việc nhét đong xu vào khe của máy bán hàngtự động;
socola -chiếtxuất sô cô la từ bộ phân phối củamáy
Trong trường họp máy bán hàng tự động phức tạp hơn, có thế có nhiều sự kiện
hơn:
vao1xu- việc chènmột xu;
vao2xu- việc chèn một đồng xu hai xu;
nho - chiết xuất một chiếc bánh quy nhỏ hoặc bánh quy;
lon- chiết xuất một chiếc bánh quy lớn hoặc bánh quy;
ra 1xu-trích một xu đe thayđổi
Tập hợp tên các sự kiện được coi là có liên quan đến mô tả cụ the của một đốitượng được gọi là bảng chừ cái Bảng chừ cái là thuộc tính được xác định trước vinh
viềncủamộtđối tượng, về mặt logic, một đối tượng không the tham giavào một sự kiện
ngoài bảng chừ cái của nó Chang hạn, một chiếc máy bán hàng tự động được thiết kế
đe bán sô cô la không thể bất ngờ cung cấp một chiếc máy bay đồ chơi Vì một chiếc
máyđược thiết kế đểbán sô cô lathực sự có thế khôngbao giờlàm như vậy,có lẽvì nó
chưa được chứa đầy hay bịhỏng hoặc không ai muốn sô cô la Nhưng một khi người ta
Trang 25quyếtđịnh rằng socolanằm trong bảng chừ cái củamáybán hàng tự động, máybán hàng
tự động nó vẫn là như vậy ngay cả khi sự kiện đó không bao giờ thực sự xảy ra
Bây giờhãy bắt đầu sử dụng tiến trình để đại diện cho mầu hành vi của một đối
tượng, trong chừng mực nó có the được mô tả dưới dạng tập hợp giới hạn các sự kiện
được chọn làm bảng chữ cái của nó và sẽ sử dụng các quy ước sau đây
1 Các từở dạng chữ thường biểu thị các sự kiện riêngbiệt, ví dụ:
xu, socola, vao2xu, ralxu
và các chữ cái a, b, c, d, e cũngvậy
2 Các từở dạng chữ hoabiểu thị các tiến trình cụ thể được xác định, ví dụ:
MBHDG - máy bán hàng tự động đơn giản
MBHPT - máy bánhàng tự độngphức tạp
và các chữ cái p, Q, R là viếttắt của các tiến trình
3 Các chừ cái X, y, z là các biến biểu thị các sự kiện
4 Các chừ cái A, B, c là viết tắt củacác sựkiện
5 Các chừ cái X,Y là các biến biểu thịtiếntrình
6 Bảng chữ cái của tiến trình p đượcký hiệu là aP, ví dụ:
aMBHDG = {xu,socola}
aMBHPT = {vaolxu, vao2xu, nho, lon,ralxu}
Tiến trình với bảngchữ cái A không bao giờ thực sự tham gia vào bất kỳ sự kiện
nào củaA được gọi là STOP A. Việcnày mô tảhành vi cùa đối tượng bị hỏng: mặcdù nó
được trang bị các khả năng vật lý đe tham gia vào các sự kiện của A, nó không bao giờ thựchiện những khả năngđó Các đối tượng có bảng chữ cái khác nhauđược phânbiệt,ngay cả khi chúng không bao giờ làm bất cứ điều gì Vì vậy, STOP aMBHDG có thể cho
ra một sô cô la, trong khiSTOPaMBHPT không bao giờ có thể cho ra một sô cô la, mànóchỉ đưa ra mộtcái bánh quy Một khách hàng của một trong hai máy bánhàng tự động
nàyđều biết những điều này, ngay cả khi họ biết rằng cả hai máyđều bị hỏng
Trang 262.2.1.2 Các toán tử đại • số
CSP có một loạt các toán tửđại số Những toán tửchính là:
1 Tiếp đầu ngữ
Gọi a là mộtsự kiệnvà p là mộttiến trình
(a —> P) - ữ là tiếp đầungừ cùa p còn được phát âm như sau: “ữ roi đến P”
Sau đó mô tả một đối tượng đầu tiên tham gia vào sự kiện a và đợi vô thời hạncho đến khi giao tiếp xảy ra, sau khi giao tiếp được mô tả như p. Tiến trình
(a —* P) được định nghĩalà có cùngbảng chừ cái vớip, vì vậy kýhiệunàykhôngđược
sử dụng trừkhi a nằm trongbảng chừ cáiđó; chínhthức hon được thể hiện như sau:
a(a —* P)= aP với điều kiện a E aP.
2 Thành phần song song
Khi hai tiếntrình được kết hợp với nhau đểtiến trien đồng thời, mục đích thông thường sè tương tác với nhau Những tươngtác này có theđược coi lànhững sựkiệnđòihỏi sự tham gia đồng thời của cả hai tiến trình liên quan Trong lúc này, hãy giới hạn sựchú ý vào nhữngsự kiện như vậy và bỏ qua tất cả những sự kiệnkhác Vì vậy, phải giảđịnh rằng các bảng chữ cái của haitiến trình là giốngnhau
Neu p và Ọ là các tiến trình có cùng bảng chữ cái, thì ký hiệu như sau: P| |Ọ
Đe biểu thị tiến trình hoạt động giống nhưhệ thống bao gồm các tiến trình p và
Q tương tác trong đong bộ hóa bước khóa như được mô tả ởtrên
Các luật của thành phần song song
Các luật điều chỉnh hành vi cùa p I |Ọ đặc biệt đơn giản và thường xuyên Luậtđầu tiên thể hiện sự đối xứng hợp lý giữa mộttiến trình và môi trường cùa nó
Trang 27LuậtC: P\\STOP = STOP
Các luật tiếptheo chỉ ra cách mộtcặp tiến trình tham gia cùng lúc vào cùng một
hành động hoặc bế tắc nếuchúng không thống nhất với nhau vềhành động đầutiên phải làm nhuthế nào
LuậtD.l: (c —» P) II (c —» Ọ) = (c-> (P||Ọ))
Luật D.2: (c —> P) II (d —> Ọ) = STOP nếu c d
3 Lựa chọn không xác định
Neu p và Ọ là các tiến trình, thì ký hiệu nhu sau: p n Q (P hoặc Q)
Các luật cua lựa chọn không xác định
Các luật của đại số chi phối sự lựa chọn không xác định là đặc biệt đơn giản và hiển nhiên Một sự lựa chọn giữa p và p là không có
Luật A: p n p = p
Sẽ không quan trọng sự lựa chọnđược trình bày theo thứ tự nào
LuậtB: p n Q = Q nP
Mộtlựachọn giữa balựa chọn thay thếcó thểđược chia thànhhai lựa chọn đi đôi
liêntiếp Điều này được thực hiệntheocách nào cũng không quan trọng
Luật C: p n (Ọ n /?) = (P n Ọ) n R
Môi trường của (P n Ọ) không có sự kiểm soát hoặc thậm chí không biết về sựlựa chọn được thực hiện giữap vàQ, hoặc thậmchí cả thời gian mà sựlựa chọnđó được thực hiện Vì vậy (P n Ọ) khôngphải là một cách hữu ích đế kết họp các tiến trình, bởi
vì môi trường phải được chuẩn bị đe đối phó với p hoặc ọ và mộttrong hai phải riêngbiệt sè dễ dàng giải quyết hơn Do đó sẽ cần phải có lựa chọn xác định
4 Lựa chọn xác định • • •
Toán tử (PDỌ), mà môi trường có thekiểm soát mộttrong p và ọ sèđượcchọn,
miền là kiểm soát này được thực hiện ngaytừ hành động đầutiên Nếu hành động này không phải là hành động đầu tiên có thể có cùa p, thì Q sẽ được chọn; nhưng nếu Q
không thể tham gia vào hành động ban đầu, thì p sẽ được chọn Tuy nhiên, nếu hành
Trang 28động đầu tiên cóthế thực hiện được cho cả p và Q, thì sựlựachọn giữa chúng là không xác định.
ư(PŨỌ) =aP= aQ
Trong trườnghợp không có sự kiện ban đầu nào của p cũng có the xảy ra đối với
ọ,thìtoán tử lựa chọn tổng quát giống vớitoán tử I, đã được sửdụngcho đến nay để thểhiện sự lựa chọn giữa các sự kiện khác nhau
(c —> p □ d —* ọ) = (c —► p Ị d —> Ọ) nếu c d.
Neu các sự kiện ban đầu giống nhau, pnọ suy biến thành lựa chọn không
xác định
(c —> p □ c —► ọ) = (c —> p n c —* ọ)
Các luật cua lựa chọn xác định
Giống như tấtcả các toán tử khác được giới thiệu chođen nay (ngoài đệ quy), □
phân phối thông qua n
Luật A: p □ (Q n R)= (P □ Q) n (P □ R)
Điều có vẻ ngạc nhiên hon là n phân phối thông qua □
LuậtB: p n (Q □ R) = (P n Q) □(? n R)
5 Lựa chọn có điều kiện
Neu b là một vị từ và p và Q là các tiến trình thì the hiện tiến trình hoạt động
giốngnhư P; ngược lại, như Q : Kýhiệu như sau: p <3 b v> Q
Các luật của lựa chọn có điều kiện
Lựa chọn có điều kiện thỏa mãn các luật mệnh đề
Luật A.1: p <3 true t> Q = p
Luật A.2: p <3 bt>ọ = ọ<3-iòi>p
Các luật khác phân phốithôngqua lựa chọn bêntrong và bênngoài trong mồiđối
số
(P n Ọ) < b > R = (P < b t> /?) n (Q <3 b > /?)
p <3 b t> (Ọ n /?) = (P <3 b v> Q) n (P <3 b t> R)
Trang 29(PDỌ) <3 b > R = (P <3 b > /?)□((? < b t> /?)
p < b > (<?□/?) = (P <3 b t> Ọ)Ũ(P <3 b > P)
2.2.1.3 Truyền thông
Giới thiệu
ớ phần này sẽ tập trung vào mộtloại sự kiện đặc biệt được gọi là truyền thông
Truyền thông làmột sự kiện được môtả bằng một cặp c V trongđó c làtên của kênh mà
truyền thông diễn ra và V là giá trị cùa thông báo được truyền đi Tập hợp tất cả các
thôngbáo mà p có thể truyền thông trên kênh c được xác định như sau:
Đầu vào và đầu ra của truyền thông
Gọi V là phần tử bất kỳ của crc(p) Một tiến trình đầu tiên xuất ra V trên kênh c
và sauđó hành vinhư (p) được định nghĩanhư sau:
(c!V p~) — (c.v — > P)
Sự kiệnduy nhất mà tiến trình này được chuẩnbị ban đầu đe tham gia là sự kiện
truyền thông c V.
Mộttiến trình đượcchuẩn bị ban đầu đểnhập vào bất kỳ giá trị Xnào có thể truyền
trên kênh c,và sau đó hành vi như P(z) ,được định nghĩanhưsau:
(c?x —> p(x)) = (y:{y\chanel(y) = c} —> p(message(y)))
Phải tuân thủ các quy ước rằng các kênh được sử dụng đe truyền thông chỉ theo
một hướng và giữa hai tiến trình Một kênh chỉ được sừ dụng cho đầu rabởi một tiếntrình sè được gọi làkênh đầu ra của tiến trình đó vàmột kênh chỉ được sử dụng cho đầuvào sẽ được gọi là kênh đầu vào Trong haitrường họpđều nói rằng tên kênh là phần tử
Trang 30của bảng chừ cái cùa tiến trình.
Đặt p và Ọ là các tiến trìnhvà gọi c là kênh đầu racủa p vàkênh đầu vào cùa Q
Khi p và Q đuợc đồngbộ trong hệ thống (P11Q), truyềnthông sẽ xảy ra trênkênh c trong mồi trường họp p xuấtra mộtthông điệp và Q đồng thời nhậpthông điệp
Tiến trìnhxuấtra chỉđịnh mộtgiátrị duy nhấtcho thôngđiệp, trongkhitiến trình
nhập được chuẩn bị để chấp nhận bất kỳ giá trị có thể truyền được vào Sự kiện sè thực
sựxảy ra là c.V truyềnthông, trongđó V là giá trịđược chỉ định bởi tiếntrình xuất Điều
nàyđòi hỏi ràngbuộc rõràng là kênh c phải có cùng mộtbảng chữcái ở cả hai đầu là:
ac(P) = ac(ọ)
Giá trị được xuất rabởi mộttiến trình được chỉ định bằng một biểu thức có chứa
các biến màgiá trị đàđược gán bởi một số đầu vào trước đó, như trong ví dụ sau:
Mộttiến trìnhsao chép ngay lập tức mọi thôngđiệp mànó có đầu vào từbên trái
bằng cách xuấtnó sang bên phải
aleftiCOPY) = aright(COPY) COPY = gX'(left?x right' X X)
Các truyền thông
Neu gọi p và Ọ là tiến trình, và gọi c là một kênh được sử dụngcho đầu ra của p
và cho đầu vàocủa Q Dođó,tập họp chứatất cả các sựkiện truyền thông c V nằm trong giao điểm bảng chừ cái của p với bảng chừ cái của Q Khi các tiến trình này được cấu
tạo đong thời trong hệ thống (P| |Ọ), một truyền thông c V chi có thể xảyra khi cả haitiếntrình tham gia đồngthời vào sự kiện đó, tức làbất cứ khi nào p xuấtra giátrị V trên kênh c và Q đồng thời nhập cùng một giá trị Tiến trình đầu vào được chuẩnbị để chấp
nhận bất kỳ giá trị nào có thế truyền được, vì vậy tiến trình đầu ra sẽ xác định giá trịthôngbáo thực tế nàođược truyền Dođó, đầu ra có the đượccoi làmộttrường hợp tách
biệt của toán tử tiền tố vàđầu vào là một trườnghọp lựa chọn đặc biệt
Trang 31Các luật của các truyền thông
P;nhưngkhip kếtthúcthành công, (P; Ọ) tiếptụchoạtđộnggiống như Q. Neup khôngbao giờ kết thúc thành côngthì (P; Ọ) cũng không kết thúc thành công
Các luật của tiến trình tuần tự
Các luật cho thành phần tuần tựtương tự như luật cho phân loại, với SKIP đóng
vai trò của đơn vị
Luật A: SKIP] p = P] SKIP = p
LuậtB: (P; ọ); R = P] (Ọ; /?)
Luật C: (%: B —> p(x));Q = (%: B —> (p(x); ọ))
Luật cho toán tử lựa chọn có hệquả
LuậtD: (ữ —> p); Q = a —> (P; Ọ)
Luật E: STOP] Q = STOP
Khi các toán tử tuần tựđược tạo song song, sựkết hợp sè kết thúc thànhcông chỉkhi cả hai thành phần nhưsau:
Luật F: SKIPA\\SKIP B = SKIP A{JB
Tiến trình kết thúc thành công không tham gia vào sựkiện nào nữa
LuậtG: ((x:B —> P(x))\\SKIP A = (x:B -X) —> (P(x)\\SKIP A)
Trang 32CÚ pháp của một tập hợp con của CSP
Cú pháp của một tập hợp con của CSP được đưa ra như dưới đây ở đây, p và Q
là các tiến trình, a và d có nghĩa là các sựkiện trong khi b biếu thị một bien Boolean, c
làtên của một kênh
P,Q ::= Skip\Stop\a p\c\v — ^ p\c?x -* P\P;Ọ|P||Ọ|PŨQ| p < b
t> Q\b * Ọ|P[[ữ <— ư]]
• Skip cho biết mộttiến trình cơ bản kết thúc thành công
• Stop trình bày rằng một tiến trình khôngthể làm bất cứ điều gì nữa
• a — > p biểu thị một tiến trình đầu tiên tham gia vào hành động a, sau đó hoạtđộng như tiếntrình p.
• c!V —* p mô tả mộttiến trình gửi mộtgiá trị Vqua kênh c, sauđó hoạt động như
• PũQ viết tắt của sự lựachọn bên ngoài Một tiến trình hoạt động theo đặc điểm
kỳ thuật của p hoặc Q. Tuy nhiên, sự lựa chọnphụ thuộc vào môi trường
• b Q thể hiện sự lưu thông Khi giá trị của biến b là sai, tiến trình lưu thông kết
Trang 332.2.2 Tổng quát về bộ công cụ phân tích tiến trình PAT
2.2.2.1 Giới thiệu • về PAT
PAT, là viết tắt của Process Analysis Toolkit - Bộ công cụ phân tích tiến trình [3,17], một công cụ dựa trênCSP vàđược thiết kếđe áp dụng các kỳ thuật kiếm chứng
mô hình để phân tích hệ thống tự động Nó đi kèm với giao diện thân thiện với người
dùng,trình soạn thảo mô hình đặc trưng và giả lậphoạthình Nó hồ trợ xác định và kiếm
chứng hệ thống bằng nhiều ngôn ngữ mô hình hóa khác nhau và đã có nhiều hệ thống
khác nhau như hệ thống thời gian thực tương tranh, hệthống cân bằng, nhận dạng hoạt
động và trong các lĩnh vực khác đã được kiểm chứng trong PAT
PAT là một khuôn khổ độc lập để hồ trợsoạn thảo, mô phỏng và lập luận các hệthống đồng thời, thời gian thực và các miền khả thi khác Nó đi kèm với giao diện thânthiện với người dùng, trìnhchỉnh sửamôhìnhnổibật và trình mô phỏng hoạthình Quan
trọng nhất, PAT thực hiện các kỳ thuật kiểm tra mô hình khác nhau phục vụ cho các thuộc tính khác nhau như không có bế tắc, không có phân kỳ, khả năng tiếp cận, thuộctính LTL với các giảđịnh công bằng, kiểmtra sàng lọc và kiểm tra mô hìnhxác suất Đẻ
đạtđược hiệu suất tốt, các kỳ thuật toi ưu hóa nâng caođượcthực hiệntrong PAT, ví dụ
như giảm thứtự từng phần, giảm đối xứng, trừu tượng bộ đếm tiến trình, kiểm tra môhình song song Cho đếnnay, PATđãcó 4370+ người dùng đã đăng ký từ 1341+tổchứctrong 150 quốc gia vàkhuvực
1 Các chức năng chính của PAT
Môi trường chinh sửa của PATthân thiện với người dùng (nhiều tài liệu,đa ngôn ngừ và các tính năngchỉnh sửa cú pháp nâng cao)đe giới thiệu các mô hình
Trình mô phỏng thân thiện với người dùng đe mô phỏng tương tác và trực quancác hành vi của hệ thống; bằng cách mô phỏng ngầu nhiên, mô phỏng từng bước do người dùng hướng dần, tạo biểu đồ trạng thái hoàn chỉnh, phát lại theo dõi, trực quanhóa v.v
Dễdàng xácminhđểphântíchkhôngcóbế tắc, phân tích khả năngtiếpcận, kiểm
Trang 34tra logic thời giantuyếntínhtrạngthái/ sự kiện(có hoặc có công bằng) và kiếm tra sàng
lọc Mộtloạt các ví dụ tích họp khác nhau, từhệ thống điếm chuẩn đến các thuật toán/
giao thức mớiđược phát triển
Concurrent Module Real time Module probabilistic
Module
Web Service Module
Distributed Algorithms, Web Services, Bio-systems, Security Protocols, Sensor Networks, etc.
JpXpply Operational Semantics
Symbolic Encoding
Explicit Representation:
Verification Algorithms
MDP Verification Algorithms
Symbolic Representation:
Boolean Formulas Simulator
SAT Solvers
f
Explicit Model Checking
Hình 2.4 Kiến trúc PAT [3]
Kiến trúc này cho phép dềdàng phát triển các ngôn ngừ mới bằng cách cungcấp
các quy tắc cú pháp và ngừ nghĩa Đen nay, PAT có 11 mô-đun đã được phát triển, cụ
thể là Communicating Sequential Processes (CSP) Module, Real-TimeSystem Module,Probability CSP Module, Probability RTS Module, Labeled Transition System Module,Timed Automata Module, NesC Module, ORC Module, Stateflow(MDL) Module,
Security Module and Web Service (WS) Module Trong đó mô-đun CSP có chức năng
hồ trợ môhình hóa và kiểm chứng
2 Trình biên tập PAT
Các từ khóa nổi bật, như được hiển thị trong hìnhtrên, các từ khóa nổi bật được
giải thích nhưsau:
- Trong trình biên tập PAT các từ khóa dành riêng sẽ được đánh dấu bằng màu
xanh dương
Trang 35- Các tên tiến trình sè được in đậm vànổi bật trongmàu xanh dương đậm.
- Các kýhiệu dành riêng cho định nghĩa tiến trình được hiển thị bằng màuđỏ
- Công thức LTL trongcác xác nhậnsè được in đậm và đượchiến thị bằng màu đỏ
- Ví dụ, ghi chú, nhậnxét thì có màuxanh lá cây, v.v
Hình 2.5 Trình biên tập PAT [3]
Trình mô phỏng của PAT cho phépngười dùng mô phỏng tươngtác và trực quancác hành vi của hệ thống Trình mô phỏng được tạo thành từ bốn phần: Thanh công cụ
ở trên cùng, Ngăn tương tác, Ngăn dừ liệu (hiển thị giá trị của các biến ở trạng thái đã
chọn) và Đồ thị mô phỏng Chọn tiến trình bạn muốn mô phỏng, các tác vụ mô phỏng
có the được thực hiện được mô tả nhưsau:
- Nhấp vào nút Mô phỏng để thực hiện mô phong ngầu nhiên hệ thống Trình
mô phỏng sẽ chọn ngẫu nhiên một sựkiện đã bật ở trạng thái hiện tại đểthực thi Mô phỏng sè dừng khi không còn sự kiện nàođượckíchhoạthoặc so trạng
Trang 36thái được truy cập lớn hơn giới hạn Trạng thái hiện tại được thể hiện bằng màu đỏ trong biếu đồ.
- Nhấp đúp vào sự kiện trong danh sách nhùng sự kiện được kích hoạtđế thực hiện mô phỏng từng bước Danh sách nhừng sự kiện được kích hoạt sè chỉ
hiển thị các sự kiện đãbật chotrạng thái hiện tại (được hiển thị bằng màu đỏtrong biểu đồ) Các sự kiện được hiển thị bằngmàu xanh dương làcácsự kiện không được truycậptrong khi màu đen là các sựkiệnđược truy cập cho trạng thái hiện tại
- Nút Tạo đồ thị sẽ tạo biểuđồ trạngthái hoàn chỉnhtrong một cú nhấp chuột
Số trạng thái được hiển thị bị giới hạn bởi giới hạn hiển thị (300 theo mặc
định) để tránhviệc mô hình không kếtthúc
- Chọn bất kỳ trạng thái nào trong danh sách Chuồi sự kiện, sau đó nhấp vàonút Biểu diền chuổi sự kiện tự động bắt đầutừ trạng thái đãchọn Bạn cóthểquay lại bất kỳ trạngthái nào trước đó
- Nút Simulate Trace cho phép người dùng viết script đe thực hiện mô phỏng
lệ Trìnhxác minh PAT còn cungcấp hai chế độ đexác minh, ví dụ: chế độ nhấp chuột
và che độ hàng loạt
Chế độ nhấp chuột: Sử dụng chế độ này đe xác minh các thuộc tính, bạn phải
nhấpthủcông lần lượt vàocác xác nhận và chọn các tùy chọn bố sung được môtả ở trên
xem Hình 2.6 Lưu ý: Nhiều lựa chọnxác nhận được hồ trợ từ phiên bản 3.4
Trang 37Chế độ hàng loạt: Sử dụng chế độ này, bạn có thế nhận được tất cả các thuộc tính
của một loạttệp mô hình được xác minh với các lựa chọn tùychọn nhất định trongmột
lần Toànbộ kết quả xác minh sè được ghi vào một tệp đầu ra mà bạn đẫ xác định Cáckết quả này có thể chuyển sang excel bằng cách nhấp vào nút Tạo Báo cáo Excel
về tính đúng thực tế một cáchhiệu quả Thứ hai, mô-đun CSP cho phép người dùng lập
luận về các hành vi của một hệ thống dưới dạng một kiểm tra làm mịn toàn the Kiếmtra làm mịn xác định xem một cài đặt có theo đúng một đặc tả hay không
Trang 38Explicit On-thc-fly Model Checking
Supporting Fairness Assumptions
Quy trình xử lý của Mô-đun CSP nhưsau:
- Các thông tin đầu vào bao gồm: Mô hìnhhệ thốngđược đặc tả bằng ngôn ngừ
CSP (system models), các tínhchấtcủahệthốngcầnkiểmtra(Xácnhận LTL,
xác nhận khả năng tiếp cận, xác nhận bếtắc, xác nhận sàng lọc)
- Mô hình hệ thống được chuyến đổi thành dạng biếu diễn nội bộ (internal
processes collection) bởi bộ phân tích ngôn ngừ (language parse), đong thời
các tính chất cần kiếm tra cũng được chuyền thành dạng biểu diễn nội bộ(assersions collection) bởi bộ phân tích các khẳng định và bộ chuyển đổi(assersions parser and buchi automata translator)
- Từ cácdừ liệu biếu diễn nộibộ PAT có the tiến hành mô phỏng hệ thống
- Cũng với các dữ liệu biểu diễn nội bộ, các thuật toán kiểm chứng mô hình
tương ứng với các loại thuộc tính cần kiểm tra được áp dụng Neu thuộctính không thỏa mãn sẽ có một phản ví dụđược chỉ ra, phảnví dụ này cóthê được
chuyển tới bộ mô phỏng để mô phỏng chuồi hành vi dần tới kết quả không
thỏa mãn
Trang 391 Các định nghĩa toàn cục
Tên mô hình
Trước hết, bạn có the đặttên cho mô hình của mình bằng cú pháp sau trong dòngđầu tiên của mô hình Tên mô hình được sử dụng nội bộ làm ID cho trình mô phỏng đểtìm các hình vẽ chính xác, nếu có Nó làtùy chọn
Hằng số
Hằng số chung được định nghĩa bằng cúpháp sau,
ttdeịìne toida 5;
#defìne là một từ khóađược sử dụng cho nhiều mục đích, ở đây nó xác định một
hằng số toàn cụccó tên là toida, có giá trị là 5 Dấu chấm phay đánh dấu phần cuối câu
Lưu ý: giátrị hằngchỉcóthể là giátrị nguyên(cảdương và âm) và giá trịBoolean
(đúng hoặc sai)
Việc liệtkê không đổi có thểđược xác định bằngcách sử dụng từ khóa enum Ví
dụ, enum {red, blue, green}; là đườngcú pháp cho những điều sau:
ttdefine red 0;
ttdefine blue 1;
ttdefine green 2;
Bien và mảng
Bien toàn cục được xác định bằng cú pháp sau, var bang = 0; trong đó var là từ
khóa để xác định một biếnvà bang là tên biến Ban đầu, bang có giá trị là 0 Dấu chấmphẩy dùng đểđánh dấuphần cuối củacâu như trên Nhận xétrằng ngôn ngừ đầuvàocủaPATđược gõ yếu và do đó khôngcầnnhập thông tin khi khai báo mộtbiến Truyền giữa
các loại không tương thích có thế dẫn đen ngoại lệ thời gian chạy
Một mảngkích thước cố định có the được định nghĩa như sau, trong đó board là
tên mảng và giá trị ban đầu của nó được chỉđịnh dưới dạng chuồi,ví dụ: board [0] = 3.Phầnsau xác định mảng có kích thước 3
Trang 40var board = [3, 5, 6, 0, 2, 7, 8, 4, 1] ;
var leader [37;
Tat cả các phầntử trong mảng được khởi tạo bằng 0
Đặc tả phạm vi biến: người dùng có the cung cấp phạmvi của các biến/mảng một cách
rõ ràng bằng cáchđưara giới hạn dướihoặc giới hạn trên hoặc cả hai Bằng cách này,trình kiểm tra mô hình và trình mô phỏng có thể báo cảo sự vi phạm ngoài phạm vicủa
các giá trịbiếnđe giúpngười dùng giám sát các giá trị biến Cúpháp xác định giá trị
phạm vi đượctrình bày như sau
var bang: {0 } — 0;
var board: {0 10} = [3, 5, 6, 0, 2, 7, 8, 4, 1];
var leader [N]: { N - 1}; // trong đó N là một hằng được xác định.
Khởi tạo mảng: Đe dễ dàng mô hìnhhóa, PAT hồ trọ khởi tạo mảngnhanh
#defìne N 2;
var array = [1, 1, 3, 4, 5, 6, 7, 7, 7, 7, 12, 11, 10];
Trong cú pháp trên, 1 (2) và 7(N*2) cho phép người dùng tạo nhanh một mảng
có cùng giá trị ban đầu 3 6 và 12 10 cho phép người dùng viết vòng lặp tăngvà giảm nhanh đê khởi tạo mảng
Kiểu do người dùng định nghĩa: Đe dễ dàng mô hìnhhóa, PAT cho phép người dùng
định nghĩa bất kỳ cấu trúc dừ liệu nào và sử dụng chúng trong các mô hình PAT Sau đây là cú pháp
var<Type> x; //hàm tạo mặc định cùa lớp Type sẽ được gọi.
var<Type> X = new Type/ỉ, 2); //hàm tạo có hai tham so int sẽ được gọi.
Biến ẩn: Đe đơn giản hóa mô hình, PAT giới thiệu các biến ẩn cóthể được sử dụng như
các biếnbình thường Sự khác biệt duy nhất làbiến ấn là mộtloại biến phụ, không đượcbao gồm trong chi tiết trạng thái Ý tưởng thứ cấp là sử dụng biến dư thừa đe làm cho