Sieci komputerowe Wykład dla studentów Informatyki Stosowanej studia niestacjonarne UJ 2007/2008 Michał Cieśla pok. 440a, email: ciesla@if.uj.edu.pl http://users.uj.edu.pl/~ciesla/ 1
2 Plan wykładu 1. Podstawowe informacje o sieciach TCP/IP. 2. Popularne protokoły i usługi sieciowe. 3. Programowanie sieciowe w oparciu o interfejs gniazd. 4. Elementy programowania rozproszonego. 5. Współczesne technologie w programowaniu rozproszonym.
3 Literatura 1. D.E. Comer, D. L. Stevens Sieci komputerowe TCP/IP tom 3, WNT 1997 (Internetworking with TCP/IP vol. III). 2. W. R. Stevens UNIX programowanie usług sieciowych, WNT 1999. (UNIX Network Programming). 3. R. Scrimger, P. LaSalle, M.Parihar, M. Gupta, C. Leitzke Biblia TCP/IP, Helion 2002 (TCP/IP Bible). 4. http://www.ietf.org/rfc.html 5. http://java.sun.com 6. http://www.google.pl
4 Wprowadzenie 1. Infrastruktura sieciowa. 2. Rodzaje sieci sieci lokalne i globalne, sieci scentralizowane i zdecentralizowane. 3. Konfiguracja urządzeń do pracy w sieci adresowanie IP, usługi DNS i DHCP, konfiguracja urządzeń do pracy w sieci. 4. Model ISO/OSI
5 karta sieciowa Karta sieciowa umożliwia podłączenie komputera do sieci
6 switch (przełącznik) Switch przekazuje sygnał pomiędzy połączonymi z nim komputerami.
7 router Router łączy sieci komputerowe (np. sieć lokalną z internetem).
8 skrętka Elementy sieciowe łączymy za pomocą skrętki (przewód ze skręconymi czterema parami kabli) zakończonej wtykami RJ45
Infrastruktura sieciowa serwery huby, switche router klienci sieci (hosty) drukarka WAN 9
10 Rodzaje sieci Podział ze względu na rozmiar: sieci lokalne (LAN Local Area Network), sieci rozległe (WAN Wide Area Network). Podział ze względu na konfigurację: zdecentralizowane (równorzędne, każdy z każdym (peer to peer)), scentralizowane (klient serwer (client - server)).
11 Sieci zdecentralizowane Nie istnieje żaden centralny serwer. Każdy klient sieci może żądać i dostarczać informacji (Windows, Lantastic). Podstawowe cechy: zarządzanie usługami i użytkownikami na poziomie klientów, zarządzanie na poziomie sieci nie jest wymagane. niewielkie rozmiary typowo nie więcej niż kilkunastu klientów. niski poziom bezpieczeństwa - każdy klient musi być z osobna zabezpieczony i administrowany. Zwykle użytkownik komputera jest jego administratorem.
12 Sieci scentralizowane Istnieje przynajmniej jeden serwer, który świadczy usługi dla klientów (Novell, Windows 2003 Server). Podstawowe cechy: zarządzanie usługami i użytkownikami na poziomie sieci, zarządzanie poszczególnymi klientami jest ograniczone do minimum. brak ograniczeń na liczbę klientów - często z zasobów serwera mogą korzystać wszystkie komputery na świecie (www). centralne zarządzanie bezpieczeństwem sieci - administrator sieci realizuje jednolitą politykę bezpieczeństwa.
13 Podstawy konfiguracji sieci 1. Adres IP (149.156.74.65) 2. Maska podsieci (255.255.255.0) 3. Brama (149.156.74.1) 4. Adresy serwerów DNS (149.156.74.21)
14 Adres IP Adres IP identyfikuje komputer w sieci. Jest on połączeniem adresu sieci z adresem hosta (komputera) wewnątrz tej sieci. Przykład: 149.156.74.65: 10010101.10011100.01001010.01000001 sieć: 149.156.0.0 host: 74.65 adres rozgłoszeniowy: 149.156.255.255 zakres adresów hostów: 0.1 255.254 (2 16 2 adresy) 192.168.1.133: 11000000.10101000.00000001.10000101 sieć: 192.168.1.0 host: 133 adres rozgłoszeniowy: 192.168.1.255 zakres adresów hostów: 1 254 (2 8 2 adresy)
15 Klasy adresów IP Klasa Adres Zakres pierwszego oktetu Liczba sieci Liczba hostów A 0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH 1 126 126 16777214 B 10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH 128 191 16384 65534 C 11NNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH 192 223 2097152 254 D Adresowanie grupowe 224 239 - - E Adresy eksperymentalne 240 254 - - Adresy prywatne: 10.0.0.0-10.255.255.255 172.16.0.0-172.31.255.255 192.168.0.0-192.168.255.255
16 Maska podsieci Maska umożliwia uzyskanie adresu (pod)sieci na podstawie adresu IP hosta. Dzięki temu możemy podzielić sieć na wiele podsieci: adres sieci: 11000000.10101000.00000001.00000000 (192.168.1.0) maska: 11111111.11111111.11111111.11111000 (255.255.255.248) zakres adresów hostów w podsieci:.00000001 (.1).00000010 (.2).00000011 (.3).00000100 (.4).00000101 (.5).00000110 (.6) adres rozgłoszeniowy:.00000111 (.7) często używana notacja: 192.168.1.0/29 (bo 29 jedynek).
17 Maska podsieci Przykładowy podział sieci 192.168.1.0 na podsieci korzystając z maski: 192.168.1.0/29 adresy hostów: 1 6 adres rozgłoszeniowy: 7 192.168.1.8/29 adresy hostów: 9 14 adres rozgłoszeniowy: 15 192.168.1.16/28 adresy hostów: 17 30 adres rozgłoszeniowy: 31 192.168.1.32/27 adresy hostów: 33 62 adres rozgłoszeniowy: 63 192.168.1.64/26 adresy hostów: 65 126 adres rozgłoszeniowy: 127 192.168.1.128/25 adresy hostów: 129 254 adres rozgłoszeniowy: 255 w sumie 256 2*6 = 244 różne adresy hostów.
18 Przykłady Przykłady konfiguracji dla hosta o adresie IP 149.156.74.65 adres IP: 149.156.74.65 maska: 255.255.0.0 adres podsieci: 149.156.0.0 zakres:.0.1 -.255.254 adres IP: 149.156.74.65 maska: 255.255.255.0 adres podsieci: 149.156.74.0 zakres:.1 -.254 adres IP: 149.156.74.65 maska: 255.255.255.128 adres podsieci: 149.156.74.0 zakres:.1 -.126 adres IP: 149.156.74.65 maska: 255.255.255.252 adres podsieci: 149.156.74.64 zakres:.65 -.66
19 Brama domyślna Brama domyślna pełni funkcję routera - kieruje ruchem pomiędzy siecią lokalną (LAN) i siecią rozległą (WAN). Brama sieciowa posiada zwykle dwa adresy sieciowe: jeden dla komputerów z sieci lokalnej (LAN), drugi dla komputerów z poza sieci lokalnej (WAN). Wysyłając informacje nadawca sprawdza, czy odbiorca znajduje się w tej samej sieci lokalnej. Jeśli tak, pakiet jest wysyłany bezpośrednio do odbiorcy. Jeśli nie informacja ma zostać dostarczona poza sieć lokalną jest ona wysyłana na adres bramy domyślnej. Jeśli odbiorca znajduje się w tej samej sieci do której należy adres WAN routera, brama przesyła do niego informacje. Jeśli nie brama przesyła informacje do kolejnego routera w sieci WAN.
Serwery DNS Serwery DNS (Domain Name Server) tłumaczą nazwy hostów na adres IP, np. www.if.uj.edu.pl = 149.156.89.131, umożliwiając używanie nazw w miejsce adresów IP. 1. Aby przetłumaczyć adres www.if.uj.edu.pl należy zapytać serwera nazw dla domeny if.uj.edu.pl, 2. Jeśli adres serwera nazw dla domeny if.uj.edu.pl jest nieznany należy odnaleźć serwer nazw dla domeny uj.edu.pl. itd. 3. Adresy wszystkich serwerów nazw w domenie pl są przechowywane przez serwery NASK'u (Naukowa Akademicka Sieć Komputerowa). Serwery DNS zapamiętują na jakiś czas (typowo 24 godz.) otrzymane odpowiedzi co przyspiesza proces odszukania adresu IP. 20
21 Serwery DNS Narzędzie nslookup:
22 Usługa DHCP Usługa DHCP (Dynamic Host Configuration Protocol) [RFC 2131] umożliwia automatyczną konfigurację (dzierżawę) parametrów sieciowych hostów. Komunikacja pomiędzy hostem a serwerem DHCP przebiega następująco: [host] DHCPDISCOVER (komunikat wysyłany do wszystkich) [server] DHCPOFFER (zawiera proponowane parametry konfiguracji, wysyłany na adres karty sieciowej hosta) [host] DHCPREQUEST (prośba o konfiguracje lub przedłużenie jej ważności) [server] PHCPPACK (przesłanie ostatecznych parametrów)... [host] DHCPRELEASE (zwolnienie konfiguracji)
Konfiguracja sieci Windows 23
Konfiguracja sieci Windows 24
Konfiguracja sieci Windows 25
Konfiguracja sieci Windows 26
Konfiguracja sieci Windows 27
Konfiguracja sieci Windows 28
29 Testowanie konfiguracji Windows Start / uruchom / cmd ipconfig [/all]
30 Testowanie konfiguracji Windows Start / uruchom / cmd ping
31 Testowanie konfiguracji Windows Start / uruchom / cmd tracert
32 Konfiguracja sieci Linux ifconfig (ew. /sbin/ifconfig)
33 Konfiguracja sieci Linux Przykład: ifconfig eth0 hw ether 000e0e0e0e0e netmask 255.255.255.0 192.168.0.2 skonfiguruje interfejs sieciowy eth0 do pracy w standardzie ethernet z adresem sprzętowym 00:0E:0E:0E:0E:0E. Do interfejsu zostanie przypisany adres IP: 192.168.0.2 i maska sieciowa 255.255.255.0.
34 Konfiguracja sieci Linux route (ew. /sbin/route)
35 Konfiguracja sieci Linux Przykład: route add default gw 192.168.0.1 dodaje (add) domyślną (default) bramę (gw) o adresie IP 192.168.0.1. Aby zmieniać konfiguracje sieciową za pomocą poleceń ifconfig i route zwykle należy mieć prawa root'a.
Program netstat (Linux) m02 ~ # netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 268 m02.gdziestam.pl:ssh ja.uj.edu.pl:1325 ESTABLISHED tcp 0 0 m02.gdziestam.pl:ssh inny.jakis.pl:45808 ESTABLISHED... m02 ~ # netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:imaps *:* LISTEN tcp 0 0 *:pop3s *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN tcp 0 0 *:pop3 *:* LISTEN tcp 0 0 *:imap *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:smtp *:* LISTEN udp 0 0 *:1033 *:* udp 0 0 *:1036 *:* udp 0 0 *:1037 *:* udp 0 0 *:2845 *:* udp 0 0 *:snmp *:*... 36
37 Model OSI/ISO Model OSI (Open System Interconnection) opracowany przez ISO (International Organization for Standarization) opisuje przekształcenia informacji z postaci jaką widzi użytkownik do formatu nadającego się do użycia w sieci.
Model OSI/ISO Warstwy w modelu OSI aplikacji aplikacji prezentacji prezentacji Komputer A sesji transportowa komunikacja wirtualna sesji transportowa Komputer B sieciowa sieciowa łącza danych łącza danych fizyczna fizyczna 38
39 Warstwa aplikacji Interakcja z aplikacją użytkownika. Warstwa aplikacji świadczy usługę aplikacji sieciowej odpowiedzialnej za żądanie użytkownika przykłady: użytkownik wysyła email dostęp do usługi SMTP (Simple Mail Transfer Protocol), transfer pliku udostępniony protokół FTP (File Transfer Protocol), dostęp do strony http://www.if.uj.edu.pl rozwiązanie nazwy przez DNS a następnie żądanie dla protokołu HTTP (HyperText Transfer Protocol). Warstwa aplikacji jako jedyna komunikuje się bezpośrednio z oprogramowaniem użytkownika.
Warstwa prezentacji Usługi sieciowe niewidoczne dla użytkownika. Warstwa prezentacji przyjmuje pakiet z warstwy aplikacji i dokonuje wyboru poprawnej usługi sieciowej (urządzenia sieciowego) usługa serwera, usługa stacji roboczej (hosta). Ponadto warstwa prezentacji odpowiada za konwersje języka: konwersje pomiędzy różnymi wersjami i typami protokołów, konwersja zestawu znaków, szyfrowanie i kompresja danych, przekierowywanie żądań wejścia i wyjścia. Usługi aplikacji sieciowych są wywoływane przez użytkownika funkcjonują w warstwie aplikacji. Usługi sieciowe są niewidoczne dla użytkownika i funkcjonują w warstwie prezentacji. 40
41 Warstwa sesji Zarządzanie wirtualnym połączeniem sieciowym. Warstwa sesji ustanawia punkty kontrolne (checkpoint) w przesyłanych danych. W przypadku zerwania połączenia transfer jest ponawiany od ostatniego odebranego punktu kontrolnego. Ponieważ połączenie w warstwie sieci jest wirtualne, nie ma gwarancji dostarczenia pakietu.
42 Warstwa transportowa Sprawdzenie poprawności i kontrola przepływu danych. Warstwa transportowa dzieli dane na pakiety i przesyła je używając protokołu TCP (Transmission Control Protocol) lub UDP (User Datagram Protocol). TCP korzysta z pakietów potwierdzających. Dzięki temu dostarcza pakiety w sposób niezawodny. UDP oferuje jedynie kontrolę integralności pakietu. Dzięki temu jest zazwyczaj szybszy niż TCP.
43 Warstwa sieciowa Adresowanie i trasowanie w sieci. Warstwa sieciowa dodaje do pakietu adres nadawcy i odbiorcy. Dodatkowo dokonuje fragmentacji i składania pakietów. W warstwie sieciowej dokonywany jest także wybór trasy.
44 Warstwa łącza danych Przygotowanie danych do przesłania przez sieć. Warstwa łącza danych jest podzielona na dwie podwarstwy: kontroli łącza logicznego dodaje na końcu pakietu sumę kontrolną CRC, dzięki której można sprawdzić poprawność transmisji danych, kontroli dostępu do nośnika dopisuje do pakietu fizyczne adresy kart interfejsu sieciowego (MAC Media Access Control). Warstwa łącza danych zapewnia poprawną obsługę topologii sieci.
45 Warstwa fizyczna Umieszczenie danych w sieci. Warstwa fizyczna (sprzętowa) określa rodzaj przewodu (kabel koncentryczny, skrętka, światłowód, sieć bezprzewodowa), interfejsu sieciowego oraz sposób sformatowania i umieszczenia danych w sieci (czasy trwania impulsów elektrycznych, świetlnych itp.)
Transmisja w modelu OSI Nadawca: składanie + nagłówek + nagłówek aplikacji prezentacji Odbiorca: rozkładanie - nagłówek - nagłówek + nagłówek sesji - nagłówek + nagłówek + nagłówek + nagłówek i stopka transportowa sieciowa łącza danych - nagłówek - nagłówek - nagłówek i stopka + nagłówek fizyczna - nagłówek 46
47 Model OSI a model TCP/IP Model OSI Model TCP/IP warstwa aplikacji warstwa prezentacji warstwa sesji warstwa aplikacji (zastosowań) warstwa transportowa TCP UDP warstwa sieciowa warstwa łącza danych warstwa fizyczna IPv4, IPv6 sterownik programowy i sprzęt
48 Podsumowanie Podstawowe urządzenia potrzebne do zbudowania sieci to: karty sieciowa, ew. switch i router oraz kabel(skrętka) z wtyczkami RJ-45. Aby skonfigurować komputer do pracy w sieci TCP/IP należy podać adres IP i maskę. Dodatkowo, aby komunikować się z siecią rozległą należy podać adres domyślnej bramy (routera). Jeśli chcemy używać nazw zamiast adresów IP musimy skorzystać z usług serwerów DNS. Ogólny model transmisji danych przez sieć został wyspecyfikowany w modelu ISO/OSI.