Wiem, że zarówno protokół TCP, jak i UDP są oparte na protokole IP i znam różnice między protokołem TCP i UDP, ale nie jestem pewien, co to dokładnie jest „raw ip”. Czy uczciwie byłoby powiedzieć, że zarówno TCP, jak i UDP implementują IP, ale że IP samo w sobie nie jest w stanie przesyłać danych? Czy IP jest jakąś formą komunikacji na bardzo niskim poziomie, którą dodatkowo abstrahują TCP i UDP?
18
Odpowiedzi:
IP to protokół warstwy 3 . TCP / UDP to protokoły warstwy 4 . Każdy z nich służy innym celom.
Warstwa 3 odpowiada za kompleksową dostawę . Jego jedyną funkcją jest dodawanie wszystkiego, co jest konieczne do pakietu, aby uzyskać pakiet z jednego hosta do drugiego.
Warstwa 4 odpowiada za dostawę usługi . Jego jedyną funkcją jest segregacja strumieni danych. W komputerze może być uruchomionych wiele programów, z których każdy wysyła / odbiera bity na drut. IE: Możesz mieć uruchomionych wiele kart przeglądarki, strumieniować radio internetowe, pobierać pliki, uruchamiać legalne torrenty, korzystać z aplikacji czatu itp. Wszystkie z nich otrzymują zera 1 i 0 z drutu, a warstwa 4 segreguje każdy strumień danych do unikalna aplikacja, która ich potrzebuje. Oto ilustracja:
IP nie może dostarczyć pakietu do właściwej usługi / aplikacji. A TCP / UDP nie jest w stanie dostarczyć pakietu z jednego końca Internetu na drugi.
Zarówno TCP, jak i IP współpracują ze sobą, aby umożliwić im osiągnięcie „końcowego celu” komunikacji internetowej.
Dane, które muszą być przekazywane z jednego hosta do drugiego, są generowane przez górne warstwy modelu OSI.
Dane te są przekazywane do L4, który doda informacje niezbędne do dostarczenia danych z usługi do usługi, takie jak nagłówek TCP z portem źródłowym i docelowym. Dane i nagłówek L4 są teraz określane jako segment.
Następnie segment zostanie przekazany do L3, który doda informacje niezbędne do dostarczenia segmentu od końca do końca, jak nagłówek IP ze źródłowym i docelowym adresem IP. Nagłówek L3 i segment można teraz nazywać pakietem.
Proces ten znany jest jako enkapsulacja i dekapsułkowanie (lub czasami dekapsulacja). Oto animacja tego, jak to działa:
Jeśli to nie ma sensu, proponuję przeczytać więcej na temat modelu OSI i tego, jak każda warstwa ma różne obowiązki, które wszystkie działają razem, aby osiągnąć przeniesienie pakietu przez Internet .
źródło
inside an IP header is usually a TCP or UDP header
jest niepoprawny, nagłówek TCP / UDP nie znajduje się w nagłówku IP, znajduje się w części danych pakietu IP.IP może dobrze przesyłać dane, problemem jest to, co dzieje się, gdy dane te docierają na drugi koniec. Jedynymi informacjami identyfikacyjnymi są adresy IP hostów i numer protokołu. Żaden z nich nie pozwala w żaden sposób odróżnić, dla jakiego gniazda są dane.
Możliwe jest, że programy używają IP bezpośrednio przez tak zwane „surowe gniazda”, ale brak odpowiedniego mechanizmu decydowania, które gniazdo wysłać dane, powoduje obawy dotyczące bezpieczeństwa i wydajności (jądro musi wysyłać dane do wszystkich surowych gniazd dla danego numeru protokołu). Z tego powodu możliwość otwierania „surowych gniazd” jest zwykle ograniczona do rootowania (lub ekwiwalentu twojej platformy).
UDP jest dość minimalną warstwą w sieci IP. Dodaje numery portów, aby zidentyfikować gniazdo danych i sumę kontrolną (w celu odrzucenia uszkodzonych pakietów). Aplikacja pozostaje odpowiedzialna za obsługę utraconych pakietów, kontrolowanie przeciążenia i dzielenie danych na pakiety o odpowiednich rozmiarach.
TCP jest bardziej złożonym protokołem, który oprócz podania numerów portów i sum kontrolnych dzieli strumienie bajtów na pakiety, ponownie składa w miejscu docelowym i zapewnia funkcje kontroli przeciążenia i odzyskiwania.
źródło
IP to protokół warstwy 3 OSI, podczas gdy TCP i UDP to protokoły warstwy 4 OSI. Jako protokół warstwy 3, IP może przenosić wiele różnych protokołów warstwy 4. TCP i UDP są prawdopodobnie najczęstsze, ale nie są jedynymi. Protokoły warstwy 4 są tym, czego aplikacje używają jako swoje kompleksowe połączenia. IP przenosi protokoły warstwy 4 z sieci do sieci (host-host). Protokoły warstwy 2, takie jak Ethernet, transportują protokoły warstwy 3 w sieci LAN.
Powinieneś zbadać model OSI, ale zdaj sobie sprawę, że jest to model konceptualny, a rzeczywisty świat często nie do końca pasuje.
źródło