X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=doc%2Fusecases.ru.texi;h=677d2ac524430804106ae31efa563f1dd9af991d;hb=0139e8deda4112d2c3dcd52e0ad72162e54caa03;hp=3e3caba2dbdd889cb32f761c52ebb3db131401c2;hpb=b711e2e5767124b1d12fd548ad9605d77c0edbb6;p=nncp.git diff --git a/doc/usecases.ru.texi b/doc/usecases.ru.texi index 3e3caba..677d2ac 100644 --- a/doc/usecases.ru.texi +++ b/doc/usecases.ru.texi @@ -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