Podstawy Protokołu TCP, Sieci komputerowe(1), Sieci komputerowe

[ Pobierz całość w formacie PDF ]
Podstawy Protokołu TCP/IP
Wprowadzenie
MoŜliwość przesyłania programów i danych między komputerami za pośrednictwem sieci
komputerowej odgrywa niezwykle istotna rolę niemal dla kaŜdego uŜytkownika komputera.
Jednak zbudowanie uniwersalnej sieci (pracującej w oparciu o rozwiązania jednego
producenta) spełniającej wymagania wszystkich uŜytkowników jest praktycznie niemoŜliwe.
UŜytkownicy dobierają więc rozwiązania techniczne sieci stosownie do swoich potrzeb,
tworząc niezaleŜne sieci słuŜące określonej grupie osób. Zapewnienie wymiany informacji i
komunikacji pomiędzy róŜnymi sieciami jest jednakŜe trudnym problemem technicznym.
W wyniku niezwykle dynamicznego rozwoju techniki opracowano jednak rozwiązania
umoŜliwiające połączenie wielu róŜnych sieci fizycznych, tak Ŝeby funkcjonowały jako
skoordynowana całość.
Praca w intersieci
(
ang. internetworking
) polega na przystosowaniu
do siebie róŜnych rozwiązań sprzętowych, udostępniając sposób łączenia ze sobą
niejednorodnych sieci. Technika intersieci pozwala komputerom na komunikowanie się
niezaleŜnie od fizycznych połączeń sieciowych.
Niniejsza praca przedstawia podstawowe zasady, na których opiera się funkcjonowanie sieci
złoŜonej, będące wynikiem prac wspieranych przez amerykańską instytucję -
Advanced
Research Project Agency
(ARPA).
Organizacja ta zaproponowała zbiór standardów określających szczegóły komunikacji
między komputerami, a takŜe szczegółów dotyczących łączenia sieci i wyboru trasy w sieci
nazwane TCP/IP (od głównych protokołów wchodzących w ich skład).
TCP/IP
(ang
.
Transmission Control Protocol / Internet Protocol
) nie jest więc pojedynczym produktem. Jest
to uogólniona nazwa całej rodziny protokołów i oprogramowania udostępniającego szereg
usług sieciowych. Podstawę ich stanowią jednak dwa typy usług wykorzystywanych przez
wszystkie programy uŜytkowe.
Usługa bezpołĄczeniowego przenoszenia pakietów
- stanowi podstawę wszystkich innych
usług intersieciowych. Przenoszenie bez uŜycia połączenia oferuje większość sieci
wymieniających pakiety i oznacza, Ŝe intersieć kieruje przesyłaniem niewielkich porcji danych
przy pomocy informacji adresowych, zawartych w kaŜdej takiej porcji. PoniewaŜ usługi
bezpołączeniowe bezpośrednio tłumaczą się na czynności sprzętu, rozwiązanie to jest
efektywne, ponadto umoŜliwia łatwą adaptację protokołów TCP/IP do szerokiej gamy sprzętu.
Ubocznym skutkiem tej metody przesyłania danych jest to, Ŝe usługi bezpołączeniowe kierują
kaŜdym pakietem oddzielnie, w związku z czym nie ma Ŝadnej pewności, Ŝe pakiety zostaną
dostarczone do odbiorcy w określonej kolejności, nie ma teŜ pewności, Ŝe w ogóle zostaną
dostarczone.
Usługa transportu niezawodnymi strumieniami
wychodzi naprzeciw tym problemom.
Posiada ona mechanizmy, które pozwalają wykryć błędy w transmisji danych czy teŜ
zagubienie pakietu. Usługa transportu niezawodnymi strumieniami umoŜliwia programowi
uŜytkowemu na jednym komputerze ustanowienie “połączenia” z programem uŜytkowym na
drugim komputerze, a następnie wysyłanie danych tak jak gdyby to było stałe, bezpośrednie
połączenie. NaleŜy jednak mocno podkreślić, Ŝe jest to połączenie wirtualne - strumień danych
nadal jest dzielony na mniejsze porcje i w tej postaci przesyłany jest do odbiorcy.
PoniewaŜ wiele sieci zapewnia usługi podobne do powyŜszych, warto wskazać podstawowe
cechy odróŜniające usługi TCP/IP od innych:
1.
Sieć TCP/IP oparta jest na zwykłej technice wymiany pakietów, funkcjonuje więc
niezaleŜnie od jakiegokolwiek dostępnego sprzętu.
2.
Intersieć TCP/IP umoŜliwia komunikowanie się dowolnej pary komputerów, które
łączy. Jest to moŜliwe dzięki rozpoznawaniu kaŜdego komputera przez unikalny w
skali światowej adres, jednoznacznie rozpoznawany w całej intersieci. Informacja
adresowa słuŜy takŜe do podejmowania decyzji o wyborze trasy pakietu od nadawcy
do odbiorcy.
3.
Protokoły TCP/IP umoŜliwiają potwierdzanie między nadawcą a odbiorcą
docelowym, nawet gdy komputery nie są podłączone do tej samej sieci fizycznej.
4.
Oprócz wspomnianych podstawowych usług protokoły TCP/IP oferują standardy dla
wielu programów uŜytkowych takich jak: poczta elektroniczna, transfer plików,
zdalna praca. W efekcie w programach uŜytkowych moŜna wykorzystywać gotowe,
istniejące juŜ usługi.
Tak więc rodzina protokołów TCP/IP moŜe być uŜywana do komunikacji w dowolnym
zbiorze połączonych sieci. Ponadto moŜna wykorzystać protokoły TCP/IP do połączenia
swoich wewnętrznych sieci chociaŜ nie mają połączenia z sieciami z zewnątrz. Technika
TCP/IP jest szczególnie interesująca z uwagi na fakt, Ŝe stanowi podstawowe rozwiązanie
światowej intersieci -
INTERNETU
.
Działanie i niezwykle dynamiczny rozwój sieci INTERNET świadczy o sile i przenośności
techniki TCP/IP.
***
Model TCP/IP
Podstawowym załoŜeniem modelu TCP/IP jest podział całego zagadnienia komunikacji
sieciowej na szereg współpracujących ze sobą warstw (ang.
layers
). KaŜda z nich moŜe być
tworzona przez programistów zupełnie niezaleŜnie, jeŜeli narzucimy pewne protokoły według
których wymieniają się one informacjami. ZałoŜenia modelu TCP/IP są pod względem
organizacji warstw zbliŜone do
modelu OSI
. Jednak ilość warstw jest mniejsza i bardziej
odzwierciedla prawdziwą strukturę Internetu. Model TCP/IP składa się z czterech warstw.
Warstwa aplikacji
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.
Warstwa transportowa
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.
Warstwa sieciowa
Warstwa sieciowa 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
.
Warstwa dostĘpu do sieci
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.
 Aplikacje i warstwa transportowa
