-4
我已經從一臺服務器運行一些流量到另一臺服務器。在第一種情況下,數據包通過TCP協議發送。在另一種情況下,數據包通過MQTT協議(也通過TCP運行)發送。通過MQTT交換場景,當我僅使用TCP時,從server1發送到server2的數據包比從servier1發送到server2的數據包高出3倍。爲什麼MQTT比TCP發送更多的數據包?
我已經從一臺服務器運行一些流量到另一臺服務器。在第一種情況下,數據包通過TCP協議發送。在另一種情況下,數據包通過MQTT協議(也通過TCP運行)發送。通過MQTT交換場景,當我僅使用TCP時,從server1發送到server2的數據包比從servier1發送到server2的數據包高出3倍。爲什麼MQTT比TCP發送更多的數據包?
它取決於更高級別的協議(TCP上方)。 MQTT協議會爲QOS 1發送PUBACK,因此會將來自有效負載發送的數據包數加倍。 你的協議是祕密的,所以我們不能評論它。 Wireshark PCAP將允許您診斷不平衡。
您的問題與物聯網有何關係?並非所有接觸網絡,連接或服務器的東西都與物聯網有關。我沒有看到任何關係。如果沒有其他信息,請刪除IoT標籤。 – quetzalcoatl
也是,因爲你承認這個mqtt實現是通過tcp運行的,我希望發送的數據包的數量至少與使用直接tcp的通信相同或更高。爲什麼是3倍?我不知道。也許它只是額外包裝的大小,或者這可能是一些訂閱/取消訂閱的消息。誰知道。這是你的應用程序,你沒有說它是如何運行的或者通過電線發送了什麼。你甚至沒有說過應用程序中的網絡背後的概念或計劃。我們如何猜測?在此期間,也許只是抓住Wireshark併爲你自己看? – quetzalcoatl
您需要提供更多信息以獲得正確答案。有效載荷有多大,您使用的是什麼QOS,您發佈的主題是什麼,您爲Keepalive值設置了什麼? – hardillb