Introduzione all'OSI

Quando la rete ARPA era appena in fase di sviluppo, volevamo davvero renderla il più intelligente possibile. Ma più complessa è la rete, più difficile è svilupparla e mantenerla. Come soluzione, è stato proposto di suddividere tutte le funzioni di rete in livelli logici.

Il modello operativo di rete è indicato come il modello di rete del modello di riferimento di base per l'interconnessione di sistemi aperti ISO/OSI. In breve: il modello OSI (Open Systems Interconnection).

Modello OSI

In totale, ci sono 7 livelli in questo modello. L'interazione dei livelli è rigorosamente standardizzata e ridotta al minimo. Il livello inferiore non ha idea della presenza di livelli superiori e della loro struttura.

Il livello più basso può solo inviare bit . Nemmeno trasmettere, vale a dire inviare. Non ha idea se lo faranno o no. Inviato e dimenticato.

Un livello superiore opera già con gruppi di bit- frame e conosce poco il dispositivo fisico della rete, comprende gli indirizzi MAC e simili.

Il livello successivo è il batch. È ancora più intelligente e sa come operare con gli indirizzi IP di rete. E così via.

Perché è necessario tutto questo? Per massimizzare la flessibilità.

Immagina che ogni livello sia un'interfaccia Java e possa avere diverse implementazioni. Quindi anche qui. A livello fisico, puoi inviare bit via cavo, inviare via etere (Wi-Fi), inviare via satellite e tutti gli altri livelli non ne sapranno nemmeno nulla. E tutto funzionerà come previsto.

Pila di protocolli OSI

Puoi studiare lo stack del protocollo in modo più dettagliato nell'immagine qui sotto :

Ma se non sei un amministratore di sistema, non hai bisogno di tali dettagli sui protocolli. Più interessante può essere lo studio dello stack di protocolli TCP (Transmission Control Protocol) / IP (Internet Protocol).

I primi tre livelli nel modello OSI, ovvero il livello dell'applicazione, il livello della presentazione e il livello della sessione, non sono distinti separatamente nel modello TCP/IP, che ha solo un livello dell'applicazione sopra il livello del trasporto:

Distribuzione dei protocolli per strati del modello OSI

TCP/IP OSI
Applicato Applicato HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
Rappresentazione XDR, AFP, TLS, SSL
sessione ISO 8327/CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
Trasporto Trasporto TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
rete rete IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP
canalizzato canalizzato Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS, ARP/td>
Fisico cavi elettrici, comunicazioni radio, cavi in ​​fibra ottica, radiazioni infrarosse

Pila di protocolli TCP/IP

Lo stack del protocollo TCP/IP include quattro livelli:

  • Livello applicazione
  • Livello di trasporto
  • Livello Internet (Livello di rete) (Livello Internet)
  • Livello di collegamento (livello di accesso alla rete)

I protocolli di questi livelli implementano completamente tutte le funzionalità del modello OSI. Tutta l'interazione dell'utente nelle reti IP si basa sullo stack del protocollo TCP/IP.

Lo stack del protocollo TCP/IP è indipendente dall'hardware fisico, il che, tra l'altro, garantisce un'interazione completamente trasparente tra reti cablate e wireless.

Il livello Applicazione è dove viene eseguita la maggior parte delle applicazioni di rete.

Livello di applicazione

Per l'interazione dei programmi esistono protocolli di alto livello per lo scambio di informazioni. Ad esempio, i browser funzionano utilizzando il protocollo HTTP, la posta viene inviata utilizzando il protocollo SMTP, Telegram funziona utilizzando il proprio protocollo crittografato.

Ma non siamo molto interessati ai protocolli privati. Molto spesso, incontrerai protocolli di massa come un client ftp per FTP (trasferimento di file), SSH (connessione sicura a una macchina remota), DNS (traduzione da carattere a indirizzo IP) e molti altri.

Quasi tutti questi protocolli funzionano su TCP, sebbene alcuni funzionino su UDP (User Datagram Protocol) per velocizzare le cose. Ma, soprattutto, questi protocolli hanno porte predefinite. Esempio:

  • 20 FTP alla porta TCP 20 (per trasferimento dati) e 21 (per comandi di controllo)
  • 22-SS
  • 23 - Telnet
  • 53 - query DNS
  • 80 HTTP
  • 443 - HTTPS

Queste porte sono definite dalla Naming Assignment and Unique Parameters Agency (IANA).

Esistono molti altri protocolli popolari a livello di applicazione: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.

strato di trasporto

I protocolli del livello di trasporto sono progettati per risolvere il problema della consegna garantita dei messaggi.

Un messaggio (pacchetto di dati) può essere inviato e perso da qualche parte sulla rete. In questo caso, spetta al livello di trasporto monitorare queste situazioni e inviare nuovamente il messaggio se necessario.

Un altro compito importante del protocollo del livello di trasporto è controllare l'ordine in cui arrivano i messaggi. Accade spesso che i messaggi siano stati inviati in un ordine e siano arrivati ​​in un altro. E se metti insieme un grande messaggio da questi pezzi, ottieni sciocchezze.

Per evitare che ciò accada, il livello di trasporto enumera i messaggi o non ne invia uno nuovo fino a quando non ha ricevuto la conferma di ricezione del precedente. I protocolli di instradamento automatico che sono logicamente presenti a questo livello (poiché vengono eseguiti su IP) fanno effettivamente parte dei protocolli del livello di rete.

Il protocollo TCP è un meccanismo di trasporto "garantito" con connessione prestabilita che fornisce a un'applicazione un flusso di dati affidabile, assicura che i dati ricevuti siano privi di errori, richiede nuovamente i dati in caso di perdita ed elimina la duplicazione dei dati.

TCP consente di regolare il carico sulla rete, nonché di ridurre i tempi di attesa dei dati durante la trasmissione su lunghe distanze. Inoltre, TCP garantisce che i dati ricevuti siano stati inviati esattamente nella stessa sequenza. Questa è la sua principale differenza rispetto a UDP.

UDP è un protocollo datagramma senza connessione. È detto anche protocollo di trasferimento “inaffidabile”, nel senso dell'impossibilità di verificare la consegna di un messaggio al destinatario, nonché l'eventuale mescolanza di pacchetti. Le applicazioni che richiedono una trasmissione dati garantita utilizzano il protocollo TCP.

L'UDP viene in genere utilizzato in applicazioni come lo streaming video e i giochi in cui la perdita di pacchetti è tollerata e il tentativo di riprovare è difficile o ingiustificato, o in applicazioni di risposta alla sfida (come le query DNS) in cui stabilire una connessione richiede più risorse rispetto al nuovo invio.

Sia TCP che UDP utilizzano un numero chiamato porta per definire il protocollo di livello superiore.