1 / 40

Protokoły Sieciowe TCP/IP

Protokoły Sieciowe TCP/IP. Opracownie: mgr Aneta Kaczyńska mgr Dariusz Zieliński mgr Krzysztof Zieliński. Menu . TCP Protokół Warstwa Transportowa Charakterystyka protokołu Warstwa internetu

romaine
Download Presentation

Protokoły Sieciowe TCP/IP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Protokoły Sieciowe TCP/IP Opracownie: mgr Aneta Kaczyńska mgr Dariusz Zieliński mgr Krzysztof Zieliński

  2. Menu • TCP Protokół Warstwa Transportowa • Charakterystyka protokołu Warstwa internetu • Nawiązanie połączenia Warstwa dostępu do sieci • Transmisja danych Niezawodny transfer danych • Zakończenie połączenia Model TCP/IP a internet • Stany połączenia FTP • Zastosowania Dostęp anonimowy • Internet protokół POP3 • Klasy Przykład sesji POP3 • Adres IP SMB • IP a pozostałe warstwy Protokół • Rodzaje Historia • Zapis Wersje • IPv4 Bezpieczeństwo Budowa datagramu SMB a CIFS • Model TCP/IP Porty • Historia QUIZ • Warstwa aplikacji

  3. TCP (ang. Transmission Control Protocol – protokół kontroli transmisji) – strumieniowy protokół komunikacji między dwoma komputerami. Został stworzony przez Vintona Cerfa i Roberta Kahna. Jest on częścią większej całości określanej jako stos TCP/IP. W modelu OSI TCP odpowiada warstwie transportowej.

  4. TCP jest protokołem działającym w trybie klient-serwer. Serwer oczekuje na nawiązanie połączenia na określonym porcie. Klient inicjuje połączenie do serwera. W przeciwieństwie do UDP, TCP gwarantuje wyższym warstwom komunikacyjnym dostarczenie wszystkich pakietów w całości, z zachowaniem kolejności i bez duplikatów. Zapewnia to wiarygodne połączenie kosztem większego narzutu w postaci nagłówka i większej liczby przesyłanych pakietów. Chociaż protokół definiuje pakiet TCP, to z punktu widzenia wyższej warstwy oprogramowania, dane płynące połączeniem TCP należy traktować jako ciąg oktetów. W szczególności – jednemu wywołaniu funkcji API (np. send()) nie musi odpowiadać wysłanie jednego pakietu. Dane z jednego wywołania mogą zostać podzielone na kilka pakietów lub odwrotnie – dane z kilku wywołań mogą zostać połączone i wysłane jako jeden pakiet (dzięki użyciu algorytmu Nagle'a). Również funkcje odbierające dane (recv()) w praktyce odbierają nie konkretne pakiety, ale zawartość bufora stosu TCP/IP, wypełnianego sukcesywnie danymi z przychodzących pakietów.

  5. Charakterystyczny dla TCP jest moment nawiązania połączenia, nazywany three-way handshake. Host inicjujący połączenie wysyła pakiet zawierający segment TCP z ustawioną flagą SYN (synchronize). Host odbierający połączenie, jeśli zechce je obsłużyć, odsyła pakiet z ustawionymi flagami SYN i ACK (acknowledge – potwierdzenie). Inicjujący host powinien teraz wysłać pierwszą porcję danych, ustawiając już tylko flagę ACK (i gasząc SYN). Jeśli host odbierający połączenie nie chce lub nie może odebrać połączenia, powinien odpowiedzieć pakietem z ustawioną flagą RST (reset).

  6. W w celu weryfikacji wysyłki i odbioru TCP wykorzystuje sumy kontrolne i numery sekwencyjne pakietów. Odbiorca potwierdza otrzymanie pakietów o określonych numerach sekwencyjnych ustawiając flagę ACK. Brakujące pakiety są retransmitowane. Host odbierający pakiety TCP defragmentuje je i porządkuje je według numerów sekwencyjnych tak, by przekazać wyższym warstwom modelu OSI pełen złożony segment.

  7. Prawidłowe zakończenie połączenia może być zainicjowane przez dowolną stronę. Polega ono na wysłaniu pakietu z ustawioną flagą FIN (finished). Pakiet taki wymaga potwierdzenia flagą ACK. Najczęściej po otrzymaniu pakietu z flagą FIN, druga strona również kończy komunikację wysyłając pakiet z flagami FIN i ACK. Pakiet taki również wymaga potwierdzenia przez przesłanie ACK.

  8. LISTEN- Gotowość do przyjęcia połączenia na określonym porcie przez serwer. • SYN-SENT - Pierwsza faza nawiązywania połączenia przez klienta. Wysłano pakiet z flagą SYN. Oczekiwanie na pakiet SYN+ACK. • SYN-RECEIVED - Otrzymano pakiet SYN, wysłano SYN+ACK. Trwa oczekiwanie na ACK. Połączenie jest w połowie otwarte (ang. half-open). • ESTABLISHED - Połączenie zostało prawidłowo nawiązane. Prawdopodobnie trwa transmisja • FIN-WAIT-1 - Wysłano pakiet FIN. Dane wciąż mogą być odbierane ale wysyłanie jest już niemożliwe. • FIN-WAIT-2 - Otrzymano potwierdzenie własnego pakietu FIN. Oczekuje na przesłanie FIN od serwera. • CLOSE-WAIT - Otrzymano pakiet FIN, wysłano ACK. Oczekiwanie na przesłanie własnego pakietu FIN (gdy aplikacja skończy nadawanie) • CLOSING - Połączenie jest zamykane LAST-ACK- Otrzymano i wysłano FIN. Trwa oczekiwanie na ostatni pakiet ACK. • CLOSED- Połączenie jest zamknięte

  9. Aplikacje, w których zalety TCP przeważają nad wadami (większy koszt związany z utrzymaniem sesji TCP przez stos sieciowy), to m.in. programy używające protokołów warstwy aplikacji: HTTP, SSH, FTP czy SMTP/POP3 i IMAP4.

  10. Internet Protocol (IP) – protokół komunikacyjny warstwy sieciowej modelu OSI (warstwy internet w modelu TCP/IP). Używany powszechnie w Internecie i sieciach lokalnych. Dane w sieciach IP są wysyłane w formie bloków określanych mianem pakietów. W przypadku protokołu IP, przed rozpoczęciem transmisji nie jest zestawiana wirtualna sesja komunikacyjna pomiędzy dwoma hostami, które nie komunikowały się ze sobą wcześniej. Protokół IP jest protokołem zawodnym – nie gwarantuje, że pakiety dotrą do adresata, nie zostaną pofragmentowane, czy też zdublowane, a ponadto mogą dotrzeć do odbiorcy w innej kolejności niż zostały nadane. Niezawodność transmisji danych jest zapewniana przez protokoły warstw wyższych (np. TCP), znajdujących się w hierarchii powyżej warstwy sieciowej.

  11. Klasa A - Do identyfikacji sieci wykorzystany jest wyłącznie pierwszy oktet, pozostałe trzy stanowią adres hosta. Najstarszy bit pierwszego bajtu adresu jest zawsze równy zeru, ponadto liczby 0 i 127 są zarezerwowane, dlatego ostatecznie dostępnych jest 126 adresów sieci tej klasy. Klasa ta została przeznaczona dla wyjątkowo dużych sieci, ponieważ trzy ostatnie bajty adresu dają ponad 16 milionów numerów hostów. • Klasa B - Pierwsze dwa oktety opisują adres sieci tej klasy, pozostałe określają adres hosta. Najstarsze dwa bity pierwszego bajtu adresu to 10, dlatego może on zawierać 63 kombinacji (od 128 do 191), drugi może być dowolny dając tym samym do dyspozycji ponad 16 tysięcy adresów sieci. W każdej z sieci można przypisać podobną liczbę hostów (ponad 65 tysięcy), z tego powodu klasa ta została przeznaczona dla potrzeb sieci średnich i dużych • Klasa C- Trzy pierwsze bajty opisują adres sieci, przy czym pierwszy z nich zawsze zaczyna się kombinacją dwójkową 110. Pierwszy bajt pozwala na przypisanie 31 kombinacji (od 192 do 223), kolejne dwa mogą być przypisane dowolnie, dając ostatecznie ponad 2 miliony adresów sieci. Ostatni oktet przeznaczony jest do określenia adresu hosta w sieci. Maksymalnie może być ich 254 (bez 0 oraz 255), dlatego ta przestrzeń adresowa została przeznaczona dla małych sieci

  12. Klasa D- Pierwsze cztery bity adresu tej klasy wynoszą 1110, stąd dostępne jest 16 kombinacji (od 224 do 239) dla pierwszego oktetu. Ta przestrzeń adresowa została utworzona w celu umożliwienia rozsyłania grupowego przy użyciu adresów IP. Adres rozsyłania grupowego jest unikatowym adresem sieciowym, który kieruje pakiety o tym adresie docelowym do zdefiniowanej wcześniej grupy adresów IP. Dzięki temu pojedynczy komputer może przesyłać jeden strumień danych równocześnie do wielu odbiorców (multicast). • Klasa E - Adresy tej klasy zostały zarezerwowane przez Internet Engineering Task Force (IETF) do potrzeb badawczych i nie są dostępne do publicznego użytku. Pierwsze cztery bity każdego adresu tej klasy mają zawsze wartość 1, dlatego istnieje tylko 15 możliwości (od 240 do 255) przypisania pierwszego bajtu

  13. Adres IP – liczba nadawana interfejsowi sieciowemu, grupie interfejsów (broadcAdres IP – liczba nadawana interfejsowi sieciowemu, grupie interfejsów (broadcast, multicast), bądź całej sieci komputerowej opartej na protokole IP, służąca identyfikacji elementów warstwy trzeciej modelu OSI – w obrębie sieci oraz poza nią (tzw. adres publiczny). ast, multicast), bądź całej sieci komputerowej opartej na protokole IP, służąca identyfikacji elementów warstwy trzeciej modelu OSI – w obrębie sieci oraz poza nią (tzw. adres publiczny). Adres IP nie jest "numerem rejestracyjnym" komputera – nie identyfikuje jednoznacznie fizycznego urządzenia – może się dowolnie często zmieniać (np. przy każdym wejściu do sieci Internet) jak również kilka urządzeń może dzielić jeden publiczny adres IP. Ustalenie prawdziwego adresu IP użytkownika, do którego następowała transmisja w danym czasie jest możliwe dla systemu/sieci odpornej na przypadki tzw. IP spoofingu (por. man in the middle, zapora sieciowa, ettercap) – na podstawie historycznych zapisów systemowych. W najpopularniejszej wersji czwartej (IPv4) jest zapisywany zwykle w podziale na oktety w systemie dziesiętnym (oddzielane kropkami) lub rzadziej szesnastkowym bądź dwójkowym (oddzielane dwukropkami bądź spacjami).

  14. W przeciwieństwie do adresu sprzętowego (MAC; warstwa druga modelu OSI) adres IP nie musi identyfikować jednoznacznie urządzenia ani w czasie, ani fizycznie (szczególnie, jeśli nie należy on do zakresu publicznego – jest adresem podlegającym translacji, bądź jest przydzielany dynamicznie). Protokół komunikacyjny IP pracuje w trzeciej warstwie modelu (warstwie sieciowej) niezależnie od rodzaju nośnika warstwy pierwszej. Jest trasowalny (routowalny), a więc umożliwia trasowanie, które odbywa się właśnie w warstwie trzeciej. Aby zapewnić pomyślność komunikacji w tym protokole konieczne jest przyporządkowanie adresów IP interfejsom sieciowym urządzeń.Adresy IP stosuje się nie tylko w Internecie, ale również w sieciach lokalnych korzystających z TCP/IP. W pierwszym przypadku przypisywany jest on przez dostawcę internetu, w drugim o poprawne jego przypisanie dba zwykle jej administrator.

  15. Obecnie w Internecie używane są adresy IP protokołu w wersji czwartej, IPv4. Zapotrzebowanie na adresy IPv4 stało się na tyle duże, że pula nieprzydzielonych adresów zaczyna się wyczerpywać, z tego powodu powstała nowa, szósta wersja protokołu – IPv6. Piąta wersja, IPv5 mająca rozszerzyć możliwości poprzedniczki nie zdobyła popularności, protokół ten znany jest szerzej pod angielską nazwą Internet Stream Protocol (pol. „protokół strumieni internetowych”), skracaną do ST.

  16. Adresy IPv4 są 32-bitowymi liczbami całkowitymi. Tak więc adres serwisu działający pod adresem wikipedia.org to liczba 3 494 942 722, która w zapisie szesnastkowym ma postać D0 50 98 02. Adres w postaci szesnastkowej zapisywany jest zwykle jako D0:50:98:02, z której łatwo przekształcić go na łatwiejszą do zapamiętania formę dziesiętną, oddzielaną już kropkami: 208.80.152.2 (każdą z liczb szesnastkowych zamienia się na jej dziesiętny odpowiednik z zakresu 0-255). Adresy IP w postaci dwójkowej wykorzystywane są niezmiernie rzadko, najczęściej do wyznaczenia maski sieci lub maski podsieci, powyższy adres w postaci dwójkowej to 11010000 01010000 10011000 00000010. • Adresy IPv6 są 128-bitowymi liczbami całkowitymi, dlatego przykładowy adres sieci IPv6 w zapisie szesnastkowym, zgodnym ze specyfikacją Media:CIDR, która dotyczy również IPv4 (RFC1518, RFC1519, RFC1812), wygląda następująco: 3ffe:0902:0012:0000:0000:0000:0000:0000/48, gdzie /48 oznacza długość pierwszego prefiksu wyrażoną w bitach (człony adresu grupuje się po 16 bitów i oddziela dwukropkiem). • Przyjmuje się, że najstarsze niepodane bity danej sekcji są zerami (np. :: oznacza :0000:), dlatego jego skrócona wersja to 3ffe:902:12::/48. Adres IPv6 w zapisie dziesiętnym byłby cztery razy dłuższy, a więc składałby się z 16 liczb dziesiętnych z zakresu 0-255.

  17. IPv4 (ang. Internet Protocol version 4) – czwarta wersja protokołu komunikacyjnego IP przeznaczonego dla Internetu. Identyfikacja hostów w IPv4 opiera się na adresach IP. Dane przesyłane są w postaci standardowych datagramów. Wykorzystanie IPv4 jest możliwe niezależnie od technologii łączącej urządzenia sieciowe – sieć telefoniczna, kablowa, radiowa, itp. IPv4 znajduje się obecnie w powszechnym użyciu. Dostępna jest również nowsza wersja – IPv6. Dokładny opis czwartej wersji protokołu IP znajduje się w RFC 791. W modelu TCP/IP protokół IPv4 znajduje się w warstwie sieciowej.

  18. +Bity 0 - 34 - 78 - 1516 - 1819 - 310WersjaDługość nagłówkaTyp usługiCałkowita długość32Numer identyfikacyjnyFlagiKontrola przesunięcia64Czas życia pakietu (TTL)Protokół warstwy wyższejSuma kontrolna nagłówka96Adres źródłowy IP128Adres docelowy IP160Opcje IPUzupełnienie192Dane • Pierwsze, 4-bitowe pole zawiera numer wersji protokołu IP (dla IPv4 jest to 4). Kolejne 4-bitowe pole zawiera długość samego nagłówka protokołu (bez danych). Następne 8 bitów prezentuje tzw. "typ usługi" (ang. Type of Service). Jest to najbardziej podstawowy sposób wyznaczania priorytetu danego datagramu. Na podstawie ToS routery mogą szybciej (np. dla sesji SSH), lub wolniej (np. dla przesyłania danych) przepuszczać przez siebie dane datagramy, zwiększając bądź też zmniejszając w ten sposób interaktywność transmisji. Kolejnym 16-bitowym polem jest całkowita długość pakietu (razem z danymi). Jego długość (wynosząca 2^16) umożliwia ustawienie rozmiaru pakietu na 65536 bajtów. Warto dodać, że minimalny rozmiar pakietu to 20 bajtów. Kolejne 16-bitowe pole to numer identyfikacyjny, potrzebny między innymi do fragmentacji i defragmentacji pakietów.

  19. Kolejnym 3-bitowym polem są flagi, które są używane przy fragmentacji pakietów. • Następne 13-bitowe pole służy do odpowiedniego "poukładania" pofragmentowanych pakietów w taki sposób, aby dane zawarte w tych pakietach miały taki sam układ, jak w pakiecie przed fragmentacją. • Pole TTL (8 bitów) to czas życia pakietów (ang. time to live). Jest to liczba z zakresu 0-255. Przy przechodzeniu pakietu przez router jest ona zmniejszana o jeden. W momencie osiągnięcia przez TTL zera, router nie przekazuje pakietu do kolejnego urządzenia sieciowego. • Kolejne, 8-bitowe pole to numer protokołu warstwy wyższej, takimi jak ICMP (1), TCP (6) czy UDP (17). • Następnym polem jest suma kontrolna nagłówka pakietu. Służy ona kontroli, czy wszystkie dane zostały przetransmitowane. Przy każdej zmianie zawartości pakietu, router oblicza sumę kontrolną dla pakietu i zapisuje ją w odpowiednim polu. • Dalsze pola zawierają adres źródłowy i docelowy. To właśnie na podstawie nich można określić pochodzenie i miejsce docelowe pakietu w sieci. • Ostatnim, 32-bitowym polem są opcje, które w normalnej transmisji zwykle nie są używane. • Pole Padding (wypełnienie) jest opcjonalne i jego zawartością są zera dopełniające długość nagłówka do wielokrotności 32 bitów

  20. Model TCP/IP (Transmission Control Protocol / Internet Protocol) – teoretyczny model warstwowej struktury protokołów komunikacyjnych. Model TCP/IP został stworzony w latach 70. XX wieku w DARPA, aby pomóc w tworzeniu odpornych na atak sieci komputerowych. Potem stał się on podstawą struktury Internetu.

  21. Protokół internetowy został stworzony przez Agencję Zaawansowanych Projektów Badawczych Obrony Departamentu Obrony Stanów Zjednoczonych (DARPA) we wczesnych latach 70. Po utworzeniu pionierskiego projektu ARPANET (pierwsza na świecie rozległa sieć internetowa), DARPA rozpoczęła wielokierunkowe prace nad technologiami przesyłu danych. • W 1972 Robert E. Kahn został zatrudniony w DARPA Information Processing Technology Office (Biuro Technologii Przesyłania Danych), gdzie pracował nad dwoma projektami: satelitarnym przesyłaniu pakietów internetowych oraz radiowym przesyłaniu pakietów internetowych. Dostrzegł wówczas możliwości, jakie kryły się w komunikowaniu się za pomocą tych pakietów. Wiosną 1973 roku Vinton Cerf, który rozwijał pierwotny protokół sieci ARPANET (NCP), dołączył się do Kahna, by wraz z nim pracować nad modelem otwartej architektury łączeniowej i opracowaniem nowego protokołu dla ARPANET. • W lecie 1973 roku Kahn i Cerf opracowali zręby nowego systemu, w którym użyto jednego tylko wspólnego protokołu internetowego. Cerf był też inspirowany przez Huberta Zimmermana i Louisa Pouzina, który stworzył francuską sieć CYCLADES, podobną do amerykańskiej. • Stało się przy tym możliwe połączenie niemalże wszystkich sieci, także nie opartych o TCP/IP, a więc rozwiązano początkowy problem Kahna. Komputer zwany bramą sieciową (później tę nazwę zmieniono na router, by uniknąć nieporozumień w przypadku innych typów bram sieciowych) jest podpięty do każdej z łączonych sieci i dokonuje tłumaczenia pakietów pomiędzy nimi. • Pomysł TCP/IP został znacząco rozwinięty przez grupę Cerfa w Stanford w latach 1973-74. Ośrodek badawczy firmy Xerox, Xerox PARC, we wczesnych latach badań nad Internetem wyprodukował Uniwersalny Pakiet PARC, posiadających wiele wspólnych cech z TCP/IP. Protokół ten był również bardzo popularny i przez pewien czas koegzystował z TCP/IP.

  22. DARPA następnie rozpoczęła współpracę z BBN Technologies, na Uniwersytecie Stanforda oraz z londyńskim College University, w celu rozwinięcia innych wersji protokołu dla różnych urządzeń. Stworzono cztery wersje protokołu: TCP v1, TCP v2, w wiosnę 1978 roku rozdzieloną wersję TCP v3 i IP v3, a następnie stabilną wersję TCP/IP v4- standard, który jest stosowany w Internecie do dziś. • W 1975 roku przeprowadzono test komunikacyjny dwóch sieci TCP/IP pomiędzy uniwersytetami Stanforda, a College London (UCL). W listopadzie 1977 roku dokonano trójstronnego połączenia na bazie protokołów TCP/IP pomiędzy Stanami Zjednoczonymi, Wielką Brytanią i Norwegią. Pomiędzy 1978, a 1983 rokiem, kilka innych prototypów TCP/IP zostało wynalezionych w centrach naukowych. 1 stycznia 1983 roku ARPANET w całości przełączyła się na TCP/IP. • W marcu 1982 roku Amerykański Departament Obrony uznał protokoły TCP/IP za standard w całej sieci należącej do wojska. W 1985 roku Internet Architecture Board (dawniej Internet Activities Board – techniczne ciało zarządzające Internetem) zorganizowało trzydniowe warsztaty na temat TCP/IP dla przemysłu komputerowego i korzystając z sił swoich 250 specjalistów pomogło wprowadzić protokoły TCP/IP do szerszego, komercyjnego użytku. • 9 listopada 2005 roku Kahn i Cerf otrzymali Prezydencki Medal Wolności za ich wkład w kulturę amerykańską.

  23. Warstwa procesowa czy warstwa aplikacji (ang. process layer) to najwyższy poziom, w którym pracują użyteczne dla człowieka aplikacje takie jak, np. serwer WWW czy przeglądarka internetowa. Obejmuje ona zestaw gotowych protokołów, które aplikacje wykorzystują do przesyłania różnego typu informacji w sieci

  24. Warstwa transportowa (ang. host-to-host layer) zapewnia pewność przesyłania danych oraz kieruje właściwe informacje do odpowiednich aplikacji. Opiera się to na wykorzystaniu portów określonych dla każdego połączenia. W jednym komputerze może istnieć wiele aplikacji wymieniających dane z tym samym komputerem w sieci i nie nastąpi wymieszanie się przesyłanych przez nie danych. To właśnie ta warstwa nawiązuje i zrywa połączenia między komputerami oraz zapewnia pewność transmisji.

  25. Warstwa Internetu lub warstwa protokołu internetowego (ang. internet protocol layer) to sedno działania Internetu. W tej warstwie przetwarzane są datagramy posiadające adresy IP. Ustalana jest odpowiednia droga do docelowego komputera w sieci. Niektóre urządzenia sieciowe posiadają tę warstwę jako najwyższą. Są to routery, które zajmują się kierowaniem ruchu w Internecie, bo znają topologię sieci. Proces odnajdywania przez routery właściwej drogi określa się jako trasowanie.

  26. Warstwa dostępu do sieci lub warstwa fizyczna (ang. network access layer) jest najniższą warstwą i to ona zajmuje się przekazywaniem danych przez fizyczne połączenia między urządzeniami sieciowymi. Najczęściej są to karty sieciowe lub modemy. Dodatkowo warstwa ta jest czasami wyposażona w protokoły do dynamicznego określania adresów IP.

  27. Niektóre zastosowania, takie jak poczta elektroniczna, przesyłanie wiadomości błyskawicznych, transfer plików, terminale sieciowe, pobieranie stron internetowych i transakcje finansowe wymagają niezawodnego przesyłania danych, czyli bez utraty danych. Utrata danych pliku lub danych transakcji finansowej może mieć przecież fatalne konsekwencje (w drugim przypadku dla banku lub klienta!). Zastosowania tolerujące utratę danych, wśród których najbardziej wyróżniają się media strumieniowe, mogą pozwolić sobie na przepadniecie określonej ilości danych. W przypadku zastosowań multimedialnych utrata danych może spowodować niewielkie zakłócenia podczas odtwarzania danych obrazu lub dźwięku, które nie wpłyną znacząco na jakość. Wpływ utraty danych na jakość pracy aplikacji i rzeczywista liczba pakietów danych, które mogą przepaść, w dużym stopniu zależy od aplikacji i zastosowanego schematu kodowania.

  28. Każdy protokół sieciowy można przyporządkować do określonej warstwy modelu TCP/IP. Pewną szczególną cechą rodziny protokołów TCP/IP używanej w internecie jest podział protokołów z warstwy aplikacyjnej i połączeniowej. Niektóre protokoły z warstwy aplikacji wykorzystują tylko pewne protokoły z warstwy transportowej. Protokoły DNS, NTP wykorzystują tylko protokół UDP z warstwy transportowej. Protokoły FTP, SMTP, POP3, SSH, IRC posługują się tylko TCP. Natomiast SMB używa obu protokołów. Protokół SSL ma szczególną rolę. Może zostać umieszczony pomiędzy każdym połączeniowym protokołem warstwy aplikacji, a TCP. Dzięki jego wykorzystaniu dane przesyłane przez aplikacje mogą zostać zaszyfrowane. • Niektóre protokoły z warstwy aplikacji, jak np. SMB nie działają zwykle w Internecie. Są wykorzystane w sieciach lokalnych do udostępniania usług, jak np. zdalne drukarki czy dyski. • W systemie Linux oraz innych klonach Uniksa dokładną listę protokołów transportowych można znaleźć w pliku: • /etc/protocols a listę protokołów z warstwy aplikacji w pliku • /etc/services W systemach z rodziny Windows NT, odpowiednie pliki znajdują się w katalogu • %ROOTDIR%\system32\drivers\etc gdzie %ROOTDIR to katalog z systemem, domyślnie: • c:\windows\

  29. FTP jest protokołem 8-bitowym, dlatego nie wymaga specjalnego kodowania danych na postać 7-bitową, tak jak ma to miejsce w przypadku poczty elektronicznej (patrz standardy MIME, base64, quoted-printable, uuencode). Do komunikacji wykorzystywane są dwa połączenia TCP. Jedno z nich jest połączeniem kontrolnym za pomocą którego przesyłane są np. polecenia do serwera, drugie natomiast służy do transmisji danych m.in. plików. FTP działa w dwóch trybach: aktywnym i pasywnym, w zależności od tego, w jakim jest trybie, używa innych portów do komunikacji. • Jeżeli FTP pracuje w trybie aktywnym, korzysta z portów: 21 dla poleceń (połączenie to jest zestawiane przez klienta) oraz 20 do przesyłu danych. Połączenie nawiązywane jest wówczas przez serwer. Jeżeli FTP pracuje w trybie pasywnym wykorzystuje port 21 do poleceń i port o numerze > 1024 do transmisji danych, gdzie obydwa połączenia zestawiane są przez klienta. W sieciach ukrytych za firewallem komunikacja z aktywnymi serwerami FTP jest możliwa, tylko pod warunkiem, jeżeli odpowiednie porty na firewallu (routerze) są zwolnione. Możliwe jest zainstalowanie wielu serwerów FTP na jednym i tym samym routerze. Warunkiem jest rozdzielenie portów przez router dla każdego serwera.

  30. Serwer FTP, zależnie od konfiguracji, może pozwalać na dostęp do jego zawartości bez podawania hasła. Zamiast niego powinno się podawać adres email (wg netykiety). Często jednak nie jest to przestrzegane właśnie ze względu na anonimowy charakter usługi. Większość serwerów FTP loguje jednak każde połączenie i IP klienta.

  31. Post Office Protocol version 3 (POP3) to protokół internetowy z warstwy aplikacji pozwalający na odbiór poczty elektronicznej ze zdalnego serwera do lokalnego komputera poprzez połączenie TCP/IP. Ogromna większość współczesnych internautów korzysta z POP3 do odbioru poczty. Istnieje bardziej zaawansowany protokół IMAP, który pozwala na przeglądanie czekających listów nie po kolei na podobieństwo plików w katalogach i posiada niektóre funkcje pominięte w POP3. Programy odbierające pocztę najczęściej obsługują oba protokoły, ale POP3 jest bardziej popularny. Wysyłanie listów zawsze opiera się na protokole SMTP. Komunikacja POP3 może zostać zaszyfrowana z wykorzystaniem protokołu SSL. Jest to o tyle istotne, że w POP3 hasło przesyłane jest otwartym tekstem, o ile nie korzysta się z opcjonalnej komendy protokołu POP3, APOP. • Protokół POP3, podobnie, jak inne protokoły internetowe (np. SMTP, HTTP) jest protokołem tekstowym, czyli w odróżnieniu od protokołu binarnego, czytelnym dla człowieka. Komunikacja między klientem pocztowym, a serwerem odbywa się za pomocą czteroliterowych poleceń.

  32. Poniżej przedstawiona jest przykładowa sesja POP3 (z serwerem cucipop), w której klient kolejno: • podaje identyfikator użytkownika, którego poczta będzie ściągana (polecenie user), • podaje hasło (polecenie pass), • prosi o listę wiadomości oczekujących na ściągnięcie (polecenie list), • ściąga pierwszą (i akurat w tym przypadku ostatnią) z wiadomości (polecenie retr), • kasuje wiadomość po jej ściągnięciu (polecenie dele), • kończy sesję (polecenie quit).

  33. +OK Cubic Circle's v1.31 1998/05/13 POP3 ready <4c210000ddb28641@pop3serwer> user uzytkownik +OK uzytkownik selected pass Haslo +OK Congratulations! list +OK 1 messages (627 octets) 1 627 . retr 1 +OK 627 octets Received: by pop3serwer (mbox uzytkownik) (with Cubic Circle's cucipop (v1.31 1998/05/13) Mon Nov 1 23:04:26 2004) X-From_: uzytkownik@adres.email.com Mon Nov 01 23:04:07 2004 Return-path: <uzytkownik@adres.email.com> Envelope-to: uzytkownik@adres.email.com Received: from uzytkownik by pop3serwer.adres.email.com with local (Exim 3.35 #1 (Debian)) id 1COkHX-0002DO-00 for <uzytkownik@adres.email.com>; Mon, 01 Nov 2004 23:04:07 +0100 To: uzytkownik@adres.email.com Subject: test Message-Id: <E1COkHX-0002DO-00@pop3serwer.adres.email.com> From: Uzytkownik <uzytkownik@adres.email.com> Date: Mon, 01 Nov 2004 23:04:07 +0100 . dele 1 +OK Message 1 deleted quit +OK Was it as good for you, as it was for me? (clean as a baby)

  34. Server Message Block (SMB) - protokół służący udostępnianiu zasobów komputerowych, m.in. drukarek czy plików.

  35. SMB jest protokołem typu klient-serwer, a więc opiera się na systemie zapytań generowanych przez klienta i odpowiedzi od serwera. Wyjątkiem od tej zasady jest mechanizm tzw. oplocków (opportunistic lock), w którym to serwer może wygenerować "nieproszony" przez klienta sygnał informujący o zerwaniu wcześniej założonego oplocka (blokady). • Niemniej jednak, chociaż sam protokół ma charakter klient-serwer, to z racji tego, że najczęściej maszyny klienckie dysponują także funkcjami serwerowymi (udostępnianie plików) to sieci SMB nabierają charakteru sieci peer-to-peer.

  36. Początki protokołu sięgają połowy lat 80., kiedy to w firmie IBM opracowano jego wczesną wersję (IBM PC Network SMB Protocol). W kolejnych latach protokół był nadal rozwijany, głównie przez firmę Microsoft. W późniejszych latach SMB stał się podstawą Otoczenia sieciowego w systemach Windows.

  37. Pierwotna wersja protokołu - Core Protocol - użyta w pierwszej implementacji PC NETWORK PROGRAM 1.0 umożliwiała podstawowe operacje takie jak: • otwieranie i zamykanie plików • otwieranie i zamykanie drukarek • odczyt i zapis z/do plików • tworzenie i kasowanie plików/katalogów • przeszukiwanie katalogów • ustawianie i odczytywanie atrybutów plików • blokowanie i udostępnianie wybranych fragmentów plików • Z czasem powstawały kolejne: Core Plus Protocol, Lan Manager 1.0 (LANMAN 1.0), LANMAN 2.0, LANMAN 2.1 (Windows for Workgroups), CIFS 1.0/ NT Lan Manager 1.0.

  38. SMB oferuje dwa modele bezpieczeństwa: • share level - polegający na zabezpieczeniu zasobu i znajdujących się w nim plików hasłem. Znajomość samego hasła wystarcza do uzyskania dostępu. Jedyny model np. w Windows for Workgroups, Windows 95/98/Me oraz jako jedna z możliwości w Sambie. • user level - oparty na zabezpieczaniu konkretnych plików poprzez prawa dostępu przyporządkowane konkretnym użytkownikom. Znajomość użytkownika i hasła jest warunkiem do uzyskania dostępu do zasobu. Model ten pojawił się w LANMAN-ie 1.0. Jedyny model np. w Windows z linii NT czyli Windows NT 3.51/4.0/2000/XP/2003 oraz jako jedna z możliwości w Sambie. • Inną kwestią dotyczącą bezpieczeństwa jest podział na grupy robocze oraz domeny. • Grupa robocza to zespół komputerów, w którym każdy komputer trzyma "u siebie" swoje poufne dane, zaś proces logowania, autoryzacji i uwierzytelnienia przebiega lokalnie. Rozwiązanie preferowane w sieciach domowych i w małych firmowych. • Domena natomiast prezentuje podejście scentralizowane do kwestii przechowywania poufnych danych - w każdej domenie funkcjonuje kontroler domeny (jeden główny oraz ewentualnie kilka zapasowych), który je przechowuje. Procesy autoryzacji, uwierzytelniania przeprowadzane są więc centralnie. Rozwiązanie preferowane w większych sieciach firmowych i korporacyjnych.

  39. CIFS (Common Internet File System) to nowa wersja protokołu SMB opracowywana przez Microsoft i kilka innych firm. Szkic protokołu został przesłany do IETF, jednak z powodu wielu niedoskonałości nie został zatwierdzony. CIFS został zaimplementowany m.in. w Windows 2000/XP/2003 oraz Samba 3.0.

  40. Wykorzystywane porty sieciowe: • 137/UDP, 138/UDP, 139/TCP • opcjonalnie 445/TCP

More Related