Кажется, что когда бы я ни достигал видимых пределов моей скорости загрузки / выгрузки (или только что был ограничен), первое, что начинает замедляться или полностью прекращается - это поиск DNS. Обычно я просто записываю, что DNS является первым запросом, необходимым для выполнения большинства действий, но что странно в этом, так это то, что я все еще могу делать множество запросов и отправлять данные на страницы (например, по HTTP), DNS которых уже кешируется или чей IP-адрес я использую напрямую. Почему это?
1 ответ
Отброшенный пакет TCP будет обнаружен и повторно передан двумя хостами, которые установили сеанс TCP.
Отброшенный пакет UDP не является частью сеанса и не имеет встроенных функций для обнаружения сбоя доставки. В случае DNS, отбрасывание пакета приводит к тайм-ауту, затем запрос повторяется, возможно, на другой сервер.
UDP имеет гораздо меньшие издержки, чем TCP. (Моя система Mac OSX 9.2 имеет 92 настраиваемых параметра TCP, которые устанавливаются в каждом сеансе TCP. Есть только 7 для UDP.) Это позволяет DNS-серверу предоставлять службу имен во много тысяч раз большему числу клиентов, чем он мог бы, если бы он использовал TCP для тех же транзакций.