Protokol DNS - Komunikace přes UDP a TCP

Vysvětlení způsobu komunikace mezi DNS klientem a serverem použitím protokolů TCP a UDP.

Datum: 09.03.2010


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ů.

Diskuze k článku

K tomuto článku nebyl dosud vložen žádný diskuzní příspěvek, ale můžete tak učinit jako první.

Přihlášení zákazníka

Nemáte ještě zákaznický účet? Registrace

Copyright © WEDOS, 2017

Facebook RSS