background image

 

 

1

Protokół TCP IP

Sieci komputerowe

Marek Pudełko

background image

 

 

2

TCP

• TCP (ang. Transmission Control 

Protocol) - strumieniowy protokół 
komunikacji między dwoma 
komputerami.

• Został stworzony przez Vintona Cerfa i 

Roberta Kahna.

• Jest on częścią większej całości 

określanej jako stos TCP/IP. W modelu 
OSI TCP odpowiada warstwie 
Transportowej
.

background image

 

 

3

Historia TCP/IP cz. 1

• Początki protokołów TCP / IP sięgają lat siedemdziesiątych, kiedy to 

PENTAGON (amerykańskie ministerstwo obrony) potrzebowało sieci 

komputerowej zdolnej do przetrwania wojny atomowej, potrafiącej 

automatycznie rozpoznać uszkodzone łącza i wybrać zastępczą drogę 

dla przesyłanych danych. Zniszczenie pojedynczych węzłów sieci nie 

mogłoby doprowadzić do unieruchomienia całego systemu. 

• W wyniku prac nad tym projektem powstała sieć ARPANET (nazwa 

amerykańskiej agencji - Advanced Research Projects Agency - 

Instytut Rozwoju Zaawansowanych Technologii ), którą można 

uznać za kamień węgielny późniejszego Internetu. 

• Sieć ARPANET pozostała pod patronatem tej organizacji, która 

skupiła się na badaniach nad technologią komutacji pakietów i 

rozwojem mechanizmów transportowych wykorzystujących między 

innymi fale radiowe i satelity telekomunikacyjne. 

• Wtedy to protokół komunikacyjny sieci został ochrzczony nazwą 

"1812 PROTOCOL" pochodzący od numeru dokumentu opisującego 

cały system. 

• W roku 1975 kontrolę nad siecią ARPANET przejęła Agencja 

Komunikacyjna Departamentu Obrony USA nazywana w skrócie DCA 

(Defense Communication Agency). W tym czasie opracowano 

nowy, udoskonalony zestaw protokołów sieciowych. Zestaw ten stał 

się trzonem protokołu TCP/IP, który w 1978 roku był już na tyle 

kompletny, że mógł być zaprezentowany Światu.

background image

 

 

4

Historia TCP/IP cz. 2

• Powstanie TCP/IP było przełomem umożliwiającym budowę dużej liczby 

nowych sieci połączonych z ARPANET-em. 

• Rok 1982 - Departament Obrony utworzył sieć DDN, zaprojektowaną 

jako coś w rodzaju obszaru centralnego dla rozproszonych sieci 

tworzących Internet.

• W rok później (1983) Departament Obrony wydał oświadczenie 

akceptujące TCP/IP w roli protokołu sieciowego, który ma być 

stosowany przez wszystkie węzły łączące się z Internetem. Było to 

początkiem lawinowego rozwoju sieci TCP/IP, ponieważ powstał 

standard pozwalający na komunikację pomiędzy komputerami różnych 

typów. 

• Powstanie w latach osiemdziesiątych wielu tysięcy sieci lokalnych 

(LAN) również przyczyniło się do wzrostu znaczenia TCP/IP. Sieć lokalną 

można bardzo łatwo zbudować, a w miarę rosnących wymagań dowolnie 

rozbudowywać. Wielkie znaczenie dla ekspansji TCP/IP miało masowe 

wprowadzenie technologii sieciowej w sektorze biznesu i finansów.

• TCP/IP wydaje się "naturalnym" środkiem umożliwiającym 

przekazywanie danych pomiędzy firmami używającymi różnorodnego 

sprzętu produkowanego przez setki lub tysiące różnych firm.

• Do końca lat osiemdziesiątych TCP/IP uzyskało status siły napędowej 

rozwoju sieci na całym świecie, wielkość sieci zwiększała się bardzo 

szybko, liczba węzłów po niecałych trzydziestu latach urosła z 

początkowych czterech do ponad trzydziestu milionów. 

background image

 

 

5

TCP

• TCP zapewnia wiarygodne połączenie dla wyższych warstw 

komunikacyjnych przy pomocy sum kontrolnych i numerów 

sekwencyjnych pakietów, w celu weryfikacji wysyłki i odbioru.

• Brakujące pakiety są obsługiwane przez żądania retransmisji. 

Host odbierający pakiety TCP porządkuje je według numerów 

sekwencyjnych tak, by przekazać wyższym warstwom modelu 

OSI pełen, złożony segment.

• Chociaż protokół definiuje pakiet TCP, to z punktu widzenia 

wyższej warstwy oprogramowania, dane płynące połączeniem 

TCP należy traktować jako ciąg oktetów.

• W szczególności - jednemu wywołaniu funkcji API (np. 

send()), nie musi odpowiadać wysłanie jednego pakietu. Dane 

z jednego wywołania mogą zostać podzielone na kilka 

pakietów lub odwrotnie - dane z kilku wywołań mogą zostać 

połączone i wysłane jako jeden pakiet.

• Również funkcje odbierające dane (recv()) w pratyce 

odbierają nie konkretne pakiety, ale zawartość bufora stosu 

TCP/IP, wypełnianego sukcesywnie danymi z przychodzących 

pakietów.

background image

 

 

6

Nagłówek TCP

background image

 

 

7

TCP

• Charakterystyczny dla TCP jest moment nawiązania 

połączenia, nazywany ang. three-way handshake.

– Host inicjujący połączenie wysyła pakiet zawierający 

segment TCP z ustawioną flagą SYN (Synchronize - 
synchronizacja).

– Host odbierający połączenie, jeśli zechce je obsłużyć odsyła 

pakiet z ustawionymi flagami SYN i ACK (Acknowledge - 
potwierdzenie).

