We have simulated this where the receivers shut down periodically. This is to simulate different scenarios like a self-driving car going through a tunnel, or a satellite going out of reach of a receiver, etc.
{
"experiments": [
{
"channel": {
"latency": 1,
"loss": [
0,
1,
2,
3,
4,
5
]
},
"perpetual": {
"decoder": {
"block_bytes": 100000,
"deactivate_threshold": 0.75,
"packet_bytes": 100,
"width": 3
},
"encoder": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1,
"width": 3
}
},
"retransmitter": {
"receiver": {
"block_bytes": 100000,
"deactivate_threshold": 0.75,
"packet_bytes": 100
},
"sender": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1
}
},
"runs": 20,
"seed": 1635849203.4645057,
"users": 100
}
],
"name": "perpetual_retransmitter",
"plot": {
"colors": {
"perpetual": "#ed4969",
"retransmitter": "#386cb0"
},
"legends": {
"perpetual": "Perpetual",
"retransmitter": "Retransmitter"
}
}
}
{
"experiments": [
{
"channel": {
"latency": 1,
"loss": [
0,
1,
2,
3,
4,
5
]
},
"perpetual": {
"decoder": {
"block_bytes": 100000,
"deactivate_threshold": 0.75,
"packet_bytes": 100,
"width": 3
},
"encoder": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1,
"width": 3
}
},
"retransmitter": {
"receiver": {
"block_bytes": 100000,
"deactivate_threshold": 0.75,
"packet_bytes": 100
},
"sender": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1
}
},
"runs": 20,
"seed": 1635849203.4645057,
"users": 100
}
],
"name": "perpetual_retransmitter",
"plot": {
"colors": {
"perpetual": "#ed4969",
"retransmitter": "#386cb0"
},
"legends": {
"perpetual": "Perpetual",
"retransmitter": "Retransmitter"
}
}
}
{
"experiments": [
{
"channel": {
"latency": 1,
"loss": [
0,
1,
2,
3,
4,
5
]
},
"perpetual": {
"decoder": {
"block_bytes": 100000,
"deactivate_threshold": 0.5,
"packet_bytes": 100,
"width": 3
},
"encoder": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1,
"width": 3
}
},
"retransmitter": {
"receiver": {
"block_bytes": 100000,
"deactivate_threshold": 0.5,
"packet_bytes": 100
},
"sender": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1
}
},
"runs": 20,
"seed": 1635854339.4228475,
"users": 100
}
],
"name": "perpetual_retransmitter",
"plot": {
"colors": {
"perpetual": "#ed4969",
"retransmitter": "#386cb0"
},
"legends": {
"perpetual": "Perpetual",
"retransmitter": "Retransmitter"
}
}
}
{
"experiments": [
{
"channel": {
"latency": 1,
"loss": [
0,
1,
2,
3,
4,
5
]
},
"perpetual": {
"decoder": {
"block_bytes": 100000,
"deactivate_threshold": 0.5,
"packet_bytes": 100,
"width": 3
},
"encoder": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1,
"width": 3
}
},
"retransmitter": {
"receiver": {
"block_bytes": 100000,
"deactivate_threshold": 0.5,
"packet_bytes": 100
},
"sender": {
"block_bytes": 100000,
"packet_bytes": 100,
"packet_interval": 1
}
},
"runs": 20,
"seed": 1635854339.4228475,
"users": 100
}
],
"name": "perpetual_retransmitter",
"plot": {
"colors": {
"perpetual": "#ed4969",
"retransmitter": "#386cb0"
},
"legends": {
"perpetual": "Perpetual",
"retransmitter": "Retransmitter"
}
}
}
Note that despite the receiver down-periods, Otacast uses fewer packets to complete a file, and that this barely changes with the packet loss. This goes for both cases of down-time.