]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/usecases.ru.texi
Replace YAML with Hjson
[nncp.git] / doc / usecases.ru.texi
index 3e3caba2dbdd889cb32f761c52ebb3db131401c2..677d2ac524430804106ae31efa563f1dd9af991d 100644 (file)
@@ -8,10 +8,12 @@
 * Медленная/дорогая связь для больших объёмов данных, плохой QoS: UsecaseQoSRU.
 * Экстремальные наземные окружающие условия, нет связи: UsecaseNoLinkRU.
 * Односторонняя широковещательная связь: UsecaseBroadcastRU.
+* Спутниковые каналы связи: UsecaseSatelliteLinksRU.
 * Частные, изолированные MitM/Sybil-устойчивые сети: UsecaseF2FRU.
 * Высоко защищённые изолированные компьютеры с воздушным зазором: UsecaseAirgapRU.
 * Обход сетевой цензуры, здоровье: UsecaseCensorRU.
 * Разведка, шпионаж, тайная агентура: UsecaseSpyRU.
+* Дешёвая ночная связь: UsecaseCallerRU.
 @end menu
 
 @node UsecaseMailRU
@@ -24,7 +26,7 @@ Postfix} SMTP сервер подключённый к Интернету. Но
 ноутбук подключён?
 
 Одна из возможностей это войти на сервер и сделать что-то типа
-@command{postqueue -f}, но по-умолчанию у вас есть только несколько дней
+@command{postqueue -f}, но по умолчанию у вас есть только несколько дней
 на это, плюс отправитель будет получать уведомления о том, что его
 сообщение всё ещё не доставлено. Кроме того, вы должны использовать
 безопасный канал связи (SSH, VPN, итд).
@@ -78,8 +80,8 @@ IMAP4, как правило, нет). У вас легковесный, сжа
 Команды:
 
 @verbatim
-% nncp-file file_i_want_to_send bob:
-% nncp-file another_file bob:movie.avi
+$ nncp-file file_i_want_to_send bob:
+$ nncp-file another_file bob:movie.avi
 @end verbatim
 
 добавят в очередь отправки два файла для узла @emph{bob}.
