5 See also this page @ref{Новости, on russian}.
12 Fixed buildability under Go 1.19.
15 Minimal required Go version is 1.17.
23 @section Release 8.7.2
27 More intuitive, clear and slightly more flexible behaviour of @command{nncp-rm}.
30 @command{nncp-rm} also removes corresponding @file{hdr/} file for each
36 @section Release 8.7.1
40 @command{nncp-xfer} now correctly checks for @file{seen/} files for
46 @section Release 8.7.0
50 @command{nncp-ack} does not acknowledge ACK-packets, preventing an
54 @command{nncp-ack} previously did not remove corresponding @file{hdr/} files.
57 @command{nncp-rm} now takes list of packet from @code{stdin} when
58 @option{-pkt} option is used.
61 @command{nncp-ack} now generates list of ACK packets it created, that
62 could be used as an input to @command{nncp-rm} to remove outbound ACK
68 @section Release 8.6.0
72 @command{nncp-xfer} checks if locally copied packet's checksum differs
73 from the source's one.
76 @command{nncp-call} has bad return code if its queues contain unfinished jobs.
79 @command{nncp-ack} command appeared, that sends explicit packet receipt
80 acknowledgement (ACK packet). That acknowledgement deletes referenced
81 packet from the outbound spool.
84 Ability to turn @code{fsync} operation off using @env{$NNCPNOSYNC=1}
88 Added various indices in documentation, that should help searching in it.
93 @section Release 8.5.0
97 Fixed @command{nncp-bundle} workability.
100 Mistakenly @option{-mcd-wait} option was enabled by default in
104 Ability to override internal default timeout for online protocol through
105 @env{$NNCPDEADLINE} environment variable. Can be useful for very high
109 NNCP builds on OpenBSD.
114 @section Release 8.4.0
118 Multicast related interface names (@code{mcd-listen} and @code{mcd-send}
119 configuration options) are now regular expressions. By default
120 @command{nncp-cfgnew} uncomments them now with @code{.*} interface name.
123 @command{nncp-call} command has @option{-mcd-wait} option to wait for
124 multicast packet about node's address.
127 @command{nncp-file} command skips everything that is neither regular
128 file nor directory during pax-archive creation.
133 @section Release 8.3.0
137 Fixed building issues on 32-bit systems.
142 @section Release 8.2.0
146 Yggdrasil uses pure-Go IPv6+TCP network stack, instead of naked μTP
147 transport protocol, making it able to work as an ordinary TCP server
148 inside overlay network.
151 Yggdrasil's @code{prv;bind1,bind2;pub@dots{}}-like configuration strings are
152 replaced with URL-like ones (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
155 Ability to pass multicast-related parameters to Yggdrasil configuration.
158 @command{nncp-daemon} is able to listen on both TCP and Yggdrasil-driven
159 sockets simultaneously.
162 @command{nncp-daemon}'s listening on peering endpoint socket is optional
163 -- you can be reached through the peers.
168 @section Release 8.1.0
172 @command{nncp-cfgdir} does not require @code{self} section existence in
176 Ability to act as Yggdrasil network client, using online protocol on top of it.
181 @section Release 8.0.2
185 Fixed sending ability to areas.
190 @section Release 8.0.1
194 Fixed incorrect @code{freq.chunked} value calculation. If it was missed,
195 then chunked transfer mode was forcefully turned on anyway.
198 Fixed incorrect full file's size calculation in @file{.nncp.meta}.
203 @section Release 8.0.0
207 @strong{Incompatible} encrypted packet format change: payload and pad
208 sizes are sent in-bound in the encrypted stream. That gives ability to
209 streamingly create encrypted packets, without knowing sizes in advance,
210 without creating temporary file or buffer data in memory.
213 Proper encrypted packet padding verification is done now. This is not
214 critical issue, but previously neither padding value, nor its size were
215 authenticated, giving ability to iteratively strip trailing bytes and
216 determine payload's size by observing the reaction of the encrypted
220 @command{nncp-exec} loses its @option{-use-tmp} option, because of
221 streaming-compatible encrypted packets format.
224 @command{nncp-file} and @command{nncp-exec} commands have
225 @option{-maxsize} option, limiting maximal resulting encrypted packet's
226 maximal size (returning error if it is exceeded). Could be useful,
227 because no payload size could be known in advance.
232 @section Release 7.7.0
236 Experimental @code{kqueue} and @code{inotify} based notifications
237 support about spool directory changes, for reducing their often reading
241 @file{.seen} and @file{.hdr} files moved to @file{seen/} and @file{hdr/}
242 subdirectories, for faster scanning of spool directories.
243 Current files migration required:
246 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
248 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
251 find . -type f -name "*.seen" | while read fn ; do
252 mv $fn seen/$@{fn%.seen@}
256 $ find $NNCPSPOOL -type d -name area | while read area ; do
257 find $area -type f -name "*.seen" | while read fn ; do
266 @section Release 7.6.0
270 Logging may be done to specified opened file descriptor
271 (@env{$NNCPLOG=FD:5} for example).
272 That is friendly to use under @command{daemontools}.
275 Added additional checks of public keys existence in configuration file,
276 preventing some commands from failing.
281 @section Release 7.5.1
285 NNCP builds on NetBSD.
290 @section Release 7.5.0
294 @command{nncp-daemon} is compatible with UCSPI-TCP interface, so log
295 will contain remote side's address (when running under appropriate
296 utility). @option{-ucspi} option should be used instead of @option{-inetd}.
299 @command{nncp-call} can be UCSPI-TCP client, using @option{-ucspi} option.
302 Do not exit if some of MCD network interfaces can not be listened --
303 only warn about that.
308 @section Release 7.4.0
312 Fixed simultaneous @command{nncp-daemon} and @command{nncp-caller} MCD work.
317 @section Release 7.3.2
321 @command{hjson-cli} utility builds in vendor-mode now.
326 @section Release 7.3.1
330 Fixed possibly left opened file descriptor in online commands.
333 Severely decreased memory usage of MTH hashing.
338 @section Release 7.3.0
342 Fixed some workability problems on 32-bit systems with big files.
345 Ability to use directory with a bunch of files as a configuration.
346 @command{nncp-cfgdir} command appeared.
351 @section Release 7.2.1
355 Small optimizations in online commands.
360 @section Release 7.2.0
364 @command{nncp-trns} command appeared for manual transition packets creation.
367 If destination node of transitional packet has non empty @option{via}
368 route, then do not ignore, but use it.
371 Do not relay multicast packet to area message's originator, that
372 obviously has seen its own packet.
375 Much less memory usage during MTH hashing when offset is zero: when
376 packet is not resumed, but for example checked with @command{nncp-check}
382 @section Release 7.1.1
386 Fixed failing directories @code{fsync} after @file{.seen} file creation.
391 @section Release 7.1.0
395 Multicasting areas feature appeared. Implemented merely by an additional
396 plain packet type with @command{nncp-toss}, @command{nncp-file} and
397 @command{nncp-exec} commands modification.
400 Fixed workability of @command{nncp-file} and @command{nncp-exec}
401 commands, that use temporary file (@code{stdin} and @option{-use-tmp}).
404 Fixed disappearing bad return code in @command{nncp-exec} command.
407 Fixed invalid @file{.hdr} generation when transitional packets are used.
410 @option{-all} option appeared in @command{nncp-rm} command, applying to
411 all the nodes at once.
414 @option{-cycle} option appeared in @command{nncp-check} command, looping
415 the check in infinite cycle.
418 @command{nncp-rm} command can take node alias name.
421 @command{nncp-pkt} can parse @file{.hdr} files.
426 @section Release 7.0.0
430 Minimal required Go version is 1.13.
433 Merkle Tree-based Hashing with BLAKE3 (MTH) is used instead of BLAKE2b.
434 Because of that, there are backward @strong{incompatible} changes of
435 encrypted files (everything laying in the spool directory) and
436 @file{.meta} files of chunked transfer.
438 Current implementation is far from being optimal: it lacks
439 parallelizable calculations and has higher memory consumption: nearly
440 512 KiB for each 1 GiB of file's data. Future performance and memory
441 size optimizations should not lead to packet's format change. But it is
442 still several times faster than BLAKE2b.
445 Resumed online downloads, because of MTH, require reading only of the
446 preceding part of file, not the whole one as was before.
449 @command{nncp-hash} utility appeared for calculating file's MTH hash.
452 BLAKE2 KDF and XOF functions are replaced with BLAKE3 in encrypted
453 packets. Lowering number of used primitives. Also, its encrypted
454 packet's header is used as an associated data during encryption.
457 MultiCast Discovery uses
458 @verb{|ff02::4e4e:4350|} address instead of @verb{|ff02::1|}.
461 @command{nncp-cfgenc} mistakenly asked passphrase three times during encryption.
464 @command{nncp-stat} reports about partly downloaded packets.
467 Updated dependencies.
472 @section Release 6.6.0
476 @command{nncp-daemon}, @command{nncp-call} and @command{nncp-caller}
477 commands wait for all background checksummers completion after
478 connection is finished.
481 Added possibility of address determining through multicast announcement
482 in local area network, so called MCD (MultiCast Discovery).
487 @section Release 6.5.0
491 Fixed segfault in @command{nncp-daemon} when SP handshake did not succeed.
494 Fixed possible bad return code ignoring in automatic tosser.
497 Fixed race during file descriptors closing when online protocol call is
498 finished, that could lead to write error of received packet fragment.
501 Kill all packet transmission progress bars in @command{nncp-daemon},
502 @command{nncp-call} and @command{nncp-caller} when call is finished.
507 @section Release 6.4.0
511 Fixed possible race in online protocol, that lead to panic.
516 @section Release 6.3.0
520 Fixed possible panic while showing progress during online protocol.
525 @section Release 6.2.1
529 Three places in logs contained excess @code{%s}.
534 @section Release 6.2.0
538 Returned @command{nncp-caller}'s @option{-autotoss*} options workability.
541 Yet another logging refactoring and simplification.
542 Should be no visible differences to the end user.
547 @section Release 6.1.0
551 Optimization: most commands do not keep opened file descriptors now.
552 Previously you can exceed maximal number of opened files if you have got
553 many packets in the spool directory.
556 Optimization: do not close file descriptor of the file we download
557 online. Previously each chunk lead to expensive open/close calls.
560 Online downloaded files are saved with @file{.nock} (non-checksummed)
561 suffix, waiting either for @command{nncp-check}, or online daemons to
562 perform integrity check.
565 Optimization: files, that are not resumed, are checksummed immediately
566 during the online download, skipping @file{.nock}-intermediate step.
569 Ability to store encrypted packet's header in @file{.hdr} file, close to
570 the packet itself. That can greatly increase performance of packets
571 listing on filesystems with big block's size.
576 @section Release 6.0.0
580 Log uses human readable and easy machine parseable
581 @url{https://www.gnu.org/software/recutils/, recfile} format for the
582 records, instead of structured RFC 3339 lines. Old logs are not readable
583 by @command{nncp-log} anymore.
586 @option{-autotoss*} option workability with @command{nncp-daemon}'s
587 @option{-inetd} mode.
590 Call's @option{when-tx-exists} allows to make a call only when outbound
591 packets exists. Combined with seconds-aware cron expression that can be
592 used as some kind of auto dialler.
595 @command{nncp-cronexpr} command allows you to check validity and
596 expectations of specified cron expression.
601 @section Release 5.6.0
605 @option{-autotoss*} option runs tosser not after the call, but every
606 second while it is active.
609 @option{autotoss}, @option{autotoss-doseen},
610 @option{autotoss-nofile}, @option{autotoss-nofreq},
611 @option{autotoss-noexec}, @option{autotoss-notrns} options available in
612 @option{calls} configuration section. You can configure per-call
613 automatic tosser options.
616 Use vendoring, instead of @env{$GOPATH} overriding during tarball
617 installation, because current minimal Go's version is 1.12 and it
623 @section Release 5.5.1
627 Respect for @env{$BINDIR}, @env{$INFODIR} and @env{$DOCDIR} environment
628 variables in @file{config} during installation.
633 @section Release 5.5.0
637 Bugfixes in @command{nncp-call(er)}/@command{nncp-daemon},
638 @command{nncp-bundle} and @command{nncp-stat}.
641 @command{nncp-rm} has @option{-dryrun} and @option{-older} options now.
644 @command{nncp-exec} has @option{-use-tmp} and @option{-nocompress}
645 options now. Uncompressed packets are not compatible with previous NNCP
649 @command{nncp-call}, @command{nncp-caller} and @command{nncp-daemon} commands
650 have @option{-autotoss*} options for running tosser after call is ended.
653 Updated dependencies. Minimal required Go version is 1.12.
658 @section Release 5.4.1
662 Fixed @code{SENDMAIL} variable usage during the build.
667 @section Release 5.4.0
671 Updated dependencies.
674 Build system is moved from Makefiles to @url{http://cr.yp.to/redo.html, redo}.
675 This should not influence package maintainers, because minimal @command{redo}
676 implementation is included in tarball.
681 @section Release 5.3.3
685 More various error checks.
688 Updated dependencies.
693 @section Release 5.3.2
697 Fixed incorrect logic of @option{onlinedeadline} timeout, where
698 connection won't take into account incoming packets events and will
699 forcefully disconnect.
704 @section Release 5.3.1
708 Fixed @option{onlinedeadline} workability with call addresses that use
709 external commands (@verb{#"|somecmd"#}).
712 @command{nncp-stat} has @option{-pkt} option displaying information
713 about each packet in the spool.
718 @section Release 5.3.0
722 Progress messages contain prefix, describing the running action.
725 Fixed not occurring handshake messages padding.
728 Finish all SP protocol related goroutines, less memory leak.
731 SP protocol generates less socket write calls, thus generating less TCP
735 Check @option{onlinedeadline} and @option{maxonlinetime} options every
736 second, independently from socket reads (up to 10 seconds).
739 Once per minute, if no other traffic exists, PING packets are sent in
740 SP-connection. That allows faster determining of connection unworkability.
743 @command{nncp-toss} uses lock-file to prevent simultaneous tossing.
748 @section Release 5.2.1
752 Fixed SP protocol error handling, sometimes causing program panic.
757 @section Release 5.2.0
761 Most commands by default show oneline operations progress.
762 @option{-progress}, @option{-noprogress} command line options,
763 @option{noprogress} configuration file option appeared.
766 Fixed incorrect @command{nncp-check} command return code, that returned
767 bad code when everything is good.
770 Free disk space check during @command{nncp-bundle -rx} call.
775 @section Release 5.1.2
779 @strong{Critical} vulnerability: remote peers authentication could lead
780 to incorrect identification of remote side, allowing foreign encrypted
784 Bugfix: private and public Noise keys were swapped in newly created
785 configuration files, that lead to inability to authenticate online peers.
788 Explicit directories @code{fsync}-ing for guaranteed files renaming.
793 @section Release 5.1.1
797 Fixed workability of @command{nncp-file} with @option{-chunked 0} option.
802 @section Release 5.1.0
806 @command{nncp-file} can send directories, automatically creating pax
810 Free disk space is checked during outbound packets creation.
813 @option{freq}, @option{freqminsize}, @option{freqchunked} configuration
814 file options replaced with the structure:
815 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
818 Added @option{freq.maxsize} configuration file option, forbidding of
819 freq sending larger than specified size.
822 Ability to notify about successfully executed commands (exec) with
823 @option{notify.exec} configuration file option.
828 @section Release 5.0.0
832 @strong{Incompatible} configuration file format change: YAML is
833 replaced with Hjson, due to its simplicity, without noticeable lack
834 of either functionality or convenience.
837 @strong{Incompatible} plain packet format changes. Older versions are
838 not supported. @code{zlib} compression is replaced with
839 @code{Zstandard}, due to its speed and efficiency, despite library
840 version is not mature enough.
843 Ability to call remote nodes via pipe call of external command, not only
847 @command{nncp-cfgnew} generates configuration file with many
848 comments. @option{-nocomments} option can be used for an old
852 Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
853 avoid possible collisions with @file{.nncp.chunkCTR}.
856 Ability to override process umask through configuration file option.
859 Files and directories are created with 666/777 permissions by default,
860 allowing control with @command{umask}.
863 Updated dependencies.
866 Full usage of go modules for dependencies management
867 (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
870 Forbid any later GNU GPL version autousage
871 (project's licence now is GNU GPLv3-only).
878 @item Workability on GNU/Linux systems and Go 1.10 is fixed.
886 @strong{Incompatible} encrypted and eblob packet format change: AEAD
887 encryption mode with 128 KiB blocks is used now, because previously
888 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
889 decrypted data to external command. Older versions are not supported.
892 Available free space checking before copying in @command{nncp-xfer},
893 @command{nncp-daemon}, @command{nncp-call(er)}.
896 @command{nncp-call} has ability only to list packets on remote node,
897 without their transmission.
900 @command{nncp-call} has ability to transfer only specified packets.
903 Workability of @option{xxrate} preference in @option{calls}
904 configuration file section.
907 Dependant libraries are updated.
913 Begin using of @code{go.mod} subsystem.
920 @item @command{nncp-daemon} can be run as @command{inetd}-service.
928 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
929 if @file{.seen} exists and treat it like file was already downloaded.
930 Possibly it was transferred out-of-bound and remote side needs to be
934 If higher priority packet is spooled, then @command{nncp-daemon} will
935 queue its sending first, interrupting lower priority transmissions.
938 Simple packet rate limiter added to online-related tools
939 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
942 Ability to specify niceness with symbolic notation:
943 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
946 Changed default niceness levels:
947 for @command{nncp-exec} from 64 to 96,
948 for @command{nncp-freq} from 64 to 160,
949 for @command{nncp-file} from 196 to 224.
957 @strong{Incompatible} @emph{bundle} archive format changes and
958 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
959 valid tar archives, but Go 1.9 made them invalid because of long paths
960 inside. NNCP accidentally was dependant on that bug. Explicit adding of
961 @file{NNCP/} directory in archive restores workability with valid tar
969 Ability to disable relaying at all using @verb{|-via -|} command line option.
977 @strong{Incompatible} plain packet format changes. Older versions are
981 Ability to queue remote command execution, by configuring @option{exec}
982 option in configuration file and using @command{nncp-exec} command:
985 @command{nncp-mail} command is replaced with more flexible
986 @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
987 you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
989 @option{sendmail} configuration file option is replaced with
990 @option{exec}. @code{sendmail: [@dots{}]} must be replaced with
991 @code{exec: sendmail: [@dots{}]}.
995 Ability to override @option{via} configuration option for destination
996 node via @option{-via} command line option for following commands:
997 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
1000 Chunked files, having size less than specified chunk size, will be sent
1001 as an ordinary single file.
1004 Exec commands are invoked with additional @env{$NNCP_NICE} and
1005 @env{$NNCP_SELF} environment variables.
1008 Files, that are sent as a reply to freq, have niceness level taken from
1009 the freq packet. You can set desired niceness during @command{nncp-freq}
1010 invocation using @option{-replynice} option.
1013 @command{nncp-toss} command can ignore specified packet types during
1014 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
1018 @command{nncp-file} command uses
1019 @option{FreqMinSize}/@option{FreqChunked} configuration file options
1020 for @option{-minsize}/@option{-chunked} by default. You can turn this
1021 off by specifying zero value.
1026 @section Release 2.0
1030 @strong{Incompatible} encrypted/eblob packet format changes. Older
1031 versions are not supported.
1034 Twofish encryption algorithm is replaced with ChaCha20. It is much more
1035 faster. One cryptographic primitive less.
1038 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
1039 another cryptographic primitive less (assuming that BLAKE2X is nearly
1040 identical to BLAKE2).
1045 @section Release 1.0
1049 @strong{Incompatible} encrypted packet format changes. Older versions
1053 @command{nncp-bundle} command can either create stream of encrypted
1054 packets, or digest it. It is useful when dealing with
1055 @code{stdin}/@code{stdout} based transmission methods (like writing to
1056 CD-ROM without intermediate prepared ISO image and working with tape
1060 @command{nncp-toss} is able to create @file{.seen} files preventing
1061 duplicate packets receiving.
1064 Single background checksum verifier worker is allowed in
1065 @command{nncp-call}. This is helpful when thousands of small inbound
1066 packets could create many goroutines.
1069 Ability to override path to spool directory and logfile through either
1070 command line argument, or environment variable.
1073 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
1074 @file{.part}, @file{.lock} and temporary files.
1079 @section Release 0.12
1081 @item Sendmail command is called with @env{$NNCP_SENDER} environment variable.
1085 @section Release 0.11
1087 @item @command{nncp-stat}'s command output is sorted by node name.
1091 @section Release 0.10
1094 @command{nncp-freq}'s @file{DST} argument is optional now. Last
1095 @file{SRC} path's element will be used by default.
1099 @section Release 0.9
1102 Fix @option{-rx}/@option{-tx} arguments processing in
1103 @command{nncp-call} command. They were ignored.
1107 @section Release 0.8
1110 Little bugfix in @command{nncp-file} command, where @option{-minsize}
1111 option for unchunked transfer was not in KiBs, but in bytes.
1115 @section Release 0.7
1119 Ability to feed @command{nncp-file} from @code{stdin}, that uses an
1120 encrypted temporary file for that.
1123 Chunked files transmission appeared with corresponding
1124 @command{nncp-reass} command and @option{freqchunked} configuration file
1125 entry. Useful for transferring big files over small storage devices.
1128 @option{freqminsize} configuration file option, analogue to
1129 @option{-minsize} one.
1132 @command{nncp-xfer}'s @option{-force} option is renamed to
1133 @option{-mkdir} for clarity.
1136 @option{-minsize} option is specified in KiBs, not bytes, for
1140 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
1141 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
1142 common prefix and are grouped together for convenience.
1145 @command{nncp-cfgenc} command appeared, allowing configuration file
1146 encryption/decryption, for keeping it safe without any either OpenPGP or
1147 similar tools usage.
1150 Cryptographic libraries (dependencies) are updated.
1155 @section Release 0.6
1157 @item Small @command{nncp-rm} command appeared.
1158 @item Cryptographic libraries (dependencies) are updated.
1162 @section Release 0.5
1165 Trivial small fix in default niceness level of @command{nncp-file}
1166 and @command{nncp-freq} commands.
1170 @section Release 0.4
1174 Small fix in @command{nncp-call}, @command{nncp-caller},
1175 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
1179 @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
1180 and more convenient to use.
1183 @command{nncp-mincfg} command appeared: helper allowing to create
1184 minimalistic stripped down configuration file without private keys, that
1185 is useful during @command{nncp-xfer} usage.
1190 @section Release 0.3
1192 @item Fixed compatibility with Go 1.6.
1196 @section Release 0.2
1200 @strong{Incompatible} packet's format change (magic number is changed
1201 too): size field is encrypted and is not send in plaintext anymore.
1204 @option{-minsize} option gives ability to automatically pad outgoing
1205 packets to specified minimal size.
1208 @command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
1209 always check new @emph{tx} packets appearance in the background while
1210 connected. Remote side is immediately notified.
1213 @option{-onlinedeadline} option gives ability to configure timeout of
1214 inactivity of online connection, when it could be disconnected. It could
1215 be used to keep connection alive for a long time.
1218 @option{-maxonlinetime} option gives ability to set maximal allowable
1219 online connection aliveness time.
1222 @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
1225 @command{nncp-pkt} command can decompress the data.