X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=blobdiff_plain;f=doc%2Fsp.texi;h=36f5cc794d32ced78508a4e99c718fa45cfea69a;hp=e7f4895c67f43c539915046887c1252d2de573b2;hb=203dfe36da7adf2b3089e4fa4017a67409cbad70;hpb=152ecfdf11766df967a504efaef7b5ba77e6f5d7 diff --git a/doc/sp.texi b/doc/sp.texi index e7f4895..36f5cc7 100644 --- a/doc/sp.texi +++ b/doc/sp.texi @@ -1,10 +1,14 @@ @node Sync +@cindex sync protocol +@cindex online protocol +@cindex synchronization @unnumbered Synchronization protocol So-called synchronization protocol (SP) is used in current TCP daemon's implementation. It is used for synchronizing @ref{Spool, spool} directory contents between two nodes. +@cindex XMODEM It is aimed to be very simple and effective. It uses reliable transport like TCP connections. It must be effective both on single-duplex and full-duplex links: for example satellites have very high throughput but @@ -12,11 +16,13 @@ high-delay links, so acknowledging of each received packet, like @url{https://en.wikipedia.org/wiki/XMODEM, XMODEM} does, causes unacceptable performance degradation. +@vindex NNCPDEADLINE Internally it uses various timeouts and deadlines. One of them used extensively is 10 seconds default deadline timeout. You can override it with @env{$NNCPDEADLINE} environment variable, that could be useful with very high delay links. +@cindex Noise-IK SP works on top of @url{http://noiseprotocol.org/noise.html#interactive-patterns, @code{Noise_IK_25519_ChaChaPoly_BLAKE2b}} protocol. Each Noise packet @@ -54,6 +60,7 @@ just an unsigned integer telling what body structure follows. @table @emph +@cindex HALT payload @item HALT Stop file transmission, empty sending queue on the remote side. Actually @emph{HALT} packet does not have any body, only the header @@ -66,6 +73,7 @@ just an unsigned integer telling what body structure follows. +------+ @end verbatim +@cindex PING payload @item PING Dummy packet only used for determining workability of the connection. @@ -75,6 +83,7 @@ just an unsigned integer telling what body structure follows. +------+ @end verbatim +@cindex INFO payload @item INFO Information about the file we have for transmission. @@ -97,6 +106,7 @@ just an unsigned integer telling what body structure follows. Unique file identifier, its checksum @end multitable +@cindex FREQ payload @item FREQ File transmission request. Ask remote side to queue the file for transmission. @@ -117,6 +127,7 @@ just an unsigned integer telling what body structure follows. Offset from which remote side must transmit the file @end multitable +@cindex FILE payload @item FILE Chunk of file. @@ -139,6 +150,7 @@ just an unsigned integer telling what body structure follows. Chunk of file itself @end multitable +@cindex DONE payload @item DONE Signal remote side that we have successfully downloaded the file.