Поделиться через


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

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

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

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

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

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

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

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

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

Популярные сетевые функции, не реализуемые одноранговыми каналами

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

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

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