• Nie Znaleziono Wyników

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele

N/A
N/A
Protected

Academic year: 2022

Share "Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele"

Copied!
54
0
0

Pełen tekst

(1)

Sieci komputerowe

Wykład 1:

Podstawowe pojęcia i modele

(2)

Cel przedmiotu

✓Koncepcje leżące u podstaw sieci komputerowych.

✓Jak działa Internet?

✓I dlaczego tak został zaprojektowany?

Zawartość wykładu (1):

✓Pojęcia („co to jest ...”) → zagadnienia i zaliczenie

✓Garść algorytmów, podstawy kodowania i kryptografii

→ zagadnienia i zaliczenie

✓Praktyka (np. konfiguracja routingu i przełączników zarządzalnych)

→ laboratorium (s. A2)

(3)

Zawartość wykładu (2):

✓Podstawowe pojęcia, model warstwowy

✓Sieci LAN (Ethernet), protokół CSMA/CD, przełączniki i mosty, sumy kontrolne CRC

✓Routing, protokół IP, współpraca z Ethernetem, tablice routingu, routing dynamiczny (RIP, OSPF).

✓Protokół UDP i TCP, model klient-serwer, algorytmy stosowane w TCP.

(4)

Zawartość wykładu (3):

✓Warstwa zastosowań: DNS, FTP, WWW, serwery proxy.

✓Elementy kryptografii: podpisy cyfrowe i szyfrowanie, certyfikaty, SSL, PGP.

✓Poczta, protokoły SMTP, MIME, mechanizmy antyspamowe.

✓Podstawy bezpieczeństwa sieci: ataki, zapory, tunele, NAT.

✓Sieci bezprzewodowe.

(5)

Co należy umieć już teraz:

✓Obsługa Linuksa/Windows (wiersz poleceń, proste skrypty, automatyzacja!)

✓Programowanie w C/C++.

✓Algebra (wielomiany nad pierścieniami skończonymi, operacje na grupach).

(6)

Literatura

James F. Kurose, Keith W. Ross,

Computer Networking: A Top-Down Approach Pearson Education, 2006

Andrew S. Tanenbaum, Computer Networks

4th Edition, Prentice-Hall, 2003 Douglas E. Comer

Computer Networks and Internets with Internet Applications 3rd Edition, Prentice-Hall, 2001

W. Richard Stevens

UNIX Network Programming, Vol. 1 2nd Edition, Prentice Hall, 1998

(7)

Dzisiaj

✓Komunikacja

✓Internet i pakiety

✓Modele warstwowe

✓Warstwa fizyczna

(8)

Sieć komputerowa?

Zbiór urządzeń połączonych ze sobą kanałami komunikacyjnymi.

(9)

Sieć komputerowa?

Na przykład Internet w 2017 roku:

Obrazek ze strony:

https://www.caida.org/research/topology/as_core_network/2017/

(10)

Internet w roku 2020

✓ 4.4 mld użytkowników (z 7.7 mld ludzi na świecie).

✓ 31 mld podłączonych urządzeń (3.2 mld smartfonów).

✓ Internet rzeczy (IoT).

✓ 350 mln domen, 2 mld stron WWW.

✓ 30 mln stron WWW „hakowanych” rocznie.

✓ 5.5 mld zapytań do Google dziennie.

✓ Łącza przez które można przesyłać dziesiątki terabitów / sek.

✓ Wszystko jako usługa (XaaS).

(11)

Jedna minuta w Internecie

(12)

Różnorodność

✓ Od sensorów do superkomputerów.

✓ Przepustowości od 1 kbit/s do 100 Gbit/s.

✓ Aplikacje: telewizja, transfer plików, telefonia, gry, sieci socjalne, komunikatory.

✓ Technologie: bezprzewodowe, satelitarne, miedziane, optyczne.

Obrazek ze strony: http://www.compendian.com/2014/12/do-you-provide-a-one-size-fits-all-approach

(13)

Decentralizacja i dynamika

Internet = sieć łącząca różne sieci

✓ Różne technologie: WIFI, 2G/3G/4G/5G, kable, światłowody, łącza satelitarne, Bluetooth, ….

✓ Brak centralnej kontroli.

✓ Obecnie ponad 18 tys. ISP (dostawców internetu).

✓ Ciągłe zmiany (hardware i software).

✓ Błędy i ataki.

(14)

Główne zastosowanie sieci

Dwukierunkowy niezawodny kanał:

✓ Umożliwia komunikację między aplikacjami na różnych komputerach.

✓ Aplikacje definiują protokół komunikacji określający, jak wygląda przesyłany strumień danych.

