Szukałem odpowiedzi na to pytanie (to w tytule) i najlepsze, co znalazłem, to:
W projekcie protokołu DNS rozmiar bloku transportu UDP (rozmiar ładunku) został ograniczony do 512 bajtów, aby zoptymalizować wydajność przy minimalnym ruchu w sieci.
moje pytanie brzmi: w jaki sposób poprawia to wydajność i czy istnieją inne powody tego ograniczenia podczas korzystania z UDP?
domain-name-system
Wszechmocny wielbłąd Moha
źródło
źródło
Odpowiedzi:
512-bajtowy ładunek gwarantuje, że pakiety DNS mogą zostać ponownie złożone, jeśli zostaną podzielone podczas przesyłania. Ponadto, ogólnie mówiąc, istnieje mniejsze prawdopodobieństwo przypadkowego upuszczenia mniejszych pakietów.
Standard IPv4 określa, że każdy host musi mieć możliwość ponownego złożenia pakietów o długości 576 bajtów lub mniejszej. W przypadku nagłówka IPv4 (20 bajtów, chociaż może wynosić nawet 60 bajtów z opcjami) i 8-bajtowego nagłówka UDP, pakiet DNS z 512 bajtowym ładunkiem będzie mniejszy niż 576 bajtów.
Jak mówi @RyanRies: DNS może używać TCP do większych ładunków oraz do przesyłania stref i DNSSEC. TCP jest znacznie opóźniony, gdy TCP wchodzi w grę, ponieważ, w przeciwieństwie do UDP, między klientem a serwerem następuje uścisk dłoni, zanim jakiekolwiek dane zaczną przepływać.
źródło
Współczesny DNS nie jest już tak naprawdę ograniczony do 512 bajtów dla UDP.
Gdy EDNS0 jest w użyciu, można określić większy rozmiar ładunku, co często zdarza się również w przypadku klientów obsługujących DNSSEC.
Obsługa większych ładunków w porównaniu z UDP jest mieczem obosiecznym, jednak jest to po części powodem, dla którego użycie serwerów nazw do ataków wzmacniających stało się bardziej popularne, ponieważ można osiągnąć lepsze wzmocnienie, jeśli atakujący użyje zapytania, które otrzymuje dużą odpowiedź .
Zobacz rfc2671, aby uzyskać szczegółowe informacje na temat EDNS0
źródło
Ron Aitchison - Pro DNS i BIND 10 - 2011
źródło
To kwestia QOS.
Ponieważ UDP jest bezstanowy, obsługa błędów pakietów nie jest możliwa.
Tak więc, utrzymując pakiety do maksymalnego rozmiaru, następuje większa zmiana, która dotrze do miejsca docelowego, zmniejszając wpływ braku obsługi błędów.
źródło