• Inicjujący host powinien teraz wysłać pierwszą porcję danych, 

ustawiając już tylko flagę ACK (gasząc SYN).

• Jeśli host odbierający połączenie nie chce lub nie może 

odebrać połączenia, powinien odpowiedzieć pakietem z 
ustawioną flagą RST (Reset).

– Prawidłowe zakończenie połączenia polega na wysłaniu 

flagi FIN.

background image

 

 

8

IP

• IP (ang. Internet Protocol) to protokół komunikacyjny 

warstwy sieciowej modelu OSI (warstwy internet w 

modelu TCP/IP). Używany powszechnie w Internecie i 

sieciach lokalnych.

• Dane w sieciach IP są wysyłane w formie bloków 

określanych mianem pakietów. W przypadku protokołu 

IP, przed rozpoczęciem transmisji, nie jest zestawiana 

wirtualna sesja komunikacyjna pomiędzy dwoma 

hostami, które nie komunikowały się ze sobą wcześniej.

• Protokół IP jest protokołem zawodnym - nie 

gwarantuje, że pakiety dotrą do adresata, nie zostaną 

sfragmentowane, czy też zdublowane, a ponadto mogą 

dotrzeć do odbiorcy w innej kolejności niż zostały 

nadane. Niezawodność transmisji danych jest 

zapewniana przez protokoły warstw wyższych, 

znajdujących się w hierarchii powyżej warstwy 

sieciowej. 1982-standartem TCP/IP

background image

 

 

9

Nagłówek protokołu IP

background image

 

 

10

Struktura pakietu IP:

                        1 bajt                                 2 bajt                                   3 bajt                                 
4 bajt

        nr wersji           długość               typ obsługi                                    długość całkowita 
pakietu

        protokołu         nagłówka  

                                   identyfikator                                       flagi                              przesunięcie 
                                   N                              

                                                                                              (3 bity)                            (13 bitów)   
                                  A          

                     czas życia                         protokół                                       suma kontrolna 
nagłówka                                G

                                                             nadrzędny                                                                           
                                    Ł

                                                                              adres źródłowy IP                                              
                                   Ó

                                                                                                                                                         
                                   W

                                                                              adres docelowy IP                                             
                                    E

                                                                                                                                                         
                                    K

                                                               opcje                                                                        
niewykorzystane

                                                                D            A             N             E

O

P

C

J

A

background image

 

 

11

TCP/IP

• Protokół TCP/IP (ang. Transmission Control 

Protocol/Internet Protocol) jest bezspornie 
wszechobecnym i najbardziej udanym z pośród 
dotychczas zaprojektowanych protokołów 
komunikacyjnych.

• TCP/IP to protokół kontroli transmisji i protokół 

internetowy, to pakiet standardowych protokołów 
umożliwiających łączenie komputerów za 
pośrednictwem sieci.

• TCP/IP jest protokołem komunikacji otwartej

Otwartość oznacza możliwości komunikacji miedzy 
dowolna kombinacją urządzeń, bez względu na ich 
fizyczna różnorodność.

• TCP/IP zwane jest także stosem protokołów ze 

względu na strukturę warstwową.

background image

 

 

12

Warstwy TCP IP

Model odniesienia TCP/IP, inaczej niż OSI, bardziej skupia się na 

dostarczaniu wzajemnych połączeń niż sztywnym dopasowaniu do 

warstw funkcji, jest znacznie bardziej elastyczny od modelu OSI.

Podstawowa różnica miedzy modelem OSI a poniższym polega na 

braku stałej gwarancji dostarczania pakietów przez warstwę 

transportową. Zestaw TCP/IP oferuje prostszy protokół 

datagramów użytkownika (UDPUser Datagram Protocol), w 

którym wszystkie warstwy stosu TCP/IP wykonuja określone 

obowiązki lub uruchamiają aplikacje. Protokoły TCP i IP łącznie 

zarządzają przepływem danych przez siec w obu kierunkach.

Tymi warstwami dla modelu TCP/IP są:

1. Warstwa łącza - zawiera protokoły ARP i RARP, obsługujące 

transmisję pakietów

2. Warstwa sieciowa – zawiera protokoły ICMP, IP, IGMP, RIP, OSPF i 

EGP. Są to raczej protokoły niskiego poziomu i ezoteryczne, nie 

wymagające zbytniej troski.

3. Warstwa transportowa – zawiera protokoły UDP i TCP. Pierwszy 

dostarcza pakiety prawie bez sprawdzania, drugi natomiast 

gwarantuje bezstratne ich dostarczenie.

4. Warstwa aplikacji - zawiera protokoły SMTP, FTP, NFS, NIS, LPD, 

Telnet.

background image

 

 

13

Właściwości TCP IP

Protokół TCP/IP umożliwia prace w sieciach niejednorodnych, 
tworzenie sieci miedzyplatformowe. Protokół ten ma 
następujące cechy charakterystyczne:

1. Dobrą odtwarzalność po awarii
2. Możliwość dodawania nowych sieci bez przerywania istniejącej 

obsługi

3. Wysoki współczynnik obsługi błędów
4. Niezależność od platformy
5. Mały stopień obciążenia danych własnymi strukturami
6. Duża wydajność

Protokóły TCP i IP łącznie zarządzają przepływem danych przez 
siec w obu kierunkach. IP przesyła pakiety bez ich rozróżniania, 
natomiast zadaniem TCP jest gwarancja ich dotarcia. Protokół 
TCP odpowiada za działania następujące :

1. Uzgadnianie tożsamości (handshake)
2. Zarządzanie pakietami
3. Sterowanie przepływem
4. Wykrywanie i obsługa błędów

background image

 

 

14

Klasy adresów IP


Document Outline