It was bound to happen… And this is likely not the last time…
I need to make some big changes to the protocol in order to efficiently support some new ideas I came up with in the Transport Layer.
I’ve made big changes in the protocol before, but not since I published the spec. Fortunately, nobody seems to have read the spec all the way through yet! Yay??? 🙂
For anyone who happens to have read the spec or is planning to, this post summarizes the changes I’m working on.
- I came up with the simple idea to support µPackets in the un-allocated slots between IsoStreams. Since they’re required to be small, µPackets can have really low latency.
- I wanted to make Link Tunnels easy to run over an EccFlow, which have a dynamic word-rate. I found that it was a lot easier to support this with every slot having a single slot word-rate (the minimum word-rate for that link). µPackets used to start an IsoStream made this easier to support. This is also likely to make hardware implementations easier.
- Scaling up to higher word-rates is easy with a link-layer µPacket at the start of the IsoStream that defines the number of slots to use for the IsoStream.
- 16-bit words were too limiting and wasteful. 128-bit words are more useful and likely to be more efficient.
- In-band signals can mess up nicely timed word-rates. It’s easy to replace in-band signals with µPackets.
- Naming a route is a fantastic way to avoid having to send the route over and over again on IsoStreams. µPackets are great for naming a route using a relative slot number.
- µPackets can also use named routes!
None of these changes seem to have any big socio-economic repercussions. But let me know if you disagree and I’ll reconsider 🙂
I’ve got a lot of raw notes for these changes, but it’s not in the spec yet. I’ll be working on getting that done in the next few weeks.