Uploaded by Nguyên Trần

Report-TSLVM (1)

advertisement
TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
NGÀNH ĐIỆN TỬ VIỄN THÔNG
⁕⁕⁕⁕⁕⁕⁕⁕⁕⁕⁕⁕⁕⁕
BÁO CÁO BÀI TẬP LỚN MÔN TRUYỀN SỐ LIỆU VÀ MẠNG:
MÔ PHỎNG GIAO THỨC MQTT BẰNG PHẦN MỀM
CISCO PACKET TRACER
GVHD: Nguyễn Khánh Lợi
Lớp L02 – Nhóm 35
Họ và Tên
MSSV
Phạm Minh Hiếu
Nguyễn Tiến Nhật
2014001
Trần Khải Nguyên
1914401
Mai Tấn Nghĩa
2013869
1
Phần trăm đánh giá
MỤC LỤC
I- Lý Thuyết về MQTT: ................................................................................... 3
1. MQTT là gì? ............................................................................................... 3
2. Lịch sử hình thành MQTT ....................................................................... 3
3. Thành phần và các thức hoạt động của MQTT ..................................... 3
4. Một số khái niệm liên quan đến MQTT:................................................. 5
5. Mô tả dữ liệu trong một giao tiếp của MQTT: ....................................... 8
6. Bảo mật trong MQTT: ............................................................................ 10
7. Ưu điểm của MQTT ................................................................................ 11
8. Hạn chế của MQTT ................................................................................. 11
9. So sánh MQTT với HTTP ...................................................................... 12
10.
Ứng dụng của MQTT ........................................................................... 12
11.
Các giao thức cạnh tranh với MQTT ................................................. 13
II. Mô phỏng giao thức MQTT bằng Cisco Packer Tracer:........................ 14
2
I- Lý Thuyết về MQTT:
1. MQTT là gì?
MQTT là viết tắt của từ Message Queuing Telemetry Transport là một
giao thức nhắn tin tiêu chuẩn OASIS cho Internet Of Thing (IoT). Nó được thiết
kế như một phương tiện truyền tải tin nhắn Publish/Subscribe (Xuất bản/Đăng
ký) cực kỳ nhẹ, lý tưởng để kết nối các thiệt bị từ xa với băng thông mạng thấp.
MQTT ngày nay được sử dụng trong nhiều ngành công nghiệp chẳng hạn như ô
tô, sản xuất, viễn thông, dầu khí,...
2. Lịch sử hình thành MQTT
MQTT được tạo ra vào năm 1999 bởi Tiến sĩ Andy Stanford-Clark của
IBM và Arlen Nipper của Arcom (nay là Eurotech). MQTT được tạo ra với mục
đích đem lại tính hiệu quả về chi phí và sự đáng tin cậy nhằm kết nối các thiết bị
giám sát được sử dụng trong ngành dầu khí với máy chủ giám sát từ xa. Khi gặp
thách thức với việc tìm cách đẩy dữ liệu từ các cảm biến đường ống trong sa
mạc sang các hệ thống điều khiển, giám sát và thu thập dữ liệu (SCADA) bên
ngoài, họ đã quyết định sử dụng cấu trúc liên kết publish/subscribe dựa trên
TCP/IP hướng sự kiện để truyền tải dữ liệu và làm giảm chi phí đầu tư xuống.
Mặc dù MQTT vẫn còn mối quan hệ chặt chẽ với IBM, nhưng giờ đây nó
là một giao thức mở được quản lý bởi Organization for the Advancement of
Structured Information Standards (OASIS).
MQTT không phải là một phần của IBM MQSeries; và kể từ phiên bản
7.1, nó có sẵn trong WebSphere MQ. MQTT trước đây còn được gọi là SCADA
protocol, MQ Integrator SCADA Device Protocol (MQIsdp) và WebSphere
MQTT (WMQTT). Tuy nhiên, tất cả các biến thể này đã không còn được sử
dụng.
MQTT chính thức được phê duyệt là tiêu chuẩn OASIS vào ngày 28
tháng 10 năm 2015. Vào cuối tháng 1 năm 2016, nó đã được chấp nhận là tiêu
chuẩn của Tổ chức Tiêu chuẩn hóa Quốc tế (ISO). Giao thức này liên tục được
cải thiện và hiện hỗ trợ WebSockets, một giao thức khác cho phép giao tiếp hai
chiều giữa máy khách và broker trong thời gian thực.
3. Thành phần và các thức hoạt động của MQTT
3.1. Thành phần:
3
MQTT broker (Server) : Là thành phần được tạo ra dưới dạng mã nguồn
mở. Một số MQTT broker có hỗ trợ dịch vụ điện toán đám mây. Chức năng của
thành phần này là sàng lọc tin nhắn theo kênh. Kế đó, chúng đưa các tin nhắn này
đến thiết bị hoặc ứng dụng đã đăng ký kênh ấy.
MQTT client (Publisher/Subscriber) : Thành phần này được nối kết với
broker để truyền và nhận dữ liệu. Trong đó, client gửi dữ liệu được gọi là
publisher, client đăng ký nhận dữ liệu là subscriber
Topic: Là một hàng đợi các thông điệp và có sẵn khuôn mẫu dành cho
Subscriber hoặc Publisher, cho phép Client trao đổi thông tin với các ngữ nghĩa
đã được định nghĩa sẵn. Một ví dụ đơn giản mà bạn có thể thấy rõ về Topic của
MQTT là dữ liệu cảm biến nhiệt độ của tòa nhà.
Session: được định nghĩa là một kết nối từ Client tới Server, toàn bộ giao
tiếp của Client với Server đều là một phần của Session.
Subscription: là kết nối từ Client tới Topic, Client có thể nhận hoặc gửi
thông điệp với Topic đó.
3.2. Cách thức hoạt động:
Broker: Là một phần mềm máy tính cho phép tạo một máy chủ (server)
kết nối giữa các MQTT client và các thiết bị nói chung trong mạng. MQTT Borker
có thể do “host” hoặc người vận hành hệ thống tự xây dựng hoặc một bên thứ ba.
Các phần mềm trên thị trường hiện nay được xây dựng ở hai dạng mã nguồn và
triển khai độc quyền cho từng trường hợp cụ thể. Các Broker hoạt động như một
trạm bưu điện nhận nội dung đến và chuyển nội dụng đi nhưng không sử dụng
địa chỉ của client nhận như điểm đến của nội dung mà quản lý dưới dạng kênh
(topic). Các client muốn có nội dung thì cần đăng ký kênh đó, sau đó khi Broker
nhận được nội dung sẽ tự động chuyển đến client đã đăng ký, có thể có nhiều
client cùng đăng ký một kênh và một client cũng đăng ký được nhiều kênh khác
nhau trên một trạm Broker. Các client cũng có thể là điểm sản xuất nội dung và
4
đồng thời cũng có thể đăng ký kênh của client khác cùng nội dung hoặc khác nội
dung. Hiện nay Broker có thể triển khai vật lý hoặc trên đám mây, tuy nhiên triển
khai trên đám mây dễ hỗ trợ khi có Broker bị hỏng hoặc bị lỗi. Broker sẽ quản lý,
theo dõi mọi phiên làm việc của các nội dung, kênh và client có trao đổi nội dung
trên nó.
Client: Công việc của client là xuất bản hoặc đăng ký nhiều kênh khác
nhau.
Publisher: Có chức năng truyền tải thông điệp, tin nhắn đến bất kỳ kênh
nào.
Subscriber: Có chức năng nhận thông điệp, tin nhắn từ những kênh đã
đăng ký. Tuy nhiên, thành phần này chỉ có thể nhận dữ liệu từ publisher khi đã
đăng ký chính xác kênh tương ứng.
Về cơ chế hoạt động, MQTT hoạt động theo cơ chế Client/ Server nơi mà
mỗi cảm biến là một Client và được kết nối tới máy chủ. Nó có thể như một máy
chủ môi giới và thông qua giao thức TCP (Transmission Control Protocol).
Broker chịu trách nhiệm điều phối toàn bộ thông điệp giữa phía gửi đến đúng
phía nhận.
MQTT là một giao thức định hướng bản tin mà trong đó, mỗi bản tin mà
một đoạn rời rạc của tín hiệu và broker không thể nhìn thấy. Các bản tin được
publish một địa chỉ tương ứng và có thể hiểu như một kênh (topic). Client đăng
ký vào một hoặc nhiều kênh để nhận và gửi dữ liệu. Mỗi Client sẽ nhận được dữ
liệu khi bất kỳ trạm nào khác gửi dữ liệu vào kênh đã đăng ký (bản tin được gửi
tới một kênh nào đó gọi là publish).
4. Một số khái niệm liên quan đến MQTT:
MQTT – Publish/Subscribe (Xuất bản/Đăng ký):
5
Khi giao thức MQTT hoạt động, những MQTT client (hay còn được gọi là
node trạm) sẽ kết nối với một broker (MQTT server). Các node trạm sẽ đăng ký
với
một
vài
kênh
(Topic).
Chẳng
hạn
như:
“/client1/channel1”,
“/client2/channel2”. Hoạt động này được gọi là Subscribe (Đăng ký). Bạn có thể
hình dung quá trình này tương tự như việc bạn đăng ký một kênh trên Youtube.
Khi ấy, những dữ liệu và kênh đã Subscribe sẽ được gửi đến mỗi client thông qua
các note trạm. Quá trình client gửi dữ liệu đến một kênh gọi là Publish (Xuất bản).
MQTT – Message (Tin nhắn):
Tin nhắn trong giao thức MQTT được định dạng theo kiểu plain-text. Tuy
nhiên, người dùng có thể tùy chỉnh tin nhắn thành các định dạng khác. Message
là những thông tin trao đổi giữa các thiết bị của bạn. Chúng có thể là lệnh hoặc
dữ liệu.
MQTT – Topic (Kênh):
Chủ đề là một trong những khái niệm quan trọng trong giao thức MQTT.
Cúng được xem là “sợi dây nối kết” giữa Publish (xuất bản) và Subscribe (đăng
ký). Nếu một tin nhắn được xuất bản trong một kênh, những người đăng ký kênh
ấy sẽ nhận được tin nhắn này. Những kênh này trình bày theo dạng chuỗi và phân
tách với nhau bởi dấu gạch chéo (/). Trong đó, mỗi dấu gạch chéo biểu thị một
cấp độ của kênh. Điển hình như việc bạn tạo kênh cho tivi trong văn phòng tại
nhà của mình: home/office/tivi.
Bạn cần lưu ý, những kênh này có sự phân biệt giữa chữ hoa và chữ thường.
Chẳng hạn như: home/office/tivi sẽ khác với home/office/Tivi. Bên cạnh đó, thông
qua giao thức MQTT, bạn có thể khai báo các kênh cấp bách.
Ví dụ bạn sử dụng hệ thống cảm biến đo thông tin môi trường trong nhà.
Tùy theo số lượng căn phòng trong ngôi nhà của bạn sẽ có bộ cảm biến môi
6
trường riêng. Vậy, kênh truyền tải thông tin môi trường trong nhà bạn sẽ được
khai báo như sau:
home/bedroom/temperature: kênh thông tin về độ ẩm trong phòng ngủ
home/living-room/humidity: kênh thông tin về độ ẩm trong phòng khách
MQTT – QoS:
QoS là từ viết của cụm Qualities of Service (tạm dịch: chất lượng dịch vụ).
Người dùng có 3 lựa chọn khi Publish và Subscribe:
QoS0: Broker và client sẽ gửi dữ liệu duy nhất 1 lần dựa trên giao thức
TCP/IP.
QoS1: Broker và client được phép gửi dữ liệu tối thiểu 1 lần và nhận xác
nhận từ đầu kia
QoS2: Broker và client gửi dữ liệu và đầu bên kia chỉ nhận đúng 1 lần.
Hoạt động này thông qua 4 bước bắt tay.
MQTT – Retain
Trong giao thức MQTT, retain đóng vai trò là flag (lá cờ) gắn cho một tin
nhắn. Bên cạnh đó, retain chỉ nhận những giá trị là 0 hoặc 1 (tương tự như giá trị
false hoặc true). Trong đó, nếu retain là 1, broker sẽ giữ lại tin nhắn cuối cùng
của 1 kênh kèm theo QoS tương ứng. Client sẽ nhận được tin nhắn ấy khi đăng
ký vào kênh chứa tin nhắn được lưu lại.
MQTT – Bridge
Đây là một tính năng quan trọng của MQTT broker. Chúng có vai trò giúp
MQTT broker kết nối và trao đổi dữ liệu với nhau. Tính năng này chỉ được thực
hiện khi có ít nhất 2 broker. Trong đó, có một broker sẽ biến đổi thành bridge với
những thông số sau:
7
Address: Tên địa chỉ broker cần kết nối
Bridge_protocol_version: Phiên bản mới của MQTT được sử dụng cho 2
broker
Topic: Bao gồm: tên topic được trao đổi giữa 2 broker, chiều trao đổi và
topic mapping giữa 2 broker
5. Mô tả dữ liệu trong một giao tiếp của MQTT:
Các bit trong một byte được gán nhãn từ 7 đến 0. Bit số 7 là bit quan trọng
nhất, bit ít quan trọng nhất được gán số bit 0.
Giá trị “Hai bit số nguyên” dữ liệu là các số nguyên không dấu 16 bit theo
thứ tự big-endian: byte thứ tự cao đứng trước byte thứ tự thấp hơn. Điều này có
nghĩa là một từ 16 bit được trình bày trên mạng dưới dạng Byte quan trọng nhất
(MSB), tiếp theo là Byte ít quan trọng nhất (LSB).
Giá trị “Bốn bit số nguyên” dữ liệu là các số nguyên không dấu 32 bit theo
thứ tự big-endian: byte thứ tự cao đứng trước byte thứ tự thấp hơn liên tiếp. Điều
này có nghĩa là một từ 32 bit được trình bày trên mạng dưới dạng Byte quan trọng
nhất (MSB), tiếp theo là Byte quan trọng nhất tiếp theo (MSB), tiếp theo là Byte
quan trọng nhất tiếp theo (MSB), tiếp theo là Byte ít quan trọng nhất (LSB).
Các trường văn bản trong Gói điều khiển MQTT được mô tả sau này được
mã hóa dưới dạng chuỗi UTF-8. UTF-8 [RFC3629] là một mã hóa hiệu quả các
8
ký tự Unicode tối ưu hóa việc mã hóa các ký tự ASCII để hỗ trợ giao tiếp dựa
trên văn bản. Mỗi chuỗi này được bắt đầu bằng một trường độ dài hai Byte số
nguyên cung cấp số byte trong chính chuỗi được mã hóa UTF-8, Cấu trúc của
Chuỗi được mã hóa UTF-8 bên dưới. Do đó, kích thước tối đa của Chuỗi được
mã hóa UTF-8 là 65,535 byte. Trừ khi có quy định khác, tất cả các chuỗi được
mã hóa UTF-8 có thể có bất kỳ độ dài nào trong phạm vi từ 0 đến 65,535 byte.
Hình x: Cấu trúc của chuỗi được mã hóa UTF-8
Kích thước Byte số nguyên được mã hóa bằng cách sử dụng một lược đồ
mã hóa sử dụng một byte duy nhất cho các giá trị lên đến 127. Các giá trị lớn hơn
được xử lý như bảng dưới. Bảy bit quan trọng nhất của mỗi byte mã hóa dữ liệu
và bit quan trọng nhất được sử dụng để cho biết liệu có các byte theo sau trong
biểu diễn hay không. Do đó, mỗi byte mã hóa 128 giá trị và một "bit tiếp tục". Số
byte tối đa trong trường biến Byte số nguyên là bốn. Giá trị được mã hóa phải sử
9
dụng
số
byte
tối
thiểu
cần
thiết
để
đại
diện
cho
giá
trị.
Dữ liệu nhị phân được biểu thị bằng độ dài Số nguyên hai Byte cho biết số
byte dữ liệu, theo sau là số byte đó. Do đó, độ dài của Dữ liệu nhị phân được giới
hạn trong phạm vi từ 0 đến 65,535 Byte.
6. Bảo mật trong MQTT:
Bảo mật trong MQTT được chia thành nhiều lớp. Mỗi lớp có tác dụng ngăn
ngừa các kiểu tấn công khác nhau. Giao thức MQTT được tạo ra với mục đích là
cung cấp giao thức truyền thông thực sự nhẹ và dễ sử dụng cho các ứng dụng
Internet of Things, vì vậy bản thân giao thức chỉ cung cấp một vài cơ chế bảo mật
đơn giản. Nhưng khi triễn khai một dự án thực tế đòi hỏi sự an toàn dữ liệu cao,
thì các tiêu chuẩn bảo mật hiện đại khác sẽ được sử dụng. Thông thường có 3 lớp
bảo mật được sử dụng:
Lớp mạng (Network layer): Sử dụng một mạng bảo mật vật lý hoặc công
nghệ VPN (virtual private network) làm nền tảng cho quá trình giao tiếp giữa các
Client và Broker nhằm cung cấp một kết nối an toàn và đáng tin cậy.
Lớp giao vận (Transport layer): Với mục đích cung cấp tính bảo mật ở lớp
này, TLS/SSL đang được sử dụng rộng rãi để mã hóa dữ liệu. Giao thức bảo mật
này cung cấp sự an toàn cho dữ liệu nhằm đảm bảo không ai có thể đọc trộm nội
dung trong quá trình truyền tin ngoài client và server, ngoài ra giao thức còn sử
10
dụng các chứng chỉ xác thực số nhằm xác thực thông tin ở cả hai phía client và
server.
Lớp ứng dụng (Application layer): Nếu ở lớp giao vận có thể đảm bảo rằng
thông tin liên lạc giữa Client và Server được mã hóa và có thể xác thực thông tin
lẫn nhau thì ở lớp ứng dụng giao thức MQTT cung cấp hình thức bảo mật đó là
sử dụng định danh máy khách (Client identifier) và thông tin đăng nhập
username/password. Việc triển khai các thuộc tính bảo mật này nhằm kiểm soát
quyền truy cập của các client nằm trong quyền hạn của MQTT broker. Ngay cả
khi không có mã hóa tầng giao vận, thì bảo mật lớp ứng dụng vẫn có khả năng
giúp cho thông tin truyền đi được bảo mật bằng cách sử dụng cơ chết mã hóa nội
dung gói tin (payload encryption).
7. Ưu điểm của MQTT
Từ lịch sử hình thành của nó, bạn có thể thấy giao thức MQTT thường
dùng trong hệ thống SCADA (Supervisory Control And Data Acquisition). Vậy
nó mang tới những lợi ích nào cho các tổ chức, doanh nghiệp và hệ thống? Có
thể kể tới một số ưu điểm sau của MQTT:
•
•
•
•
•
•
Truyền thông điệp đơn giản, hiệu quả.
Làm giảm lượng tiêu thụ băng thông mạng.
Chi phí triển khai thấp.
Cung cấp các giải pháp an toàn, bảo mật cho người dùng.
Không tốn quá nhiều thời gian phát triển.
Phù hợp cho các ngành như do thám, dầu khí, hệ thống công nghệ lớn
nhiều người dùng,…
• Tối đa hóa lượng băng thông có sẵn của hệ thống.
• Thu thập nhiều dữ liệu và thông tin hơn trong khi không tiêu tốn quá
nhiều tài nguyên.
• Có khả năng mở rộng trong tương lai.
Vậy nên MQTT thường đường dùng ở những nơi có giá mạng đắt đỏ
hoặc hệ thống có lượng người dùng truy cập lớn. Nó là giải pháp được các
doanh nghiệp lựa chọn vì chi phí phát triển thấp mà hiệu quả đạt được lại cao.
8. Hạn chế của MQTT
11
• MQTT có chu kỳ truyền dữ liệu chậm hơn so với một số giao thức khác
như CoAP.
• MQTT không được mã hóa trực tiếp, tên người dùng và mật khẩu được
gửi dưới dạng văn bản rõ ràng. Thay vào đó, giao thức sử dụng TLS/SSL
để bảo mật. SSL/TLS không phải là giao thức nhẹ.
• Rất khó để tạo ra một mạng MQTT mở rộng toàn cầu.
• Các thách thức MQTT khác liên quan đến khả năng tương tác và xác
thực.
9. So sánh MQTT với HTTP
MQTT và HTTP là hai giao thức truyền thông phổ biến trong lĩnh vực IoT.
Chúng có một số điểm giống nhau và khác nhau như sau:
•
Điểm giống nhau: Cả hai giao thức đều sử dụng TCP/IP làm giao thức
vận chuyển và có thể mã hóa dữ liệu bằng SSL/TLS để bảo mật.
•
Điểm khác nhau:
o MQTT là giao thức nhẹ và sử dụng mô hình xuất bản và đăng ký
(publish-and-subscribe) để truyền dữ liệu giữa các thiết bị IoT.
MQTT có tiêu đề tin nhắn rất ngắn (chỉ 2 byte) và có ba cấp độ
chất lượng dịch vụ (QoS) để đảm bảo giao nhận tin nhắn. MQTT
cũng hỗ trợ tin nhắn cuối cùng (last will) và tin nhắn được giữ lại
(retained message) để cải thiện tính sẵn sàng của hệ thống
o HTTP là giao thức truyền siêu văn bản và sử dụng mô hình yêu cầu
và phản hồi (request-and-response) để truyền dữ liệu giữa máy
khách và máy chủ web. HTTP có tiêu đề tin nhắn dài và kích thước
tin nhắn lớn hơn MQTT. HTTP không có cơ chế QoS hay tin nhắn
cuối cùng hay tin nhắn được giữ lại
10.Ứng dụng của MQTT
MQTT là một giao thức nhắn tin dựa trên các tiêu chuẩn hoặc một bộ các
quy tắc được sử dụng cho việc giao tiếp máy với máy. MQTT có một số ứng
dụng như sau:
•
•
Facebook Messenger: Trò chuyện trực tuyến chính là ứng dụng được sử
dụng. MQTT giúp duy trì kết nối luôn bật và truyền tin nhắn nhanh chóng
và đáng tin cậy
Amazon Web Services: AWS IoT sử dụng MQTT làm giao thức chính
cho các tin nhắn từ xa. MQTT giúp kết nối hàng triệu thiết bị IoT với
12
•
•
•
đám mây và hỗ trợ các tính năng như tin nhắn cuối cùng, tin nhắn được
giữ lại và QoS
Các tổ chức không gian địa lý: Sensor Things API là một tiêu chuẩn quốc
tế cho việc kết nối các cảm biến và thiết bị IoT với các ứng dụng không
gian địa lý. MQTT được sử dụng làm giao thức truyền thông cho Sensor
Things API
Adafruit: Adafruit cung cấp một MQTT miễn phí cho các nhà phát triển
IoT. MQTT giúp kết nối các thiết bị với Adafruit IO, một nền tảng điện
toán đám mây cho IoT
Microsoft Azure: Azure IoT Hub sử dụng MQTT làm giao thức chính
cho các tin nhắn từ xa. MQTT giúp kết nối các thiết bị với Azure IoT
Hub và hỗ trợ các tính năng như QoS, tin nhắn cuối cùng và tin nhắn
được giữ lại
11.Các giao thức cạnh tranh với MQTT
Các giao thức cạnh tranh với MQTT là những giao thức khác được sử dụng cho
các ứng dụng IoT. Một số giao thức phổ biến là:
•
•
•
CoAP - Constrained Application Protocol: là một giao thức sử dụng kiểu
giao tiếp request/response (yêu cầu/phản hồi). CoAP được thiết kế cho
các thiết bị IoT có tài nguyên hạn chế và hoạt động trên UDP. CoAP hỗ
trợ các tính năng như phát hiện thiết bị, quan sát tài nguyên và bảo mật
AMQP - Advanced Message Queuing Protocol: là một giao thức sử dụng
kiểu giao tiếp publish/subscribe (xuất bản/đăng ký). AMQP được thiết kế
cho các ứng dụng phân tán và đòi hỏi độ tin cậy cao. AMQP hoạt động
trên TCP và hỗ trợ các tính năng như xác thực, mã hóa, định tuyến và xác
nhận
HTTP - Hypertext Transfer Protocol: là một giao thức sử dụng kiểu giao
tiếp request/response (yêu cầu/phản hồi). HTTP được thiết kế cho các
ứng dụng web và hoạt động trên TCP. HTTP hỗ trợ các tính năng như bộ
nhớ đệm, điều hướng, mã hóa và nén
13
II.
Mô phỏng giao thức MQTT bằng Cisco Packer Tracer:
Hệ thống của chúng em được thể hiện tổng quát như sau:
Về phía sever, gán địa chỉ IP là 192.168.0.1
Publisher 1 - Ở đây là smartphone1 được gán địa chỉ ip 192.168.0.2,
Publisher 0 là 192.168.0.4, và subcriber là 192.168.0.3
Phần mềm Packet Tracẻ hỗ trợ lập trình MQTT theo quy trình như sau:
- Chọn End Devices => Sever
- Vào mục Programming => New
Ta ra được giao diện sau
14
- Tiếp tục chọn MQTT Broker – Python => Create
- Chọn Main.py => Install to desktop => run
15
Quay lại phần Desktop ta thấy giao diện Broker vừa được tạo:
16
Giao diện Broker của hệ thống như sau:
17
Người dùng có thể sử dụng Username – Password để kết nối vào Broker
(ở đây đã được tạo sẵn: tslvm – 123)
Về phía Publisher 0 gồm 1 SBC được kết nối với cảm biến nhiệt độ, liên
tục publish sang Subcriber với topic là nhietdo, Payload là giá trị đo được của
cảm biến. Qos là 1.
Tiếp theo, vào Subcriber 1 => Client
Đây là giao diện đã kết nối Client với Broker và đã đăng ký topic Nhietdo
Tiếp tục vào lại Subcriber 2 để kết nối với Broker
Xuống dưới giao diện sẽ thấy được các gói tin được publish
18
Đây là giao diện giao tiếp gửi và nhận các gói tin giữa Client và Broker
Tiếp theo là phần hoạt động của Publisher 1 bao gồm 1 smartphone kết
nối với Access Point.
Phía SBC 1 được lập trình khi nào nhận được gói tin có các Topic
Den,Quat thì nếu nội dung được gửi đến là On thì bật lên, là Off thì tắt đi
19
Tiếp tục vào phần MQTT Client của SBC 1 đăng ký cho 2 topic Den và
Quat
20
Sau đó vào phần MQTT Client của publisher để gửi các gói tin
Đầu tiên là gói tiên với Topic là Den, nội dung là On, đèn sẽ sáng
21
Ngược lại khi nội dung là Off, đèn tắt.
Tiếp tục với Topic Quat, nội dung là On, quạt sẽ quay.
22
Ngược lại khi nội dung là Off, quạt tắt.
23
Đây là các gói tin trong quá trình giao tiếp giữa các Client và Broker.
24
Download