Dlaczego nie? Mogłem kiedyś zobaczyć TCP ponad kodem Morse'a.
soandos
2
Przykładem może być tunel ICMP, który wykorzystuje protokół TCP zamiast ICMP. Ale prawdą jest, że nie jest zwykle budowanie TCP na czymkolwiek innym niż IP. Zwykle jest to warstwa dostępu do sieci wykorzystująca szerszy zakres protokołów i kanałów (takich jak bębny bongo).
Mister Smith,
1
@TomWijsman Próbowałeś nieudany? Z tego, co rozumiem, wszelkie problemy, które mieli do czynienia z rozwiązywaniem problemów i interoperacyjności, a nie problemy z uruchomieniem TCP.
tylerl
2
@harper Przy zwykłym kodzie Morse'a 200 znaków na minutę z pewnością nie jest niespotykane dla wykwalifikowanych operatorów, a 100 c / min (20 wpm) jest zdecydowanie możliwe do osiągnięcia przez większość osób z wystarczającą praktyką. Oczywiście przy tych prędkościach tak naprawdę nie słychać poszczególnych postaci, a raczej dźwięk słów. (Mówi się, że cechą wykwalifikowanego operatora jest to, że pamiętają rozmowę, ale nie użyte słowa). Wyobrażam sobie jednak, że 100 znaków c / min rozmieszczonych do ogólnej prędkości 50–60 c / min byłoby możliwe dzięki pomijalne poziomy błędów znaków.
CVn
2
@harper To zależy od wymaganego poziomu dokładności. W większości przypadków pogawędek (szmata, w amatorskim radiu mówię), znalezienie tu i tam niewłaściwego słowa nie jest tak naprawdę problemem, ponieważ kontekst ma większe znaczenie niż dokładne słowa. W przypadku ruchu telegramowego, komunikacji w sytuacjach awaryjnych / alarmowych itd., Szczególnie jeśli tekst jest szyfrowany, każde słowo i każdy znak musi (nie tylko odebrany, ale także) zostać poprawnie skopiowany (i czytelnie). Zauważ, że powiedziałem, że 200 c / min nie jest „niespotykane”; nie powszechne. 100 c / min jest jednak dość powszechne w amatorskich pasmach radiowych.
CVn
Odpowiedzi:
16
TCP i IP (v4 i v6) są zdecydowanie rozdzielne, a jedno nie implikuje drugiego, co udowodniono na przykładzie TCP przez IPX ( RFC 1791 ).
Nie można jednak zbudować protokołu TCP za pomocą dowolnego protokołu sieciowego. Dwa powody:
W nagłówku TCP nie ma pola wielkości segmentu (tylko przesunięcie danych, które podaje rozmiar nagłówka TCP). Dlatego TCP będzie działał tylko z protokołem niższej warstwy, który zawiera wystarczającą ilość informacji, aby obliczyć rozmiar segmentu TCP (tj. Rozmiar ładunku protokołu niższego poziomu). To założenie jest prawdziwe w przypadku IPv4 ( RFC 791 ), IPv6 ( RFC 2460 ) i IPX ( RFC 1791 ). Ale ogólnie nie jest prawdą, np. Nie dotyczy ptasich przewoźników ( RFC 1149 ) (patrz uwaga a).
TCP jest zaprojektowany tylko do pracy przez bezpołączeniowy protokół sieciowy. TCP skutecznie nie działa w przypadku niektórych protokołów sieciowych zorientowanych na połączenie (np. Usługa stałej szybkości transmisji ATM), ponieważ dwie funkcje kontroli szybkości walki prowadzą do bardzo niskiej lub nieprzewidywalnej wydajności. Innym zdegenerowanym przykładem jest TCP w tunelu TCP.
Specyfikacja TCP, RFC 793 , nie jest dobrym źródłem do rozstrzygnięcia tego pytania, ponieważ przyznaje, że pozostawia swój interfejs z dolną warstwą w dużej mierze nieokreślony.
Uwaga a) Aby TCP mógł ponownie złożyć datagramy wydrukowane na małych arkuszach papieru (niezależnie od tego, czy są one przenoszone przez gołębie, czy bardziej inteligentną sieć Corvid), rozmiar ładunku musiałby być zapisany w standardowej lokalizacji. Alternatywnie warstwa adaptacyjna może heurystycznie określić rozmiar segmentu. Skaner optyczny zastosowany w implementacji stosu hosta specyfikacji ptasich nośników ( RFC 1149 ) zawierał taką heurystyczną warstwę adaptacyjną, ale pozostaje nieudokumentowany.
Technicznie dokładne (o ile wiem), dokładne, poparte referencjami, jasne i beztroskie. Dałbym temu garść głosów poparcia, które mogłem.
Scott
2
Ptasi przykład jest klarowny i przezabawny!
Jan
88
Nie przeczytałem całego RFC, ale język w sekcji 1.4 wydaje się sugerować, że można użyć dowolnego protokołu „niższego poziomu”.
Interfejs między TCP a protokołem niższego poziomu jest zasadniczo nieokreślony, z wyjątkiem tego, że zakłada się, że istnieje mechanizm, dzięki któremu oba poziomy mogą asynchronicznie przekazywać sobie informacje. Zazwyczaj oczekuje się, że protokół niższego poziomu określi ten interfejs. TCP został zaprojektowany do pracy w bardzo ogólnym środowisku połączonych sieci. Protokół niższego poziomu przyjęty w tym dokumencie to protokół internetowy.
Sam IP został wdrożony w wielu technologiach sieciowych, nawet gołębiach pocztowych . Ptaków faktycznie wykorzystano do zademonstrowania dostarczenia pakietów ICMP Ping, z 55% utratą pakietów (najwyraźniej z powodu błędu operatora) i opóźnieniami w zakresie od jednej do dwóch godzin. Poza tym można by uruchomić TCP, ale konfiguracja połączenia wymagałaby wielu ptaków ...
RBerteig
21
O komentarzu RBerteiga; rozważ gołębia pocztowego z kartą mini-SDHC. Istnieje różnica między opóźnieniem a przepustowością. :-)
CVn
16
@ MichaelKjörling Nie współpracowałoby to z RFC 1149: „Datagram IP jest drukowany na małym zwoju papieru”.
kmkaplan
4
@kmkaplan Chyba że datagram został wydrukowany na etykiecie karty SDHC. To jak stereotyp z kilku filmów - „och, to faktycznie jest na dysku twardym!”
Jon Hanna
40
Musiałby mieć kilka naprawdę dużych dziur w zaporze ogniowej, aby przepuszczać ptasich przewoźników.
squillman
76
Pakiet protokołu internetowego
TCP nie jest skrótem od TCP / IP.
TCP / IP jest często używany jako skrótowy sposób powiedzenia „ pakiet protokołów internetowych ” i zwykle obejmuje inne standardowe protokoły. Kiedy ludzie mówią, że TCP / IP, zwykle zawierają UDP przez IP (w którym UDP jest używany zamiast TCP) i wiele innych protokołów, takich jak ARP, ICMP, DNS, SNMP i inne protokoły warstwy aplikacji.
Warstwa aplikacji
Aplikacje używają protokołów warstwy aplikacji, takich jak SMTP (do wiadomości e-mail). Są one oparte na jednym z dwóch protokołów warstwy transportowej - TCP i UDP. Kilka protokołów warstwy aplikacji będzie używać jednego lub obu protokołów UDP i TCP, ale większość z nich jest używana tylko z jednym protokołem warstwy transportowej.
Warstwa transportowa
TCP i UDP to dwa protokoły warstwy transportowej używane w pakiecie Internet Protocol Suite. Jeśli są jeszcze inne, nie znam ich, a każdy inny reprezentowałby znikomo małe zastosowanie specjalistyczne. Inne protokoły warstw transportowych zostały zdefiniowane - ich użycie prawdopodobnie stanowi jedynie niewielką część globalnego ruchu IP †
Warstwa sieci
Chociaż teoretycznie może być możliwe użycie TCP przez coś innego niż IP, w praktyce TCP jest zawsze używany przez IP - protokół internetowy. IP przenosi pakiety między sieciami (pomyśl o IP jako o połączeniu wielu sieci LAN razem)
Warstwa interfejsu sieciowego
Ethernet to tylko najpopularniejsza rodzina niskopoziomowych protokołów warstwy łącza, na których przenoszony jest protokół TCP / IP, ale protokół TCP / IP jest również szeroko stosowany w bankomatach i innych urządzeniach.
Dodatek 1 - Uwaga na temat protokołów warstwy transportowej
Jedynymi protokołami warstwy transportowej, które są często używane w sieciach korzystających z pakietu protokołów internetowych, są TCP i UDP.
† Dla zabawy zmierzyłem ruch w mojej (bardzo) małej sieci LAN, w tym NetBIOS (przez TCP), SSH, Rsync, e-mail, aktualizacje oprogramowania, DNS, ogólne rozmowy Windows-box i kilka innych rodzajów ruchu.
Dlaczego nie zbudowałeś zupełnie nowego protokołu zamiast korzystania z UDP? Środkowe pola w Internecie dzisiaj zwykle blokują ruch, chyba że jest to ruch TCP lub UDP
@StuartBlackler: Ciekawy punkt, dzięki. Czy są jakieś (inne niż TCP i UDP), które nie mieszczą się w tak zwanej kategorii „znikomo małe specjalistyczne zastosowania” i które są używane przez IP? Gdybym zmierzył ruch IP w punkcie wymiany Internetu , jaka część protokołów warstwy transportowej byłaby inna niż TCP lub UDP?
RedGrittyBrick
Weźmy na przykład DCCP, to wciąż nowy protokół, ale wyobrażam sobie, że w ciągu najbliższych kilku lat zobaczysz, że więcej aplikacji korzysta z tego protokołu. Powód Nie sądzę, aby był to główny nurt, ponieważ nie wierzę, że jest obsługiwany w systemie Windows. Pomyśl o tym jak o UDP z kontrolą przeciążenia. Może być bardzo przydatny w wielu aplikacjach, takich jak Skype i gry :) Spójrz na to. Aby odpowiedzieć na twoje pytanie, w tej chwili jest to prawdopodobnie bardzo mała ilość
Stuart Blackler,
@Rudi błąd, powinieneś zdać sobie sprawę, że to nie jest model odniesienia OSI, a jeśli zdasz sobie z tego sprawę, nie wprowadzaj ludzi w błąd, że tak jest. To model / architektura TCP / IP ... Czasami architektura TCP / IP jest opisywana terminologią OSI, modelu referencyjnego OSI. Ale pokazane 4 warstwy z tymi nazwami to w dużej mierze TCP / IP, a nie OSI. Nie ma problemu z postem red, ale twój komentarz jest co najmniej mylący.
barlop
34
Powodem, dla którego TCP / IP jest tak powszechnym skrótem (w przeciwieństwie do, powiedzmy, UDP / IP lub SCTP / IP), jest to, że oba protokoły zostały zaprojektowane razem, aw oryginalnym artykule Vinta Cerfa i Boba Kahna dwie koncepcje były połączone razem w jeden protokół. Wkrótce potem zostały podzielone na IP, aby zapewnić routing i TCP, aby zapewnić kontrolę przepływu, multipleksowanie, wykrywanie błędów itp. Dopiero sześć lat później wprowadzono UDP w celu zapewnienia „lekkiej” warstwy multipleksującej bez reszty narzut związany z TCP.
Mimo to TCP i IP to dwie osobne rzeczy, całkowicie i celowo niezależne. Fakt, że TCP nie wymaga IP, jest od razu widoczny, ponieważ TCP może działać bez modyfikacji zarówno na IPv4, jak i IPv6, które są dwoma zupełnie różnymi protokołami.
Przy odrobinie pracy możesz stworzyć konkurencyjny protokół IP, który służyłby tym samym celom, ale prawdopodobnie musiałby zawierać większość, jeśli nie wszystkie z tych samych funkcji, i prawdopodobnie wyglądałby podobnie do IP. Można argumentować, że rozszerzenia IP (takie jak IPSec) są w rzeczywistości alternatywnymi protokołami warstwy 3, więc proszę bardzo.
Prawidłowo - pierwsza wersja TCP zawierała funkcjonalność IP. Być może innym powodem, dla którego ludzie mówią „TCP / IP” jest to, że w zdecydowanej większości przypadków, gdy wysyłasz dane przez IP, chcesz zagwarantować, że wszystko to zostanie dostarczone i we właściwej kolejności, więc używasz TCP. Na przykład cały ruch HTTP i FTP korzysta z protokołu TCP. Jedną z kategorii wyjątków są dane w czasie rzeczywistym; Na przykład Skype używa UDP, ponieważ wolisz uzyskać najnowszy pakiet w rozmowie, niż zatrzymać wszystko, aby uzyskać ten, który przegapiłeś.
Nathan Long
21
Możesz zamienić IP na coś innego. W rzeczywistości to właśnie robisz, gdy używasz TCP przez IPv6. TCP nadal jest TCP, ale IP to v6 zamiast v4.
AFAIK, nikt nie stworzył żadnych innych protokołów warstwy 3 do pracy z TCP ponad nimi, ale nie ma powodu, dla którego nie mógłbyś.
Można powiązać czegokolwiek innego, który działa zarówno z protokołem, ale te dwa są więc komplementarne to tylko pycha niezawodny sposób , aby przesyłać dane i napełnić brzuch z danych internetowych. Smaruje rurkę, aby umożliwić obsługę innych suchych produktów spożywczych i uzgadnianie danych w celu obsługi tego parowania. Ale w żadnym wypadku nie jest to wyjątkowe.
P Czy jednak nie jest możliwe zbudowanie TCP na innym protokole oprócz IP?
Tak jest to możliwe. Lubię przykłady Morse'a i Pigeon TCP bez IP.
W rzeczywistości oznacza Protokół kontroli transmisji przez protokół internetowy
i mają na myśli to samo.
To nie jest poprawne
Po pierwsze, Ethernet to niskopoziomowy system sprzętowy, który kontroluje sposób działania rzeczywistych części sprzętowych.
Następnie pomyśl o IP jako systemie telefonicznym lub o znakach drogowych. Zapewnia podstawową kontrolę połączenia dwóch punktów razem.
Z drugiej strony TCP przypomina bardziej system komunikacji lub oficera kontroli ruchu, który kieruje wiadomości / samochody do właściwego punktu.
Podsumowując, protokół TCP / IP zapewnia niezawodny system przesyłania danych do i z dowolnych dwóch podłączonych urządzeń.
W Internecie, gdy chcesz wysyłać lub odbierać dane, część IP systemu to część kontrolująca nawiązywanie rzeczywistych połączeń sprzętowych za pomocą przewodów (lub fal bezprzewodowych). Część systemu TCP to oprogramowanie, które jest odpowiedzialne za pobieranie danych i ich dzielenie, wysyłanie, ponowne składanie otrzymanych danych oraz sprawdzanie danych i ponowne wysyłanie, jeśli to konieczne.
Trochę mylące jest stwierdzenie, że IP zapewnia „łączenie” dwóch punktów razem. IP zapewnia sposób wysyłania dyskretnych pojedynczych pakietów z jednej maszyny na drugą; każdy pakiet jest niezależny od wszystkich innych. TCP zapewnia złudzenie ciągłego połączenia , które jest tak naprawdę sekwencją pakietów wysyłanych przez IP.
Wyzard,
4
Adres IP nie jest również powiązany ze sprzętową ani fizyczną sygnalizacją. Jest to obsługiwane przez technologie niższego poziomu, np. Ethernet.
Wyzard,
9
Z tą odpowiedzią jest wiele błędów i całkowicie pomija się pytanie. Po pierwsze, Ethernet to tylko jeden protokół warstwy łącza, który został użyty do przenoszenia IP. Istnieje wiele innych, a IP nie zna ani nie dba o żadną z nich. IP nie ma nic wspólnego ze sprzętem; jest to warstwa routingu między sieciami, nad sprzętem używanym do ich łączenia. Chodziło o pytanie, czy możesz używać TCP na czymś innym niż IP, a nie czy możesz używać czegoś innego niż TCP, który używa IP (przykład takiego rozwiązania można znaleźć w UDP).
psusi
3
@ synetech, pytanie nie brzmiało: „można użyć czegoś innego w IP”. Było „można TCP używać na czymś innym”, tj. Bez adresu IP.
Wyzard,
2
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?psusi stara się być sprytnym, używając „!” jako „nie operator”. Jego komentarz powinien brzmieć: „fakt, że coś, co nie jest TCP, może przejść przez IP, niekoniecznie oznacza, że TCP może przejść przez coś, co nie jest IP”. Odbywa się to w odniesieniu do ostatniego zdania twojej odpowiedzi, które pokazało istnienie „Alternate systems to TCP”. Jednak wykazanie, że istnieją alternatywy dla TCP niekoniecznie oznacza ani nie sugeruje, że istnieją alternatywy dla IP.
Lie Ryan,
5
TCP to protokół warstwy 4. Zapewnia gwarantowany transport danych w postaci uporządkowanego strumienia z jednego procesu na komputerze do innego procesu na tym samym / innym komputerze.
IP to protokół warstwy 3. Zapewnia transport z jednego hosta do drugiego.
Tak długo, jak istnieje protokół umożliwiający przesyłanie danych między hostami, protokół TCP będzie działał.
Tak więc, TCP może być zaimplementowany na dowolnym protokole, ale, Stworzyliśmy tylko IP. IP jest proste i działa.
Nie ma potrzeby stosowania innego protokołu warstwy 3.
Co z IPv6? To tylko IP. Interfejs wysyłania i odbierania pakietu pozostaje taki sam. Tak więc TCP może korzystać z tej samej funkcji. System operacyjny może po prostu zastąpić wskaźnik funkcji z IPv4 i IPv6 i nadal będzie działać. Nie jestem pewien, co tu mówisz?
SurenNihalani,
3
IPv6 i IPv4 są podobne , z podobnymi interfejsami dla górnych warstw, ale na pewno nie ten sam protokół i nie są również ściśle funkcjonalnie równoważne.
ciekawy,
Równie dobrze możesz udawać, że UDP jest tym samym protokołem co IP , ponieważ oferują one bardzo podobne interfejsy do wyższych warstw: ustaw lokalny i zdalny adres końcowy, wysyłaj i odbieraj pakiety ...
ciekawy
3
Projektując sieć, musisz wybrać zestaw protokołów (które są w zasadzie zestawami reguł komunikacji między komputerami) dla każdej z różnych „warstw” (które możesz sobie wyobrazić jako różne poziomy abstrakcji, które projektanci sieci lubią należy pamiętać o tworzeniu i łączeniu protokołów).
Prostsza wersja: protokoły są jak skrzynki, w których umieszczamy nasze wiadomości . Te pudełka mają różne rozmiary, a Ty umieszczasz swoją wiadomość w najmniejszym pudełku, a następnie w najmniejszym pudełku w pudełku, które jest trochę większe itp. Wybranie zestawu protokołów oznacza wybranie rodzaju pudełek, które będą używane dla każdego „ warstwa ”otaczająca wiadomość.
TCP i IP to protokoły dwóch niezależnych warstw, które zostały utworzone razem i mogą być użyteczne razem; ale bardzo dobrze może być używany z innymi protokołami. Zdarza się to dość często: możesz używać IP wraz z protokołem innym niż TCP lub TCP wraz z protokołem innym niż IP .
Powodem, dla którego TCP / IP jest tak powszechnym skrótem, jest to, że te dwa protokoły stanowiły razem podstawę Internetu i były kluczem do jej sukcesu .
(TCP i IP mają pewne funkcje, które zostały zaprojektowane specjalnie dla nich, aby działały razem, na co często narzekają purystowie, ale tak naprawdę nie uniemożliwiają połączenia ich z innymi protokołami)
W ramach naszych wysiłków Net100 i Probe w celu poprawy masowych transferów w szybkich sieciach o dużych opóźnieniach opracowaliśmy oprzyrządowaną i przestrajalną wersję TCP, która działa przez UDP. Transport podobny do UDP TCP służy jako zestaw testowy do eksperymentowania z kontrolkami podobnymi do TCP na poziomie aplikacji podobnym do TReno.
iproxy składa się z serwera proxy po stronie klienta i serwera proxy po stronie serwera, który pozwala na uruchamianie dowolnych usług TCP / IP przez UDP Broadcast, Multicast lub Unicast. Pierwotnie był pomyślany jako metoda konfiguracji serwerów, którym nie przydzielono adresu IP w sieci LAN przy użyciu interfejsu sieciowego.
Widzisz więc: TCP na UDP emisji pojedynczej, a nawet TCP na UDP emisji lub multiemisji !
AFAIK tylko TCP / IPv4 i TCP / IPv6 cieszą się dużym wdrożeniem.
wiem, że odpowiedź jest stara, ale jeśli to możliwe, dopracuj swoją odpowiedź i unikaj zamieszczania linków jako prostych odpowiedzi / źródła. jeśli linki znikną, twoja odpowiedź również.
Lorenzo Von Matterhorn
2
Istnieją już implementacje TCP oprócz różnych protokołów, które obsługują transport podstawowego datagramu. W rzeczywistości nie trzeba nawet określać informacji o routingu (TCP nie potrzebuje nawet IP do pracy, wystarczyłoby tylko łącze serila z niejawnym odbiorcą).
Więc masz TCP zaimplementowany w górnej części UDP (zaleta: używasz jednego portu po stronie „serwera” lub możesz osadzić go w istniejącym połączeniu transportującym różne multipleksowane kanały). Tylko poziom IP zapewnia routing, ale TCP go nie potrzebuje. Liczy się tylko to, że pojęcie MTU zapewnia dolna warstwa.
Dzięki temu protokół może ominąć ograniczenia translacji NAT, bez konieczności rejestrowania portu translacji UPnP dla określonego hosta. Umożliwia niezależne dostrajanie MTU i MSS, zoptymalizowane dla każdego klienta zamiast dla każdego pośredniego współdzielonego routera. Możliwe są inne protokoły routingu (w tym do dostarczania za pośrednictwem multiemisji i sieci rozgłoszeniowych). I masz wybór mechanizmów bezpieczeństwa.
Przykładem zastosowania jest Gogo6.net (który implementuje swój kanał transportowy IPv6 w sesji TCP przy użyciu ponownej implementacji TCP przez UDP v4 (działa na większości domowych routerów dostępowych, które wciąż mają tylko adres IPv4 i nie zawsze wspierają metodę UPnP ; bez potrzeby konfigurowania go przez użytkowników korzystających ze stałego numeru portu specyficznego dla aplikacji, nawet gdy nie jest uruchomiona)
Innymi przykładami jest hermetyzacja TCP przez HTTP (lub HTTPS) w wersji 1.1 z natywnym jego „strumieniowym” rozszerzeniem. Większość sieci VPN, które pozwalają na mostkowanie sieci przez Internet, zrobi to samo. Most może nawet hermetyzować wiele protokołów: Ethernet, PPP, IPv4 i IPv6 (rozszerzenie tylko lokalnej sieci LAN lub segmentu Ethernet), NetBEUI / LanMan, wykrywanie routera (w sieci zmostkowanej), w tym w trybie surowym (zezwalając na DHCPv4 lub DHCPv6) w zmostkowana sieć. HTTPS jest używany, ponieważ hermetyzacja przez HTTPS umożliwia także szyfrowanie i uwierzytelnianie w celu ustanowienia i zabezpieczenia mostu, ale nie wymaga kompleksowego uwierzytelniania / szyfrowania dla klientów i serwerów w sieci pomostowej oraz ponieważ routery są wysoce zoptymalizowane pod kątem HTTP i HTTPS.
Istnieją przykłady systemów komunikacji w wojsku wykorzystujących TCP, ale nie IP, ponieważ ścieżka komunikacyjna jest połączeniem typu szeregowego, które nie jest routowane przez routery itp. Jeśli spojrzysz na pakiet TCP, zanim zostanie on obsadzony przez pola IP, wydaje się, że nie można używać IP, jeśli Twój protokół „routingu” jest inny.
Odpowiedzi:
TCP i IP (v4 i v6) są zdecydowanie rozdzielne, a jedno nie implikuje drugiego, co udowodniono na przykładzie TCP przez IPX ( RFC 1791 ).
Nie można jednak zbudować protokołu TCP za pomocą dowolnego protokołu sieciowego. Dwa powody:
Specyfikacja TCP, RFC 793 , nie jest dobrym źródłem do rozstrzygnięcia tego pytania, ponieważ przyznaje, że pozostawia swój interfejs z dolną warstwą w dużej mierze nieokreślony.
Uwaga a) Aby TCP mógł ponownie złożyć datagramy wydrukowane na małych arkuszach papieru (niezależnie od tego, czy są one przenoszone przez gołębie, czy bardziej inteligentną sieć Corvid), rozmiar ładunku musiałby być zapisany w standardowej lokalizacji. Alternatywnie warstwa adaptacyjna może heurystycznie określić rozmiar segmentu. Skaner optyczny zastosowany w implementacji stosu hosta specyfikacji ptasich nośników ( RFC 1149 ) zawierał taką heurystyczną warstwę adaptacyjną, ale pozostaje nieudokumentowany.
źródło
Nie przeczytałem całego RFC, ale język w sekcji 1.4 wydaje się sugerować, że można użyć dowolnego protokołu „niższego poziomu”.
źródło
Pakiet protokołu internetowego
TCP nie jest skrótem od TCP / IP.
TCP / IP jest często używany jako skrótowy sposób powiedzenia „ pakiet protokołów internetowych ” i zwykle obejmuje inne standardowe protokoły. Kiedy ludzie mówią, że TCP / IP, zwykle zawierają UDP przez IP (w którym UDP jest używany zamiast TCP) i wiele innych protokołów, takich jak ARP, ICMP, DNS, SNMP i inne protokoły warstwy aplikacji.
Warstwa aplikacji
Aplikacje używają protokołów warstwy aplikacji, takich jak SMTP (do wiadomości e-mail). Są one oparte na jednym z dwóch protokołów warstwy transportowej - TCP i UDP. Kilka protokołów warstwy aplikacji będzie używać jednego lub obu protokołów UDP i TCP, ale większość z nich jest używana tylko z jednym protokołem warstwy transportowej.
Warstwa transportowa
TCP i UDP to dwa protokoły warstwy transportowej używane w pakiecie Internet Protocol Suite.
Jeśli są jeszcze inne, nie znam ich, a każdy inny reprezentowałby znikomo małe zastosowanie specjalistyczne.Inne protokoły warstw transportowych zostały zdefiniowane - ich użycie prawdopodobnie stanowi jedynie niewielką część globalnego ruchu IP †Warstwa sieci
Chociaż teoretycznie może być możliwe użycie TCP przez coś innego niż IP, w praktyce TCP jest zawsze używany przez IP - protokół internetowy. IP przenosi pakiety między sieciami (pomyśl o IP jako o połączeniu wielu sieci LAN razem)
Warstwa interfejsu sieciowego
Ethernet to tylko najpopularniejsza rodzina niskopoziomowych protokołów warstwy łącza, na których przenoszony jest protokół TCP / IP, ale protokół TCP / IP jest również szeroko stosowany w bankomatach i innych urządzeniach.
Dodatek 1 - Uwaga na temat protokołów warstwy transportowej
Jedynymi protokołami warstwy transportowej, które są często używane w sieciach korzystających z pakietu protokołów internetowych, są TCP i UDP.
† Dla zabawy zmierzyłem ruch w mojej (bardzo) małej sieci LAN, w tym NetBIOS (przez TCP), SSH, Rsync, e-mail, aktualizacje oprogramowania, DNS, ogólne rozmowy Windows-box i kilka innych rodzajów ruchu.
Zwróć także uwagę na to oświadczenie w często zadawanych pytaniach Google dotyczące ich protokołu QUIC
(mój nacisk)
źródło
Powodem, dla którego TCP / IP jest tak powszechnym skrótem (w przeciwieństwie do, powiedzmy, UDP / IP lub SCTP / IP), jest to, że oba protokoły zostały zaprojektowane razem, aw oryginalnym artykule Vinta Cerfa i Boba Kahna dwie koncepcje były połączone razem w jeden protokół. Wkrótce potem zostały podzielone na IP, aby zapewnić routing i TCP, aby zapewnić kontrolę przepływu, multipleksowanie, wykrywanie błędów itp. Dopiero sześć lat później wprowadzono UDP w celu zapewnienia „lekkiej” warstwy multipleksującej bez reszty narzut związany z TCP.
Mimo to TCP i IP to dwie osobne rzeczy, całkowicie i celowo niezależne. Fakt, że TCP nie wymaga IP, jest od razu widoczny, ponieważ TCP może działać bez modyfikacji zarówno na IPv4, jak i IPv6, które są dwoma zupełnie różnymi protokołami.
Przy odrobinie pracy możesz stworzyć konkurencyjny protokół IP, który służyłby tym samym celom, ale prawdopodobnie musiałby zawierać większość, jeśli nie wszystkie z tych samych funkcji, i prawdopodobnie wyglądałby podobnie do IP. Można argumentować, że rozszerzenia IP (takie jak IPSec) są w rzeczywistości alternatywnymi protokołami warstwy 3, więc proszę bardzo.
źródło
Możesz zamienić IP na coś innego. W rzeczywistości to właśnie robisz, gdy używasz TCP przez IPv6. TCP nadal jest TCP, ale IP to v6 zamiast v4.
AFAIK, nikt nie stworzył żadnych innych protokołów warstwy 3 do pracy z TCP ponad nimi, ale nie ma powodu, dla którego nie mógłbyś.
źródło
TCP i IP są jak masło zamiast chleba.
Można powiązać czegokolwiek innego, który działa zarówno z protokołem, ale te dwa są więc komplementarne to tylko pycha niezawodny sposób , aby przesyłać dane i napełnić brzuch z danych internetowych. Smaruje rurkę, aby umożliwić obsługę innych suchych produktów spożywczych i uzgadnianie danych w celu obsługi tego parowania. Ale w żadnym wypadku nie jest to wyjątkowe.
P Czy jednak nie jest możliwe zbudowanie TCP na innym protokole oprócz IP?
Tak jest to możliwe. Lubię przykłady Morse'a i Pigeon TCP bez IP.
źródło
W rzeczywistości oznacza Protokół kontroli transmisji przez protokół internetowy
To nie jest poprawne
Po pierwsze, Ethernet to niskopoziomowy system sprzętowy, który kontroluje sposób działania rzeczywistych części sprzętowych.
Następnie pomyśl o IP jako systemie telefonicznym lub o znakach drogowych. Zapewnia podstawową kontrolę połączenia dwóch punktów razem.
Z drugiej strony TCP przypomina bardziej system komunikacji lub oficera kontroli ruchu, który kieruje wiadomości / samochody do właściwego punktu.
Podsumowując, protokół TCP / IP zapewnia niezawodny system przesyłania danych do i z dowolnych dwóch podłączonych urządzeń.
W Internecie, gdy chcesz wysyłać lub odbierać dane, część IP systemu to część kontrolująca nawiązywanie rzeczywistych połączeń sprzętowych za pomocą przewodów (lub fal bezprzewodowych). Część systemu TCP to oprogramowanie, które jest odpowiedzialne za pobieranie danych i ich dzielenie, wysyłanie, ponowne składanie otrzymanych danych oraz sprawdzanie danych i ponowne wysyłanie, jeśli to konieczne.
Istnieje niezliczona ilość wyjaśnień z analogiami i szczegółami technicznymi, szczególnie w formie wideo . DifferenceBetween.net ma szczególnie dobre zdanie na ten temat .
Tak, naprawdę możesz stworzyć system alternatywny do TCP, który używa IP. Spójrz na pakiet protokołu internetowego, aby uzyskać szczegółowe informacje.
źródło
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?
psusi stara się być sprytnym, używając „!” jako „nie operator”. Jego komentarz powinien brzmieć: „fakt, że coś, co nie jest TCP, może przejść przez IP, niekoniecznie oznacza, że TCP może przejść przez coś, co nie jest IP”. Odbywa się to w odniesieniu do ostatniego zdania twojej odpowiedzi, które pokazało istnienie „Alternate systems to TCP”. Jednak wykazanie, że istnieją alternatywy dla TCP niekoniecznie oznacza ani nie sugeruje, że istnieją alternatywy dla IP.TCP to protokół warstwy 4. Zapewnia gwarantowany transport danych w postaci uporządkowanego strumienia z jednego procesu na komputerze do innego procesu na tym samym / innym komputerze.
IP to protokół warstwy 3. Zapewnia transport z jednego hosta do drugiego.
Tak długo, jak istnieje protokół umożliwiający przesyłanie danych między hostami, protokół TCP będzie działał.
Tak więc, TCP może być zaimplementowany na dowolnym protokole, ale, Stworzyliśmy tylko IP. IP jest proste i działa.
Nie ma potrzeby stosowania innego protokołu warstwy 3.
źródło
Projektując sieć, musisz wybrać zestaw protokołów (które są w zasadzie zestawami reguł komunikacji między komputerami) dla każdej z różnych „warstw” (które możesz sobie wyobrazić jako różne poziomy abstrakcji, które projektanci sieci lubią należy pamiętać o tworzeniu i łączeniu protokołów).
Prostsza wersja: protokoły są jak skrzynki, w których umieszczamy nasze wiadomości . Te pudełka mają różne rozmiary, a Ty umieszczasz swoją wiadomość w najmniejszym pudełku, a następnie w najmniejszym pudełku w pudełku, które jest trochę większe itp. Wybranie zestawu protokołów oznacza wybranie rodzaju pudełek, które będą używane dla każdego „ warstwa ”otaczająca wiadomość.
TCP i IP to protokoły dwóch niezależnych warstw, które zostały utworzone razem i mogą być użyteczne razem; ale bardzo dobrze może być używany z innymi protokołami. Zdarza się to dość często: możesz używać IP wraz z protokołem innym niż TCP lub TCP wraz z protokołem innym niż IP .
Powodem, dla którego TCP / IP jest tak powszechnym skrótem, jest to, że te dwa protokoły stanowiły razem podstawę Internetu i były kluczem do jej sukcesu .
(TCP i IP mają pewne funkcje, które zostały zaprojektowane specjalnie dla nich, aby działały razem, na co często narzekają purystowie, ale tak naprawdę nie uniemożliwiają połączenia ich z innymi protokołami)
źródło
Myślę, że można uruchomić TCP przez transport IPX, jeśli chcesz przejść na retro.
źródło
Oprócz klasycznych protokołów TCP / IPv4 i TCP / IPv6 zaprojektowano kilka protokołów eksperymentalnych, na przykład:
Prawie TCP przez UDP (atou)
I iproxy: Uruchamianie usług TCP przez UDP , co jest przyjemniejsze:
Widzisz więc: TCP na UDP emisji pojedynczej, a nawet TCP na UDP emisji lub multiemisji !
AFAIK tylko TCP / IPv4 i TCP / IPv6 cieszą się dużym wdrożeniem.
źródło
Odpowiedź brzmi nie! Na przykład istnieje stary RFC opisujący TCP przez IPX: http://tools.ietf.org/html/rfc1791
Dla osób z krótkimi wspomnieniami IPX był protokołem Novell Netware: http://en.wikipedia.org/wiki/Internetwork_Packet_Exchange
źródło
Istnieją już implementacje TCP oprócz różnych protokołów, które obsługują transport podstawowego datagramu. W rzeczywistości nie trzeba nawet określać informacji o routingu (TCP nie potrzebuje nawet IP do pracy, wystarczyłoby tylko łącze serila z niejawnym odbiorcą).
Więc masz TCP zaimplementowany w górnej części UDP (zaleta: używasz jednego portu po stronie „serwera” lub możesz osadzić go w istniejącym połączeniu transportującym różne multipleksowane kanały). Tylko poziom IP zapewnia routing, ale TCP go nie potrzebuje. Liczy się tylko to, że pojęcie MTU zapewnia dolna warstwa.
Dzięki temu protokół może ominąć ograniczenia translacji NAT, bez konieczności rejestrowania portu translacji UPnP dla określonego hosta. Umożliwia niezależne dostrajanie MTU i MSS, zoptymalizowane dla każdego klienta zamiast dla każdego pośredniego współdzielonego routera. Możliwe są inne protokoły routingu (w tym do dostarczania za pośrednictwem multiemisji i sieci rozgłoszeniowych). I masz wybór mechanizmów bezpieczeństwa.
Przykładem zastosowania jest Gogo6.net (który implementuje swój kanał transportowy IPv6 w sesji TCP przy użyciu ponownej implementacji TCP przez UDP v4 (działa na większości domowych routerów dostępowych, które wciąż mają tylko adres IPv4 i nie zawsze wspierają metodę UPnP ; bez potrzeby konfigurowania go przez użytkowników korzystających ze stałego numeru portu specyficznego dla aplikacji, nawet gdy nie jest uruchomiona)
Innymi przykładami jest hermetyzacja TCP przez HTTP (lub HTTPS) w wersji 1.1 z natywnym jego „strumieniowym” rozszerzeniem. Większość sieci VPN, które pozwalają na mostkowanie sieci przez Internet, zrobi to samo. Most może nawet hermetyzować wiele protokołów: Ethernet, PPP, IPv4 i IPv6 (rozszerzenie tylko lokalnej sieci LAN lub segmentu Ethernet), NetBEUI / LanMan, wykrywanie routera (w sieci zmostkowanej), w tym w trybie surowym (zezwalając na DHCPv4 lub DHCPv6) w zmostkowana sieć. HTTPS jest używany, ponieważ hermetyzacja przez HTTPS umożliwia także szyfrowanie i uwierzytelnianie w celu ustanowienia i zabezpieczenia mostu, ale nie wymaga kompleksowego uwierzytelniania / szyfrowania dla klientów i serwerów w sieci pomostowej oraz ponieważ routery są wysoce zoptymalizowane pod kątem HTTP i HTTPS.
źródło
Istnieją przykłady systemów komunikacji w wojsku wykorzystujących TCP, ale nie IP, ponieważ ścieżka komunikacyjna jest połączeniem typu szeregowego, które nie jest routowane przez routery itp. Jeśli spojrzysz na pakiet TCP, zanim zostanie on obsadzony przez pola IP, wydaje się, że nie można używać IP, jeśli Twój protokół „routingu” jest inny.
źródło