Warstwa aplikacji Model TCP/IP Model OSI - kontakt z użytkownikiem (bądź procesem), - transformacja danych aplikacji do jednolitego formatu - dialog między zdalnymi aplikacjami wg ustalonego protokołu Aplikacji Transportowa Sieciowa Aplikacji Prezentacji Sesji Transportowa Sieciowa Dostępu do sieci Łącza danych Fizyczna
Port 53: DNS (Domain Name System) domena.pl NS: kis.p.lodz.pl? domena.uk TLD (Top Level Domain) NS: kis.p.lodz.pl? domena.gov domena.com domena.firma.pl domena p.lodz.pl NS: kis.p.lodz.pl? NS: kis.p.lodz.pl? domena.lodz.pl A: www.kis.p.lodz.pl? lokalny serwer DNS 212.191.89.2 domena.com (backup) A: www.kis.p.lodz.pl? klient DNS
DNS Dialog między klientem a serwerem klient DNS (192.168.0.10) UDP TRNS. ID: 43265 SRC: 192.168.0.10:1087 DST: 192.168.0.1:53 (((((((( ))))))))!!! UDP TRNS. ID: 43265 DST: 192.168.0.10:1087 SRC: 192.168.0.1:53 serwer DNS (192.168.0.1) łatwy do podszycia się (tzw. spoofing) protokół UDP nr transakcji liczbą 16 bitową (0-65534) transmisja nieszyfrowana próby zabezpieczenia: DNSSEC
Rodzaje rekordów DNS (fragment) SOA (Start of Authority) generalne informacje o domenie NS (Name Server) Wskazanie na serwer nazw dla tej domeny A (Address) zwykła translacja nazwy na numer IP CNAME (Cannonical Name) Alias. Wskazanie na inna nazwę MX (Mail Exchange) Wskazanie na serwer pocztowy obsługujący tą domenę PTR (Pointer) Translacja odwrotna numeru IP na nazwę HINFO (Host Info) Informacje o sprzęcie który obsługuje tą domenę
Port 25: SMTP (Simple Mail Transfer Protocol) Rozpoczęcie połączenia Przedstawienie się HELO/EHLO smtp.abc.pl Przedstawienie się 220 smtp.xyz.pl SMTP Rozpoczęcie wprowadzenia treści DATA Przygotowanie na transmisję treści 354 go ahead Podanie nadawcy MAIL FROM:<user1@abc.pl> Podanie odbiorcy RCPT TO: <user2@xyz.pl Przyjęcie polecenia 250 smtp.xyz.pl 250-PIPELINING 250-SIZE 10406346 250-AUTH LOGIN MD5 Przyjęcie polecenia 250 smtp.xyz.pl Przyjęcie polecenia 250 smtp.xyz.pl Wprowadzenie treści... Zakończenie transmisji QUIT Przyjęcie treści 250 ok Przyjęcie zakończenia tranmisji 221 smtp.xyz.pl
Komendy SMTP i ESMTP (fragment) komenda AUTH DSN EHLO ETRN PIPELINING SIZE 8BITMIME RESTART ESMTP Opis autoryzacja powiadamianie o statusie doręczenia spis obsługiwanych komend ESMTP przesłanie kolejki listów przeznaczonych do podłączającego się serwera potokowe przesyłanie wiadomości określenie wielkości przesyłanej wiadomości wsparcie dla 8bitowego kodowania wiadomości wznowienie przesyłania wiadomości przy rozłączeniu sesji komenda DATA HELO HELP MAIL NOOP QUIT RCPT RSET VRFY SMTP Opis przesłanie treści listu nawiązanie połączenia SMTP wypis dostępnych komend nadawca listu podtrzymywanie połączenia zakończenie sesji SMTP odbiorca listu przerwanie sesji SMTP sprawdzenie obecności skrzynki pocztowej o podanej nazwie
Kody zwrotne SMTP 1xy Wstępna akceptacja komendy Komenda zaakceptowana, ale oczekiwanie na dalszą decyzję użytkownika. Używane tylko w ESMTP 2xy Akceptacja komendy Komenda zaakceptowana, oczekiwanie na następną. 3xy Pośrednia akceptacja komendy Komenda zaakceptowana, ale oczekiwanie na dalszą jej część. 4xy Przejściowe odrzucenie komendy Komenda nie zaakceptowana, tymczasowo 5xy Permanentne odrzucenie komendy Komenda nie zaakceptowana, ostatecznie kod Opis 220 Usługa aktywna, oczekiwanie na komendy 250 akceptacja komendy 354 oczekiwanie na wprowadzanie treści listu 450 skrzynka użytkownika zajęta (np. zablokowana przez proces) 452 skrzynka użytkownika przepełniona 500 brak takiego polecenia 501 błąd w składni polecenia 552 brak miejsca na dysku (serwer)
Port 21: FTP (File Transfer Protocol) klient FTP port x port y zestawienie połączenia przez komendy sterujące (kody zwrotne podobne do SMTP) wymiana danych serwer FTP port v port z komenda USER PASS LIST ABOR QUIT RETR STOR PORT PASV Opis nazwa użytkownika hasło logowania wyświetlenie listy plików i katalogów przerwanie wszystkich połączeń wylogowanie z serwera pobieranie pliku wgrywanie pliku zestawienie połączenia aktywnego zestawienie połączenia pasywnego
Rodzaje połączeń FTP klient FTP (192.168.0.1) port 1288 port 1638 POŁĄCZENIE AKTYWNE zestawienie połączenia PORT 192,168,0,1,6,102 (((((((( ))))))))!!! wymiana danych serwer FTP (10.0.0.1) port 21 port 20 klient FTP (192.168.0.1) port 1288 port 1774 POŁĄCZENIE PASYWNE serwer FTP (10.0.0.1) zestawienie połączenia (PASV) port 21 PORT 10,0,0,1,14,215 (((((((( ))))))))!!! wymiana danych port 3799
Port 80: HTTP (HyperText Transfer Protocol) Bezstanowy (bazujący na prostej regule żądanieodpowiedź) protokół udostępniania dokumentów WWW (w formie tzw. hipertekstu - tekstu, odnośników, formularzy, tabel, grafiki itp. ) za pomocą prostych komend tekstowych. Jeden z najpopularniejszych protokołów stosowanych w Internecie i rdzeń jego funkcjonalności.
Metody żądań HTTP OPTIONS Żądanie określenia możliwości serwera (podanych w nagłówku żądania) GET Pobranie wskazanego zasobu HEAD Pobranie tylko nagłówka z meta-informacjami strony WWW POST Przesłanie danych na serwer do podanego zasobu ( np. skrypt, potok, itp.) PUT Przesłanie danych na serwer do podanej lokalizacji (katalog) DELETE Usunięcie wskazanego zasobu TRACE Odesłania żądania do nadawcy (diagnostyka połączenia) CONNECT Żądanie tunelowania połączenia ze wskazanym proxy
Kody odpowiedzi HTTP 1xy Informacja Żądanie otrzymane, proces wykonywania w toku 2xy Akceptacja Żądanie otrzymane i poprawnie wykonane 3xy Przekierowanie Żądanie otrzymane, ale wymagana dalsza interakcja klienta 4xy Błąd klienta Żądanie ma złą składnie, bądź nie może być wykonane 5xy Błąd serwera Serwer nie był w stanie wykonać prawdopodobnie poprawnego żądania Kod Opis 100 Continue Serwer wykonuje żądanie,klient może wysyłać kolejne żądania 200 OK Żądanie wykonane prawidłowo 301 Moved Permanently 400 Bad Request 401 Unauthorized Żądany zasób znajduje się pod innym adresem, konieczne podanie nowego URI Nieznane żądanie (błąd syntaktyczny) Odmowa dostępu do zasobu, z powodu błędnej autoryzacji 404 Not Found Nie ma takiego zasobu 500 Internal Server Error 503 Service Unavailable Serwer napotkał niespodziewany błąd wewnętrzny Serwer jest zbyt obciążony
Port 5269,5222: XMPP (extensible Messaging and Presence Protocol) <?xml version="1.0"?> <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="example.org"> <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='example.org' id='1461777714'> <iq type="set" id="auth_2" to="example.org" > <query xmlns="jabber:iq:auth"> <username>alice</username> <password>password</password> <resource>work</resource> </query> </iq> <iq from="example.org" id='auth_2' type='result'/> <message to="bob@example.org" > <subject>hello!</subject> <body>can't wait to see you tomorrow.</body> </message> <presence type="unavailable" > <status>logged out</status> </presence> </stream:stream> </stream:stream> Protokoły Protokół XMPP/Jabber zamknięte CCC.NET GADU-GADU 12345 mary@ccc.net AAA.COM BBB.ORG TLEN ICQ bob@tlen.pl alice@tlen.pl 12345 bob@aaa.com alice@aaa.com frank@bbb.org
Sieci P2P (Peer-to-Peer) port 1214: Kazaa, port 6881: BitTorrent port 4667: edonkey/overnet model klient-serwer kwerendy i informacje o lokalizacji pliku wymiana danych model 'Napster' informacje sterujące, brak wyszukiwania danych model 'FastTrack/GNUtella' model 'edonkey/overnet' model 'BitTorrent'