Сколько раз я должен повторно передать пакет, прежде чем предположить, что он был потерян?
Я создавал надежный сетевой протокол, похожий на TCP, и мне было интересно, какое хорошее значение по умолчанию для порога повторной передачи должно быть в пакете (сколько раз я отправляю пакет, прежде чем предположить, что соединение было разорвано). Как я могу найти оптимальное количество повторов в сети? Также; не все сети имеют одинаковую надежность, поэтому я думаю, что это "оптимальное" значение будет различным в разных сетях. Есть ли хороший способ рассчитать оптимальное количество повторов? Также; сколько миллисекунд я должен ждать перед повторной попыткой?
2 ответа
В итоге я разрешил приложению установить это значение со значением по умолчанию 5 попыток. Похоже, это работало в большом количестве сетей в наших сценариях тестирования.
На этот вопрос нельзя ответить в том виде, в котором он представлен, поскольку в нем есть слишком много реальных сложностей, которые необходимо учитывать.
Если вы хотите TCP, используйте TCP. Если вы хотите разработать собственный протокол для транспортного уровня, у вас будет хуже, чем 40-летний накопленный опыт, закодированный в TCP.
Если вы не посмотрите на имеющуюся литературу, вы пропустите сотни конструктивных соображений, которые никогда не возникнут у вас за столом.