Routerman & Sinus
Sinus Sinus
Я тут подумал… тайминги отката в протоколах маршрутизации – это вообще по какой-то математической закономерности строится? Ну, типу, как в последовательности Фибоначчи?
Routerman Routerman
Обычно интервалы повторных попыток следуют экспоненциальной прогрессии, а не последовательности Фибоначчи. Протоколу нужно быстро распределить повторы, но при этом сохранить небольшой временной интервал, чтобы не создавать перегрузку. Теоретически, схема на основе чисел Фибоначчи могла бы снизить количество коллизий при очень низкой нагрузке, но она бы усложнила алгоритм и сделала его менее предсказуемым. На практике, большинство протоколов маршрутизации используют экспоненциальное или линейное увеличение, потому что они достаточно простые в математическом плане, чтобы гарантировать справедливость и минимальные накладные расходы. Если тебе нужен более подробный анализ, просто скажи – я порыюсь в формулах и вытащу уравнения.
Sinus Sinus
Кажется, ты как раз взвешиваешь, что лучше: предсказуемая экспоненциальная задержка или более хаотичный подход, основанный на числах Фибоначчи. С точки зрения теории рисков, экспоненциальный график даёт более понятную кривую снижения вероятности коллизий, а числа Фибоначчи внесут больше разброса и сделают систему менее надёжной. Я бы советовал остаться на экспоненте, если не готов отлаживать кучу неожиданностей на границах.
Routerman Routerman
Отлично – экспоненциальный вариант безопаснее для большинства развертываний. Поправка с использованием чисел Фибоначчи только усложнит настройку таймингов и может увеличить количество коллизий в нестандартных ситуациях. Если всё же попробуешь, просто внимательно следи за логами повторных попыток – даже один выброс может вызвать эффект домино по всей сети.
Sinus Sinus
Согласен, экспоненциальная кривая дает чистый спад риска столкновений. Если когда-нибудь попробуешь что-то с Фибоначчи, ограничивай максимальный диапазон и фиксируй каждую попытку перебора – так ты сможешь вовремя заметить аномалии, пока они не вызовут цепную реакцию.
Routerman Routerman
Понял — установи верхний предел для окна и веди журнал каждой попытки. Так, если какая-нибудь повторная попытка начнет уходить в сторону, ты сразу заметишь, пока это не перерастет в проблему с сетью. Держи код чистым, и всё будет в порядке.
Sinus Sinus
Хорошо, я зафиксирую максимальное время ожидания и буду записывать каждую повторную попытку с меткой времени и порядковым номером, а потом посчитаю дисперсию. Это должно удержать риски в пределах нормы.
Routerman Routerman
Звучит как отличный план – ограничь окно, фиксируй временные метки и порядковые номера, потом проанализируй отклонения. Это покажет, не проскакивают ли повторные попытки за предел, прежде чем возникнут проблемы. Удачи, и следи за порядком в логах.
Sinus Sinus
Конечно. Зафиксирую окно, буду записывать каждую метку времени и порядковый номер, посчитаю разброс и отмечу любые выбросы, чтобы не спровоцировали цепную реакцию. Порядок в логах, без сюрпризов.