✓ Na razie abstrahujemy tutaj od tego, jak sieć to przesyła;

chcemy mieć potok pomiędzy dwoma procesami.

(15)

Komunikacja (1)

Komunikacja = proces przesyłu danych między nadawcą a odbiorcą.

(16)

Komunikacja (2)

Podział ze względu na liczbę uczestników komunikacji:

✓broadcast

✓unicast

✓multicast

(17)

Komunikacja (3)

Podział ze względu na model połączenia:

✓klient-serwer

✓równorzędny (peer-to-peer)

(18)

Komunikacja (4)

Kto może nadawać:

✓komunikacja simpleksowa

✓komunikacja półdupleksowa

✓komunikacja pełnodupleksowa

(19)

Komunikacja (5)

Kolejny podział:

(Czy na czas komunikacji zestawiane jest połączenie?)

✓komunikacja bezpołączeniowa (np.: poczta)

✓komunikacja połączeniowa (np.: telefon)

Z potwierdzaniem czy bez?

✓z potwierdzaniem (list za potwierdzeniem odbioru, dyktowanie przez telefon)

✓bez potwierdzenia (zwykła poczta, wideokonferencja)

(20)

Komunikacja (6)

Udana komunikacja wymaga:

✓kanału komunikacyjnego (nośnik, kabel, ...)

✓protokołu komunikacyjnego

Protokół

✓ustalony (na stałe bądź wynegocjowany na czas danej sesji) schemat postępowania

✓określa format danych i funkcje zmiany stanu

✓otwarte protokoły

✓na podstawie specyfikacji protokołu powinno dać się jednoznacznie skonstruować komunikujący się program

(21)

Protokoły

✓Dokumenty RFC: http://www.rfc-editor.org/

✓Pochodzą głównie od grup roboczych IETF (Internet Engineering Task Force)

✓Formalny proces standaryzacji

(Proposed Standard → Draft Standard → Internet Standard)

(22)

Przykład: protokół HTTP (przeglądarka i serwer WWW)

Przeglądarka (klient WWW) wysyła do serwera:

GET /~mryb/ HTTP/1.1 Host: www.ujk.edu.pl

Accept: text/html,application/xhtml+xml Accept-Language: en-US,en;q=0.9,pl;q=0.8

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3)

Serwer (klient WWW) wysyła do przeglądarki:

HTTP/1.1 200 OK

Content-Length: 2586 Content-Type: text/html

Date: Sat, 10 Oct 2020 12:27:32 GMT

Last-Modified: Thu, 16 May 2019 16:35:54 GMT Server: Apache/2.2.22 (Debian)

(23)

Jak przesyłać dane przez sieć

Globalne adresowanie: w Internecie każde urządzenie (właściwie każdy interfejs kart sieciowych) ma unikatowy 4-bajtowy adres IP

Dwa paradygmaty przesyłania danych:

✓ przełączanie obwodów,

✓ przełączanie pakietów.

(24)

Przełączanie obwodów (1)

✓ Koncepcja jak w analogowych centralach telefonicznych.

✓ Ścieżka dla strumienia danych ustalana na cały czas komunikacji.

✓ Zasoby wymagane przez ścieżkę (bufory routerów, przepustowość łącza) rezerwowane na czas komunikacji.

✓ Gwarantowana stała przepustowość.

(25)

Przełączanie obwodów (2)

Multipleksowanie: rezerwujemy tylko fragment łącza dla jednego strumienia danych.

✓ Gwarantowana stała przepustowość.

✓ Ale marnotrawstwo łącza jeśli akurat nic nie wysyłamy.

(26)

Przełączanie pakietów (1)

Wysyłany strumień danych dzielimy na małe porcje: pakiety.

✓ Dane pakietu = fragment strumienia danych.

✓ Nagłówek pakietu = informacje kontrolne, m.in. adres źródłowy i docelowy.

✓ Każdy pakiet jest przesyłany niezależnie.

✓ Dla każdego pakietu router podejmuje niezależną decyzję gdzie przesłać go dalej (na podstawie informacji z nagłówka).

(27)

Przełączanie pakietów (2)

✓ Routing (trasowanie) = wybór trasy dla danego pakietu.

✓ Wysyłane pakiety mogą docierać do celu różnymi drogami.

✓ Router: tylko przekazuje pakiet dalej.

✓ Nie musi wiedzieć nic o oryginalnym strumieniu danych.

✓ Prostota → niski koszt, łatwa implementacja.

✓ Brak stanu → łatwość odtwarzania po awarii.

(28)

Przykładowa trasa

Tracing route to fizyka.ujk.edu.pl [81.26.8.179] over a maximum of 30 hops:

