Перш ніж хтось запитує: я бачив, коли запити DNS використовують TCP замість UDP? і це не відповідає на моє запитання.
Я все чую - " якщо відповідь занадто довгий, DNS використовуватиме TCP ". Це не пояснює, як це відбувається, хоча.
Тож ось така ситуація: клієнт DNS просить вирішити запис за допомогою UDP. Запис занадто довгий для UDP:
- сервер відповідає з конкретним кодом, щоб клієнт перейшов на TCP
- сервер взагалі не відповідає, і клієнт повторно намагається виконати TCP
- сервер відкриває TCP-з'єднання з клієнтом (дурний, якщо рахувати NAT, але хто знає?)
- клієнт якось (?) "знає", що даний запит повинен бути запущений через TCP, щоб він не переймався UDP в першу чергу
- Піксі DNS магічно перетворюють UDP в TCP за потреби
Я шукав відповідь по всьому Інтернету, але там багато шуму (див. Вище), і я не можу, здається, написати належний запит Google для цього (а також не можу знайти інформацію в RFC, з цього приводу). .
1.
і 4.
обидва вони є коректно правильними (яке з двох залежить від обставин).