Wifi Mesh - Công nghệ mạng truyền dẫn đối với hệ thống IoT

09:19 | 04/05/2023
Đặng Văn Hải , Phùng Văn Quyền , Tô Thị Tuyết Nhung (Học viện Kỹ thuật mật mã)

Những năm gần đây, các ứng dụng sử dụng hệ thống IoT đang ngày càng phát triển bởi khả năng mềm dẻo trong thiết kế phần cứng và thu thập dữ liệu. Đồng hành cùng với sự thay đổi của các công nghệ mạng truyền dẫn, tín hiệu, Wifi Mesh đang trở thành một lựa chọn thực tế và phù hợp đối với các hệ thống IoT công nghiệp, thương mại điện tử. Thông qua bài báo này, nhóm tác giả sẽ giới thiệu về nền tảng công nghệ mạng Wifi Mesh, từ đó làm cơ sở cho việc ứng dụng để thiết kế hệ thống giám sát đo độ nghiêng sẽ được trình bày trong kỳ tới.

NGUYÊN TẮC HOẠT ĐỘNG CỦA WIFI MESH

Wifi Mesh hoạt động theo nguyên lý sử dụng hai hoặc nhiều thiết bị kết nối với nhau như một “nút” để tạo nên một mạng lưới Wifi. Chỉ một nút được kết nối với Modem Internet, trong khi đó các nút còn lại được đặt khắp nơi để tạo nên một mạng Wifi diện rộng, những nút này đều là một phần trong mạng Wifi duy nhất, chia sẻ chung một SSID và mật khẩu, điều này khiến cho việc mở rộng hệ thống Mesh hết sức dễ dàng.

Hình 1. Nguyên tắc hoạt động của Wifi Mesh

Cấu trúc liên kết mạng Wifi Mesh

Wifi Mesh được xây dựng trên cơ sở hạ tầng giao thức Wifi, có thể được coi là một giao thức mạng kết hợp nhiều Wifi riêng lẻ thành một mạng WLAN duy nhất. Trong Wifi, các trạm được giới hạn ở một kết nối duy nhất với một AP (kết nối ngược dòng - là kết nối từ một nút đến các nút cha của nó) bất kỳ lúc nào, trong khi một AP có thể được kết nối đồng thời với nhiều trạm (kết nối xuôi dòng - là kết nối từ một nút đến một trong các nút con của nút đó). Wifi Mesh cho phép các nút hoạt động đồng thời như một trạm AP. Một nút trong Wifi Mesh có thể có nhiều kết nối xuôi dòng sử dụng giao diện softAP của nó, đồng thời có một kết nối ngược dòng duy nhất sử dụng giao diện trạm của nó. Cấu trúc liên kết cây mạng với phân cấp cha, con bao gồm nhiều lớp.

Wifi Mesh là mạng nhiều bước nhảy (multi hop), các nút có thể truyền gói tin đến các nút khác trong mạng thông qua một hoặc nhiều bước nhảy. Các nút trong Wifi Mesh không chỉ truyền các gói tin riêng mà còn đóng vai trò như các trạm lưu giữ thông tin cho các nút khác. Nếu điều kiện tồn tại một đường truyền giữa hai nút bất kỳ trên lớp vật lý thông qua một hoặc nhiều bước nhảy, cặp nút bất kỳ trong mạng Wifi Mesh có thể giao tiếp.

Hình 2. Cấu trúc liên kết cây mạng Wifi Mesh

KẾT NỐI NÚT TRONG WIFI MESH

Nút gốc được thể hiện trong Hình 3 là nút trên cùng trong mạng và đóng vai trò duy nhất giữa mạng Wifi Mesh và mạng IP bên ngoài. Nút gốc được kết nối với bộ định tuyến Wifi thông thường và chuyển tiếp các gói đến từ mạng IP bên ngoài tới các nút trong mạng Wifi Mesh. Theo sơ đồ, nút A là nút gốc của mạng.

