tcp ip model with different layers
Kompletny przewodnik po warstwach modelu TCP / IP:
Dowiedzieliśmy się wszystkiego Bezpieczeństwo zapory w naszym poprzednim samouczku. Tutaj, w tym samouczku, dowiemy się o modelu TCP / IP.
Model TCP / IP odnosi się do protokołu kontroli transmisji i protokołu internetowego.
Obecny model internetowy wykorzystuje ten model sieci do celów komunikacyjnych. Przeczytaj Samouczki szkoleniowe na temat sieci dla pełnego zrozumienia pojęcia.
Protokoły te są po prostu połączeniem reguł, które regulują każdą komunikację w sieci. Te z kolei decydują o ścieżce, jaką należy podążać w komunikacji między źródłem a celem lub Internetem.
Model TCP / IP składa się z czterech warstw, które zamykają cały proces komunikacji. W tym samouczku szczegółowo przyjrzymy się funkcjonalności każdej warstwy.
Jako tester oprogramowania należy wczuć się w model TCP / IP, ponieważ aplikacje działają na najwyższej warstwie, czyli warstwie aplikacji tego modelu.
Czego się nauczysz:
Architektura sieci
Architektura czterowarstwowa jest następująca:
Na poniższym rysunku przedstawiono protokoły i sieci używane w tym modelu sieci:
Podsumujmy protokoły i główne zastosowania każdej warstwy w modelu TCP / IP za pomocą poniższego diagramu.
Funkcje każdej warstwy w modelu TCP / IP
Poniżej wymieniono różne funkcje każdej warstwy w modelu TCP / IP.
Warstwa dostępu do sieci
Funkcje warstwy dostępu do sieci podano poniżej:
- Jest to dolna warstwa modelu TCP / IP i obejmuje wszystkie funkcje warstwy fizycznej i warstwy łącza danych modelu odniesienia OSI.
- W ten sposób charakteryzuje protokoły, sprzęt i media używane do komunikacji.
- Pakiety danych z warstwy internetowej są przekazywane do tej warstwy w celu wysłania do miejsca docelowego za pośrednictwem fizycznego nośnika.
- Głównym zadaniem tej warstwy jest łączenie bajtów danych w ramki i zapewnienie pewnego mechanizmu transmisji ramek danych IP na fizycznym nośniku.
- Punkt do punktu (PPP) jest protokołem używanym do ustanowienia połączenia punkt-punkt na łączach dzierżawionych. Jest również wdrażany w celu zapewnienia łączności między użytkownikiem końcowym a dostawcami usług internetowych za pośrednictwem modemów. Obsługuje również obsługę adresów IP przez łącza PPP.
- Większość użytkowników końcowych preferuje łącze Ethernet, które działa tylko z protokołem łącza danych Ethernet. W ten sposób powstaje PPP over Ethernet, który pozwala na wysyłanie zhermetyzowanych ramek danych wewnątrz ramek Ethernet.
- PPPoE początkowo tworzy tunel między urządzeniami sieciowymi użytkownika końcowego, takimi jak router i router usługodawcy internetowego. Następnie router wysyła ramki PPP przez ten tunel, ponieważ tunel działa jako połączenie typu punkt-punkt między routerami. Teraz dane są przesyłane również przez sieci WAN dzięki tej technologii.
- PPP wykorzystuje również proces uwierzytelniania do sprawdzania odpowiedzialności za wykorzystanie danych u dostawców usług internetowych. Metody obejmują protokół uwierzytelniania hasła (PAP) i protokół uwierzytelniania uzgadniania kanału (CHAP).
Warstwa internetowa
- Druga warstwa od dołu to warstwa internetowa.
- Gdy dane zostaną posegmentowane przez TCP lub UDP poprzez dodanie odpowiednich nagłówków w pakiecie danych, prześle je do niższej warstwy w celu dalszej komunikacji.
- Host docelowy, do którego jest przeznaczony pakiet danych, może znajdować się w innej sieci, do której można dotrzeć, przechodząc przez różne routery. Obowiązkiem warstwy internetowej jest przydzielanie adresów logicznych i efektywne kierowanie pakietów danych do sieci docelowej.
- Warstwa internetowa (IP) jest najpopularniejszym protokołem używanym do wykonywania tego zadania.
protokół internetowy
Celem tego protokołu jest kierowanie pakietów danych do miejsca docelowego zgodnie z informacjami zawartymi w nagłówku pakietu, zgodnie z zestawem protokołów.
Dodając nagłówek, który zawiera adresy IP źródła i celu, segment odebrany z TCP lub UDP jest konwertowany na PDU zwany pakietem. Gdy pakiet dociera do routera, sprawdza adres docelowy w nagłówku, a następnie przekazuje pakiet odpowiednio do następnego routera, aby dotrzeć do celu.
Zrozummy to na przykładzie:
Na poniższym rysunku, gdy host A chce komunikować się z hostem B, nie będzie używał żadnego protokołu routingu, ponieważ oba znajdują się w tym samym zakresie sieci i mają adresy IP z tego samego zestawu.
Ale jeśli host A chce wysłać pakiet do hosta C, wówczas za pomocą protokołu odkrywa, że host docelowy należy do innej sieci. Zatem powyższy format zajrzy do tablicy routingu, aby znaleźć adres następnego przeskoku, aby dotrzeć do miejsca docelowego.
W takim przypadku host A dotrze do hosta C za pośrednictwem routerów A, B i C. Ponieważ router C jest bezpośrednio połączony z siecią docelową za pośrednictwem przełącznika, pakiet jest dostarczany do hosta C.
Router pobiera wszystkie informacje związane z routingiem z pól nagłówka IP. Warstwa sieciowa TCP / IP (warstwa łącza danych) będzie odpowiedzialna za dostarczanie pakietów danych od końca do końca.
Przepływ pakietów w protokole internetowym
Nagłówek IPV4
- Wersja: IPV4 ma numer wersji 4.
- Długość nagłówka: Pokazuje rozmiar nagłówka.
- Pole DS: Pole DS oznacza pole usług zróżnicowanych i jest wykorzystywane do tworzenia pakietów.
- Długość całkowita: Oznacza rozmiar nagłówka plus rozmiar pakietu danych.
- Identyfikacja: To pole jest używane do fragmentacji pakietów danych i do przydzielania każdego pola, a tym samym pomaga w tworzeniu oryginalnego pakietu danych.
- Flagi: Używane do określenia procedury fragmentacji.
- Przesunięcie fragmentu: Wskazuje numer fragmentu i hosta źródłowego, który wykorzystuje je do zmiany kolejności pofragmentowanych danych we właściwej kolejności.
- Czas wyjść: Jest to ustawiane na końcu hosta źródłowego.
- Protokół: Oznacza protokół używany do przesyłania danych. TCP ma numer protokołu 6, a UDP ma numer protokołu 17.
- Suma kontrolna nagłówka: To pole służy do wykrywania błędów.
- Źródłowy adres IP: Zapisuje adres IP źródłowego hosta końcowego.
- Docelowy adres IP: Zapisuje adres IP hosta docelowego.
Omówimy to szczegółowo w naszych nadchodzących samouczkach.
Warstwa transportowa
- Jest to trzecia warstwa od dołu, która jest odpowiedzialna za ogólny transfer danych i jest pomocna w ustanawianiu logicznej łączności od końca do końca między hostem źródłowym i docelowym a urządzeniami w sieci.
- Do wykonania tych zadań używane są dwa protokoły:
- Pierwszy to protokół kontroli transmisji (TCP), który jest protokołem opartym na połączeniu i niezawodnym.
- Drugi to protokół datagramów użytkownika (UDP), który jest protokołem bezpołączeniowym.
- Przed dokładnym zbadaniem tych dwóch protokołów omówimy koncepcję NUMERU PORTU, która jest używana przez oba te protokoły.
Numer portu:
W sieci urządzenie hosta może wysyłać lub odbierać ruch z kilku źródeł jednocześnie.
W takiej sytuacji system nie rozpozna, do której z aplikacji należą dane. Protokoły TCP i UDP rozwiązują te problemy, umieszczając numer portu w nagłówkach. Dobrze znane protokoły warstwy aplikacji mają przydzielony numer portu z zakresu od 1 do 1024.
Na końcu źródłowym każdej sesji TCP lub UDP przydzielany jest losowy numer portu. Adres IP, numer portu i typ protokołu używanego w połączeniu przekształcają gniazdo zarówno na końcu źródłowym, jak i docelowym. Ponieważ każde gniazdo jest wyłączne, kilka hostów może wysyłać lub odbierać ruch w tym samym przedziale czasu.
W poniższej tabeli przedstawiono numery portów przypisane do kilku protokołów warstwy aplikacji odpowiadających protokołom warstwy transportowej.
polecenie sort w systemie UNIX z przykładami
Protokół aplikacji | Protokół transportowy | Numer portu |
---|---|---|
DNS | TCP, UDP | 53 |
HTTP | TCP | 80 |
HTTPS | TCP | 443 |
FTP (kontrola) | TCP | dwadzieścia jeden |
FTP (dane) | TCP | 20 |
SSH | TCP | 22 |
Telnet | TCP | 2. 3 |
SMTP | TCP | 25 |
TFTP | UDP | 69 |
Wiele sesji przy użyciu numeru portu
TCP
- Ilekroć warstwa aplikacji musi rozprowadzić strumień ogromnego ruchu lub danych, wysyła go do warstwy transportowej, w której TCP realizuje całą komunikację między sieciami.
- Protokół TCP początkowo konfiguruje potrójny proces uzgadniania między źródłem a miejscem docelowym, a następnie dzieli dane na małe fragmenty zwane segmentami i dołącza nagłówek do każdego segmentu, a następnie przekazuje je do warstwy internetowej.
Poniższy rysunek przedstawia format nagłówka TCP.
- Uzgadnianie trójetapowe: Jest to proces wdrażany przez TCP w celu ustanowienia połączenia między hostem źródłowym i docelowym w sieci. Służy do wykonywania niezawodnej transmisji danych. W celu wykonania zadania wdraża flagi SYN i ACK bitów kodu nagłówka TCP. Zapewnia niezawodną komunikację poprzez wykonanie pozytywnego potwierdzenia z retransmisją i jest również znany jako PAR. System wykorzystujący PAR będzie ponownie transmitował segment danych, dopóki nie otrzyma potwierdzenia. Za każdym razem, gdy odbiorca odrzuca dane, nadawca musi ponownie przesłać dane do momentu otrzymania pozytywnego potwierdzenia ACK od odbiorcy.
Istnieją 3 kroki uzgadniania trójetapowego, które są następujące:
- Krok 1: Host źródłowy A chce nawiązać połączenie z hostem docelowym B, przesyła segment z numerem SYN i numerem sekwencyjnym, co oznacza, że host A chce zainicjować sesję komunikacji z hostem B iz jakim numerem kolejnym jest zdefiniowany w tym segmencie.
- Krok 2: Host B odpowiada na żądanie hosta A z SYN i ACK ustawionym w bicie sygnału. ACK oznacza odpowiedź odebranego segmentu, a SYN oznacza numer kolejny.
- Krok 3: Host A potwierdza odpowiedź hosta B i obaj ustanawiają bezpieczne połączenie między nimi, a następnie rozpoczynają przez niego transmisję danych.
Jak opisano na poniższym rysunku, w procesie uzgadniania trójetapowego najpierw host źródłowy wysyła nagłówek TCP do hosta docelowego, ustawiając flagę SYN. W odpowiedzi zwraca ustawioną flagę SYN i potwierdzenia. Host docelowy przetwarza odebrany numer kolejny plus 1 jako numer potwierdzenia.
TCP IP obsługuje model klient-serwer systemu komunikacyjnego.
Proces uzgadniania trójetapowego
- Segmentacja danych :
- Jest to jedna z cech protokołu TCP. Warstwa aplikacji wysyła ogromną liczbę danych do przesłania do miejsca docelowego do warstwy transportowej. Ale warstwa transportowa ogranicza rozmiar danych do wysłania za jednym razem. Odbywa się to poprzez podzielenie danych na małe segmenty.
- Aby rozpoznać sekwencję segmentów danych, w nagłówku TCP używany jest numer kolejny, który opisuje numer bajtu całego segmentu danych.
- Kontrola przepływu:
- Host źródłowy wyśle dane w klastrze segmentów. Nagłówek TCP z bitem okna służy do określenia liczby segmentów, które można wysłać w jednym momencie. Służy do uniknięcia niewielkiego ruchu na końcu docelowym.
- Po rozpoczęciu sesji rozmiar okna jest niewielki, ale wraz ze wzrostem ruchu w czasie rozmiar okna może stać się ogromny. Host docelowy może dostosować okno zgodnie z kontrolą przepływu. Dlatego okno nazywa się przesuwnym oknem.
- Źródło może przesyłać tylko taką liczbę segmentów, na jaką zezwala okno. Aby wysłać więcej segmentów, najpierw będzie czekał na potwierdzenie od strony odbierającej, gdy otrzyma ACK, a później może zwiększyć rozmiar okna zgodnie ze swoimi potrzebami.
- Na poniższym rysunku host docelowy zwiększa rozmiar z 500 do 600, a następnie do 800 po wysłaniu potwierdzenia z powrotem do hosta źródłowego.
- Niezawodna dostawa i usuwanie błędów :
- Po odebraniu przez odbiorcę ostatniego segmentu wybranego okna musi wysłać ACK do końca źródłowego. Flaga ACK jest umieszczana w nagłówku TCP, a numer ACK jest umieszczany jako numer kolejny zakładanego kolejnego bajtu. Jeśli miejsce docelowe nie odbierze segmentów we właściwej kolejności, nie prześle potwierdzenia z powrotem do źródła.
- To wyjaśnia źródło, że kilka segmentów jest niewłaściwie umieszczonych podczas transmisji i ponownie transmituje wszystkie segmenty.
- Na poniższym rysunku pokazano, że gdy źródło nie otrzymało ACK dla segmentu o numerze SEQ 200, to ponownie przesyła dane i po odebraniu ACK wysyła kolejną sekwencję segmentu danych w zgodnie z rozmiarem okna.
- Zamówiona dostawa :
- TCP zapewnia sekwencyjne dostarczanie danych do miejsca docelowego. Dostarcza dane w kolejności, w jakiej otrzymuje je z warstwy aplikacji w celu dostarczenia do hosta docelowego. W ten sposób do utrzymania uporządkowanej dostawy używa numeru sekwencyjnego podczas transmisji segmentów danych.
- Zakończenie połączenia :
- Kiedy transmisja danych między źródłem a celem jest zakończona, TCP kończy sesję wysyłając flagi FIN i ACK i używa czterostronnego uzgadniania, aby ją zamknąć.
Przesuwne okno TCP i niezawodna dostawa
Protokół datagramów użytkownika (UDP):
Jest to zawodny i bezpołączeniowy protokół transmisji danych. W tym protokole, w przeciwieństwie do TCP, nie generuje on żadnej flagi ACK, stąd host źródłowy nie będzie czekał na odpowiedź z końca docelowego i prześle dane bez żadnego opóźnienia i czeka na ACK.
W scenariuszu czasu rzeczywistego UDP jest używany, ponieważ porzucanie pakietów danych jest wybierane zamiast oczekiwania na pakiety do ponownej transmisji. Dlatego jest najczęściej używany w grach, oglądaniu wideo online, czacie itp., Gdzie potwierdzenie danych nie jest problemem. W tych scenariuszach sprawdzanie i korygowanie błędów odbywa się w warstwie aplikacji.
Nagłówek UDP:
- Port źródłowy: Klasyfikuje informacje o źródłowym pakiecie końcowym o rozmiarze 16 bitów.
- Port docelowy : Ma również rozmiar 16 bitów i służy do klasyfikowania typu usługi danych w węźle docelowym.
- Długość : Wskazuje całkowity rozmiar datagramu UDP. Maksymalnym rozmiarem pola długości może być całkowity rozmiar samego nagłówka UDP.
- Suma kontrolna : Zapisuje wartość sumy kontrolnej oszacowaną przez koniec źródła przed transmisją. Jeśli nie ma żadnej wartości, wszystkie jego bity są ustawiane na zero.
Aplikacje UDP :
- Obsługuje datagram, dlatego jest odpowiedni do tunelowania IP i sieciowego systemu plików.
- Prosty w użyciu, dlatego jest używany w DHCP i trywialnym protokole przesyłania plików.
- Bycie bezstanowym sprawia, że jest wydajny w aplikacjach do przesyłania strumieniowego multimediów, takich jak IPTV.
- Nadaje się również do programów Voice over IP i przesyłania strumieniowego w czasie rzeczywistym.
- Wspiera multiemisję, dlatego jest odpowiedni dla usług rozgłoszeniowych, takich jak Bluetooth i protokół informacji o routingu.
Warstwa aplikacji
(i) To jest najwyższa warstwa modelu TCP / IP.
(ii) Wykonuje wszystkie zadania warstwy sesji, warstwy prezentacji i warstwy aplikacji modelu TCP / IP.
(iii) Łączy w sobie funkcje łączenia się z różnymi aplikacjami, kodowania danych, translacji danych i zapewnia użytkownikom dostęp do komunikacji z różnymi systemami sieciowymi.
Najpopularniejsze protokoły warstwy aplikacji są zdefiniowane poniżej:
# 1) TELNET: Oznacza protokół emulacji terminala. Zwykle ćwiczy dostęp do zdalnych aplikacji końcowych. Serwer telnet, który działa jako host, inicjuje aplikację serwera telnet w celu ustanowienia połączenia z hostem odległym, znanym jako klient telnet.
Po nawiązaniu połączenia jest ono przedstawiane systemowi operacyjnemu serwera telnet. Ludzie na serwerze używają klawiatury i myszy do obsługi i uzyskiwania dostępu do zdalnego hosta przez TELNET.
# 2) HTTP: Oznacza protokół przesyłania hipertekstu. Jest podstawą World Wide Web (WWW). Ten protokół jest używany do wymiany hipertekstu między różnymi systemami. Jest to rodzaj protokołu żądanie-odpowiedź.
Na przykład, Przeglądarka internetowa, taka jak Internet Explorer lub Mozilla, działa jako klient sieciowy, a aplikacja przesyłająca strumieniowo na komputerze PC obsługującym witrynę będzie działać jako serwer sieciowy.
W ten sposób serwer, który udostępnia zasoby, takie jak pliki HTML i inne funkcje żądane przez klienta, zwraca klientowi wiadomość z odpowiedzią, która zawiera dane stanu ukończenia i żądane dane w wierszu komunikatu.
Zasoby HTTP są rozpoznawane i umieszczane w sieci przez jednolite lokalizatory zasobów (adresy URL), które wdrażają metody jednolitych identyfikatorów zasobów (URI) HTTP i https.
# 3) FTP: To oznacza protokół przesyłania plików. Służy do udostępniania lub przesyłania plików między dwoma hostami. Host, na którym działa aplikacja FTP, zachowuje się jak serwer FTP, podczas gdy drugi zachowuje się jak klient FTP.
Host klienta żądający udostępnienia plików wymaga uwierzytelnienia z serwera w celu uzyskania dostępu do danych. Po autoryzacji może uzyskać dostęp do dowolnego typu plików z serwera, wysyłać lub odbierać pliki.
# 4) SMTP: Prosty protokół przesyłania poczty to ćwiczenie służące do wysyłania wiadomości e-mail. Kiedy konfigurujemy hosta do wysyłania e-maili, używamy SMTP.
# 5) DNS: Każde z urządzeń hosta w dowolnej sieci ma unikalny adres logiczny zwany adresem IP. Jak już wspomniano, adresy IP są grupą tak wielu liczb i nie jest łatwo je zapamiętać. Kiedy wpisujemy dowolny adres internetowy w przeglądarce internetowej, takiej jak Google.com, w rzeczywistości prosimy o hosta z adresem IP.
Ale nie musimy zapamiętywać adresu IP strony internetowej, o którą prosimy, ponieważ DNS (serwer nazw domen) odwzorowuje nazwę na każdy logiczny adres IP i przechowuje ją.
jak uruchomić obiekt flash shockwave
Tak więc, kiedy wpisujemy przeglądarkę dla dowolnej strony internetowej, wysyła ona zapytanie DNS do swojego serwera DNS, aby zmapować adres IP na nazwę. Po uzyskaniu adresu budowana jest sesja HTTP z adresem IP.
# 6) DHCP: Każde z urządzeń hosta w dowolnej sieci wymaga adresu IP do komunikacji z innymi urządzeniami w sieci. Adres ten pobiera przez konfigurację ręczną lub przy użyciu protokołu dynamicznej konfiguracji hosta (DHCP). W przypadku korzystania z protokołu DHCP do hosta zostanie automatycznie przypisany adres IP.
Załóżmy, że sieć składa się z 10 000 urządzeń hosta. Wtedy ręczne przydzielenie adresu IP do każdego hosta jest bardzo trudne i zajmuje dużo czasu, dlatego używamy protokołu DHCP do przypisywania adresu IP i innych informacji do podłączonych urządzeń hosta, takich jak maska podsieci IP lub adres IP bramy.
Programy testujące oprogramowanie będą działać w tej warstwie modelu TCP / IP, ponieważ zapewnia użytkownikom końcowym testowanie różnych usług i korzystanie z nich.
Wniosek
Widzieliśmy różne protokoły, które są używane w każdej warstwie modelu TCP / IP do wykonywania zadań związanych z warstwą i ich korzyści w systemie komunikacyjnym.
Wszystkie wyżej zdefiniowane protokoły mają swoje znaczenie i różne role w testowaniu i stosowaniu narzędzi programowych.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Wszystko o przełącznikach warstwy 2 i warstwy 3 w systemie sieciowym
- Kompletny przewodnik po zaporze: jak zbudować bezpieczny system sieciowy
- Wszystko o routerach: typy routerów, tablice routingu i routing IP
- Co to jest sieć rozległa (WAN): przykłady aktywnych sieci WAN
- Co to są protokoły HTTP (Hypertext Transfer Protocol) i DHCP?
- Ważne protokoły warstwy aplikacji: protokoły DNS, FTP, SMTP i MIME
- IPv4 vs IPv6: jaka jest dokładna różnica
- Jaki jest mój adres IP i lokalizacja (sprawdź tutaj swoje prawdziwe IP)