1 4 ms 3 ms 3 ms funbox.home [192.168.1.1]

2 48 ms 45 ms 67 ms kiel-bg1.neo.tpnet.pl [83.1.4.199]

3 24 ms 47 ms 24 ms kiel-r1.tpnet.pl [80.50.118.97]

4 44 ms 67 ms 68 ms lodz-r2.tpnet.pl [194.204.175.250]

5 67 ms 32 ms 33 ms z-TPNETu.lodz-gw.rtr.pionier.gov.pl [80.50.231.26]

6 38 ms 36 ms 37 ms z-lodz-gw2.Kielce.10Gb.rtr.pionier.gov.pl [212.191.240.54]

7 39 ms 39 ms 39 ms UJK-Swie.man.kielce.pl [81.6.191.74]

8 38 ms 38 ms 37 ms 81.26.8.179

(29)

Przełączanie pakietów: multipleksowanie (1)

Pakiety należące do różnych strumieni danych mogą w naturalny sposób korzystać z tego samego łącza.

Statystyczny multipleksing:

✓ Założenie: różne komputery wykorzystują łącze

w innych momentach czasu → lepsze wykorzystanie łącza.

✓ Jak radzić sobie z przejściowymi zwiększeniami ilości danych ponad możliwości łącza wyjściowego?

(30)

Przełączanie pakietów: multipleksowanie (2)

Kolejki przy łączach wyjściowych:

✓ Pomagają przy przejściowym przeładowaniu pakietami.

✓ Jeśli kolejka się przepełni (przeciążenie) → pakiety są odrzucane

✓ główna przyczyna utraty pakietów w sieci!

(31)

Własności kanału komunikacyjnego

✓ Przepustowość: ile możemy zapisać do kanału na jednostkę czasu.

✓ Czas propagacji: ile czasu podróżuje sygnał między końcami kanału.

✓ RTT (Round Trip Time): 2 x czas propagacji.

✓ BDP (bandwidth-delay product): iloczyn przepustowości i RTT

= „ile możemy wysłać zanim dostaniemy odpowiedź od odbiorcy“.

✓ Duplex: pełny, półduplex, simplex.

(32)

Opóźnienie pakietu

Opóźnienie pakietu na łączu =

czas oczekiwania pakietu w kolejce +

+ rozmiar pakietu / przepustowość + czas propagacji.

(33)

Przełączanie obwodów vs. przełączanie pakietów

przełączanie obwodów przełączanie pakietów gwarancja przepustowości brak gwarancji przepustowości

szybkie transfery danych oczekiwanie pakietów w kolejkach

narzut czasowy na nawiązanie połączenia

narzut czasowy dla każdego pakietu (nagłówek) marnowanie łącza jeśli są

przerwy w strumieniu danych

efektywne wykorzystanie łącza (statystyczny

multipleksing) wolne odtwarzanie w

przypadku awarii

odporne na awarie:

wybierana inna ścieżka routingu

skomplikowane prostsze

(34)

Przełączanie pakietów w Internecie: protokół IP

Podstawowe cechy:

✓ Zaimplementowany na każdym urządzeniu.

✓ Definiuje adresy urządzeń (4-bajtowe identyfikatory).

✓ Definiuje zawodną, bezpołączeniową usługę umożliwiającą przesłanie pakietu między dwoma dowolnymi urządzeniami w sieci.

Zasada dołożenia wszelkich starań (best effort):

✓ Brak gwarancji (pakiety mogą gubić się lub przychodzić w innej kolejności), ale nie są gubione celowo.

Zasada end-to-end:

✓ Wszystkie dodatkowe cechy (np. niezawodne przesyłanie danych)

implementowane w urządzeniach końcowych (komputerach) → łatwa ewolucja, niski koszt innowacyjności.

(35)

HTTP a pakiety IP

Mamy do dyspozycji protokół IP (umiemy wysyłać pakiety).

Co potrzebne jest do scenariusza z HTTP?

✓ Niezawodność przesyłania danych.

✓ Konieczność dzielenia na pakiety.

✓ Jak rozróżnić różne przeglądarki działające na tym samym komputerze? → identyfikatory aplikacji (porty).

✓ Typowe problemy → warto wydzielić osobny komponent a nie wbudowywać tych funkcji w protokół HTTP.

(36)

Model warstwowy (1)

Przesyłany pakiet:

(37)

Model warstwowy (2)

Warstwa ma zdefiniowane:

✓ swoje zadania,

✓ interfejs do sąsiednich warstw.

Modularność: możliwość wymiany jednej implementacji warstwy na inną.