W warstwie transportowej moŜe istnieć wiele protokołów, które współegzystują w jednej
sieci. Ich algorytmy powinny być optymalizowane, aby zapewnić:
·
niezawodny transfer danych
·
duŜą przepustowość
·
mały czas reakcji.
Niezawodny transfer danych oznacza zapewnienie, Ŝe jeŜeli tylko istnieje taka moŜliwość,
kaŜdy komunikat dotrze do odbiorcy. DuŜa przepustowość określa ilość informacji jaką
moŜna przesłać w zadanych czasie. Czas reakcji (
ping
) musi być jak najmniejszy, co jest
niezbędne, aby ograniczyć opóźnienie w komunikacji. W praktyce nie da się pogodzić
wszystkich trzech wymogów względem warstwy transportowej. Zwykle poprawa jednego z
nich dokonuje się kosztem pozostałych. Aby rozwiązać ten problem w sieciach
komputerowych zaprojektowano szereg protokołów warstw transportowych. Projektant
tworzący aplikację musi w takiej sytuacji wybrać, który protokół najlepiej sprawdzi się w
jego oprogramowaniu oraz sieci.
Niezawodny transfer danych
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.
PrzepustowoŚĆ
Aby efektywnie działać, niektóre aplikacje muszą być w stanie transmitować dane z określoną
szybkością. Jeśli na przykład aplikacja
telefonii internetowej
koduje
głos
z szybkością 32
kb/s, z taką samą szybkością musi mieć moŜliwość przesyłania danych w sieci i dostarczania
ich do aplikacji odbiorczej. Jeśli wymagana przepustowość nie jest dostępna, aplikacja
zaleŜna od przepustowości będzie zmuszona do kodowania z inną szybkością (i uzyskania
przepustowości wystarczającej do kontynuowania procesu) lub powinna przerwać operację,
poniewaŜ np. połowa Ŝądanej przepustowości to zdecydowanie za mało dla tego typu
aplikacji. Wiele aktualnie istniejących aplikacji multimedialnych jest zaleŜnych od
przepustowości. Jednak aplikacje
multimedialne
, które powstaną w przyszłości, w celu
kodowania z szybkością dostosowaną do aktualnie dostępnej przepustowości mogą stosować
adaptacyjne
metody kodowania. Aplikacje zaleŜne od przepustowości wymagają określonej
przepustowości, natomiast aplikacje elastyczne są w stanie skorzystać z takiej
przepustowości, jaka w danej chwili będzie dostępna. Przykładami takich aplikacji są
programy pocztowe
, słuŜące do przesyłania
plików
i
stron internetowych
. Oczywiście im
większa przepustowość, tym lepiej.
Czas reakcji
Ostatnim z wymagań dotyczących aplikacji jest czas. Aby efektywnie funkcjonować,
interaktywne zastosowania
czasu rzeczywistego
, takie jak telefonia internetowa, wirtualne
środowiska,
telekonferencje
i gry dla wielu osób (
MMO
), Ŝądają dostarczania danych w
czasie o niewielkim zakresie tolerancji. Przykładowo, wiele z tych zastosowań wymaga, aby
opóźnienia międzywęzłowe miały wartość kilkuset milisekund lub mniejszą. DuŜe opóźnienia
w przypadku telefonii internetowej powodują zwykle nienaturalne przerwy w rozmowie.
Znaczne opóźnienie między wykonaną czynnością i uzyskaną odpowiedzią (na przykład od
innego gracza znajdującego się na drugim końcu połączenia) występujące w przypadku gier
dla wielu osób lub w interaktywnym środowisku wirtualnym sprawiają, Ŝe aplikacja wydaje
się działać nie do końca w czasie rzeczywistym.
WłaŚciwoŚci
Protokoły te mają następujące cechy charakterystyczne:
·
dobrą odtwarzalność po awarii
·
moŜliwość dodawania nowych sieci bez przerywania pracy istniejących
·
wysoki współczynnik korekcji błędów
·
niezaleŜność od platformy
·
mały stopień obciąŜenia danych własnymi strukturami
·
duŜą wydajność
Protokoły TCP i IP łącznie zarządzają przepływem większości danych przez sieć. IP
odpowiada za przesyłanie dowolnych danych z punktu do punktu i zawiera w sobie na
przykład TCP lub UDP. Zadaniem TCP jest:
·
uzgadnianie toŜsamości (
handshake
)
·
zarządzanie pakietami (mogą docierać do adresata w innej kolejności, niŜ były
wysłane)
·
sterowanie przepływem
·
wykrywanie i obsługę błędów
Para TCP+IP jest stosowana do tzw. transmisji połączeniowej, gdzie zagwarantowany jest
przepływ danych dowolnej długości w obydwie strony, lub zwrotne poinformowanie nadawcy
o nieusuwalnym błędzie.
Para protokołów UDP+IP jest najczęściej uŜywanym standardem do tzw. transmisji
bezpołączeniowej, czyli przesyłania w jedną stronę, bez potwierdzania odbioru, niewielkich
paczek danych zwanych datagramami.
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tlumiki.pev.pl