đặt vấn đề như vừa trình bày; Chương 2 giới thiệu về mạng Bluetooth mesh và phân tích các ảnh hưởng của các thông số cấu hình đến chất lượng của mạng; Chương 3 trình bày về các nghiên cứu, thuật toán tự cấu hình liên quan, và lựa chọn các thuật toán mà luận văn sử dụng; Chương 4 trình bày về các kịch bản mô phỏng, và đánh giá, nhận xét kết quả; và cuối cùng là phần kết luận và hướng nghiên cứu trong tương lai. GIỚI THIỆU MẠNG BLUETOOTH MESH Chương này sẽ giới thiệu cũng như trình bày các khái niệm cơ bản của mạng Bluetooth mesh. Ngoài ra, chương này cũng phân tích để thấy được sự ảnh hưởng của các thông số cấu hình đến chất lượng của mạng như thế nào.1 Tổng quan về kiến trúc và hoạt động của Bluetooth mesh Hình 1.1 Kiến trúc Bluetooth lưới BM là một giao thức mạng sử dụng ngăn xếp giao thức BLE [3] làm lõi chức năng. Theo đặc tả Mesh Profile [1], ngăn xếp giao thức BM có kiến trúc phân lớp như trong Hình 1.
Cụ thể: - Lớp mô hình: Xác định các mô hình được sử dụng để chuẩn hóa hoạt động của các kịch bản người dùng, được định nghĩa trong đặc tả Bluetooth Mesh Model [4] hoặc các đặc tả lớp cao hơn khác (ví dụ các đặc tả bao gồm các mô hình cho đèn và cảm biến). - Lớp mô hình nền tảng: Xác định các trạng thái, tin nhắn và các mô hình cần thiết để cấu hình và quản lý mạng lưới. - Lớp truy cập: Xác định cách các ứng dụng lớp cao hơn có thể sử dụng lớp vận chuyển trên; xác định định dạng của dữ liệu ứng dụng; xác định và kiểm soát việc mã hóa và giải mã dữ liệu ứng dụng được thực hiện trong lớp vận chuyển trên. Nó kiểm tra xem dữ liệu ứng dụng nhận được có đúng khóa mạng và khóa ứng dụng không trước khi chuyển đến lớp cao hơn xử lý.
- Lớp vận chuyển trên: Mã hóa, giải mã và xác thực dữ liệu ứng dụng, cung cấp tính bảo mật của tin nhắn truy cập. Nó cũng xác định cách các tin nhắn kiểm soát vận chuyển được sử dụng để quản lý lớp vận chuyển trên giữa các nút. 4 - Lớp vận chuyển dưới: Xác định cách các tin nhắn của lớp vận chuyển trên được phân đoạn hay lắp ráp bởi nhiều đơn vị dữ liệu của lớp vận chuyển dưới, để gửi các tin nhắn lớn của lớp vận chuyển trên đến các nút khác. Nó cũng xác định tin nhắn điều khiển để quản lý việc phân đoạn và lắp ráp.
- Lớp mạng: Xác định cách tin nhắn vận chuyển được giải quyết đối với một hoặc nhiều phần tử. Nó xác định định dạng tin nhắn mạng cho phép dữ liệu ở lớp vận chuyển được vận chuyển bởi lớp mang; quyết định có chuyển tiếp tin nhắn, chấp nhận hay từ chối xử lý tin nhắn; xác định cách tin nhắn được mã hóa và xác thực. - Lớp mang: Xác định cách trao đổi tin nhắn mạng giữa các nút. Có 2 bộ mang được định nghĩa là bộ mang quảng bá và “GATT”.
- Đặc tả lõi Bluetooth năng lượng thấp: Sử dụng ngăn xếp Bluetooth năng lượng thấp. Hoạt động mạng lưới được thiết kế để: - Cho phép các tin nhắn được gửi từ một phần tử tới một hoặc nhiều phần tử khác. - Cho phép các tin năng được chuyển tiếp thông qua các nút khác để mở rộng phạm vi giao tiếp. - Bảo vệ các tin nhắn đối với các kiểu tấn công bảo mật đã biết.
- Hoạt động được trên các thiết bị hiện có trên thị trường. - Chuyển giao các tin nhắn một cách kịp thời. - Tiếp tục hoạt động khi một hoặc nhiều thiết bị bị di chuyển hoặc ngừng hoạt động. - Có khả năng tương thích để hỗ trợ các phiên bản tương lai.
BM sử dụng một công nghệ truyền tin được gọi là ngập lụt được quản lý (Managed Flooding - MF). Theo MF, các thiết bị sử dụng các kênh quảng bá (broadcast) để truyền tin nhắn để các thiết bị khác có thể nhận và chuyển tiếp tin nhắn đó; do đó mở rộng được phạm vi truyền của tin nhắn ban đầu. Bất kỳ thiết bị trong mạng có thể gửi tin nhắn ở bất kỳ thời điểm nào miễn là có đủ mật độ thiết bị lắng nghe và chuyển tiếp tin nhắn. Các cải tiến để thêm chức năng định tuyến và sử dụng cơ chế dựa trên định tuyến (routing-based) có thể được xem xét trong tương lai.
Với MF, các tin nhắn sẽ được chuyển tiếp với số lần không giới hạn, do đó, BM sử dụng một số phương pháp để giải quyết vấn đề này. Có hai phương pháp chính được sử dụng là: - Phương pháp lưu trữ tạm tin nhắn mạng (the network message cache method): Phương pháp này được thiết kế để ngăn chặn việc các thiết bị chuyển tiếp lại các tin nhắn đã được nhận trước đó bằng cách lưu các tin nhắn đã nhận vào một danh sách tạm. Khi một tin nhắn được nhận, thiết bị sẽ kiểm tra tin nhắn đó có trong danh sách không, nếu đã có thì sẽ bỏ qua tin nhắn đó. Nếu tin nhắn đó chưa tồn tại trong danh sách, tức là tin nhắn đó chưa từng được nhận bởi thiết bị, thì thiết bị sẽ thêm nó vào danh sách 5 để nó có thể được bỏ qua trong tương lai.
Để ngăn ngừa danh sách này quá lớn, số lượng tin nhắn có thế lưu trữ vào danh sách sẽ được giới hạn khi triển khai thực tế. - Phương pháp thời gian sống (the time to live method): Mỗi tin nhắn sẽ chứa một giá trị là Time-to-live (TTL) để giới hạn số lần tin nhắn có thể được chuyển tiếp. Mỗi lần tin nhắn được nhận và chuyển tiếp (lên tới 126 lần) bởi một thiết bị, giá trị TTL sẽ giảm đi 1. Tin nhắn chỉ có thể được chuyển tiếp nếu TTL lớn hơn 1.2 Một số khái niệm trong Bluetooth mesh Kiến trúc của mạng sử dụng nhiều khái niệm như nút, trạng thái, tin nhắn, phần tử, địa chỉ.
Dưới đây sẽ giải thích một số khái niệm cơ bản được sử dụng trong BM dựa theo đặc tả Mesh Profile [1]. - Các thiết bị không thuộc mạng BM được gọi là thiết bị chưa được cấp phép. Các thiết bị thuộc về một mạng BM, cụ thể các thiết bị có khả năng truyền và nhận tin nhắn, được gọi là nút (Node) hoặc thiết bị được cấp phép (Provisioned Device). Quá trình cấp phép một thiết bị vào mạng là quá trình chuyển đổi một thiết bị không được cấp phép thành một nút.
- Trạng thái (State): Trạng thái là một giá trị đại diện cho một điều kiện của một phần tử. Một phần tử có trạng thái được gọi là một máy chủ (server). Ví dụ: máy chủ đơn giản nhất là “Generic OnOff Server”, biểu thị rằng nó đang bật hoặc tắt. Một phần tử truy cập tới một trạng thái được gọi là một máy khách (client).
Ví dụ: một máy khách đơn giản nhất là “Generic OnOff Client” có thể điều khiển “Generic OnOff Server” thông qua các tin nhắn đã được định nghĩa bởi mô hình “Generic OnOff Model”. - Tin nhắn (Message): Tất cả giao tiếp trong mạng lưới được thực hiện bằng cách gửi tin nhắn. Các tin nhắn hoạt động trên các trạng thái. Đối với mỗi trạng thái, có một tập các tin nhắn xác định mà máy chủ hỗ trợ, và máy khách sẽ sử dụng chúng để yêu cầu giá trị của trạng thái hoặc thay đổi trạng thái.
Máy chủ cũng có thể truyền những tin nhắn không được yêu cầu mang thông tin về các trạng thái hoặc/và các trạng thái thay đổi. BM có cơ chế phân đoạn- lắp ráp để hỗ trợ gửi tin nhắn có kích thước lớn. Khi gửi gói tin có kích thước nhỏ thì không cần phải phân đoạn. Gói tin không phân đoạn ở lớp vận chuyển có thể chứa lên tới 11 byte dữ liệu.
Khi tin nhắn có kích thước lớn, ở lớp vận chuyển sẽ tách thành các phân đoạn để gửi đi (lên tới 32 đoạn), kích thước gói tin có thể lên tới 384 byte dữ liệu. - Phần tử (Element): Một phần tử là một mục có thể định địa chỉ trong nút. Một nút phải có ít nhất một phần tử gọi là phần tử chính, và có thể có thêm một hoặc nhiều phần tử phụ khác. Số lượng và cấu trúc của các phần tử là tĩnh và không được thay đổi trong suốt thời gian sống của nút.
6 Phần tử chính được định địa chỉ sử dụng địa chỉ đơn (unicast) đầu tiên được gán tới nút trong quá trình cấp phép. Mỗi phần tử phụ sẽ được định địa chỉ dùng các địa chỉ tiếp theo từ địa chỉ của phần tử chính. Những địa chỉ phần tử đơn này cho phép các nút định danh được phần tử nào trong một nút đang truyền hoặc nhận tin nhắn. - Địa chỉ (Address): Một địa chỉ có thể là địa chỉ đơn, địa chỉ nhóm hoặc địa chỉ ảo.
o Địa chỉ đơn được cấp phép cho phần tử, và luôn đại diện cho một phần tử của một nút. Có 32767 địa chỉ đơn trong mỗi mạng. o Địa chỉ ảo là địa chỉ “multicast” và có thể đại diện cho nhiều phần tử trong một hoặc nhiều nút. Mỗi địa chỉ ảo biểu diễn một Label UUID, là một giá trị 128-bit không nhất thiết phải được quản lý tập trung.
o Địa chỉ nhóm cũng là địa chỉ “multicast”, có thể đại diện cho nhiều phần tử trong một hoặc nhiều nút. Có 16384 địa chỉ nhóm trong mỗi mạng. Có một tập các địa chỉ nhóm cố định được sử dụng để chỉ định một tập các phần tử chính của các nút dựa trên các chức năng của các nút. Tất cả các địa chỉ nhóm khác gọi là địa chỉ nhóm được gán động.
Có 256 địa chỉ nhóm cố định, 16128 địa chỉ nhóm được gán động. Ví dụ 0xFFFF là địa chỉ nhóm cố định chỉ đến tất cả các phần tử chính của các nút trong mạng, 0xFFFE là địa chỉ nhóm cố định chỉ đến tất cả các phần tử chính của các nút có tính năng chuyển tiếp trong mạng. - Mô hình (Model): Mô hình định nghĩa chức năng cơ bản của một nút. Một nút có thể gồm nhiều mô hình.
Một mô hình định nghĩa các trạng thái bắt buộc, các tin nhắn hoạt động dựa trên trạng thái đó, và bất kỳ hành vi liên quan. Một ứng dụng lưới được chỉ định bằng cách sử dụng kiến trúc máy khách-máy chủ giao tiếp với mô hình đăng ký-xuất bản (Publish-subscribe paradigm). Có ba loại mô hình: mô hình máy chủ, mô hình máy khách và mô hình điều khiển: o Mô hình máy chủ: Một mô hình máy chủ được bao gồm một hoặc nhiều trạng thái trải dài trên một hoặc nhiều phần tử.