Nút lá là nút không được phép có bất kỳ nút con nào không có kết nối xuôi dòng. Do đó một nút lá chỉ có thể truyền hoặc nhận các gói tin của chính nó chứ không thể chuyển tiếp các gói tin của các nút khác. Nếu một nút nằm trên lớp tối đa được phép của mạng, nó sẽ được chỉ định làm nút lá. Điều này ngăn không cho nút hình thành bất kỳ kết nối xuôi dòng nào, do đó đảm bảo mạng không thêm một lớp bổ sung. Một số nút không có giao thức softAP cũng sẽ được chỉ định làm nút lá do yêu cầu của giao thức softAP cho kết nối xuôi dòng. Trong Hình 3, các nút L/M/N nằm trên các lớp mạng tối đa cho phép do đó đã được chỉ định là các nút lá.

Các nút cha trung gian là các nút được kết nối không phải là nút gốc hoặc nút lá. Một nút cha trung gian phải có một kết nối ngược dòng duy nhất nhưng có thể có từ 0 đến nhiều kết nối xuôi dòng (0 đến nhiều nút con). Một nút cha trung gian có thể truyền và nhận các gói, nhưng cũng có thể chuyển tiếp các gói được gửi từ các kết nối ngược và xuôi của nó. Trên Hình 3, các nút từ B đến J là các nút cha trung gian. Các nút cha trung gian không có kết nối xuôi dòng như nút E/F/G/I/J không tương đương với nút lá vì chúng vẫn được phép kết nối xuôi dòng.

Hình 3. Cách kết nối nút trong Wifi Mesh

Các nút chưa tham gia mạng được chỉ định là các nút không hoạt động. Các nút không hoạt động sẽ cố gắng tạo kết nối ngược dòng với nút cha trung gian hoặc trở thành nút gốc trong các trường hợp thích hợp. Với Hình 3, các nút K, O là các nút không hoạt động.

BÁO HIỆU MỨC NGƯỠNG RSSI TRONG WIFI MESH

Mọi nút trong Wifi Mesh có thể tạo kết nối xuôi dòng sẽ truyền định kỳ các khung báo hiệu Wifi. Một nút sử dụng khung báo hiệu để cho phép các nút khác phát hiện sự có mặt của nó, biết trạng thái của nó. Các nút không hoạt động sẽ lắng nghe các khung báo hiệu để tạo ra một danh sách các nút cha tiềm năng, một trong số các nút không hoạt động sẽ tạo thành một kết nối ngược dòng. Wifi Mesh sử dụng phần tử thông tin của nhà cung cấp để lưu trữ các thông tin loại nút gốc, trung gian, lá, không hoạt động.

Cường độ tín hiệu của một kết nối ngược dòng tiềm năng được biểu thị bằng RSSI các khung báo hiệu của nút cha tiềm năng. Để ngăn các nút hình thành kết nối ngược dòng yếu, Wifi Mesh triển khai cơ chế ngưỡng RSSI cho các khung báo hiệu. Nếu nút phát hiện khung báo hiệu có RSSI dưới ngưỡng thì nút truyền sẽ bị bỏ qua khi hình thành kết nối ngược dòng.

Hình 4-A minh họa mức ngưỡng RSSI ảnh hưởng đến số lượng ứng viên nút cha là nút không hoạt động. Hình 4-B minh họa cách một đối tượng che chắn RF có thể hạ thấp RSSI nút cha tiềm năng. Do đối tượng che chắn RF, khu vực trong đó RSSI của nút X trên ngưỡng bị giảm đáng kể. Làm cho nút không hoạt động bỏ qua nút X dù nút X nằm liền kề về lớp vật lý. Nút không hoạt động sẽ hình thành kết nối ngược dòng với nút Y ở xa lớp vật lý do RSSI mạnh hơn.

Hình 4. Ảnh hưởng của ngưỡng RSSI trong Wifi Mesh

PHƯƠNG PHÁP ĐỊNH TUYẾN TRONG WIFI MESH

