Istnieje kilka potencjalnych nieporozumień lub nieporozumień w pytaniu, które zostanie omówione w tym poście.
Na schemacie 2 pokazano reprezentację „stosu” oprogramowania , którego komputer (PC) użyłby do stworzenia, przetworzenia i wysłania wiadomości przez Internet na inny komputer
Czy wszystkie rodzaje komputerów - smartfony / telewizory / konsole do gier itp. Używają tego formatu?
(Pod tym względem) czy jest jakaś różnica między internetem komórkowym a Wi-Fi / Ethernet?
Co z urządzeniami jednofunkcyjnymi , które nie wydają się mieć warstwy „aplikacji” - np. Kamera podłączona do Internetu, przełączniki światła lub termostaty.
Obecność tych nieporozumień wymaga włączenia wyjaśnienia następujących kwestii (w celu zapewnienia kontekstu do dalszej dyskusji):
- Czym jest Internet
- Czym jest pakiet protokołów TCP / IP
- Co to jest aplikacja
Następnie pytania zostaną skierowane bezpośrednio.
Zauważ, że biorąc pod uwagę ich wagę i złożoność, cała seria książek została napisana w pakiecie protokołów TCP / IP. Definicje i wyjaśnienia tutaj zostaną zaczerpnięte przede wszystkim z Wikipedii, TCP / IP Illustrated Volume 1 Second edition: The Protocols by Stevens and Fall, a także IBM TCP / IP Tutorial and Technical Overview .
1. Internet
Internet jest technicznie siecią rozległą (WAN) , ale bardziej pomocnym sposobem myślenia o tym jest rodzaj supernetwork (sieć sieci) lub agregat wielu różnych powiązanych ze sobą sieci . Oto zdjęcie ścieżek routingu przez część Internetu:
- Internet składa się z wielu połączonych sieci
- Sieć może składać się z jednego lub więcej systemów ( hosta )
- Podłączony system zazwyczaj działa na pewnego rodzaju platformie sprzętowej
- istnieją znaczne różnice w rodzajach systemów podłączonych do sieci i sprzęcie, na którym działają
Zabawną lekturę na temat działania Internetu można znaleźć w artykule Arstechnica Jak działa Internet: Światłowód podwodny, mózg w słoikach i kable koncentryczne .
Jak więc różne systemy działające na różnych platformach sprzętowych podłączone do różnych sieci mogą się ze sobą komunikować? Jak możliwa jest komunikacja między tak ogromnym, heterogenicznym zestawem systemów i sieci? Jak to wszystko może odbywać się jednocześnie?
2. Pakiet protokołu internetowego
Odpowiedzi udziela pakiet protokołów internetowych, inaczej pakiet protokołów TCP / IP. Te pytania zostały rozważone podczas procesu projektowania architektury Internetu (ilustrowany protokół TCP / IP, sekcja 1.1: Zasady architektury):
Przy tworzeniu architektury internetowej kierowano się kilkoma celami. W [C88] Clark przypomina, że głównym celem było „opracowanie skutecznej techniki multipleksowanego wykorzystania istniejących połączonych sieci”. Istotą tego stwierdzenia jest to, że architektura internetowa powinna być w stanie łączyć wiele różnych sieci i że wiele działań powinno być w stanie działać jednocześnie w wynikowej połączonej sieci .
Z pakietu protokołu internetowego (Wikipedia):
Pakiet protokołów internetowych to model koncepcyjny i zestaw protokołów komunikacyjnych używanych w Internecie i podobnych sieciach komputerowych.
Pakiet protokołów internetowych zapewnia kompleksową komunikację danych, określając, w jaki sposób dane powinny być pakowane, adresowane, przesyłane, kierowane i odbierane . Ta funkcja jest podzielona na cztery warstwy abstrakcji, które są używane do sortowania wszystkich powiązanych protokołów zgodnie z zakresem sieci.
Jednym ze sposobów myślenia o pakiecie protokołów TCP / IP jest specyfikacja sposobu, w jaki procesy działające w różnych systemach i różnych sieciach mogą się ze sobą komunikować. Zasadniczo pakiet protokołów TCP / IP zapewnia standard komunikacji między procesami.
Każdy system, który poprawnie implementuje pakiet protokołów TCP / IP, może korzystać z funkcji, które udostępnia, aby umożliwić swoim procesom komunikację przez Internet. W rzeczywistości, aby procesy mogły komunikować się przez Internet z innymi procesami działającymi na zdalnych systemach w innych sieciach, system musi korzystać ze zgodnych ze standardami protokołów pakietu TCP / IP.
3. Aplikacje
Z oprogramowania aplikacyjnego (Wikipedia):
Aplikacja (w skrócie aplikacja lub aplikacja) to program komputerowy zaprojektowany do wykonywania grupy skoordynowanych funkcji, zadań lub działań z korzyścią dla użytkownika. Przykłady aplikacji obejmują edytor tekstu, arkusz kalkulacyjny, aplikację księgową, przeglądarkę internetową, odtwarzacz multimedialny, lotniczy symulator lotu, grę konsolową lub edytor zdjęć. Oprogramowanie do rzeczowników zbiorowych odnosi się do wszystkich aplikacji łącznie. Kontrastuje to z oprogramowaniem systemowym, które jest związane głównie z uruchamianiem komputera.
Aplikację można traktować jako proces przestrzeni użytkownika działający w systemie. Oprócz wymienionych powyżej przykładów może to obejmować programy, takie jak (w trybie innym niż jądro) wirusy komputerowe, serwery sieciowe, aplikacje do kamer i programy do gromadzenia danych z czujników.
Gdy aplikacja przesyła i odbiera dane przez Internet, musi wykorzystać implementację pakietu protokołów TCP / IP swojego systemu hosta. Z warstwy aplikacji (Wikipedia):
W TCP / IP warstwa aplikacji zawiera protokoły komunikacyjne i metody interfejsu używane w komunikacji między procesami w sieci komputerowej z protokołem internetowym (IP). Warstwa aplikacji standaryzuje tylko komunikację i zależy od bazowych protokołów warstwy transportowej w celu ustanowienia kanałów przesyłania danych między hostami i zarządzania wymianą danych w modelu sieci klient-serwer lub peer-to-peer.
Warstwa aplikacji pakietu protokołów TCP / IP zawiera protokoły takie jak File Transfer Protocol (FTP), Domain Name System (DNS) i prawdopodobnie najbardziej znany, Hypertext Transfer Protocol (HTTP).
Na przykład protokół warstwy aplikacji HTTP HTTP określa sposób przesyłania danych między 2 procesami działającymi w (zwykle) różnych systemach: aplikacji klienckiej, przeglądarce internetowej i aplikacji serwerowej, procesie serwera WWW.
Wyjaśnienie potencjalnych nieporozumień
Na schemacie 2 pokazano reprezentację „stosu” oprogramowania , którego komputer (PC) użyłby do stworzenia, przetworzenia i wysłania wiadomości przez Internet na inny komputer.
Pakiet protokołów TCP / IP nie jest stosem oprogramowania. Z Technopedia :
Stos oprogramowania to grupa programów, które pracują w tandemie, aby osiągnąć wynik lub osiągnąć wspólny cel. Stos oprogramowania odnosi się również do dowolnego zestawu aplikacji, które działają w określonej i określonej kolejności w kierunku wspólnego celu, lub dowolnej grupy narzędzi lub rutynowych aplikacji, które działają jako zestaw. Pliki instalowalne, definicje oprogramowania produktów i łatek mogą być zawarte w stosie oprogramowania. Jednym z popularnych stosów oprogramowania opartego na systemie Linux jest LAMP (Linux, Apache, MYSQL, Perl lub PHP lub Python). WINS (Windows Server, Internet Explorer, .NET, SQL Server) to popularny stos oprogramowania oparty na systemie Windows.
Jest to raczej stos protokołów, zwykle implementowany przez jądro (również z Technopedia ):
Stos protokołów odnosi się do grupy protokołów działających równolegle, które są wykorzystywane do implementacji pakietu protokołów sieciowych.
Protokoły w stosie określają reguły połączeń dla warstwowego modelu sieci, takiego jak modele OSI lub TCP / IP. Aby stać się stosem, protokoły muszą być interoperacyjne, aby mogły łączyć się zarówno pionowo między warstwami sieci, jak i poziomo między punktami końcowymi każdego segmentu transmisji.
Czy wszystkie rodzaje komputerów - smartfony / telewizory / konsole do gier itp. Używają tego formatu ?
Pakiet protokołów TCP / IP jest specyfikacją komunikacji niezależną od sprzętu i systemu operacyjnego, a nie formatem . Jeśli proces działający na jednej platformie sprzętowej musi komunikować się z procesem działającym w systemie zdalnym na innej platformie sprzętowej, a komunikacja odbywa się przez Internet, systemy muszą
- poprawnie zaimplementuj pakiet protokołów TCP / IP i
- w celu zapewnienia komunikacji między procesami należy zastosować odpowiednie protokoły w tym pakiecie
(Pod tym względem) czy jest jakaś różnica między internetem komórkowym a Wi-Fi / Ethernet?
Moja interpretacja tego pytania brzmi: „Czy istnieje różnica w sposobie, w jaki urządzenie mobilne łączy się z siecią GSM i w jaki sposób urządzenie mobilne łączy się z siecią WiFi?”
Różnica polega na warstwie interfejsu sieciowego.
To pytanie pokazuje słabe przedstawienie pakietu protokołów TCP / IP na schemacie w artykule, do którego odnośnik zawiera pytanie. Dla porównania, oto schemat:
Najniższa warstwa, zwana „hardware”, powinna być określana jako warstwa łącza , kontroli dostępu do medium (MAC) warstwa lub warstwy sieciowej .
Ze strony IBM „Samouczek TCP / IP i przegląd techniczny” na stronie 34:
Warstwa interfejsu sieciowego, zwana także warstwą łącza lub warstwą danych, jest interfejsem do rzeczywistego sprzętu sieciowego. Ten interfejs może, ale nie musi, zapewniać niezawodne dostarczanie i może być zorientowany na pakiet lub strumień. W rzeczywistości protokół TCP / IP nie określa tutaj żadnego protokołu, ale może korzystać z prawie każdego dostępnego interfejsu sieciowego, co ilustruje elastyczność warstwy IP. Przykładami są IEEE 802.2, X.25 (który sam w sobie jest wiarygodny), ATM, FDDI, a nawet SNA.
Oto poprawne i lepsze przedstawienie (z Przewodnika TCP / IP ):
Powodem, dla którego dyskusja na temat warstwy interfejsu sieciowego jest istotna, jest to, że na tej warstwie istnieje różnica w sposobie, w jaki urządzenie komórkowe / mobilne łączy się z siecią GSM w porównaniu z siecią WiFi.
podczas łączenia się z siecią GSM protokół warstwy interfejsu sieciowego wykorzystywany do obsługi połączenia między urządzeniem mobilnym a podstawową stacją nadawczo-odbiorczą (BTS) jest zazwyczaj określany przez 3G
podczas łączenia się z bezprzewodowym punktem dostępowym WiFi (WAP), używany protokół jest określony przez standard IEEE 802.11 .
Co z urządzeniami jednofunkcyjnymi , które nie wydają się mieć warstwy „aplikacji” - np. Kamera internetowa, przełączniki światła lub termostaty
Jak opisano wcześniej, protokoły w warstwie aplikacji pakietu protokołów TCP / IP zapewniają standard wymiany danych aplikacji między procesami.
Warstwy są koncepcyjne. Nie rezydują w systemie ani na platformie sprzętowej.
Kamery, przełączniki światła i termostaty podłączone do Internetu mogą mieć uruchomione procesy, które komunikują się przez Internet z procesami uruchomionymi w systemach zdalnych (sprawdzanie aktualizacji oprogramowania układowego, wymianę danych z serwerem itp.). Te procesy lub aplikacje będą wykorzystywać implementację pakietu protokołów TCP / IP do realizacji tej komunikacji między procesami.
Pakiet protokołów TCP / IP i systemy wbudowane („IoT”)
Chociaż istnieje wiele różnych aplikacji wykorzystujących różne protokoły warstwy aplikacji działających na tradycyjnych komputerach PC lub serwerach, nie ma aż tak dużej różnicy pod względem sposobu łączenia platform sprzętowych z ich odpowiednimi punktami dostępu (warstwa interfejsu sieciowego / warstwa łącza danych). Jest to realizowane przede wszystkim przewodowo lub bezprzewodowo przez Ethernet.
Sytuacja jest nieco inna, jeśli chodzi o szeroką gamę systemów wbudowanych komunikujących się przez TCP / IP. Oto ilustracja tego (z Postscapes ):
Aby uzyskać więcej informacji, zobacz następujące artykuły:
Zrozumienie protokołów za Internetem rzeczy
Standardy i protokoły IoT
Przewodnik po technologiach IoT