GNIAZDO
Kombinację adresu IP i numeru portu określa się jako gniazdo. To połączenie umożliwia jednoznaczną identyfikację poszczególnych procesów sieciowych w ramach całego Internetu.
TCP i UDP mogą nadawać te same numery portów. Dopiero połączenie protokołu i numeru portu jest jednoznaczne. Numer portu 53 w TCP nie jest identyczny z numerem portu 53 w UDP. Jeśli dwa procesy mają się między sobą komunikować, każdy z nich tworzy po swojej stronie jedno gniazdo. Parę takich gniazd można więc określić mianem końcówek kanału komunikacyjnego. Gniazd używa się głównie do komunikacji z odleglym procesem za pośrednictwem sieci, jednak można je zastosować także w przypadku wymiany informacji między procesami działającymi w obrębie jednej maszyny. Gniazdo jest opisywane za pomocą kombinacji trzech atrybutów: domeny adresowej, sposobu komunikacji i protokołu sieciowego.
Do transmisji danych(komunikacji między procesami) potrzebny obiekt zwany gniazdem . Gniazdo jest to po prostu plik zwany deskryptorem , do którego można zapisać lub z którego można odczytać dane .Każdy deskryptor ma swój identyfikator . Gniazdo składa się z adresuIP oraz numeru portu . Gniazdo tworzymy poprzez wywołanie funkcji socket() która to zwróci jakąś dodatnia liczbę typu int (jeżeli funkcja zwróci -1 to oznacza że wystąpił błąd podczas tworzenia gniazda). Występują dwa typy gniazd : gniazdo strumieniowe ”SOCK_STREAM” i gniazdo data gamowe ”SOCK_DGRAM”
Gniazda strumieniowe używają protokołu połączeniowego , niezawodnego TCP
Gniazdo datagramowe zwane bezpołączeniowym (nie utrzymują otwartego połączenia po prostu buduje się pakiet i wysyła ) używa protokołu UDP.
int gniazdo
gniazdo=socket(int domain ,int type , int protocol);
domain: PF_INET,PF_IPX
type: SOCK_STREAM,SOCK_DGRAM
protocol: 0
Niszczenie gniazd int close(int gniazdo)
Shutdown(int gniazdo , int how)
Sposób likwidacji połączenia 0-zabrania dalszego przyjmowania danych
1- zabrania dalszego wysyłania danych
2- zabrania przyjmowania i wysyłania
Zapis ma następującą postać: adres IP:port, np. 62.96.227.70:80. Para gniazdowa (ang. socket pair) Dwa gniazda definiują połączenie: jedno określa komputer źródłowy, drugie - docelowy. dla połączenia TCP jest to czwórka, która definiuje dwa punkty końcowe połączenia: adres źródłowy IP, port źródłowy TCP, adres docelowy IP oraz port docelowy TCP. Para gniazdowa jednoznacznie identyfikuje komputer w sieci oraz konkretna aplikacje na tym komputerze.
Protokoły są regułami które definiują następujące zasady :
format wiadomości(ile danych w segmentach)
sposób w jaki urządzenia dzielą się informacjami o trasie do miejsca docelowego
proces inicowania i kończenia komunikacji miedzy hostami
Protokoły nie są zależne od żadnej technologii, opisują co musi zostać wykonane w celu zapewnienia komunikacji a nie sposób wykonania .
Protokoły warstwy aplikacji(DNS,http,SMTP,POP,TELNET,FTP,DHCP)
Protokoły warstwy transportowej(TCP,UDP)
Protokoły warstwy Internetu(IPV4,IPV6)
RFC (ang. Request for Comments - zbiór technicznych oraz organizacyjnych dokumentów związanych z Internetem oraz sieciami komputerowymi. Każdy z nich ma przypisany unikalny numer identyfikacyjny, zwykle używany przy wszelkich odniesieniach.
Opis większości popularnych protokołów sieciowych został pierwotnie opisany właśnie w RFC.
Model OSI
Warstwa aplikacji Funkcje warstw modelu OSI
(7) aplikacji - oferuje usługi sieciowe uzytkownikom lub programom,
np. protokołowi realizujacemu usługe poczty elektronicznej
(6) prezentacji - zapewnia przekazywanie danych (tekstowych, graficznych,
dzwiekowych) w odpowiednim formacie, dokonuje ich kompresji oraz ew. szyfrowania
(5) sesji - zarzadza sesjami (połaczeniami) pomiedzy współpracujacymi
aplikacjami, m.in. ustala sposób wymiany danych (jednokierunkowy lub
dwukierunkowy) (inicjuje transfer danych, służy do wymiany danych między programami działającymi w hoście źródłowym i docelowym) , prezentacji(kodowanie i konwersja danych MPEG) ,sesji(nawiązywanie utrzymanie dialogu między aplikacjami źródlowymia docelowymi)
Warstwa transportowa()
Warstwa sieci()
Warstwa łącza danych()
Warstwa fizyczna()
Model DoD
Warstwa aplikacji
Warstwa transportowa()
Warstwa sieci()
Warstwa dostępu do sieci()
Enkapsulacja
Dla danych przechodzących przez poszczególne warstwy dodawany jest nagłówek zawierający informacje sterujące i adresowe dane(warstwa aplikacji) ,segment(warstwa transportowa) , pakiet(warstwa internetowa), ramka(warstwa dostępu do sieci) bity(warstwa fizyczna)
Warstwa transportowa Warstwa transportowa odpowiedzialna jest za :
Śledzenie indywidualnych połączeń między aplikacjami hostów źródłowych i aplikacji hostów docelowych .Dzielenie danych na segmenty Ponowne zestawienie segmentów w strumienie danych do aplikacji Identyfikowanie różnych aplikacji(porty)Kontrola przepływu inicjowanie sesji(tryb połączeniowy) , naprawa błędów(retransmisja)Głównym zadaniem protokołów tej warstwy jest dzielenie danych przychodzących z wyższych warstw modelu na segmenty. Segmenty te następnie przesyłane są do protokołów niższych warstw. W warstwie transportowej istnieje mechanizm określania, do której aplikacji adresowane są przesyłane przy pomocy protokołu IP pakiety. Zarówno protokół TCP jak i UDP dysponują niezależnymi numerami, które określają numer portu. Standardowe numery portów zostały określone w dokumencie RFC 1700.W trakcie przesyłanie danych przez sieć mogą być one kierowane do różnych aplikacji. W celu dokładnego rozróżnienia, wprowadzono strukturę programową określaną jako gniazdo (ang. socket).
Warstwa sieci otrzymuje z warstwy transportowej segmenty danych mające odpowiednia wielkość i są ponumerowane .W warstwie sieci wykonywane są 4 zadania :
Adresowanie pakietów z użyciem adresu IP(W przypadku IPv4 część adresu przeznaczona na identyfikator sieci jest zależna od długości maski sieciowej. Maska ta służy do wyznaczania adresu sieciowego, który jest (musi być) taki sam dla wszystkich interfejsów znajdujących się w tej samej podsieci. Netmaska podobnie jak adres IPv4 składa się z 32 bitów. Protokół wymaga aby każde urządzenie wysyłające i odbierające miało swój unikatowy adres IP który jest 32-bitową sekwencją 0 i 1 zapisywanego w postaci 4 liczb dziesiętnych odzielonych kropkami . Każdy adres składa się z dwóch części jena identyfikuje sieć do której komputer jest podłączony A druga identyfikuje ten komputer w sieci docelowej .
enkapsulacja (każda przesyłana między sieciami jednostka PDU musi być zidentyfikowana za pomocą źródłowego i docelowego adresu IP podanych w nagłówku IP. Nagłówek IP zawiera info adresowe )
Routing (Pakiet powstały w warstwie sieci zawiera wszystkie informacje potrzebne do dotarcia sieci odległej ,Routing to proces analizy info o adresie docelowym wybór trasy dla pakietu a następnie przekazanie pakietu do następnego rutera) .Pakiet IP ma postać ramki powstałej w wyniku inkapsulacji)
Dekapsulacja (proces usuwania danych które zostały dodane w procesie enkapsulacji)
Protokól IP bezpołączeniowy , zawodny , niezależny od nośnika . Protokół IP jest przykładem protokołu routowalnego.
Protokół ten jest bezpołączeniowy, co oznacza, że do przesłania danych nie potrzebne jest zestawienie połączenia pomiędzy nadawcą i odbiorcą.
Protokół IP wykorzystuje wszystkie posiadane mechanizmy, aby dostarczyć pakiet do celu. Protokół ten nie dba o potwierdzenie, czy dane dotarły do adresata, stąd też często jest określany jako zawodny. Określenie „zawodny” jest trochę nieprecyzyjne, ponieważ pakiety wysyłane są wszelkimi możliwymi trasami. Za potwierdzenie właściwego przesłania odpowiadają protokoły wyższych warstw.
Nagłówek źródłowy adres IP, docelowy adres IP , TTL () pole opisujące max liczbę skoków ToS- DS(poziom priorytetu przepustowości), protokół(określony protokół warstwy wyższej),flaga i przesunięcie fragmentu (fragmentacja z powodu mniejszej wartości MTU ,określa kolejność w jakiej fragmenty mają być składane w pierwotny pakiet) , długość nagłówka internetowego ,długość pakietu , suma kontrolna nagłówka
Warstwa łącza danych- przygotowuje pakiety z warstwy sieci do wprowadzenia ich do nośnika fizycznego umieszczając w procesie enkapsulacji pakiet w ramce , zapewnia adresowanie używane do transportu ramki przez współdzielony nośnik lokalny .Adresy urządzeń na tym poziomie są nazywane adresami fizycznymi . Ramka ma pola nagłówka(początek ramki, adresowanie , typ jednostek PDU, jakość)dane(pakiet z warstwy sieci ) i stopki(wykrywane błędów i koniec ramki ) W nagłówku ramki jest zawarty adres źródłowy i docelowy ramki .
Adres fizyczny MAC
MAC (ang. MAC address) jest 48-bitowy i zapisywany jest heksadecymalnie (szesnastkowo). Pierwsze 24 bity oznaczają producenta karty sieciowej, pozostałe 24 bity są unikatowym identyfikatorem danego egzemplarza karty. Na przykład adres 00:0A:E6:3E:FD:E1.