Định dạng thông điệp CoAP

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giao thức MQTT(Message queue telemetry transport) và ứng dụng thu thập dữ liệu cảm biến theo MQTT (Trang 35 - 39)

Mô hình lớp thông điệp

Lớp thông điệp hỗ trợ 4 loại thông điệp: CON (confirmable – kiểm chứng), NON (non-confirmable – không kiểm chứng), ACK (Acknowledgement – thừa nhận), RST (Reset – thiết lập lại) [8].

Truyền tải thông điệp đáng tin cậy:

Giữ thông tin truyền tải lại cho đến khi có được thông điệp ACK với định danh (ID) thông điệp tương tự (như 0x8c56 trong Hình 1.8). Sử dụng thời gian mặc định ra ngoài và giảm thời gian đếm theo cấp số nhân khi truyền thông điệp loại CON. Nếu người nhận không xử lý tin nhắn, nó phản ứng bằng cách thay thế thông điệp ACK với thông điệp RST. Hình 1.8 cho thấy một sự truyền tải thông tin đáng tin cậy.

Hình 1. 8: Truyền tải thông điệp tin cậy [8]

Truyền tải với các thông điệp loại NON. Nó không cần phải được thừa nhận- ACKed, nhưng có chứa ID thông điệp cho giám sát trong trường hợp truyền tải lại. Nếu người nhận không xử lý thông điệp, máy chủ trả lời thông điệp RST. Hình 1.9 cho thấy truyền tải không đáng tin cậy.

Hình 1. 9: Truyền tải thông điệp không tin cậy [8] Mô hình lớp request/response (yêu cầu/đáp ứng)

Mang theo thông điệp (Piggy-backed): Client gửi yêu cầu sử dụng loại thông điệp CON hoặc thông điệp kiểu NON và nhận được thông điệp phản ứng ACK với thông điệp xác nhận ngay lập tức. Trong Hình 1.10 cho phản hồi thành công, chứa thông điệp phản hồi ACK (xác định bằng cách sử dụng token), cho phản hồi thất bại, thông điệp ACK chứa mã phản hồi thất bại.

Hình 1. 10: Kết quả phản hồi thành công và thất bại của phƣơng thức GET [8]

Phản hồi tách biệt: Nếu máy chủ nhận được thông điệp kiểu CON nhưng không thể đáp ứng yêu cầu này ngay lập tức, nó sẽ gửi một thông điệp kiểu ACK

trống trong trường hợp khách hàng gửi lại tin nhắn này. Khi máy chủ đã sẵn sàng để đáp ứng yêu cầu này, nó sẽ gửi một thông điệp kiểu CON mới cho khách hàng và khách hàng trả lời nhắn xác nhận với sự thừa nhận. Thông điệp ACK là chỉ để xác nhận thông điệp CON, không có vấn đề yêu cầu thông điệp CON hoặc phản hồi Hình 1.11.

Hình 1. 11: Một yêu cầu GET với một phản hồi riêng biệt [8]

Yêu cầu và không xác nhận phản hồi: không giống như phản hồi Piggy hậu thuẫn mang thông điệp xác nhận, trong yêu cầu không xác nhận client gửi thông điệp kiểu NON chỉ ra rằng máy chủ không cần phải xác nhận. Server sẽ gửi lại một thông điệp phản hồi kiểu NON Hình 1.12.

Hình 1. 12: Yêu cầu và không xác nhận phản hồi [8] Định dạng thông điệp

CoAP được dựa trên việc trao đổi các thông điệp nh gọn, theo mặc định, được truyền qua UDP (nghĩa là mỗi tin nhắn CoAP chiếm phần dữ liệu của một gói UDP). Tin nhắn của CoAP sử dụng định dạng nhị phân đơn giản. Message = kích thước cố định tiêu đề 4-byte cộng với chiều dài thay đổi Mã cộng với một chuỗi các lựa chọn CoAP cộng với tải trọng. Các định dạng được thể hiện trong Hình 1.13.

Hình 1. 13: Định dạng thông điệp [8]

Option number=option delta+ ex option number (số tùy chọn = tùy chọn tùy chọn + số tùy chọn cũ). Các định dạng được thể hiện trong Hình 1.14

Hình 1. 14: Định dạng CoAP tùy chọn [8]

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giao thức MQTT(Message queue telemetry transport) và ứng dụng thu thập dữ liệu cảm biến theo MQTT (Trang 35 - 39)