From 9a7edcd65b6745c011bf05cba46079332efac9e7 Mon Sep 17 00:00:00 2001 From: Monica Moniot Date: Tue, 19 Dec 2023 12:08:43 -0500 Subject: [PATCH] removed unsourced claim --- whitepaper/zssp.pdf | Bin 423914 -> 423834 bytes whitepaper/zssp.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper/zssp.pdf b/whitepaper/zssp.pdf index b0e76805d9c7623f59d440fb06ce0f1d00308c1f..105fab4bedde1daeeac76059a368dc1ac87e2b37 100644 GIT binary patch delta 24537 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 delta 24626 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 Q@?3@nMqH|@uKsRZ0QnE&tpET3 diff --git a/whitepaper/zssp.tex b/whitepaper/zssp.tex index 75262e0..58905f7 100644 --- a/whitepaper/zssp.tex +++ b/whitepaper/zssp.tex @@ -995,7 +995,7 @@ This protocol violates the Silence is Golden principle of security. So we recomm \section{ZeroTier Fragmentation Protocol} -ZSSP supports the partitioning of large packets into smaller fragments, that can each be sent individually between peers, and will be reassembled at the other end. Most datagram protocols have a maximum transmission unit (MTU), that all packets must be smaller than. Fragmentation makes it possible for the upper protocol to send packets much larger than the MTU. The MTU of UDP is inconsistent and can go as low as 1280 bytes. Satellite links can go even smaller, with MTU in the 500 bytes range. While many applications would work with such small MTU, they would not work efficiently, and having such low MTUs even as just a possibility often greatly hinders the design of a protocol, and what platforms it can support. To make real-time networking operate reliably and efficiently on top of links with low MTU, fragmentation is necessary. +ZSSP supports the partitioning of large packets into smaller fragments, that can each be sent individually between peers, and will be reassembled at the other end. Most datagram protocols have a maximum transmission unit (MTU), that all packets must be smaller than. Fragmentation makes it possible for the upper protocol to send packets much larger than the MTU. The MTU of UDP is inconsistent and can go as low as 1280 bytes. And if we consider non-IP networks, MTU can go as low as just a few hundred bytes. While many applications would work with small MTU, they might not work efficiently, and having such low MTUs even as just a possibility often greatly hinders the design of a protocol, and what platforms it can support. To make real-time networking operate reliably and efficiently on top of links with low MTU, fragmentation is necessary. ZFP is responsible for fragmentation within ZSSP. It sits at the very bottom of the ZSSP protocol stack, just above the datagram protocol. We have chosen to put the fragmentation protocol at the bottom of the ZSSP stack, instead of the top for a few reasons. First and foremost it allows key exchange packets to be as large as we need, larger than the MTU of the underlying datagram protocol. This allows us to use P384 and Kyber1024 keys, instead of their smaller and less secure variants. The second reason is that it allows the bandwidth overhead of fragmentation to be extremely small, just 16 bytes per fragment. If the fragmentation protocol were at the top of the stack instead, then each fragment would have required an additional 16 bytes for each MAC. This also benefits efficiency, because it reduces the number of MACs that must be computed and subsequently verified.