Chương 1 : Giao thức kết nối mạng GVHD : Ths. PHAN VĂN ĐỨC Khi một hệ thống mạng được hình thành, mối quan tâm lớn kế tiếp chính là là thế nào để chuyển các thông điệp trong mạng. Bất cứ thiết bị nào là thành viên của hệ thống giao thức MiWi đều sử dụng Short Address của nó để liên lạc xuyên suốt trong mạng. Short Address này giúp các thiết bị khác trong mạng quyết định vị trí của node và và làm thế nào để định tuyến tới thiết bị đó.1 Định dạng gói Giao thức MiWi sử dụng định dạng gói của MAC layer của IEEE 802.4 cho tất cả các gói tin của nó.
Các node tham gia vào hệ thống mạng sẽ sử dụng mode Short Address được cung cấp trong thông số kỹ thuật của IEEE. Các gói nên được dựng theo Section 7.2 của thông số kỹ thuật IEEE 802. Phía trên của layer này là header của giao thức MiWi, chứa thông tin cần thiết cho quá trình định tuyến và đóng gói. Định dạng của header này được cho trong hình 1.6, bao gồm các thành phần sau: Hình 1.6 Định dạng của header trong gói tin dùng giao thức MiWi Hops: số lượng các hop mà gói tin cho phép được truyền lại (00h nghĩa là không phát lại gói này – 1 byte).
Frame control: đây là 1 ảnh nhị phân định nghĩa động thái của gói tin này. Các bit riêng biệt được định nghĩa trong bảng 4. ĐỒ ÁN TỐT NGHIỆP 11 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths. PHAN VĂN ĐỨC Dest PAN ID: PAN ID của điểm đích node cuối cùng (2 bytes trong giao thức MiWi).
Dest Short Address: Short Address của điểm đích cuối cùng (2 bytes). Source PAN ID: PAN ID của node gốc đã truyền gói tin đi. Source Short Address: Short Address của điểm node gốc đã truyền gói tin đi (2 bytes). Sequence Number: một số thứ tự có thể được dùng để lần theo trạng thái của các gói tin khi chúng di chuyển xuyên suốt hệ thống mạng.
Report Type: việc tập hợp thông tin đã bao gồm trong gói tin này. Tất cả các stack tạo nên các gói tin này đều có Report Type là 00h. Tất cả các bản báo cáo do người dùng quy định nằm trong khoảng 01h tới FFh. Report ID: loại của thông điệp đã bao gồm trong gói tin này (1 byte).4 Trường bit Frame Control Bit 7-3: được để dành sẵn: giữ giá trị ‘0’ trong việc thực thi này.
Bit 2: ACKREQ: bit Acknowledge Request, khi được set, thiết bị gốc yêu cầu layer lớp trên chứng nhận Acknowledgement từ thiết bị đích. Bit 1: INTRCLST: bit Intra Cluster, được để dành trong việc thực thi này, giữ giá trị là ‘1’. Bit 0: ENCRYPT: bit Encrypt, khi được set, dữ liệu gói tin được mã hóa tại tầng ứng dụng. Các tên bit viết tắt là để thuận tiện cho việc trình bày, nó không phải là phần chính thức của IEEE 802.
ĐỒ ÁN TỐT NGHIỆP 12 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths.2 Định tuyến Việc định tuyến hệ thống mạng không dây có thể là một nhiệm vụ rất khó khăn và cần tập trung nhiều nguồn tài nguyên. Giao thức MiWi đã giải quyết vần đề này bằng cách sử dụng sự phân phối địa chỉ để chỉ ra parent của thiết bị mà ta muốn gửi gói tin đến, và bằng cách sử dụng các dịch vụ đã được cung cấp sẵn của IEEE để giúp cho việc trao đổi và chuyển tiếp thông tin định tuyến trong hệ thống mạng. Về các Coordinator láng giềng Một trong những nhiệm vụ của thuật toán định tuyến là xác định hop tiếp theo của bất kì gói tin nào được gửi đi. Giao thức MiWi sử dụng kết cấu tham gia hệ thống mạng của IEEE, bên cạnh lưu lượng hệ thống mạng thông thường, để tìm ra những đường đi này.
Khi bất kỳ một thiết bị nào tham gia vào hệ thống mạng, đầu tiên nó sẽ gửi đi một gói tin beacon request. Tất cả các coordinator nhận được gói tin beacon request này sẽ gửi đi một gói tin beacon để thông báo cho các thiết bị láng giềng thông tin hệ thống mạng của chúng. Trong giao thức MiWi, 3 bytes của thông tin thêm vào được gắn với beacon payload để hỗ trợ cho việc định tuyến: Protocol ID (1 byte): giúp phân biệt các hệ thống mạng sử dụng giao thức MiWi với các hệ thống mạng IEEE 802.4 khác có thể đang hoạt động trong cùng pha vô tuyến. Protocol ID nên luôn là 4Dh.
Version Number (1 byte): số hiệu phiên bản của đặc tính kỹ thuật. Local Coordinators (1 byte): vùng này là một ảnh nhị phân chỉ ra các coordinator nào hiện đang có thể nhìn thấy được bởi coordinator đang gửi beacon. Nhờ vào vùng Local Coordinators của beacon payload, tất cả các coordinator trong hệ thống mạng sẽ học hỏi được nhiều cách định tuyến tới tất cả các node đó mà không cần phải gửi đi những request đơn nhất. Định tuyến tới các thiết bị khác ĐỒ ÁN TỐT NGHIỆP 13 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths.
PHAN VĂN ĐỨC Hình 1.7 Biểu đồ quyết định dạng cây cho việc chuyển tiếp gói tin ĐỒ ÁN TỐT NGHIỆP 14 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths. PHAN VĂN ĐỨC Định tuyến trong các hệ thống mạng sử dụng giao thức MiWi trở nên dễ dàng hơn một khi ta đã có kiến thức về các coordinator láng giềng cũng như những gì mà các coordinator đó có thể thấy được. Việc gửi một gói tin tới một node khác tuân theo sơ đồ logic trong hình 1.3 Quảng bá các thông điệp Khi một coordinator của hệ thống mạng giao thức MiWi nhận được một gói tin quảng bá, nó sẽ phát lại gói tin đó chừng nào mà Hops counter (byte đầu tiên của header) chưa về giá trị ‘0’. Các gói tin quảng bá không được chuyển tiếp tới các thiết bị cuối.4 Tìm hiểu các node trong hệ thống mạng bởi EUI Node G muốn tìm hiểu Node F ĐỒ ÁN TỐT NGHIỆP 15 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths.
PHAN VĂN ĐỨC Hình 1.8 Thứ tự cho việc yêu cầu tìm kiếm và đáp ứng địa chỉ EUI Khi hai node giao tiếp với nhau qua hệ thống mạng giao thức MiWi, chúng dùng Short Address của chúng. Nếu như cấu trúc kiên kết của hệ thống mạng thay đổi, nó sẽ hữu dụng nếu như ta tìm lại được thiết bị đó. Vì Short Address của thiết bị được gán bởi parent của nó nên Short Address của thiết bị đích có thể sẽ thay đổi. Trong trường hợp đó, Short Address mới phải được tìm ra trước khi liên kết mạng được tái lập lại.
Không giống như Short Address, EUI của thiết bị không bao giờ thay đổi và nó là duy nhất trên toàn cầu. Nếu như một thiết bị biết được EUI của một thiết bị khác, nó sẽ có thể phân biệt thiết bị đó với bất kỳ thiết bị nào khác. Truy tìm một EUI cụ thể trên hệ thống mạng trở nên quan trọng trong việc tái lập lại liên kết giữa các node đã di chuyển. Giao thức MiWi cung cấp chức năng tìm kiếm đó.
Có hai Stack packet được định nghĩa để hỗ trợ cho việc tìm kiếm một EUI cụ thể trên hệ thống mạng: EUI_ADDRESS_SEARCH_REQUEST và EUI_ADDRESS_SEARCH_RESPONSE. Search Request được unicast tới coordinator đầu tiên (hình 1.8, phần 1) rồi sau đó truyền phát quảng bá giữa các coordinator vào hệ thống mạng với EUI của thiết bị cần được định vị trí (phần 2). Việc này được lặp lại bởi tất cả các coordinator cho tới khi Hops Counter ngừng (phần 3). Nếu như một trong các coordinator hiện tại đã có thiết bị này làm child, nó sẽ trả lại gói tin EUI_ADDRESS_SEARCH_RESPONSE với EUI của thiết bị và Short Address của nó.
EUI_ADDRESS_SEARCH_RESPONSE được gửi unicast, qua từng node một, trở lại địa chỉ gốc giao thức MiWi của gói tin đã gửi gói tin đi (phần 4). ĐỒ ÁN TỐT NGHIỆP 16 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths.5 Mở Socket cho một thiết bị Một đặc điểm khác có thể quan trọng với một vài hệ thống mạng đó là khả năng tạo nên các liên kết giao tiếp trong hệ thống mạng. Việc này trở nên hữu dụng trong các hệ thống mạng mà việc cấu hình trước cho các node cần phải là tối thiểu.9 Thứ tự cho việc yêu cầu và đáp ứng mở socket ĐỒ ÁN TỐT NGHIỆP 17 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths. PHAN VĂN ĐỨC Hình 1.10 Thứ tự cho việc yêu cầu và đáp ứng mở p2p socket Ví dụ từ G gửi một OPEN_CLUSTER_SOCKET_REQUEST tới PAN Coordinator với thông tin của thiết bị (hình 1.
Nó thông báo cho PAN Coordinator rằng thiết bị đang tìm người nào đó để trò chuyện (Thiết bị F). PAN Coordinator giữ yêu cầu đó ở trạng thái mở trong một khoảng thời gian đã được xác định sẵn bởi chương trình ứng dụng. Nếu một yêu cầu tương tự đến từ F (phần 2), PAN Coordinator kết hợp thông tin short address từ cả hai thiết bị vào một OPEN_CLUSTER_SOCKET_RESPONSE và gửi nó trở lại G và F (phần 3). Cuối cùng, PAN Coordinator gỡ bỏ yêu cầu mở socket.
Nếu PAN Coordinator không nghe thấy yêu cầu mở socket lần thứ hai trong một khoảng thời gian định sẵn, nó sẽ kết thúc yêu cầu mở socket mà không gửi lại đáp ứng nào cho requesting node. Khi các thiết bị tại F và G nhận báo cáo OPEN_CLUSTER_SOCKET_RESPONSE, chúng có thể kiểm tra payload của gói tin đó và quyết định xem thiết bị đó có đúng là thiết bị mà chúng muốn trò chuyện không. Đây là quyết định của Lớp ứng dụng, không được cung cấp bởi Stack. P2P SOCKET Khi một thiết bị P2P muốn trò chuyện với một P2P socket với một node khác, trước tiên nó sẽ truyền broadcast một báo cáo OPEN_P2P_SOCKET_REQUEST chứa đựng đầy đủ EUI của thiết bị (hình 1.
Bất kỳ thiết bị nào nhận được yêu cầu đó muốn trò chuyện với thiết bị sẽ gửi một báo cáo OPEN_P2P_SOCKET_RESPONSE chứa đựng địa chỉ EUI của chính nó (phần 2). Việc này thông báo cho thiết bị đầu tiên là nó muốn trò chuyện với thiết bị đó. Trong quá trình thực thi hiện hành, chỉ có các coordinator là có thể nhận OPEN_P2P_SOCKET_REQUEST. ĐỒ ÁN TỐT NGHIỆP 18 SVTH : Võ Văn Triều Nguyễn Đình Minh Chương 1 : Giao thức kết nối mạng GVHD : Ths.