Protokol DNS – Komunikace přes UDP a TCP

  DNS, Protokol DNS, Teorie DNS

DNS servery komunikují s dalšími DNS servery a klienty (tzv. resolvery) nad protokoly TCP i UDP, v obou případech na portu 53. Při běžných dotazech se požadavek posílá jedním paketem UDP a odpověď se vrací opět v paketu UDP. Tento protokol byl zvolen pro svou jednoduchost a minimální režii, kdy se nemusí kvůli malým datům složitě navazovat spojení přes protokol TCP.

Jestliže se stane, že celá odpověď (která může obsahovat buď velkou samotnou odpověď nebo další data v dodatečných sekcích) se do jednoho UDP paketu nevejde (velikost odpovědi DNS je dle standardu omezena na 512 bytů, nepočítají se hlavičky UDP a IP protokolu), odešle se tazateli odpověď částečná (maximum co se do paketu vejde) a v hlavičce se nastaví příznak pro oznámení této skutečnosti (truncated). Tazatel se nyní může rozhodnout, zda mu přijatá data stačí. Pokud ne, odešle znovu ten samý dotaz, avšak tentokrát již s použitím protokolu TCP, přes který si může stáhnout celou odpověď v potřebném množství paketů.

Protokol UDP však neřeší ztráty paketů na cestě, proto se dotazy po několika sekundách opakují, po určitém počtu neúspěšných pokusů se DNS server považuje za nedosažitelný. To vše záleží na nastavení resolverů.

Byl pro Vás tento návod užitečný?