@@ -104,9 +106,9 @@ NNCP поддерживает @ref{Niceness, приоритезацию траф
 опцию:
 
 @verbatim
-% nncp-file -nice 32 myfile node:dst
-% nncp-xfer -nice 192 /mnt/shared
-% nncp-call -nice 224 bob
+$ nncp-file -nice FLASH myfile node:dst
+$ nncp-xfer -nice PRIORITY /mnt/shared
+$ nncp-call -nice NORMAL bob
 [...]
 @end verbatim
 
@@ -117,8 +119,8 @@ NNCP поддерживает @ref{Niceness, приоритезацию траф
 Вы также можете использовать CD-ROM и ленточные накопители:
 
 @verbatim
-% nncp-bundle -tx bob | cdrecord -tao -
-% nncp-bundle -tx bob | dd of=/dev/sa0 bs=10240
+$ nncp-bundle -tx bob | cdrecord -tao -
+$ nncp-bundle -tx bob | dd of=/dev/sa0 bs=10240
 @end verbatim
 
 @node UsecaseNoLinkRU
@@ -134,7 +136,7 @@ NNCP поддерживает @ref{Niceness, приоритезацию траф
 запустите @ref{nncp-xfer}:
 
 @verbatim
-% nncp-xfer -node bob /media/usbstick
+$ nncp-xfer -node bob /media/usbstick
 @end verbatim
 
 чтобы скопировать все исходящие пакеты относящиеся к @emph{bob}.
@@ -147,14 +149,14 @@ NNCP поддерживает @ref{Niceness, приоритезацию траф
 @option{-node} опцию, чтобы скопировать все доступные исходящие пакеты.
 
 @verbatim
-% nncp-xfer /media/usbstick
+$ nncp-xfer /media/usbstick
 @end verbatim
 
 Размонтируйте и передайте накопитель Бобу и Алисе. Когда они вставят
 накопитель в свои компьютеры, то выполнят точно такую же команду:
 
 @verbatim
-% nncp-xfer /media/usbstick
+$ nncp-xfer /media/usbstick
 @end verbatim
 
 чтобы найти все пакеты относящиеся к их узлу и локально скопируют для
@@ -174,14 +176,42 @@ NNCP поддерживает @ref{Niceness, приоритезацию траф
 зашифрованных пакетов}, которые вы можете принять.
 
 @verbatim
-% nncp-bundle -tx alice bob eve ... | команда для отправки широковещательной рассылки
-% команда для приёма широковещательной рассылки | nncp-bundle -rx
+$ nncp-bundle -tx alice bob eve ... | команда для отправки широковещательной рассылки
+$ команда для приёма широковещательной рассылки | nncp-bundle -rx
 @end verbatim
 
 Встроенная возможность определять дубляжи пакетов позволит вам
 переотправлять широковещательные рассылки время от времени, повышая
 шансы на то, что получатель примет их, регулярно слушая рассылку.
 
+@node UsecaseSatelliteLinksRU
+@subsection Спутниковые каналы связи
+
+Спутниковые каналы связи имеют @strong{очень} большие задержки вместе с
+высокими пропускными способностями. Вы можете посылать мегабиты данных в
+секунду, но они достигнут удалённой стороны только спустя полсекунды!
+Большинство протоколов обмена файлами, таких как
+@url{https://en.wikipedia.org/wiki/Files_transferred_over_shell_protocol, FISH},
+@url{https://ru.wikipedia.org/wiki/FTP, FTP},
+@url{https://ru.wikipedia.org/wiki/SCP, scp},
+@url{https://en.wikipedia.org/wiki/XMODEM, XMODEM} will perform very
+будут работать очень плохо из-за большого количества приёмо-передач
+(round-trips). Каждая передача файла явно генерирует пакеты запросов и
+подтверждений, посылаемые поверх канала связи. Удалённая сторона ничего
+не будет делать пока она их не получит. Более того, не все протоколы
+позволяют делать дуплексную отправку данных (когда обе стороны посылают
+данные одновременно).
+
+@ref{Sync, Протокол синхронизации} (SP) NNCP пытается решить все эти
+особенности за счёт сокращения количества приёмо-передач, количества
+проходящих пакетов. Все списки файлов, запросов на скачивание файла
+группируются вместе (pipelined) в один огромный пакет. Только запросы на
+остановку передачи и подтверждения успешного приёма файла явно
+посылаются. Можно запросить чтобы SP только принимал или отправлял
+пакеты для нашей ноды. SP может игнорировать файлы с маленьким
+приоритетом. Полные списки файлов отправляются уже на этапе процедуры
+рукопожатия.
+
 @node UsecaseF2FRU
 @subsection Частные, изолированные MitM/Sybil-устойчивые сети
 
@@ -214,13 +244,13 @@ NNCP поддерживает @ref{Niceness, приоритезацию траф
 транспорт с свойством совершенной прямой секретности.
 
 @verbatim
-% nncp-daemon -bind [::]:5400
+$ nncp-daemon -bind [::]:5400
 @end verbatim
 запустит TCP демон, который будет слушать входящие соединения на всех
 интерфейсах.
 
 @verbatim
-% nncp-call bob
+$ nncp-call bob
 @end verbatim
 попытается подключиться к известному TCP-адресу узла @emph{bob} (взятого
 из конфигурационного файла), послать все связанные с ним исходящие
@@ -246,14 +276,18 @@ CD-ROM, жёстких дисков, SD, лент и USB накопителей
 NNCP из коробки поддерживает ретрансляцию пакетов.
 
 @verbatim
-neigh:
-  bob:
+neigh: {
+  bob: {
     [...]
-    addrs:
-      lan: [fe80::5400%igb0]:5400
+    addrs: {
+      lan: "[fe80::5400%igb0]:5400"
+    }
+  }
   bob-airgap:
     [...]
-    via: [bob]
+    via: ["bob"]
+  }
+}
 @end verbatim
 
 Такой @ref{Configuration, конфигурационный файл} говорит что у нас есть
@@ -297,7 +331,7 @@ neigh:
 
 Эти ребята знают насколько небезопасен Интернет, несовместим с
 понятием приватности. Им необходим быстрый сброс и забор данных. Нет
-возможности провести несколько итераций туда-обратно (round trip) --
+возможности провести несколько итераций приёмо-передач (round-trips) --
 только сбросить данные, выстрелить и забыть. Опять же, это может быть
 переносной накопитель и/или
 @url{https://en.wikipedia.org/wiki/USB_dead_drop, USB тайник} (dead drop),
@@ -316,7 +350,7 @@ Bluetooth и WiFi могут быть и довольно быстрыми, по
 
 Общение узлов между собой происходит в, так называемой, @ref{Spool,
 спул} области: директории содержащей только необработанные зашифрованные
-пакеты. После передачи пакета вы всё-равно не сможете его прочитать:
+пакеты. После передачи пакета вы всё равно не сможете его прочитать:
 необходимо запустить другую фазу: @ref{nncp-toss, распаковку}, которая
 использует ваши приватные криптографические ключи. То есть, даже если вы
 потеряете свой компьютер, устройства хранения и тому прочее -- это не
@@ -326,3 +360,54 @@ Bluetooth и WiFi могут быть и довольно быстрыми, по
 файлов и почтовых сообщений) может и должна бы быть произведена на
 отдельном компьютере (@ref{nncp-cfgmin} команда может помочь с созданием
 конфигурационного файла без приватных ключей для этой цели).
+
+Если вы действительно хотите взять с собой приватные ключи, то
+@ref{nncp-cfgenc} команда способна зашифровать ваш конфигурационный
+файл. Парольная фраза вами введённая усиливается функцией нагружающей и
+центральный процессор и память.
+
+@node UsecaseCallerRU
+@subsection Дешёвая ночная связь
+
+Стоимость Интернет/телефонного трафика может варьироваться, в
+зависимости от времени дня. Ночные звонки/соединения могут быть дешевле
+в два раза. Вы хотите посылать ваши файлы в это время, но позволять
+изредка проходить высокоприоритетной почте в любое время. А также вы
+хотите проходить любому трафику когда узел доступен через ЛВС (LAN).
+
+Вы легко можете настроить ваши предпочтения в @ref{Call, настройках
+звонков} для @ref{nncp-caller} команды, используемой при online связи.
+
+@verbatim
+neigh: {
+  [...]
+  some-node: {
+    [...]
+    addrs: {
+      lan: "[fe80::be5f:f4ff:fedd:2752%igb0]:5400"
+      wan: "some-node.com:5400"
+    }
+    calls: [
+      {
+        cron: "*/1 * * * *"
+        addr: lan
+        nice: MAX
+        onlinedeadline: 3600
+      },
+      {
+        cron: "*/10 * * * *"
+        addr: wan
+        nice: PRIORITY
+        xx: rx
+      },
+      {
+        cron: "*/1 0-7 * * *"
+        addr: wan
+        nice: BULK
+        onlinedeadline: 3600
+        maxonlinetime: 3600
+      },
+    ]
+  }
+}
+@end verbatim