Podstawy Protokołu TCP

background image

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.

background image

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.




background image

***

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.



background image

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ą

background image

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.

background image

Model TCP/IP a Internet

Każdy protokół sieciowy można przyporządkować do określonej warstwy modelu TCP/IP.
Pewną szczególną cechą rodziny protokołów

TCP/IP

używanej w internecie jest podział

protokołów z warstwy aplikacyjnej i połączeniowej. Niektóre protokoły z warstwy aplikacji
wykorzystują tylko pewne protokoły z warstwy transportowej.

Protokoły

DNS

,

NTP

wykorzystują tylko protokół

UDP

z warstwy transportowej. Protokoły

FTP

,

SMTP

,

POP3

,

SSH

,

IRC

posługują się tylko

TCP

. Natomiast

SMB

używa obu

protokołów.

Protokół

SSL

ma szczególną rolę. Może zostać umieszczony pomiędzy każdym

połączeniowym protokołem warstwy aplikacji, a TCP. Dzięki jego wykorzystaniu dane
przesyłane przez aplikacje mogą zostać

zaszyfrowane

.

Niektóre protokoły z warstwy aplikacji, jak np. SMB nie działają zwykle w Internecie. Są
wykorzystane w

sieciach lokalnych

do udostępniania usług, jak np. zdalne

drukarki

czy dyski.

W systemie

Linux

oraz innych klonach

Uniksa

dokładną listę protokołów transportowych

można znaleźć w pliku:

/etc/protocols

a listę protokołów z warstwy aplikacji w pliku

/etc/services

W systemach z rodziny

Windows NT

, odpowiednie pliki znajdują się w katalogu

%ROOTDIR%\system32\drivers\etc

gdzie

%ROOTDIR

to katalog z systemem, domyślnie:

c:\windows\system32\drivers\etc

Od ogólnego modelu TCP/IP są w Internecie wyjątki. Przykładem może być tutaj usługa

ping

,

w której aplikacja wysyła bezpośrednio pakiety ICMP w celu ustalenia jakości połączenia z
innym komputerem.


Wyszukiwarka

Podobne podstrony:
Protokół TCP IP, R03 5
Protokol TCP IP R08 5 id 834124 Nieznany
Protokół TCP IP, R12 5
Protokół TCP IP, R11 5
Bezpieczeństwo protokołów TCP IP oraz IPSec
Protokół TCP IP, R13 5
Protokół TCP IP, R09 5
PROTOKOŁY TCP 2
Protokół TCP IP nagłówki
PROTOKOŁY TCP
W12 Protokół TCP
SIECI KOMPUTEROWE Stos protokołów TCP IP
Bezpieczeństwo protokołów TCP IP oraz IPSec (2)
Protokół TCP IP Protokóły internet-u, edukacja i nauka, Informatyka
Wykład13 Sieć teleinformatyczna z protokołem TCP IP
podstawowe protokoly

więcej podobnych podstron