Прежде чем кто-нибудь спросит: я видел, когда DNS-запросы используют TCP вместо UDP? и это не отвечает на мой вопрос.
Все, что я продолжаю слышать, это « если ответ слишком длинный, DNS будет использовать TCP ». Это не объясняет, как это происходит, хотя.
Итак, вот ситуация: DNS-клиент запрашивает разрешение записи с использованием UDP. Запись слишком длинная для UDP:
- сервер отвечает определенным кодом операции, чтобы клиент переключился на TCP
- сервер не отвечает вообще, а клиент пытается через TCP
- Сервер открывает TCP-соединение с клиентом (глупо, если вы считаете NAT, но кто знает?)
- клиент каким-то образом (?) «знает», что данный запрос должен выполняться по TCP, чтобы он не беспокоился о UDP в первую очередь
- DNS-феи волшебным образом превращают UDP в TCP при необходимости
Я искал ответ по всему Интернету, но там много шума (см. Выше), и я не могу написать правильный запрос Google для этого (и при этом я не могу найти информацию в RFC) ,
1.
и 4.
оба они примерно верны (что зависит от обстоятельств).