Disko.net
Хоцца
сказать что Disko.net эточто-то вроде сетки, предназначенной для нашей нездоровой
недоразвитой жизни. Мы хотим иметь почту, но т.к. у нас нет реальной сети
приходиться извращаться таким образом. Разработку проекта начал СК, я его
поддерживаю. Реализация планируеться на Perl - как боле-менее межплатформенном
языке.
.from
"sk"
.to "lpsy"
.subj "diskonet policy"
.date "12.04.01"
.time "14:09:05"
.id "0a23c6dc00"
Во
первых хочу определиться с задачей и основными понятиями.
Точка (сети) - это обьект способный создавать, принимать и передавать сообщения.
Т. можеть быть соединена с любым количеством других Т. (имеется ввиду прямая
связь).
рис.1
i b c
\|/
h--a--d
/|\
g f e
Каждая Т. уникальна и идентифицируется посредством сетевого имени.
Самостоятельно Т. может передавать (и принимать) сообщения только соседним
точкам,
находящимся в "прямой" связи. Т. может адресовать сообщения любой точке имеющей
сетевое имя.
Сообщение - это кусок информации некоторого размера предназначенный для передачи
от одной точки сети к другой. С. имеет отправителя, адресата. Каждое С. уникально
и идентифицируется посредством тэгов в заголовке.
Сеть - это совокупность точек имеющих сетевое имя и способных адресовать друг-другу
сообщения. Сеть делится на группы.
Группа (сети) - это совокупность точек имеющих прямую связь. Точка может входить
в несколько групп.
рис.2
Группа 1 (abc)
Группа 2 (cde)
a---b
\ /
c
/ \
d---e
Наша задача: Обеспечить надежную передачу сообщений в рамках сети и при возможности
минимизировать траффик.
Принципы:
1.Все сообщения копируются всеми возможными способами если неизвестно дошли
ли оно
до адресата.
2.Если известно что сообщение "дошло" (это можно утверждать только если вы
являетесь
адресатом:) оно выкидывается из траффика.
Удаление избыточного траффика.
3.Если входящее сообщение уже есть в локальной базе оно просто скиперится.
Следовательно
оно не рассматривается как новое и не идет дальше.
A-1-) b c точка A адресует сообщение точке C и отправляет его точке B
A|(-1-B-1-) c B руководствуясь принципом 1 отправляет сообщение всем доступным
точкам
в том числе и назад точке A. Но она следуя принципу 3 скиперит его.
A B C B скиперит. C являясь адресатом никуда его не отправляет.
|