Mỗi nút trong mạng Wifi Mesh sẽ duy trì định tuyến riêng để định tuyến chính xác các gói Wifi Mesh đến nút đích. Định tuyến của một nút cụ thể sẽ bao gồm địa chỉ MAC tất cả các nút trong mạng con của nút cụ thể. Mỗi định tuyến được phân chia nội bộ thành nhiều bảng con, với mỗi bảng con tương ứng với mạng con của mỗi nút con.

Hình 5. Phương pháp định tuyến Wifi Mesh

Trên Hình 5, phương pháp định tuyến của nút B sẽ bao gồm các địa chỉ MAC của nút B đến I (tức là tương đương với mạng con của nút B). Bảng định tuyến của nút B được phân chia nội bộ thành hai bảng con chứa các nút C đến F và nút G đến I tương đương với các mạng con của nút C và G tương ứng. Wifi Mesh sử dụng các phương pháp định tuyến để xác định xem gói Wifi Mesh chuyển tiếp ngược hay xuôi dòng dựa trên các nguyên tắc sau đây.

Nếu địa chỉ MAC đích của gói nằm trong bảng định tuyến của nút hiện tại và không phải là nút hiện tại, hãy chọn bảng con có chứa địa chỉ MAC đích và chuyển tiếp gói dữ liệu xuống phía dưới đến nút con tương ứng với bảng con.

Nếu địa chỉ MAC đích không nằm trong bảng định tuyến của nút hiện tại, hãy chuyển tiếp gói dữ liệu ngược dòng tới nút cha của nút hiện tại. Nhiều lần sẽ dẫn đến gói tin đến nút gốc, nơi bảng định tuyến sẽ chứa tất cả các nút trong mạng.

QUẢN LÝ MẠNG WIFI MESH

Wifi Mesh là một mạng tự phục hồi, nó có thể phát hiện và sửa chữa các lỗi trong định tuyến mạng. Lỗi xảy ra khi một nút cha có một hoặc nhiều nút con bị hỏng, hoặc khi kết nối giữa nút cha và các nút con không ổn định. Các nút con trong Wifi Mesh sẽ tự động chọn một nút cha mới, tạo kết nối ngược dòng với nó để duy trì liên kết mạng. Wifi Mesh có thể xử lý cả lỗi nút gốc và lỗi nút cha trung gian.

Lỗi nút gốc

Nếu nút gốc bị hỏng, các nút được kết nối với nó - các nút lớp thứ hai sẽ phát hiện kịp thời sự cố của nút gốc. Các nút lớp thứ hai ban đầu sẽ cố gắng kết nối lại với nút gốc. Sau nhiều lần thử không thành công, các nút lớp thứ hai sẽ khởi tạo một vòng chọn nút gốc mới. Nút lớp thứ hai có bộ định tuyến RSSI mạnh nhất sẽ được bầu làm nút gốc mới trong khi các nút lớp thứ hai còn lại sẽ tạo kết nối ngược dòng với nút gốc mới.

Nếu nút gốc và nhiều kết nối xuôi dòng đồng thời bị phá vỡ thì lớp gần nhất vẫn đang hoạt động sẽ khởi tạo bầu chọn nút gốc. Hình 6 minh họa về việc tự phục hồi từ một nút gốc bị hỏng.

Trong Hình 6, nút C là nút gốc của mạng, các nút A/B/D/E là các nút lớp thứ hai được kết nối với nút C. Khi nút C bị hỏng, sau nhiều lần cố gắng kết nối lại không thành công, các nút lớp thứ hai bắt đầu quá trình bầu bằng cách phát các RSSI bộ định tuyến của chúng. Nút B có bộ định tuyến RSSI mạnh nhất. Nút B được bầu làm nút gốc và bắt đầu kết nối xuôi dòng. Các nút lớp thứ hai còn lại A/D/E tạo thành các kết nối ngược dòng với nút B, do đó mạng được phục hồi và tiếp tục hoạt động.

Hình 6. Cách tự sửa nút gốc trong Wifi Mesh

Lỗi nút cha trung gian