Enkapsulacja / dekapsulacja: proces dodawania / usuwania nagłówka przy przechodzeniu przez kolejną warstwę.

(38)

Lokalne dostarczanie

✓ Pakiety IP są niezależne od architektury sprzętowej.

✓ Warstwa sieciowa potrzebuje procedury (zawodnego)

dostarczania pakietu do sąsiedniego (bezpośrednio połączonego) komputera.

✓ Architektura sprzętowa definiuje kolejne dwie warstwy: łącza danych i fizyczną.

(39)

Internetowy model warstwowy (1)

(40)

Internetowy model warstwowy (2)

zapewnia globalne dostarczanie danych pomiędzy aplikacjami zapewnia globalne dostarczanie danych pomiędzy komputerami

zapewnia lokalne dostarczanie danych pomiędzy komputerami

(41)

Internetowy model warstwowy (3)

warstwa protokoły zadanie

5 aplikacji HTTP, SMTP,…

Protokoły użytkowników.

4 transportowa TCP, UDP Wprowadza porty, dzieli strumień danych na pakiety, zapewnia że pakiety dotrą, składa je w strumień danych po stronie odbiorcy.

3 sieci IP Routuje pakiety.

2 łącza danych Ethernet, WiFi, …

Przesyła ramki z pakietami, zapewnia dostęp do

współdzielonego kanału.

1 fizyczna Przesyła bity.

✓ Model TCP/IP: sklejona warstwa 1 i 2.

✓ Model ISO OSI: dodatkowe warstwy sesji i prezentacji pomiędzy warstwą 4 i 5.

(42)

Protokoły w Internecie

✓ Warstwa sieciowa: tylko jeden protokół!

✓ Pozwala na współpracę dowolnych sieci.

✓ Umożliwia niezależny rozwój we wszystkich innych warstwach.

(43)

Warstwa fizyczna

(44)

Karta sieciowa (1)

Obrazek ze strony http://en.wikipedia.org/wiki/Network_card

Rozróżnienie:

✓Karta sieciowa

✓Interfejs sieciowy

(45)

Karta sieciowa (2)

1) Pracuje z określoną częstotliwością nadawania 2) Wysyła bity danych jako sygnały elektryczne 3) Częstotliwość nadawania → przepustowość

(w kbit/s, Mbit/s lub Gbit/s)

✓ Uwaga: 1 kbit = 1000 bitów, 1 Mbit = 1000 kbit.

4) Sygnał propaguje się po nośniku (kablu) i jest odbierany (mierzony) po drugiej stronie

(46)

Kable: kabel koncentryczny

Obrazek ze strony http://www.phy.davidson.edu/StuHome/phstewart/IL/speed/Cableinfo.html

✓Kabel długości do 200m.

✓Transmisja półdupleksowa.

✓Wiele komputerów spiętych tym samym kablem.

(47)

Kable: światłowody

Obrazki ze strony http://pl.wikipedia.org/wiki/%C5%9Awiat%C5%82ow%C3%B3d

✓Wszystkie przepustowości (choć stosowany raczej przy wyższych przepustowościach).

✓Niewrażliwe na przepięcia, zakłócenia elektromagnetyczne.

✓Mogą być bardzo długie.

✓Trudno się podpiąć w środku → bezpieczeństwo.

✓Transmisja zazwyczaj simpleksowa (po jednej stronie dioda laserowa do nadawania, po drugiej fotodioda do odbierania).

✓Połączenie dwupunktowe.

(48)

Kable: skrętka (UTP) (1)

Skrętka nieekranowana (ang. unshielded twisted pair (UTP))

1) Najtańsze i najpopularniejsze rozwiązanie 2) Różne kategorie przewodów z różnymi

możliwościami (kat. 3, 5, 5e, 6, ...)

✓ Główna różnica to maksymalna częstotliwość z jaką może zmieniać się sygnał.

3) Działa na odległość ok. 100m, powyżej tego limitu

→ wzmacniaki (repeater) 4) Połączenie dwupunktowe.

5) Możliwa transmisja pełnodupleksowa (jak?)

(49)

Kable: skrętka (UTP) (2)

✓8 przewodów w środku.

✓Dwupunktowa: komputer z komputerem lub komputer z urządzeniem sieciowym

✓W obu przypadkach kable takie same,

ale permutacja przewodów w końcówce jest różna (kabel prosty / z przeplotem):

Obrazki ze strony http://www.dragon-it.co.uk/files/cat5_colour_codes.htm

(50)

Kable: skrętka (UTP) (3)

Dlaczego tak?

Do TX+ i TX- przykładane jest to samo napięcie ale o odwrotnym znaku → sumarycznie

