# numbers_log for 005-unit5-networking (rerun 2026-10-11 02:10)

===== analysis_numbers.py (exit 0, 1.0 s)
-- application message sizes (bytes)
MQTT PUBLISH qos0/1/2: 29 31 31 ; CONNECT: 19 ; CONNACK 4, PUBACK 4, DISCONNECT 2, PINGREQ 2
HTTP request: 119 response: 46 (minimal headers)
CoAP POST: 32 bytes; hex 40020001ba677265656e686f757365057a6f6e653104736f696c10ff31383332
overhead bytes beyond the 4-byte payload: HTTP 115  MQTT qos0 25  CoAP 28
-- wire bytes per reading (40 B IP+TCP per packet, 28 B IP+UDP; no TLS)
http_fresh               525 B   per day at 1/min:    756.0 kB   payload share 0.76 percent
mqtt_fresh_q0            494 B   per day at 1/min:    711.4 kB   payload share 0.81 percent
mqtt_fresh_q1            540 B   per day at 1/min:    777.6 kB   payload share 0.74 percent
mqtt_fresh_q2            628 B   per day at 1/min:    904.3 kB   payload share 0.64 percent
mqtt_persistent_q1       115 B   per day at 1/min:    165.6 kB   payload share 3.48 percent
mqtt_persistent_q0        69 B   per day at 1/min:     99.4 kB   payload share 5.80 percent
coap                      92 B   per day at 1/min:    132.5 kB   payload share 4.35 percent
MQTT persistent keep-alive: PINGREQ+PINGRESP 84 B per 60 s = 120.96 kB/day
-- round trips (RTT 40 ms ASSUMED): http fresh 2 (TCP 1 + request 1), mqtt fresh qos1 3 (TCP 1 + CONNECT 1 + PUBLISH 1), coap 1; times ms: 80 120 40
-- link budget (free space). ASSUMED TX power dBm / sensitivity dBm / rate / TX current mA
Wi-Fi 2.4 GHz        budget  110 dB  free-space range      3.14 km  FSPL at 50 m   74.0 dB  100 B simplified airtime      0.13 ms  energy      0.09 mJ
BLE 1 Mb/s           budget   95 dB  free-space range      0.56 km  FSPL at 50 m   74.0 dB  100 B simplified airtime      0.80 ms  energy      0.03 mJ
Zigbee 250 kb/s      budget  100 dB  free-space range      0.99 km  FSPL at 50 m   74.0 dB  100 B simplified airtime      3.20 ms  energy      0.26 mJ
LoRa SF7 868 MHz     budget  137 dB  free-space range    194.58 km  FSPL at 50 m   65.2 dB  100 B simplified airtime    146.25 ms  energy     19.31 mJ
LoRa SF12 868 MHz    budget  151 dB  free-space range    975.19 km  FSPL at 50 m   65.2 dB  100 B simplified airtime   2730.38 ms  energy    360.41 mJ
FSPL 2.4 GHz at 50 m: 74.0  868 MHz at 5 km: 105.2
-- QoS cost vs loss (unlimited retries, expected packets per message; QoS1 duplicates p/(1-p))
p=0.0: expected 1.00 2.00 4.00 | simulated qos1 2.00 qos2 4.00 | qos1 duplicates 0.000 (theory 0.000) qos2 duplicates 0.000
p=0.1: expected 1.00 2.35 4.69 | simulated qos1 2.34 qos2 4.69 | qos1 duplicates 0.110 (theory 0.111) qos2 duplicates 0.000
p=0.3: expected 1.00 3.47 6.94 | simulated qos1 3.47 qos2 6.91 | qos1 duplicates 0.428 (theory 0.429) qos2 duplicates 0.000
p=0.5: expected 1.00 6.00 12.00 | simulated qos1 6.01 qos2 12.00 | qos1 duplicates 1.005 (theory 1.000) qos2 duplicates 0.000
-- delivery with at most 3 attempts per phase
p=0.1: delivered qos0 0.900 qos1 0.999 qos2 0.992; packets qos1 2.33 qos2 4.64
p=0.3: delivered qos0 0.701 qos1 0.973 qos2 0.846; packets qos1 3.01 qos2 5.61
p=0.5: delivered qos0 0.500 qos1 0.872 qos2 0.506; packets qos1 3.46 qos2 5.47

===== fig01_stack.py (exit 0, 0.7 s)


===== fig02_bytes.py (exit 0, 0.8 s)
[('HTTP\nPOST', 119), ('MQTT\nQoS 0', 29), ('MQTT\nQoS 1', 31), ('CoAP\nPOST', 32)] [('HTTP,\nnew TCP', 525), ('MQTT QoS 1,\nnew TCP', 540), ('MQTT QoS 1,\nkept open', 115), ('CoAP,\nUDP', 92)]

===== fig03_wireless.py (exit 0, 1.1 s)


===== fig04_qos.py (exit 0, 1.2 s)
delivered at p=0.3: [0.702, 0.973, 0.844]

===== fig05_pubsub.py (exit 0, 0.7 s)


===== fig06_packet.py (exit 0, 0.7 s)
31 321d0015677265656e686f7573652f7a6f6e65312f736f696c000131383332 [(0, 1, 'type 3 + flags (QoS 1)'), (1, 2, 'remaining length 29'), (2, 4, 'topic length 21'), (4, 25, 'topic: greenhouse/zone1/soil (21 bytes)'), (25, 27, 'packet id 1'), (27, 31, 'payload 1832')]