Nếu một nút cha trung gian bị hỏng, các nút con bị ngắt kết nối ban đầu sẽ kết nối lại với nút cha. Sau nhiều lần kết nối lại không thành công, mỗi nút con sẽ bắt đầu quét tìm các nút cha tiềm năng. Nếu các nút cha tiềm năng khác có sẵn, mỗi nút con sẽ chọn riêng một nút cha mới, kết nối ngược dòng với nó. Nếu không có nút cha tiềm năng nào khác cho một nút con cụ thể, nó sẽ không hoạt động.

Wifi Mesh không tự động chuyển đổi nút gốc, trừ khi nút gốc bị hỏng. Ngay cả khi RSSI của bộ định tuyến của nút gốc suy giảm đến mức ngắt kết nối, nút gốc sẽ vẫn không thay đổi. Chuyển đổi nút gốc là hành động bắt đầu một vòng chọn mới sao cho một nút bộ định tuyến mạnh hơn RSSI sẽ được bầu làm nút gốc mới.

Một nút gốc mới được bầu chọn gửi một yêu cầu chuyển đổi đến nút gốc hiện tại, nút gốc hiện tại phản hồi bằng một thông báo xác nhận cho biết cả hai nút đã sẵn sàng chuyển đổi. Khi nhận được xác nhận, nút gốc mới được bầu chọn sẽ ngắt kết nối khỏi nút gốc của nó, nhanh chóng tạo kết nối ngược dòng với bộ định tuyến, trở thành nút gốc mới của mạng. Nút gốc trước đó sẽ ngắt kết nối khỏi bộ định tuyến trong khi duy trì tất cả các kết nối hạ lưu của nó và chuyển sang trạng thái không hoạt động. Sau đó, nút gốc trước đó sẽ bắt đầu quét các nút cha tiềm năng và chọn một nút cha mới.

CÁCH TRUYỀN DỮ LIỆU TRONG WIFI MESH

Truyền dữ liệu mạng Wifi Mesh sử dụng gói Wifi Mesh. Các gói Wifi Mesh chứa hoàn toàn trong phần thân khung của khung dữ liệu Wifi. Truyền dữ liệu nhiều bước trong mạng Wifi Mesh sẽ liên quan đến một gói Wifi Mesh duy nhất được truyền qua mỗi bước bởi một khung dữ liệu WiFi khác. Hình 7 cho thấy cấu trúc của gói Wifi Mesh, mối quan hệ của nó với khung dữ liệu Wifi.

Hình 7. Gói Wifi Mesh

Header của gói Wifi Mesh chứa địa chỉ MAC các Src Addr (nút nguồn) và Dest Addr (nút đích). Trường Option (tùy chọn) chứa thông tin liên quan đến các gói Wifi Mesh đặc biệt như truyền nhóm hoặc gói có nguồn gốc từ mạng IP bên ngoài.

Payload của gói Wifi Mesh chứa dữ liệu ứng dụng thực tế. Dữ liệu này có thể là dữ liệu nhị phân hoặc được mã hóa theo giao thức lớp ứng dụng như HTTP, MQTT và JSON.

KẾT LUẬN

Với công nghệ tiên tiến, hiện đại và độ bao phủ rộng lớn, Wifi Mesh đã được nhiền người dùng lựa chọn để sử dụng, nó không chỉ dừng lại ở mức độ cá nhân hay hộ gia đình, mà hiện nay Wifi Mesh đã được ứng dụng trong nhiều hệ thống và lĩnh vực khác nhau, đặc biệt trở thành điều kiện lý tưởng cho các nhà sản xuất vận hành IoT. Ứng dụng Wifi Mesh để thiết kế hệ thống giám sát đo độ nghiêng sẽ được nhóm tác giả giới thiệu trong kỳ tiếp theo của Tạp chí.

TÀI LIỆU THAM KHẢO

[1]. Giáo trình “Kỹ thuật cảm biến”, Đặng Văn Hải và Lại Hồng Nhung, Học viên Kỹ thuật Mật Mã, 2021.

[2]. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/esp-wifi-mesh.html.

[3]. https://randomnerdtutorials.com/esp-mesh-esp32-esp8266-painlessmesh.

[4]. https://www.sciencedirect.com/topics/computer-science/wireless-mesh-network.