WPROWADZENIE
DO
PROBLEMATYKI
SIECI
KOMPUTEROWYCH
- Tendencje rozwoju współczesnych systemów
komputerowych
- w systemach komputerowych widoczna jest tendencja do rozdzielania obliczeń między wiele fizycznych procesorów
- dwa kierunki rozwoju tej tendencji
- systemy wieloprocesorowe (multiprocessor
systems), czyli systemy ściśle powiązane; procesory dzielą pamięć
i zegar a komunikacja odbywa się zwykle przez pamięć dzieloną
- systemy rozproszone (distributed
systems) lub systemy luźno powiązane - do tej kategorii należą
sieci komputerowe; procesory nie dzielą
pamięci ani zegara
- Historia sieci
- lata 60 - Izolowane systemy komputerowe
- 1969-90 - ARPANET
- Advanced Research Project
Agency Network
- 1978 - UUCP
- Unix to Unix copy
- 1979 - USENET
- Users Network
- 1981 - BITNET
- Because It's Time Network
- 1983 - FidoNet
- 1983 - Internet
(TCP/IP)
- 1984 - Minitel
(Francja)
- 1986 - NSF NET
- National Science Foundation
Network
- 1990 - powstanie
WWW - World Wide Web (CERN)
spowodowało niezwykłe rozszerzenie możliwości
Internetu
- Problem
Budowanie sieci
- Załóżmy, że
- chcemy zbudować sieć komputerową, która daje możliwości różnorakiego
jej zastosowania, np. organizowania telekonferencji,
prowadzenia obliczeń rozproszonych,
czy tworzenia biblioteki w postaci cyfrowej
- Pytanie
- jakie techniki mogłyby służyć jako podstawowe elementy, z których
zbudujemy sieć?
- jaką architekturę oprogramowania zaprojektować, aby zintegrować te
elementy w efektywną usługę komunikacyjną?
- Czym jest jednak sieć komputerowa?
- kiedyś: zbiór laczy szeregowych
stosowanych do łączenia terminali do komputera
- teraz:
- dla jednych to np: sieć telefonii
glosowej.
- dla innych to może być np: sieć telewizji
kablowej.
- Te dwa ostatnie przykłady sieci mają dwa wspólne elementy:
- przeznaczone są do obsługi jednego tylko rodzaju danych
(tekstu, głosu, filmu)
- zazwyczaj służą do przyłączenia specjalistycznych urządzeń
jednego typu (terminale, telefony, telewizory)
- Co odróżnia sieć komputerową od wszystkich innych typów sieci?
- uniwersalność: są one budowane głównie
z programowalnego sprzętu uniwersalnego.
- nie są optymalizowane do szczególnych
zastosowań, jak np. prowadzenia rozmów telefonicznych lub
przesyłania sygnałów wizyjnych.
- są zdolne do przenoszenia wielu różnych typów
danych i mają szeroki, stale wzrastający, zakres zastosowań.
- Aby starać się zrozumieć jak budować sieć, musimy
- zbadać przyczyny budowania sieci (wspomaganie określonych
zastosowań)
- przyjrzeć sie wymaganiom, jakie różne środowiska (użytkownicy,
operatorzy sieci) nakładają się na siec.
- wprowadzić ideę architektóry sieci.
rys. przyrost liczby komputerów dołączonych do
Internetu od 1988r.
- Motywacja
- Lawinowy przyrost sieci
- sieci komputerowe takie jak Internet
istnieja ponad 20 lat
- obecnie jest ponad 6 milionów komputerów w Internecie i około 50
milionów jego użytkowników
- Internet odniósł sukces, bo
- wiele jego funkcji jest realizowanych przez oprogramowanie
pracujące na komputerach uniwersalnych
- łatwo można dodać nowe funkcje, jedynie przez drobne zmiany w
oprogramowaniu
- następuje masowy przyrost mocy obliczeniowej
komputerów.
- Klasyfikacja sieci
Jeden ze sposobów klasyfikacji sieci jest oparty na ich rozmiarze
- sieć WAN (wide area network)
-rozległa sieć komputerowa, pierwsze sieci komputerowe to byly
(i aktualnie są) sieci WAN
- sieć LAN (local
area network)
-lokalna sieć komputerowa, zasięg mniejszy od 1 km
- siec MAN (metropolitan
area network) -miejska sieć komputerowa
- sieć DAN (desk area
network) -sieć mieszcząca się na biurku; traktowanie każdej
części komputera jako elementu sieci
- Aplikacje sieciowe
- FTP: protokół przesyłania plików
- Przykład działania aplikacji ftp :
% ftp
ftp> open ds.internic.net
[...]
220 ds.internic.net FTP server ready.
Name (ds.internic.net:bsd) : anonymous
331 Guest login o.k. send ident as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> cd rfc
250 CWD command successful.
ftp> get rfc-index.txt
200 PORT command successful.
150 Opening ASCII mode data connection for rfc-index.txt
(245544 bytes).
226 Tarnsfer complete.
local: rfc-index.txt remote: rfc-index.txt
251257 bytes received in 1.2e+02 seconds (2 Kbytes/s)
ftp> close
221 Goodbye.
- Jeszcze jeden przykład działania ftp
:
% ftp ftp.wustl.edu
Connected to ftp.wustl.edu.
220 ftp.wustl.edu FTP server (Version 2.0) ready.
Name (ftp.wustl.edu:garth) : anonymous
331 Guest login ok, send your e-mail address as password.
Password: garth@boulder.colorado.edu
230-
230- This system may be used 24 hours a day, 7 days a
230- week. The local time is Sun Apr 17 17:03:49 1994.
230-
230- All transfers to and from wuarchive are logged.
230- If you don't like this then disconnect now!
230-
230 Guest login ok, access restrictions apply.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
lost+found
mirrors
bin
decus
...
README
techreports
file.lst.Z
ls-lR.Z
226 Transfer complete.
224 bytes received in 0.022 seconds (10 Kbytes/s)
ftp> binary
200 Type set to I.
ftp> get files.lst.Z
200 PORT command successful.
150 Open BINARY connection for files.lst.Z (2911507 bytes)
226 Transfer complete.
local: files.lst.Z remote: files.lst.Z
2911507 bytes received in 64 seconds (44 Kbytes/s)
ftp> quit
221 Goodbye.
- FTP (File Transer
Protocol) -protokół przesyłania plików
- jedna z najstarszych aplikacji: umożliwia przesyłanie plików między
komputerami poprzez sieć
- korzystając z tego przykładu można zdefiniować dwa ważne terminy:
klient i serwer.
- uruchomiliśmy program klienta
FTP na naszym komputerze
- nasz komputer połaczył z serwerem
FTP na komputerze o adresie
ds.interic.net
- klient skierował serię żądaż do
serwera, który na nie odpowiadał
- WWW: przeglądanie zasobów sieci
- jedna z najbardziej popularnych aplikacji, synonim Internetu
- aplikację WWW można rozpatrywać jako
zbiór współpracujących klientów i serwerów, z których każdy porozumiewa
się tym samym językiem
- w tym przypadku jest to protokół przesyłania
hipertekstu HTTP (Hyper Text Transer Protocol)
- większość ludzi poznała tę aplikację poprzez graficzne programy
takie jak Mosaic, Netscape,....
rys. przeglądarka Mosaic
- np. stosując przegląderkę Mosaic można
wyświetlić stronę informacyjną uniwersytetu
University of Arisona
- dowolna przeglądarka ma funkcję, która pozwala użytkownikowi
otworzyć uniwersalny adres zasobu
URL (Universal Resource Locator)
- URL dostarcza użytkownikowi informacji o
adresie obiektów w aplikacji WWW
- URL na przykład wygląda następująco:
http:\\www.arizona.edu/index.html
- przeglądarka zasobów sieci na komputerze otworzy połączenia z
serwerem WWW na komputerze o adresie
www.arizona.edu
- następnie wyszuka i wyświetli plik o nazwie
index.html
- wiele plików w WWW zawiera tekst i
grafikę, a niektóre dźwięk i film (multimedialny charakter)
- wiele plików zawiera dalsze adresy URL,
które wskazują na inne pliki; takie zagnieżdżone adresy nazywamy
odsyłaczami hipertekstowymi
- NV:rozyłanie i odtwarzanie filmów
- ta aplikacja umożliwia rozsyłanie i odtwarzanie filmów wideo
przez siec (NV - Network Video)
- stosowana głównie do przeprowadzania telekonferencji dla grupy
użytkowników sieci
- aby być nadawcą zapisu wideo trzeba posiadać specjalistyczny,
sprzęt zwany zbieraczem ramek (frame grabber)
- pobiera on sekwencję obrazów na wyjściu z kamery wideo i dokonuje
przekształcenia w zapis cyfrowy
- rozmiar każdego obrazu zwanego odtąd ramką
(frame) zależy od rozdzielczości obrazu
np:
- obraz o powierzchnii 1/4 standartowego obrazu telewizyjnego
mógłby mieć rozdzielczość 352*240 pikseli
- jeden piksel to jedna kropka na ekranie
- jeden piksel jest reprezentowany przez 24
bity informacji (kolorowy)
- tak więc rozmiar ramki (352*240*24):8=247.5 kB
- prędkość z jaką pobieramy obrazy tzw. prędkość ramek powinna wynosić
około 25 ÷ 30 ramek/sek
- aplikacja NV pracuje zwykle z dużo niższą
prędkością, rzędu 2 ÷ 3 ramki/sek (problem
szybkości komputera)
- obrazy cyfrowe dostarczone do węzła nadającego przez zbieracz ramek
są przesyłane przez sieć jako strumień komunikatów (ramek) do węzła
odbierającego
- węzeł odbierający wyświetla odebrane ramki na swoim monitorze z tą
samą prędkością, z jaką były zbierane
rys. panel sterujący sesji NV oraz ramka wideo
dostarczona przez NASA podczas jednej z misji wahadłowca
WYMAGANIA
- czego oczekujemy od sieci, aby sprostała ona przedstawionym wcześcniej
aplikacjom?
- nie ma jednego oczekiwania: sieci komputerowe są projektowane i
budowane przy dużej liczbie ograniczeń i wymagań
- wymagania różnią się w zależności od punktu widzenia:
- użytkownik sieci będzie wymieniać usługi,
których wymagają jego aplikacje, np. gwarancję dostarczenia
komunikatu w określonym czasie
- projektant sieci będzie wymieniać cechy
wydajnego projektu, np. że zasoby sieci będą sprawiedliwie
przydzielane
- dostawca sieci będzie wymieniać cechy
systemu, który jest łatwy do administrowania i zarządzania, np. w
którym łatwo znaleźć błędy
- można jednak wyróżnić istotne czynniki, które sterują projektem
sieci
- te czynniki to:
- spójność
- wydajny podział zasobów
- funkcjonalność
- efektywność
SPÓJNOŚĆ
- sieć musi zapewnić połączenie między zbiorem komputerów, czyli spójność
- wiele prywatnych lub firmowych sieci jako cel zakłada sobie
ograniczenie zbioru łączonych ze sobą komputerów (prywatność,
bezpieczeństwo)
- inne sieci, np. Internet, są projektowane tak, aby rozrastały się,
w sposób, który da szansę do połączenia wszystkich komputerów na
świecie
- o systemie, który jest tak projektowany (możliwość powiększenia
do dowolnego rozmiaru) mówimy że jest
skalowalny
ŁĄCZA, WĘZŁY I CHMURKI
- połączenia wewnątrz sieci rozważa się na wielu poziomach
- na najniższym poziomie sieć może składać sie z dwóch lub więcej
komputerów połaczonych medium fizycznym (kabel koncentryczny,
swiatłowód, ...)
- takie medium fizyczne nazywane jest
łączem (link), a komputery
które łączy nazywamy węzłami
(nodes)
- łącza fizyczne mogą być dwupunktowe
(point-to-point) - łączą parę
węzłów, lub wielodostępne (multi-access), gdy więcej niż jeden
węzeł może współdzielić jedno łącze fizyczne
rys. łącza bezpośrednie: dwupunktowe(a), wielodostępne(b)
W jaki sposób można ze sobą pośrednio
połączyć zbiór komputerów?
rys. sieć komutowana
- sieć komutowana
(switched network)
- każdy węzeł jest przyłączony do co najmniej jednego łącza
- w węzłach, które są przyłączone do co najmniej dwóch łączy,
uruchomione jest oprogramowanie przesyłające dane odebrane z jednego
łącza do drugiego
- dwa najpopularniejsze typy sieci komutowanych to:
- sieć z komutacją kanałów
(circuit switched network) - najczęściej
stosowane w sieciach telefonicznych
sieć ustanawia wydzielony kanał jako sekwencję łączy, a następnie
zezwala węzłowi nadającemu na przesłanie strumienia bitów przez ten
kanał do węzła odbierającego
- sieć z komutacją pakietów
(packet - switched network) - w większości
sieci komputerowych (na nich będziemy się koncentrować)
węzły w sieci przesyłają do siebie wydzielone bloki danych
nazywane pakietami
(packet) albo komunikatami
(messages)
stosuje się zazwyczaj strategię zwaną
zapamiętaj i prześlij
(store-and-forward) - w węźle sieci odbieramy cały pakiet od
łącza, zapamiętujemy go w pamięci wewnętrznej (buforze), a dopiero
potem przekazujemy cały pakiet do następnego węzła
- chmurka (cloud)
dzieli węzły na znajdujące się wewnątrz niej i na zewnątrz
- węzły umieszczone wewnątrz to tzw. komutatory
(switches)
- to one implementują sieć
- ich jedyną funkcją jest zapamiętywanie pakietów i przesyłanie
ich dalej
- węzły na zewnątrz to komputery (hosts)
- zapewniają dostęp użytkowników do sieci
- na nich są uruchamiane aplikacje
- chmurka
º
graficzne oznaczenie sieci dowolnego typu
- intersieć
(internetwork), albo krócej internet
- sieć sieci
rys. łączenie sieci
- zbiór niezależnych sieci (chmurek)
jest połączony tak, aby utworzyć
intersieć
- dowolna intersieć to
internet, natomiast Internet to
konkretna aktualnie pracująca sieć TCP/IP
- węzeł sieci, który jest przyłączony do dwóch lub więcej sieci jest zwykle
nazywany ruterem (router)
albo
bramką (gateway)
- ruter pełni rolę zbliżoną do komutatora - przekazuje komunikat z jednej
sieci do drugiej
- w celu umożliwienia komunikacji między węzłami sieci, każdemu z nich
przydzielony jest adres
º
ciąg bitów identyfikujących węzeł
- kiedy węzeł nadawczy chce, aby sieć dostarczyła komunikat do innego węzła,
to najpierw specyfikuje adres odbiorcy
- gdy węzeł nadający i odbierający nie są ze sobą połączone bezpośrednio,
wtedy komutatory i rutery w sieci korzystają z tego adresu, aby
określić w jaki sposób przesłać komunikat do odbiorcy
- sposób systematycznego określania w jaki sposób to zrobić nazywamy
wyborem trasy (routing)
- wysyłanie jednostkowe
(unicast) - węzeł nadawczy wysyła komunikat
tylko do jednego węzła odbiorczego
- rozgłaszanie (broadcast)
- węzeł nadawczy rozsyła komunikat do wszystkich
pozostałych węzłów sieci
- rozsyłanie grupowe
(multicast) - wysyłanie komunikatów do wybranych
węzłów sieci
- główny wniosek z dotychczasowej dyskusji: sieć możemy definiować
rekurencyjnie - sieć może składać sie z dwóch lub więcej węzłów
połaczonych łączem, albo z dwóch lub więcej sieci połączonych przez
jeden lub więcej węzłów