Я нашел способ ОБА обнаружить, какой узел есть кто (т.е. у кого более длинная задержка сообщения) И оценить задержку одностороннего отключения. В то время как другие ответы верны, они ТОЛЬКО рассматривают прямое измерение тактовой частоты, которое, конечно, не может работать. Однако, поскольку я доказываю здесь, это только часть истории, поскольку вот мой рабочий алгоритм для вышеупомянутого:
Предположим, как в реальной жизни:
Ссылки конечной полосы пропускания b
Каждый узел имеет уникальный адрес (например, A и B)
Размер пакета p намного меньше, чем пропускная способность * задержка продукта
Узлы А и В способны заполнить канал
Узлы имеют случайную () функцию
Каждый узел заполняет канал своими собственными пакетами (помеченными соответственно A или B) ИЛИ пересылает пакеты, полученные от других узлов, следующим образом:
Always fill the channel with my own packets except:
if I receive a packet from another node then
Randomly choose to
either forward that packet from the other node
or discard that packet and forward my own packet
Интуитивное объяснение
Поскольку продукт A с шириной полосы пропускания * выше (поскольку задержка выше), A получит больше пакетов, чем B, поэтому каждый узел может знать, кто они на диаграмме .
Кроме того, при достаточном времени сходимости, выполняемом по вышеуказанному алгоритму, отношение пакетов A к B будет обозначать фактическое отношение задержки RTT A к B и, следовательно, требуемый OTT .
РЕЗУЛЬТАТ РЕЗУЛЬТАТА МОДЕЛИРОВАНИЯ
Вот симуляция, которая подтверждает вышеприведенное и показывает, как А успешно сходится к задержке в 3 секунды, а В сходится примерно к задержке в 1 секунду:
Пояснения к рисункам:
каждая строка представляет 1 секунду времени (размер пакета выбран, чтобы иметь 1 секунду времени передачи для ясности). Обратите внимание, что каждый узел может запустить алгоритм в любое время, а не в какой-либо определенной последовательности или времени. Столбцы следующие:
Узел A получает: Что узел A видит на своей принимающей стороне (это также P4 ниже)
УЗЕЛ A вводит: Какой узел A отправляет (обратите внимание, что это A, или случайно A или B)
P1, P2, P3: три пакета, которые находятся в пути (по порядку) между A и B (1 секунда передачи означает, что 3 пакета находятся в пути с задержкой 3)
УЗЕЛ B получает: То, что B видит на своей принимающей стороне (это P3)
УЗЕЛ B вводит: то, что отправляет B (обратите внимание, что это B, или случайно A или B для каждого алгоритма)
P4: пакет в пути от B до A (см. Также P1, P2, P3)
A считает A: Что A считает для пакетов A, которые он видел
A считает B: Что A считает для пакетов B, которые он видел
B считает A: Что B считает для пакетов A, которые он видел
B считает B: Что B считает для пакетов B, которые он видел
A-> B: задержка, которую A оценивает по отношению к B (отношение RTT к 4 секундам на основе увиденных пакетов)
B-> A: задержка, которую B оценивает по отношению к A (отношение RTT к 4 секундам на основе увиденных пакетов)
Как мы видим, оба узла сходятся и остаются вокруг своей истинной задержки (на самом деле мы не видим этого для A, потому что требуется больше секунд, чтобы сходиться, но он сходится с тем же поведением, что и B)
Лучшие фильтры могли бы сходиться быстрее, но мы можем ясно видеть, как они оба сходятся вокруг правильных значений для своих задержек, поэтому они могут точно знать, знают свою задержку (хотя я показываю их оценку только для иллюстрации).
Кроме того, даже если пропускная способность между ссылками различна, вышеописанный метод все равно можно сохранить (хотя для большей определенности придется подумать об этом), используя пары пакетов для определения оценок пропускной способности, а затем просто примените к приведенному выше уравнению пропорции.
Заключение
Мы предоставили алгоритм для A и B, чтобы узнать их положение в сети и узнать их задержку к другому узлу для приведенной выше диаграммы. Мы использовали метод оценки измерения сети, а не основанные на такте подходы, которые действительно не могут привести к решению из-за проблемы рекурсивной тактовой синхронизации.
Заметьте, что теперь я отредактировал этот ответ, предоставив все симуляции, потому что никто не поверит мне, я решил это, насколько вы можете видеть в первых комментариях. Надеемся, что с этими результатами кто-то может быть более убежден и одобрен, чтобы помочь всем хотя бы найти одну ошибку или правильность в этой головоломке измерения сети!