Ci sono alcuni potenziali malintesi o incomprensioni nella domanda che verranno affrontati in questo post.
Nel diagramma 2, mostra una rappresentazione dello "stack" software che un computer (PC) userebbe per creare, elaborare e inviare un messaggio, su Internet, a un altro computer
Tutti i tipi di computer - smartphone / tv / console di gioco, ecc. Usano questo formato?
(A questo proposito) c'è qualche differenza tra Internet cellulare e Wifi / Ethernet?
Che dire dei dispositivi a funzione singola che non sembrano avere un livello "Applicazione", ad esempio una videocamera connessa al web, interruttori della luce o termostati.
La presenza di queste idee sbagliate richiede l'inclusione di una spiegazione di quanto segue (al fine di fornire un contesto per la discussione successiva):
- Che cos'è Internet
- Che cos'è la suite di protocolli TCP / IP
- Che cos'è un'applicazione
Quindi le domande verranno indirizzate direttamente.
Si noti che data la loro importanza e complessità, intere serie di libri sono stati scritti sulla suite di protocolli TCP / IP. Le definizioni e le spiegazioni qui saranno tratte principalmente da Wikipedia, TCP / IP Illustrated Volume 1 Seconda edizione: The Protocols by Stevens and Fall e dal tutorial TCP / IP di IBM e panoramica tecnica .
1. Internet
Internet è tecnicamente una Wide Area Network (WAN) , ma un modo più utile pensare è come una sorta di SuperNetwork (una rete di reti) o di un aggregato di diversi interrelazioni connessi netti opere. Ecco un'immagine dei percorsi di instradamento attraverso una parte di Internet:
- Internet è costituito da molte reti connesse
- Una rete può essere composta da 1 o più sistemi ( host )
- Un sistema connesso in genere funziona su una sorta di piattaforma hardware
- vi è una variazione significativa nei tipi di sistemi collegati alle reti e nell'hardware su cui sono in esecuzione
Una lettura divertente su come funziona Internet può essere trovata nell'articolo di Arstechnica Come funziona Internet: fibra sottomarina, cervelli in barattoli e cavi coassiali .
In che modo i diversi sistemi in esecuzione su piattaforme hardware diverse collegate a reti diverse sono in grado di comunicare tra loro? Come è possibile la comunicazione tra una gamma così vasta ed eterogenea di sistemi e reti? Come può avvenire tutto questo contemporaneamente?
2. La suite di protocolli Internet
La risposta è fornita dalla suite di protocolli Internet, nota anche come suite di protocolli TCP / IP. Queste domande sono state prese in considerazione durante il processo di progettazione dell'architettura di Internet (TCP / IP Illustrated, Sezione 1.1: Principi di architettura):
Numerosi obiettivi hanno guidato la creazione dell'architettura di Internet. In [C88], Clark racconta che l'obiettivo principale era "sviluppare una tecnica efficace per l'utilizzo multiplex di reti interconnesse esistenti". L'essenza di questa affermazione è che l'architettura di Internet dovrebbe essere in grado di interconnettere più reti distinte e che molteplici attività dovrebbero essere in grado di funzionare contemporaneamente sulla rete interconnessa risultante .
Da Internet Protocol Suite (Wikipedia):
La suite di protocolli Internet è il modello concettuale e l'insieme dei protocolli di comunicazione utilizzati su Internet e reti informatiche simili.
La suite di protocolli Internet fornisce comunicazioni end-to-end che specificano come i dati devono essere raggruppati, indirizzati, trasmessi, instradati e ricevuti . Questa funzionalità è organizzata in quattro livelli di astrazione che vengono utilizzati per ordinare tutti i protocolli correlati in base all'ambito della rete coinvolta.
Un modo di pensare alla suite di protocolli TCP / IP è come una specifica su come i processi in esecuzione su sistemi diversi e reti diverse possono comunicare tra loro. In sostanza, la suite di protocolli TCP / IP fornisce uno standard per la comunicazione tra processi.
Qualsiasi sistema che implementa correttamente la suite di protocolli TCP / IP può utilizzare la funzionalità fornita per consentire ai propri processi di comunicare su Internet. Infatti, affinché i processi possano comunicare su Internet con altri processi in esecuzione su sistemi remoti su altre reti, un sistema deve utilizzare protocolli suite TCP / IP conformi agli standard.
3. Applicazioni
Dal software applicativo (Wikipedia):
Un programma applicativo (in breve app o applicazione) è un programma per computer progettato per eseguire un gruppo di funzioni, compiti o attività coordinate a beneficio dell'utente. Esempi di un'applicazione includono un elaboratore di testi, un foglio di calcolo, un'applicazione di contabilità, un browser Web, un lettore multimediale, un simulatore di volo aeronautico, un gioco per console o un editor di foto. Il software applicativo di nome collettivo si riferisce a tutte le applicazioni collettivamente. Ciò contrasta con il software di sistema, che è principalmente coinvolto nell'esecuzione del computer.
Un'applicazione può essere pensata come un processo di spazio utente in esecuzione su un sistema. Oltre agli esempi sopra elencati, questo può includere programmi come virus per computer (modalità non kernel), server Web, applicazioni della fotocamera e programmi di aggregazione dei dati dei sensori.
Quando un'applicazione trasmette e riceve dati su Internet, deve utilizzare l'implementazione della suite di protocolli TCP / IP del suo sistema host. Dal livello applicazione (Wikipedia):
In TCP / IP, il livello applicazione contiene i protocolli di comunicazione e i metodi di interfaccia utilizzati nelle comunicazioni da processo a processo attraverso una rete di computer con protocollo Internet (IP). Il livello dell'applicazione standardizza solo la comunicazione e dipende dai protocolli del livello di trasporto sottostante per stabilire canali di trasferimento dati da host a host e gestire lo scambio di dati in un modello di rete client-server o peer-to-peer.
Il livello applicativo della suite di protocolli TCP / IP include protocolli come File Transfer Protocol (FTP), Domain Name System (DNS) e probabilmente il più famoso, Hypertext Transfer Protocol (HTTP).
Ad esempio, il protocollo di livello applicazione HTTP specifica come i dati vengono trasmessi tra 2 processi in esecuzione (normalmente) su sistemi diversi: l'applicazione client, un browser Web e l'applicazione server, il processo del server Web.
Chiarimento di potenziali idee sbagliate
Nel diagramma 2, mostra una rappresentazione dello "stack" software che un computer (PC) userebbe per creare, elaborare e inviare un messaggio, su Internet, a un altro computer.
La suite di protocolli TCP / IP non è uno stack software. Da Technopedia :
Uno stack software è un gruppo di programmi che lavorano in tandem per produrre un risultato o raggiungere un obiettivo comune. Lo stack software si riferisce anche a qualsiasi set di applicazioni che funziona in un ordine specifico e definito verso un obiettivo comune o a qualsiasi gruppo di utility o applicazioni di routine che funzionano come un set. File installabili, definizioni software di prodotti e patch possono essere inclusi in uno stack software. Uno dei popolari stack software basati su Linux è LAMP (Linux, Apache, MYSQL, Perl o PHP o Python). WINS (Windows Server, Internet Explorer, .NET, SQL Server) è un popolare stack software basato su Windows.
Piuttosto, è uno stack di protocollo, solitamente implementato dal kernel (anche da Technopedia ):
Uno stack di protocolli fa riferimento a un gruppo di protocolli in esecuzione contemporaneamente utilizzati per l'implementazione della suite di protocolli di rete.
I protocolli in uno stack determinano le regole di interconnettività per un modello di rete a livelli come nei modelli OSI o TCP / IP. Per diventare uno stack, i protocolli devono essere interoperabili, in grado di connettersi sia in verticale tra gli strati della rete sia in orizzontale tra i punti finali di ciascun segmento di trasmissione.
Tutti i tipi di computer - smartphone / tv / console di gioco, ecc. Usano questo formato ?
La suite di protocolli TCP / IP è una specifica di comunicazione indipendente dall'hardware e dal sistema operativo, non un formato . Se un processo in esecuzione su una piattaforma hardware deve comunicare con un processo in esecuzione su un sistema remoto su una piattaforma hardware diversa e la comunicazione avviene su Internet, i sistemi devono
- implementare correttamente la suite di protocolli TCP / IP e
- i protocolli appropriati all'interno di questa suite devono essere utilizzati per realizzare la comunicazione tra processi
(A questo proposito) c'è qualche differenza tra Internet cellulare e Wifi / Ethernet?
La mia interpretazione di questa domanda è "C'è una differenza nel modo in cui un dispositivo mobile si connette a una rete GSM e nel modo in cui un dispositivo mobile si connette a una rete WiFi?"
La differenza sta nel livello dell'interfaccia di rete.
Questa domanda mostra la scarsa rappresentazione della suite di protocolli TCP / IP nel diagramma nell'articolo collegato alla domanda. Per riferimento, ecco il diagramma:
Il livello più basso, indicato come "hardware", dovrebbe essere indicato come livello di collegamento , livello di controllo di accesso ai supporti (MAC) o livello di interfaccia di rete .
Dalla pagina 34 "Tutorial TCP / IP e panoramica tecnica" di IBM:
Il livello dell'interfaccia di rete, chiamato anche livello di collegamento o livello di collegamento dati, è l'interfaccia per l'hardware di rete effettivo. Questa interfaccia può fornire o meno una consegna affidabile e può essere orientata ai pacchetti o allo stream. In effetti, TCP / IP non specifica alcun protocollo qui, ma può utilizzare quasi tutte le interfacce di rete disponibili, il che illustra la flessibilità del livello IP. Esempi sono IEEE 802.2, X.25 (che è di per sé affidabile), ATM, FDDI e persino SNA.
Ecco una rappresentazione corretta e superiore (dalla Guida TCP / IP ):
Il motivo per cui la discussione sul livello dell'interfaccia di rete è rilevante è che è a questo livello che esiste una differenza nel modo in cui un dispositivo cellulare / mobile si connette a una rete GSM rispetto a una rete WiFi.
quando ci si collega a una rete GSM, il protocollo di livello dell'interfaccia di rete impiegato per gestire la connessione tra il dispositivo mobile e la stazione base ricetrasmittente (BTS) è in genere specificato da 3G
quando ci si collega a un punto di accesso wireless WiFi (WAP), il protocollo utilizzato è specificato dallo standard IEEE 802.11 .
Che dire dei dispositivi a funzione singola che non sembrano avere un livello "Applicazione", ad esempio una videocamera connessa al web, interruttori della luce o termostati
Come descritto in precedenza, i protocolli nel livello applicazione della suite di protocolli TCP / IP forniscono uno standard per il modo in cui i dati dell'applicazione vengono scambiati tra i processi.
Gli strati sono concettuali. Non risiedono in un sistema o su una piattaforma hardware.
Le telecamere, gli interruttori della luce e i termostati collegati al Web possono avere processi in esecuzione su di essi che comunicano su Internet con processi in esecuzione su sistemi remoti (controllo degli aggiornamenti del firmware, scambio di dati con un server, ecc.). Questi processi o applicazioni utilizzeranno l'implementazione della suite di protocolli TCP / IP per realizzare questa comunicazione tra processi.
La suite di protocolli TCP / IP e i sistemi integrati ("IoT")
Sebbene esistano numerose applicazioni diverse che utilizzano protocolli a livello di applicazione diversi in esecuzione su PC o server tradizionali, non vi è molta variazione in termini di modalità di connessione delle piattaforme hardware ai rispettivi punti di accesso (interfaccia di rete / livello di collegamento dati). Viene realizzato principalmente via cavo o wireless tramite Ethernet.
La situazione è leggermente diversa quando si tratta dell'ampia varietà di sistemi integrati che comunicano tramite TCP / IP. Ecco un'illustrazione di questo (da Postscapes ):
Per maggiori informazioni, vedi questi articoli:
Comprensione dei protocolli dietro l'Internet delle cose
Standard e protocolli IoT
Guida alla tecnologia IoT