przesyłane jest zerowe napięcie → kabel generuje znikome pole elektromagnetyczne

Odbiornik mierzy tylko różnicę między RX+ a RX-,

zewnętrzne zakłócenie zazwyczaj zaburza jednakowo oba przewody → różnica zostaje taka sama

Kable zielony i zielono-biały (i inne pary)

są splecione ze sobą → znikome pole magnetyczne również z perspektywy innych przewodów

→ nie zamieniać przewodów!

(51)

Przesyłanie bitów (1)

Standardowe podejście: kodujemy bit 1 jako +2.5 V, a 0 jako -2.5 V (albo podobnie).

Problem: długie ciągi zer lub jedynek mogą być źle zliczane przez odbiornik.

Rozwiązanie: Kodowanie Manchester

(52)

Przesyłanie bitów (2)

Wada kodowania Manchester: 100% narzut

Wykorzystywany głównie w 10 Mbitowych wariantach.

Kodowanie 4B/5B

Dzieli przesyłane bity na porcje po 4 bity

i koduje taką porcję deterministycznie na 5 bitach → narzut 25%

Żaden z 5-bitowych kodów nie jest równy 00000 ani 11111

→ w wystarczający sposób eliminuje problem ze zliczaniem przez odbiornik długich ciągów zer/jedynek.

Wykorzystywany w 100 Mbitowych wariantach.

(53)

Lektura

✓Kurose, Ross: 1.1–1.2 + 1.5

✓Tanenbaum: rozdział 1 + 2.2

✓Historia Internetu:

✓ https://vimeo.com/2696386

✓ http://www.internetsociety.org/internet/what-internet/

history-internet/brief-history-internet

(54)

Zagadnienia

✓ Co to jest protokół komunikacyjny? Dlaczego wprowadza się warstwy protokołów?

✓ Wymień warstwy internetowego modelu warstwowego. Jakie są zadania każdej z nich?

✓ Jakie warstwy są zaimplementowane na komputerach a jakie na routerach?

✓ Czym różni się model warstwowy TCP/IP od OSI?

✓ Co jest potrzebne do zbudowania dwukierunkowego niezawodnego kanału?

✓ Porównaj wady i zalety przełączania obwodów i przełączania pakietów.

✓ Jakie znasz rodzaje multipleksowania? Po co i kiedy się je stosuje?

✓ Porównaj ze sobą rodzaje routingu.

✓ Co to jest komunikacja pełnodupleksowa, półdupleksowa i simpleksowa?

✓ Do czego służy polecenie traceroute? Co pokazuje?

✓ Po co stosuje się bufory w routerach? Co to jest przeciążenie?

✓ Jakie są przyczyny opóźnień pakietów?

✓ Co to jest BDP? Co to jest czas propagacji?

✓ Wyjaśnij pojęcia: komunikacja simpleksowa, półdupleksowa, pełnodupleksowa.

✓ Co umożliwia protokół IP? Co to znaczy, że protokół realizuje zasadę best effort?

✓ Jakie są zalety i wady zasady end-to-end?

✓ Po co wprowadza się porty?

✓ Wyjaśnij pojęcie enkapsulacji i dekapsulacji.

Cytaty

Powiązane dokumenty

Zadanie programisyczne (zalążek) Napisz program pozwalający wygenerować, wczytać lub wylosować sieć bayesowską, a następnie generujący instancje wyników dla tej sieci

To co jest niezmienne to sam algorytm sortowania, natomiast zmienny jest sposób porównywania obiektów. Stąd zamiast wbudowywać te sposoby porównywania w róŜne procedury

Każdy wiersz (in. krotka, rekord) tabeli zawiera zestaw powiązanych danych – na temat określonej jednostki (np. pojedynczego studenta w tabeli studentów) lub określonego

 kandela (cd) - jednostka podstawowa układu SI, określająca światłość źródła emitującego w pewnym kierunku światło monochromatyczne o częstotliwości 5.4·10 14 Hz

1.4 Sieć dostępowa i media fizyczne 1.5 Struktura Internetu / dostawcy..

W tym odsyłanym segmencie wartość potwierdzenia ustawiana jest na 11, aby wskazać numer następnego bajtu, który host po prawej spodziewa się otrzymać w tej sesji....

13.1. Wykonawca ma prawo złożyć tylko jedną ofertę. Wykonawca poniesie wszelkie koszty związane z przygotowaniem i złożeniem oferty. O udzielenie zamówienia mogą ubiegać

Wiele wpisów w tablicy → gorsza wydajność, większe zużycie pamięci Wpisy dotyczące różnych sieci ze wspólną regułą można łączyć,. jeśli da się je opisać razem