usługi tftp
Transkrypt
usługi tftp
USŁUGI TFTP ładowanie początkowe systemów operacyjnych, do bezdyskowych stacji roboczych (np. Xterminale) przesyłanie kopii systemu operacyjnego, np. routery CISCO. wykorzystuje UDP 69 oraz TFTP multicast 1758 architektura klient/serwer nie zawiera pól przeznaczonych na użytkownika i hasło (zabezpieczenia) W dokumentacji RFC 1350 zamieszczony jest opis obowiązującej obecnie 2 wersji protokołu TFTP. KOMUNIKATY TFTP datagram IP datagram UDP n bitów 1 n bitów blocknr 2 2 2 blocknr Opcode komunikat 1 RRQ 2 WRQ 3 data 4 ACK 5 error mode 2 2 2 data 0-512 bitów error nr 8 bit 0 opcode=3 20 bit filename opcode=4 UDP opcode=5 nagłówek IP opcode=1,2 komunikat TFTP error message 0 2 n bitów 1 0 1 ODCZYT DANYCH W TFTP Każdy pakiet danych zawiera pole block number, które jest wykorzystywane do potwierdzania odebrania pakietu. Dla przykładu, podczas chęci czytania pliku klient wysyła komunikat RRQ, z umieszczoną w nim nazwą pliku oraz określonym typem przesyłanych danych (pole mode). Jeżeli możliwe jest czytanie wskazanego pliku przez klienta, serwer odsyła pakiet danych z polem block number = 1. Potwierdzeniem odbioru pakietu danych jest odesłanie przez klienta komunikatu ACK z polem block number = 1. Serwer odpowiada wysłaniem kolejnego pakietu danych z block number = 2. Procedura ta jest powtarzana do momentu aż cały plik zostanie przesłany. Każdy pakiet z danymi musi zawierać 512 bitów danych z wyjątkiem ostatniego, którego rozmiar pola data będzie mniejszy niż 512. ZAPIS DANYCH I BŁĘDY W TFTP Trochę inaczej wygląda przebieg procesu zapisu pliku na serwerze. Klient wysyła komunikat WRQ z określoną nazwą pliku oraz typem przesyłanych danych (pole mode). Jeżeli plik może zostać zapisany przez klienta na serwerze, to serwer odsyła komunikat ACK z polem block number = 0. Następnie klient wysyła pierwsze 512 bitów jako pakiet z block number = 1. Serwer odpowiada komunikatem ACK (block number = 1). Komunikat z polem opcode = 5, jest komunikat błędu (error message). Generacja tego komunikatu odbywa się w chwili, gdy serwer nie może obsłużyć czytania, bądź zapisu pliku, także podczas transmisji. W tym momencie transmisja zostaje przerwana. Pole error number zwraca numer kodu błędu, natomiast pole error message może zawierać dodatkowe informacje systemu operacyjnego przedstawione w postaci znaków ASCII. PODSTAWY HTTP Protokół HTTP (RFC 2616) leży u podstaw działania World Wide Web od 1990 roku. Określa sposób formatowania i przesyłania dokumentów oraz komendy sterujące pracą serwerów internetowych i przeglądarek. „HTTP jest to protokół poziomu aplikacji z wydajnością i szybkością konieczną dla rozproszonego multimedialnego systemu informacyjnego”. RFC 2616 Poważną wadę HTTP stanowi brak możliwości zapamiętywania informacji o wcześniejszych wywołaniach - każde polecenie wykonywane jest niezależnie od wyniku poprzednich. Uniemożliwia to w praktyce tworzenie witryn zdolnych w sposób interaktywny reagować na poczynania użytkownika. Stało się to głównym impulsem do opracowania nowych technologii, które pozwoliłyby ominąć te niedogodności (ActiveX, ASP, CGI, cookie, Java). URI (UNIVERSAL RESOURCE IDENTIFIER) W przeglądarkach internetowych możliwa jest także obsługa innych usług niż tylko HTTP. Uzyskuje się to poprzez stosowanie uniwersalnej metody adresowania URI (Universal Resource Identifier): pełny adres URI: usługa://host/ścieżka http://www.neuron.pol.lublin.pl/activity częściowy URI: /ścieżka (/obrazki/nowe) Adresy URI są także znane pod innymi nazwami, jako: adresy WWW, Universal Document Identifiers, Universal Resource Identifiers, a także jako kombinacja adresów Uniform Resource Locators and Names. W nazwach URI dodatkowo mogą pojawiać się znaki określające numer portu wykorzystywanego przez usługę (usługa://host:port). POŁĄCZENIA HTTP - CZ.I Klient – przeglądarka internetowa wysyła zapytania do serwera WWW; wymiana danych jest inicjowana przez klienta (user agent) jako zapytanie o stosowne zasoby na serwerze; pojedyncze połączenie (v) pomiędzy klientem (UA) i serwerem początkowym (S). POŁĄCZENIA HTTP – CZ. II W bardziej złożonych przypadkach, gdy występuje jeden lub kilka punktów pośredniczących (bramy sieciowe, tunele, serwery proxy) łańcuch zapytań jest bardziej skomplikowany. Transmisja musi być więc zrealizowana przez cztery niezależne połączenia (często wykorzystujące różne media transmisyjne). Różnice te są bardzo istotne, ponieważ niektóre opcje transmisji HTTP mogą być stosowane wyłącznie w połączeniu z najbliższym, „nietunelowanym” sąsiadem. POŁĄCZENIA HTTP – CZ. III W praktyce każdy punkt może być zaangażowany wielokrotnie w przeprowadzanie równoczesnych transmisji, np. B może odbierać zapytania od wielu klientów z wyłączeniem A, i/lub przesyłać dalej zapytania do serwera w tym samym czasie. Transmisja HTTP jest utożsamiana z warstwą aplikacji, która znajduje się powyżej warstwy TCP/IP. Domyślnym portem HTTP jest 80, ale mogą być wykorzystywane także inne numery. W transmisji HTTP 1.0 większość zapytań/odpowiedzi jest realizowana za pomocą nowych połączeń. W HTTP 1.1 jedno połączenie może być wykorzystane do wymiany zapytań/odpowiedzi. PROTOKÓŁ HTTP V.1.1 Każdorazowe zestawianie połączeń TCP dla każdego URL powoduje nadmierne obciążanie serwerów HTTP oraz co za tym idzie, może być przyczyną powstawania zatorów w sieci Internet. Złożoność stron WWW (rysunki, pliki z dźwiękiem, inne dane) powoduje konieczność zestawiania przez klienta połączeń wielokrotnych z tym samym serwerem w krótkich odstępach czasu. Zalety protokołu HTTP 1.1: Zapytania i odpowiedzi HTTP są przesyłane kolejno (pipeline) przez jedno połączenie. Pipelining umożliwia klientowi tworzenie wielokrotnych zapytań bez konieczności oczekiwania na poprzednią odpowiedź. Taka organizacja ruchu umożliwia bardziej efektywne wykorzystanie łącza TCP w krótszym czasie. Prawdopodobieństwo wystąpienia zatoru w sieci jest redukowane poprzez zmniejszenie ruchu pakietów związanych z organizacją (otwieraniem, zamykaniem) połączeń TCP. DOBÓR PLATFORMY HHTP Wybór platformy programowej, mającej stanowić narzędzie do budowy serwisów WWW to dopiero początek planowania pracy przez administratora. Obecne serwisy WWW, w dużej części dynamiczne i wykorzystujące bazy danych, swoją specyfiką są bardziej zbliżone do rozproszonych aplikacji sieciowych niż do swoich pierwowzorów Poważnym problemem administratorów jest przygotowanie serwerów internetowych do rosnącej w sposób niemalże nieprzewidywalny liczby odwiedzin. Zachowania społeczności Internetu są trudne do przewidzenia. To, że nagle nasz serwis WWW odwiedza 10 razy więcej osób niż zwykle, może być efektem bardziej lub mniej kontrolowanych działań. Prognozowanie obciążenia witryny okazuje się więc jednym z najważniejszych elementów projektu serwisu WWW. PLANOWANIE SYSTEMÓW HTTP W rozwoju każdego większego serwisu WWW można wskazać następujące etapy: planowanie zawartości i dostępnych funkcji, analiza rynku, instalacja w środowisku docelowym, akcja promocyjna (nie zawsze), rozwój i utrzymanie ruchu. Planowanie wydajności lub zdolności obsługi jest procesem ciągłym i powinno się zacząć w pierwszym etapie realizacji serwisu WWW - już wówczas można uzyskać pierwsze prognozy co do liczby wizyt w danym okresie czasu. To z kolei może posłużyć do stworzenia prostego i niedoskonałego jeszcze modelu analitycznego, który przy założeniu kilku empirycznych lub katalogowych wskaźników wstępnie przybliży zapotrzebowanie na wydajność. MODEL UPROSZCZONY – CZ. I Dla przykładu przeprowadźmy wstępną analizę dla następujących przewidywanych warunków: dziennie będzie składanych ok. 25 000 wizyt, każda potrwa średnio 15 minut; serwis będzie witryną statyczną z kilkoma skryptami, których typ musimy określić (kwestia doboru modułów); użytkownik w czasie pojedynczej wizyty odwiedzi 10 stron, w tym 4 razy skorzysta ze strony dynamicznej. MODEL UPROSZCZONY – CZ. II Resztę parametrów możemy przyjąć domyślnie (na podstawie opracowań udostępnionych przez firmę Microsoft): średnia objętość kodu strony HTML - 7 kB; średnia objętość grafiki - 16 kB; średnia liczba grafik pobieranych z każdą stroną HTML - 4 (część wcześniej pobranych grafik przeglądarki zwykle wyciągają z własnej pamięci cache); stosunek liczby odwiedzin w okresie godzin szczytu 10-14 (peak load) - 200 proc. obciążenia bazowego; MODEL UPROSZCZONY – CZ. III Na tej podstawie możliwe jest przeprowadzenie następujących wyliczeń: średnia "waga" strony HTML - 7 + 4 * 16 = 71 kB; średnia liczba użytkowników odwiedzających witrynę w tym samym czasie 20x+4*2x=25000, gdzie x-obciążenie w godzinach normalnej aktywności NA; obciążenie normalne x = 892 odwiedziny/godzinę; obciążenie szczytowe 2x = 1785 odwiedzin/godzinę; 892*15 minut/60 minut = 223 użytkowników jednocześnie w godzinach NA; 1785*15 minut/60 minut = 446 użytkowników jednocześnie w godzinach szczytowej aktywności; średnia liczba równocześnie wykonywanych skryptów ASP: obciążenie normalne: 892 * 4/ 3600 skrypt/sekundę, obciążenie szczytowe: 1785 *4/ 3600 skrypty/sekundę; średnia wymagana przepustowość serwera i sieci: w godzinach normalnej aktywności: 892*10*71 kB = 609 MB/godz. = 173,5 kB/s, w godzinach szczytowej aktywności: 1218 MB/godz. = 347 kB/s. MODEL UPROSZCZONY - ANALIZA Dobrym nawykiem przy szacowaniu zapotrzebowania na wydajność serwera czy łącza jest przyjmowanie jako docelowego obciążenia o 50 proc. większego od maksymalnego, przewidywanego w obecnej sytuacji. Należy zauważyć, że wzrost liczby odwiedzin o 50 proc. spowoduje wzrost wymaganej szczytowej przepustowości do ponad 520 kB/s. Choć maksymalny transfer dla kart sieciowych 10Base-T wynosi 1,2 MB/s, zaleca się, aby obciążenie pojedynczego segmentu Ethernet 10 Mb/s nie przekraczało 36 proc. jego maksymalnej przepustowości (czyli 460 kB/s) - w przeciwnym razie w sieci zacznie dość gwałtownie wzrastać liczba kolizji ramek i ogólna wydajność kanału spadnie. Osobną sprawą jest zapewnienie odpowiednio szybkiego połączenia naszego serwera z Internetem - przy wymaganej maksymalnej przepustowości w granicach 520 kB/s jedynie łącze o szybkości przynajmniej 1 Mb/s będzie mogło zaspokoić nasze potrzeby. MODEL UPROSZCZONY – WNIOSKI – CZ. I Nie należy zapominać, że dokładanie kolejnego procesora lub zwiększanie szybkości pracy procesora oraz rozszerzanie dostępnej ilości pamięci RAM nie są jedynymi możliwościami zwiększenia wydajności serwera WWW. Czasami, szczególnie z punktu widzenia większej niezawodności, bardziej będzie się opłacało uruchomienie dodatkowego komputera i odpowiednie rozłożenie pomiędzy oba ruchu generowanego przez użytkowników (load balancing). HTTP-1 HTTP Request HTTP Request HTTP-2 HTTP-3 FTP-1 MODEL UPROSZCZONY – WNIOSKI - CZ.II Architektura z więcej niż jednym serwerem zalecana jest w przypadku aplikacji internetowych opartych na bazach danych wtedy np. dwie maszyny pełnią funkcje serwerów aplikacji (HTML+ skrypty), a trzecia zajmuje się obsługą wykorzystywanych przez aplikację baz danych. Takie rozwiązania jak wyżej, lecz ze znacznie większą liczbą serwerów, stosowane są m.in. w firmach prowadzących duże portale internetowe STRUKTURA PORTALU INTERNETOWEGO Warstwa klienta Interfejs użytkownika przeglądarka WWW Serwer WWW Apache + PHP Logiczna warstwa pośrednia Serwer aplikacji Baza danych Translator formatów z/do XML(HTML) Zasoby danych Serwer NEWS Dokumenty XML na WWW Inne dokumenty na WWW: HTML, Word, PDF, … Inne bazy danych XML WARSTWY LOGICZNE PORTALU Warstwa klienta Warstwa klienta, to nic innego jak interfejs użytkownika, przedstawiający wynik działania procesu, jakim jest przekształcenie poszukiwanych informacji i prezentacja jej w prosty, zwięzły i przede wszystkim zrozumiały dla klienta sposób. Fizycznie jest to komputer z przeglądarką internetową, palmtop, telefon komórkowy. Logiczna warstwa pośrednia Jest to miejsce, w którym dokonywane jest scalanie wszystkich posiadanych informacji przez system, ujednolicenie jej i sformatowanie w celu dalszej prezentacji. Fizycznie jest to komputer, serwer WWW, korzystający z wewnętrznej i zewnętrznych baz danych oraz serwerów aplikacji. Zasoby danych Są to wszystkie posiadane zasoby: dokumenty w różnych postaciach (np. doc, PDF, HTML, XML i inne), informacje zawarte w bazach danych. Fizycznie są to serwery baz danych, serwery plików i inne. PORTAL INTERNETOWY A REPREZENTACJA DANYCH Idea serwerów aplikacji wyłoniła się z konieczności bardziej zaawansowanego rozwoju serwisów i stron WWW oraz jako naturalne rozszerzenie aplikacji typu klient – serwer. STRUKTURA SOFTWEROWA PORTALU Narodził się pomysł podziału takiego systemu na kilka warstw, gdzie oddzielono logikę działania aplikacji od warstwy prezentacji i warstwy danych, co znacznie ułatwiło wszelkie modyfikacje i budowę nowych serwisów. Taka architektura składa się z trzech warstw: z jednego lub wielu tzw. systemów zaplecza (backend), z interfejsu użytkownika, inaczej warstwy prezentacji (frontend), z warstwy pośredniej (middleware), w której umieszcza się oprogramowanie logiki biznesowej systemu (gdzie zapisane są wszystkie reguły rządzące działaniem aplikacji i procesy biznesowe). SERWERY WIRTUALNE WWW Z serwerami wirtualnymi Bez serwerów wirtualnych Niezaprzeczalnie najpopularniejszym serwerem WWW jest Apache. W Polsce Apache ma 50% rynku. Jest to wartość podobna, jak w innych krajach, gdzie Apache ma od 40% do 60% rynku