Ich habe nach einer Antwort auf diese Frage gesucht (die im Titel) und das Beste, was ich gefunden habe, war:
Beim Entwurf des DNS-Protokolls wurde die UDP-Transportblockgröße (Nutzlastgröße) auf 512 Byte begrenzt, um die Leistung zu optimieren und gleichzeitig minimalen Netzwerkverkehr zu generieren.
Meine Frage ist: Wie genau verbessert dies die Leistung und gibt es andere Gründe für diese Einschränkung bei der Verwendung von UDP?
domain-name-system
Moha das allmächtige Kamel
quelle
quelle
Antworten:
Die 512-Byte-Nutzlast garantiert, dass DNS-Pakete bei einer Fragmentierung während der Übertragung wieder zusammengesetzt werden können. Im Allgemeinen besteht auch eine geringere Wahrscheinlichkeit, dass kleinere Pakete nach dem Zufallsprinzip verworfen werden.
Der IPv4-Standard legt fest, dass jeder Host Pakete mit maximal 576 Byte neu zusammenstellen kann. Mit einem IPv4-Header (20 Byte, obwohl er bis zu 60 Byte mit Optionen umfassen kann) und einem 8-Byte-UDP-Header ist ein DNS-Paket mit einer Nutzlast von 512 Byte kleiner als 576 Byte.
Wie @RyanRies sagt: DNS kann TCP für größere Nutzdaten und für Zonentransfers und DNSSEC verwenden. Wenn TCP ins Spiel kommt, ist die Latenz wesentlich höher, da im Gegensatz zu UDP ein Handshake zwischen Client und Server stattfindet, bevor Daten fließen.
quelle
Modernes DNS ist nicht mehr auf 512 Byte Nutzlast für UDP beschränkt.
Bei Verwendung von EDNS0 kann eine größere Nutzlast angegeben werden, was auch bei DNSSEC-fähigen Clients häufig der Fall ist.
Die Unterstützung größerer Nutzlasten über UDP war ein zweischneidiges Schwert. Dies ist jedoch zum Teil der Grund dafür, warum die Verwendung von Nameservern für Verstärkungsangriffe populärer wurde, da Sie eine bessere Verstärkung erzielen können, wenn der Angreifer eine Abfrage verwendet, die eine große Antwort erhält .
Siehe rfc2671 für die Details von EDNS0
quelle
Ron Aitchison - Pro DNS und BIND 10 - 2011
quelle
Es ist eine QOS-Sache.
Da UDP zustandslos ist, ist eine Fehlerbehandlung von Paketen nicht möglich.
Indem Pakete auf einer maximalen Größe gehalten werden, kommt es zu einer größeren Änderung, sodass sie ihr Ziel erreichen, was die Auswirkung der fehlenden Fehlerbehandlung verringert.
quelle