ฉันจะไม่คาดหวังที่แตกต่างกันจะมีความสำคัญมากเกินไปเมื่อการเชื่อมต่อการตั้งค่า
รายละเอียดของค่าใช้จ่ายที่ TLS ผลิตทั่วไปสามารถพบได้ที่นี่ บิตที่สำคัญคือ:
- ค่าใช้จ่ายโดยรวมในการสร้างเซสชัน TLS ใหม่มีค่าเฉลี่ยประมาณ 6.5k ไบต์
- ค่าใช้จ่ายโดยรวมเพื่อดำเนินการเซสชัน TLS ที่มีอยู่ต่อมาโดยเฉลี่ยประมาณ 330 ไบต์
- ค่าใช้จ่ายทั้งหมดของข้อมูลที่เข้ารหัสมีค่าประมาณ 40 ไบต์ (20 + 15 + 5)
- เป็นการง่ายที่จะแก้ไขการคำนวณข้างต้นเพื่อสะท้อนถึงความเฉพาะเจาะจงของสภาพแวดล้อมได้อย่างแม่นยำมากขึ้นดังนั้นสิ่งนี้จึงควรพิจารณาเป็นพื้นฐานสำหรับค่าใช้จ่าย TLS และไม่ใช่คำตอบที่เชื่อถือได้สำหรับคำถามที่วางไว้
มันควรค่าแก่การอ่านเพื่อดูว่าตัวเลขเหล่านี้ถูกคำนวณอย่างไร - คุณควรเข้าใจอย่างถ่องแท้ว่า TLS ทำงานอย่างไร ดังที่ระบุไว้ในคำตอบอื่น ๆ การส่งสัญญาณวิทยุน่าจะเป็นหนึ่งในการใช้พลังงานที่ยิ่งใหญ่ที่สุดซึ่งมักจะเป็นข้อ จำกัด ใน IoT ดังนั้นเมื่อมีการสร้างเซสชันค่าใช้จ่ายจะไม่สำคัญเกินไปโดยเฉพาะถ้าข้อความของคุณ ไม่สั้นนิดหน่อย
ตามที่ระบุไว้โดย HiveMQ ในบทความTLS มีผลต่อประสิทธิภาพการทำงานของ MQTT อย่างไร :
ข่าวดีก็คือว่าลูกค้า MQTT เพียงแค่ต้องสร้างการเชื่อมต่อหนึ่งครั้งต่อเซสชั่น - ในทางตรงกันข้ามกับโปรโตคอลเช่น HTTP ซึ่งจะต้องสร้างการเชื่อมต่อใหม่ในทุกคำขอ (ถ้าไม่มีการรักษาไว้ใช้หรือเทคนิคอื่น ๆ เช่นลอง มีการลงคะแนนเลือกตั้งแล้ว) เมื่อเชื่อมต่อกับนายหน้าลูกค้าสามารถส่งและรับข้อความโดยไม่มีการจับมือกันเพิ่มเติม การใช้ TLS ต้องจัดสรรบัฟเฟอร์เพิ่มเติมดังนั้นปริมาณการใช้ RAM จึงสูงขึ้นเล็กน้อยต่อการเชื่อมต่อ MQTT
พวกเขายังให้กราฟของการใช้งาน CPU บนนายหน้าเมื่อ 50,000 ลูกค้าเชื่อมต่อ:
แหล่งที่มาของรูปภาพ: HiveMQ (ดูบทความที่เชื่อมโยงด้านบน)
ทำบันทึกที่ว่านี้เป็นเกือบแน่นอนไม่ได้มีรูปแบบการใช้งานทั่วไป แต่ข้อมูลที่เป็นที่น่าสนใจ แต่อย่างไรก็ตาม อย่างที่คุณเห็นมีค่าใช้จ่ายจำนวนมากในขณะที่การจับมือกำลังดำเนินการอยู่ แต่หลังจากนั้นโอเวอร์เฮดของ CPU เกือบจะเหมือนกัน ฉันคาดหวังสิ่งที่คล้ายกันกับลูกค้า
ยังคงคำแนะนำทั่วไปที่นี่ถูกต้อง: มาตรฐานที่วางแผนไว้จะไม่ให้ข้อมูลที่คุณต้องการจริงๆ เพื่อทราบว่า TLS จะส่งผลต่อกรณีการใช้งานของคุณอย่างไรคุณต้องทดสอบใน ... กรณีการใช้งานของคุณ !