Одноранговые сетки

Сетка представляет собой именованную коллекцию (взаимосвязанный граф) одноранговых узлов, которые могут взаимодействовать между собой и которые определяются уникальным идентификатором сетки. Каждый узел соединен с несколькими другими узлами. В хорошо подключенной сетке существует путь между двумя узлами, причем относительно мало прыжков между узлами на самых удаленных краях сетки, и сетка останется подключенной, даже если некоторые узлы или подключения выпадут. Активные узлы в сетке публикуют сведения о конечной точке с соответствующим идентификатором сетки, чтобы другие одноранговые узлы могли их найти.

Характеристики сетки, созданной с помощью однорангового канала

Уникальный идентификатор

  • Каждая сетка характеризуется уникальным идентификатором. Имя сетки (или ее идентификатор) имеет формат DNS-имени узла. Таким образом, идентификатор сетки должен быть уникальным для определенного клиента приложения в пределах области используемого распознавателя. Простые имена, такие как "MyFamilysPeers" или "KevinsPokerTable", могут совпасть с именами других пользователей и вернуть неверные сведения о конечной точке, в результате чего будет нарушена конфиденциальность или увеличится задержка подключений. Один из способов избежать таких проблем - добавить к псевдониму уникальный идентификатор (например, "KevinsPokerTable90210").

Распространение сообщений

  • Сетка позволяет распространять сообщения от одного или нескольких отправителей среди всех остальных одноранговых узлов в рамках одной сетки. В сообщениях, отправляемых одноранговыми узлами, используются заголовки, заданные в пространстве имен, расположенном по адресу http://schemas.microsoft.com/net/2006/05/peer.

Оптимизированные подключения

  • Сетка одноранговых каналов автоматически настраивается при подключении и отключении узлов, что гарантирует хорошую связь между узлами и низкую вероятность создания областей (изолированных друг от друга групп узлов). Кроме того, подключения в сетке динамически оптимизируются на основании действующих шаблонов трафика, чтобы задержка сообщения на пути от отправителя к получателю была минимальной.

Важно знать о популярных сетевых функциях, которые не реализуются одноранговыми каналами. Список возможностей, которые можно реализовать поверх одноранговых каналов, включает следующие возможности:

  • Порядок сообщений: сообщения, исходящие из одного источника, могут не поступать во всех остальных сторонах в том же порядке или в том порядке, в который отправлялся источник. Приложения, требующие доставки сообщений в определенном порядке, должны самостоятельно реализовывать такие функции (например, путем включения во все сообщения идентификаторов с возрастающими значениями);

  • Надежный обмен сообщениями: одноранговый канал не включает механизм для обеспечения приема сообщений всеми одноранговыми узлами. Чтобы гарантировать доставку сообщений, необходимо разработать уровень обеспечения надежности поверх одноранговых каналов.