Kimse sormadan önce: Gördüm DNS sorguları ne zaman UDP yerine TCP kullanıyor? ve sorumu cevaplamıyor.
Tek duyduğum " cevap çok uzunsa DNS TCP kullanır " dır . Bu olsa nasıl olduğunu açıklamıyor.
İşte durum şu: DNS istemcisi UDP kullanarak bir kaydın çözümlenmesini istiyor. UDP için kayıt çok uzun:
- istemcinin TCP'ye geçmesi için sunucu belirli bir kodla cevap veriyor
- sunucu hiç cevap vermiyor ve istemci TCP üzerinden yeniden deniyor
- sunucu istemciye TCP bağlantısı açar (aptal, NAT sayıyorsanız, kim bilir?)
- müşteri bir şekilde (?) 'Sorgulanır' sorgusu verilen sorgu TCP üzerinden çalıştırılmalı, böylece ilk sırada UDP ile uğraşmaz
- DNS pixies, gerektiğinde UDP'yi sihirli bir şekilde TCP'ye çevirir
Cevap için internetin her yerini aradım, ancak çok fazla gürültü var (yukarıya bakın) ve bunun için uygun bir Google sorgusu yazamıyorum (ya da bununla ilgili bilgileri RFC'lerde bulamıyorum) .
1.
ve 4.
her ikisi de kabaca doğrudur (ikisinden hangisi şartlara bağlıdır).