komunikaty dns
Transkrypt
komunikaty dns
WSPÓŁCZYNNIK ZNORMALIZOWANEJ PRZEPUSTOWOŚCI Rozmiar okna oferowanego przez odbiorcę może być kontrolowany przez proces obsługujący odbiór danych, co jednak może wpływać na wydajność TCP. Powszechnie stosowana wielkość buforów to 4096 bajtów (optymalna dla hostów pracujących w sieci Ethernet). Mechanizm ślizgającego okna pozwala na określenie maksymalnej przepustowości w połączeniu TCP, która zależy od szerokości okna (W), czasu propagacji (D) i prędkości transmisji (R). Dla lepszego zrozumienia zasad doboru szerokości okna wprowadzono współczynnik znormalizowanej przepustowości (S). 1 S = 4W RD W > RD / 4 W < RD / 4 D – jest to czas propagacji pomiędzy źródłem a odbiorcą w połączeniu TCP (czas przesłania i czas potwierdzenia wynosi 2D) W– rozmiar okna (w oktetach) R – szybkość transmisji (bps) WSPÓŁCZYNNIK ZNORMALIZOWANEJ PRZEPUSTOWOŚCI - CD Gdyby źródło nie było ograniczone szerokością okna to całkowita możliwa transmisja wynosiłaby 2RD bitów (2RD bitów = 2RD/8 bajtów = RD/4 bajtów). W rzeczywistości jednak transmisja źródła jest limitowana do szerokości okna. Zatem jeżeli jest spełniony warunek W>RD/4 to osiągamy maksymalną przepustowość połączenia TCP. Powyższe rozważania są czysto teoretyczne, gdyż w praktyce powinniśmy uwzględnić szereg innych czynników, takich jak: Wiele połączeń może być realizowane na wspólnym interfejsie sieciowym, co sprawia, że założona przepustowość jest pomiędzy kilkoma sesjami. Jedno połączenie TCP może przechodzić przez kilka sieci (dodatkowe opóźnienia wprowadzane przez routery w szczególności w przypadku natłoku). W połączeniu TCP występują różne przepustowości łączy pomiędzy kolejnymi węzłami (mogą powstać zatory na wolniejszych kanałach) Istnieje możliwość zagubienia segmentu, w wyniku czego jest on retransmitowany. Efektem tego jest zmniejszenie rzeczywistej przepustowości. KONTROLA PRZEPŁYWU W TCP Za każdym razem, gdy przesyłany jest segment, TCP uruchamia zegar i czeka na potwierdzenie. Czas podróży kolejnych segmentów może być bardzo różny, a TCP musi się dostosować do zmiennych czasów oczekiwania. Aby obliczyć ten czas TCP odejmuje czas wysłania segmentu od otrzymania potwierdzenia. Wynikiem jest próbka podróży w obie strony. TCP na jej podstawie oblicza RTT (ang. Round Trip Time) jako średnią ważoną i używa nowych próbek czasu do powolnej zmiany jej wartości. Wyliczany jest on według wyrażenia: RTT = (a * Stare_RTT) + ((1-a) * Nowa_Próbka_Czasu) α - waga do oznaczania istotności średniej w stosunku do ostatnio uzyskanej próbki czasu (0< a < 1), wybranie a bliskiej 1 powoduje że średnia nie zależy od krótkotrwałych zmian, dobranie wartości bliskiej 0 sprawia średnia szybko reaguje na zmiany. Czas oczekiwania RTO (ang. Retransmission Time Out) oblicza się z równania: RTO = b * RTT β - współczynnik ważący (zwykle zawiera miedzy 1 a 2) wartość w pobliżu 1 powoduje szybką retransmisję. ALGORYTM KARNA Ze względu na to że TCP używa schematu skumulowanego potwierdzenia, które odnosi się do odebranych danych a nie datagramów, w razie retransmisji utraconego datagramu nadawca nie ma możliwości stwierdzenia, czy potwierdzenie dotyczy pierwotnego, czy retransmitowanego datagramu. Zjawisko to nazwano niejednoznacznością potwierdzenia. Powoduje to że nie można określić dokładnie czasów podróży. Algorytm Karna polega na tym że przy szacowaniu czasu podróży TCP ignoruje próbki które odpowiadają retransmitowanym segmentom, ale wydłuża czas oczekiwania przy każdej retransmisji, aż do momentu gdy segment może zostać poprawnie przesłany. Wydłużenie obliczamy z równania: Poprzednia wartość RTO Próbka czasu Czy była retransmisja? nowy_RTO = γ * RTO γ - mnożnik zwykle równy 2 TAK NIE Obliczenia RTO wg. algorytmu J acobsona Nowa wartość RTO RTO = poprzednie_RTO * γ ALGORYTM NAGLE`A Algorytm ten umożliwia uniknięcie syndromu „głupiego okna” który objawia się przesyłaniem w każdym segmencie małej ilości danych, co powoduje duży „narzut nagłówków”. Obowiązek unikania tego problemu spoczywa na obu stronach połączenia. NIE Dane z aplikacji Czy ilość oktetów = MSS lub 1/4 bufora? TAK Wyślij segment Segmenty NIE Czy przyszło potwierdzenie? TAK NIE Czy upłynął czas t=0,2sek. TAK ALGORYTM NAGLE`A - CD Po stronie odbiorcy: gdy zaoferowano zerowe okno, to przed wysłaniem aktualnej oferty okna należy poczekać, aż stanie się dostępne miejsce równe MSS lub połowie bufora. Można uzyskać to dwoma sposobami: TCP potwierdza natychmiast każdy segment który przybywa, ale nie proponuje zwiększonego okna TCP opóźnia wysłanie potwierdzenia - jednak nie może opóźniać zbyt długo bowiem nadawca może retransmitować niepotwierdzone segmenty. W tym celu standardy ograniczają zwłokę do 0,5 sek Unikanie po stronie nadawcy polega na : Jeżeli program wysyłający generuje dane do przesłania, ale nie przyszło potwierdzenie dostarczenia poprzednich segmentów , dane te są buforowane do chwili osiągnięcia MSS, lecz gdy zostanie odebrane potwierdzenie TCP natychmiast wysyła zgromadzone dane Jeżeli program użytkowy generuje po jednym oktecie naraz, to TCP natychmiast wysyła pierwszy oktet. Jednak do momentu przybycia potwierdzenia, TCP strumień danych będzie umieszczał w buforze. Wobec tego jeżeli program jest szybki w stosunku do sieci , to kolejne segmenty będą zawierały dużą ilość danych. Jeżeli program jest wolny (np. pisanie na klawiaturze) to małe segmenty będą przesyłane bez opóźnień. ZAKOŃCZENIE POŁĄCZENIA TCP Standard TCP dostarcza ściśle określonej specyfikacji i opisu protokołu używanego pomiędzy jednostkami TCP na czwartym poziomie modelu ISO/OSI Opis protokołu zakłada i dopuszcza kilka możliwych opcji implementacyjnych, do których należą : nadawanie (send policy), dostarczanie (deliver policy), przyjmowanie (accept policy), retransmisja (retransmit policy), potwierdzenie (acknowledge policy) DNS - WPROWADZENIE DNS pochodzi z angielskiego Domain Name Service DNS - jest "klejem" łączącym adresy sieciowe z obiektami (komputerami / host'ami) z nazwami jakimi się posługują wszyscy użytkownicy. Nazwy domen zaczynają się od najbardziej szczegółowej czyli hosta i przesuwają się do najbardziej ogólnej, czyli nazwy root. Nazwa domenowa, która zaczyna się od hosta i przechodzi całą drogę do korzenia jest zwana w pełni kwalifikowana nazwą domeny (ang. fully gualified domain name FQDN). Cel stosowanie DNS to zapewnienia odpowiedzi na następujące pytania: W jaki sposób można się z tym host'em skontaktować i gdzie powinna być przechowywana informacja o tym, z jakim adresem sieciowym należy nawiązać połączenie? Jeżeli host zmieni adres (np. z przyczyn technicznych), jak w takim razie inni użytkownicy Internetu będą się mogli o tym dowiedzieć? SYSTEM NAZW DNS hostname.(subdomain).topleveldomain gdzie odpowiednio: - hostname - nazwa host'a (komputera, któremu jest przypisywana nazwa) - subdomain - poddomena (może ich być kilka) - topleveldomain - główna domena Przykład: riad.usk.pk.edu.pl gdzie odpowiednio: - riad - nazwa konkretnego komputera - usk - domena Uczelniana Sieć Komp. - pk - domena Politechnika Krakowska - edu - strefa edukacyjna w Polsce - pl - domena Polska (topleveldomain) ZAPYTANIA DNS Serwer główny nie odpowiada bezpośrednio na zapytanie o adres, natomiast wskazuje lokalnemu serwerowi serwer, który może odpowiedzieć na zapytanie dotyczące domeny gumiak.com. Serwer główny przesyła serwerowi lokalnemu rekord zawierający nazwę odpowiedniego serwera dla domeny gumiak.com oraz rekord adresowy określający adres tego serwera. Następnie lokalny serwer wysyła do serwera domeny gumiak.com zapytanie o adres www. gumiak.com i otrzymuje odpowiedź. ZAPYTANIA DNS - CD Jeżeli ma dojść do komunikacji między dwoma komputerami, program pobiera nazwę host'a i wysyła pytanie do specjalnego serwera (name server) o powiązany z tą nazwą adres sieciowy. Name server zna adresy wszystkich lokalnych komputerów w zdefiniowanej strefie, jaką obsługuje (sieci lokalnej). Name server zna adresy innych name server'ów w Internecie. Jeżeli więc skądś nadchodzi zapytanie (query) o adres komputera po podaniu nazwy tego komputera, name server może: odczytać (resolve) adres lokalnie spytać inne name server'y czy one nie znają adresu komputera, o który pyta komputer-klient. KOMUNIKATY DNS Komunikat DNS ma 12 bajtowy nagłówek stałej długości i cztery pola zmiennej długości. KOMUNIKATY DNS - CD Poszczególne pola komunikatu DNS mają następujące znaczenie: identyfikacja - pole wypełniane przez klienta, tak aby mógł zidentyfikować odpowiedź serwera DNS; parametr - klasyfikuje komunikat QR - typ operacji 0 dla pytania, l dla odpowiedzi Oc - O pytanie standardowe, l pytanie odwrotne, 2 pytanie o status serwera, TC - komunikat skrócony (Prawda/Fałsz), AA - odpowiedź autorytatywna (Prawda/Fałsz), RD - żądana jest rekursja (Prawda/Fałsz), RA - rekursja jest dostępna (Prawda/Fałsz), Zero - zarezerwowane, ma wartość 0, Rc - typ odpowiedzi, 0 bez błędów, 3 błąd nazwy; KOMUNIKATY DNS - CD liczba pytań - 1 lub więcej dla pytania, 0 dla odpowiedzi; liczba odpowiedzi - 0 dla pytania, l lub więcej dla odpowiedzi; liczba autorytetów - 0 dla pytania, l lub więcej dla odpowiedzi; liczba dodatkowych informacji - 0 dla pytania, l lub więcej dla odpowiedzi; pytania - każde pytanie składa się z napisu zawierającego adres internetowy, którego dotyczy pytanie, typu pytania i klasy pytania. KOMUNIKATY DNS - CD 1 A Adres IP, 2 NS Serwer nazw dla domeny (ang. Name setrer), 5 CNAME Nazwa kanoniczna (ang. canonical name), 12 PTR Rekord wskaźnikowy (ang. pointer record), 13 HINFO Informacja o hoście 15 MX 252 255 AXFR ANY Rekord wymiennika poczty (ang. mail exchange), Żądanie przesłania strefy (ang. Request for zone transfer), Żądanie wszystkich rekordów (ang. reąuestfor all record); Odpowiedź, Autorytety, Dodatkowe informacje - wszystkie działają na tym samym formacie rekordu zasobów KOMUNIKATY DNS - CD Rekord zasobów RR (ang resource record) zawiera następujące składowe: Pole nazwa domeny jest nazwą, do której odnoszą się zawarte w odpowiedzi informacje o zasobach. Pole typ określa jeden z kodów typu stosowanych w RR. Kody te są takie same, jak wartości typów zapytań, Pole klasa jest zwykle wartością 1 dla danych dotyczących sieci Internet. Pole czas życia jest liczbą sekund, określającą czas przechowywania informacji w pamięci podręcznej przez klienta. Zwykle TTL ustawiony jest na 2 dni. Pole długość danych zasobu określa ilość danych w polu dane zasobu. Format tych danych zależy od pola: typ. Jeśli typ jest określony jako 1 (rekord A), to dane zasobów są zapisane w postaci 4bajtowego adresu IP . DOMENA ODWROTNA DNS Programy komunikacyjne przesyłają dane w postaci pakietów TCP/IP, które mogą zawierać jedynie adresy adres TCP/IP nadawcy. Jednak host odbiorca chciałby znać także nazwę a nie tylko adres host'a - nadawcy. Potrzebny jest więc mechanizm ponownej translacji z adresu na pełną nazwę komputera (full domain name). Oczywiście można do tego użyć name server'a. Do tego celu stworzono specjalną domenę w sieci Internet, nazwaną .inadress.arpa, która spełnia wyżej wymienione założenie. Wszystkie sieci TCP/IP są ulokowane w tej domenie. Przykład: Adres: 149.156.96.9 Reverse Name: 9.96.156.149.in-addr.arpa Nazwa komputera: galaxy.uci.agh.edu.pl Dzięki tej domenie możliwy jest mechanizm bezbłędnego mapowania (mapping) adresu Internetowego na nazwę host'a, jak również lokalizacji wszystkich gateways w danej sieci lokalnej podłączonej do Internetu. SERWERY DNS ROOT SERVER Zna wszystkie top level domains w sieci Internet. Informacje o host'ach jest zbierana z tych domen poprzez przeprowadzenie zapytania dla komputera z innej strefy (name server query) ROOT SERVER może stwierdzić miarodajnie o istnieniu danego host'a w tej poddomenie. MASTER SERVER Jest "miarodajny" dla całego obszaru bieżącej domeny, prowadzi bazy danych dla całej strefy. Istnieją dwa rodzaje MASTER SERVER'ow: PRIMARY MASTER SERVER oraz SECONDARY MASTER SERVER Może się zdarzyć, że serwer jest zarazem MASTER SERVER'em dla kilku domen – dla jednych PRIMARY, dla innych SECONDARY CACHING SERVER Wszystkie serwery (PRIMARY jak i SECONDARY) prowadzą cache'owanie informacji, które otrzymują. Wygasanie określone jest w polu ttl. CACHING SERVER'y nie mają pełnomocnictw dla żadnej strefy, w związku z tym nie zarządzają żadnymi bazami danych. Mogą natomiast odpowiadać poprzez wysyłanie queries (zapytań) do innych serwerów posiadających takie pełnomocnictwa.