Open chrysn opened 3 years ago
Using BERT for cloud internal communication (jumboframes) sounds great.
If there is really interest in standardize using CoAP cloud internal, one of the drawbacks, I was faced, is the limitation by the MID deduplication definition. FMPOV, it doesn't make too much sense, to keep the MIDs (and related message) for up to 240s (or 120s), if mainly a point2point communication is used with many, many messages. In Californium we implemented and alternative approach, using a maximum number of deduplication messages per peer . So far, the experience with that is very promising.
When peers are datacenter-internal, I reckon that a lot of parameters would be used differently (DEFAULT_LEISURE to 0, ACK_TIMEOUT to something about 100ms, maybe also MAX_RETRANSMIT to 2), and then EXCHANGE_LIFETIME goes down by a lot. (Probably FASOR does that much better, with adaequate concern for TSV topics). Also, it probably helps a lot if cheap idempotent processings are declared to the CoAP stack so that the stack can forego deduplication.
What would typical jumboframe sizes be in such cloud-internal contexts?
What would typical jumboframe sizes be in such cloud-internal contexts?
jumbo MTU 9001. So 8192 may be used for BERT.
The way RFC8323 is written defines BERT (ie. using block-wise's szx=7 to mean "indexed at 1024 byte blocks, but may have several of them in the payload") only for reliable transports.
As this would be useful in other applications outside TCP/WS, and as it is unlikely that any other extension to block-wise would scoop up this extension point of RFC7959 for unreliable transports in a different way, I suggest that the next update to 7959 just acknowledge that BERT is universal.
Concrete applications include:
Amortizing block-wise overheads in OSCORE: An OSCORE transfer can be inner- and outer-blockwised independently.
The balancing of the inner block size is currently limited to 16..1024 byte, whereas BERT would open that space up to any multiple of 1024 bytes.
I think that this can be done by just stating things in an update. It'd probably say that for CoAP-over-{TCP,WS} the CSM is the way to agree, and that other transports may define their mechanisms (of which there currently are none) to indicate a non-default maximum.
[edit: github's markdown is weird. probably, all markdown is weird.]