Casa / Lavora su Internet / Lo stack di protocollo di base di Internet è. Lo stack di protocollo di base di Internet. Stack (switch di rete). Configurazione dei dispositivi di rete. Strutture dati richieste

Lo stack di protocollo di base di Internet è. Lo stack di protocollo di base di Internet. Stack (switch di rete). Configurazione dei dispositivi di rete. Strutture dati richieste

Stack di protocolli di rete e hacking TCP

Alessandro Antipov

Lo stack del protocollo di rete che forma il pipelining e la comunicazione tra gli host è progettato per la migliore interoperabilità tra i diversi livelli di rete. In questo articolo, proveremo a descrivere il movimento dei dati attraverso i livelli situati nello stack e cercheremo di implementare un modulo del kernel Linux che ci aiuti a catturare e visualizzare i dati che passano attraverso il livello TCP. Di seguito è riportato un programma che mostra come installare nuovo elemento in sistema di file proc. E, cosa più importante, questo programma infrange il protocollo TCP, tiene traccia di tutti i dati che passano attraverso il livello tcp e li visualizza in /proc/TCPdata.


Shamitkh, tradotto da Alexey Antipov

Lo stack del protocollo di rete che forma il pipelining e la comunicazione tra gli host è progettato per la migliore interoperabilità tra i diversi livelli di rete. In questo articolo, proveremo a descrivere il movimento dei dati attraverso i livelli situati nello stack e cercheremo di implementare un modulo del kernel Linux che ci aiuti a catturare e visualizzare i dati che passano attraverso il livello TCP. Poiché una discussione su tutti i tipi di connessioni di rete va oltre lo scopo di questo articolo, ci concentreremo sulle connessioni TCP/IP.

Pila di protocolli di rete

I dispositivi di rete costituiscono il livello di base dello stack del protocollo. Per comunicare con altri dispositivi e ricevere e trasmettere traffico, utilizzano un protocollo di collegamento dati (solitamente Ethernet). L'interfaccia fornita dai driver dei dispositivi di rete copia i pacchetti dal supporto fisico, esegue un controllo degli errori e quindi inserisce i pacchetti nel livello di rete. Le interfacce di output ricevono i pacchetti dal livello di rete, eseguono un controllo degli errori e li inoltrano al supporto fisico. Discuteremo di IP (Internet Protocol) che è il protocollo standard del livello di rete. Le funzioni principali dell'IP sono l'instradamento, il controllo dei pacchetti in entrata per determinare se questi pacchetti sono diretti a un determinato host o se necessitano di un ulteriore inoltro. In questo caso, se necessario, i pacchetti vengono deframmentati e consegnati ai protocolli di trasporto. Tali protocolli sono base dinamica instradare i dati per i pacchetti in uscita, indirizzarli e frammentarli prima di inviarli al livello di collegamento.

TCP e UDP sono i protocolli del livello di trasporto più comunemente usati. UDP fornisce un framework per l'indirizzamento dei pacchetti all'interno di un host, mentre TCP supporta operazioni di connessione più complesse come il recupero dei pacchetti persi e il controllo del traffico.

Passando attraverso il livello di trasporto, possiamo trovare il livello INET, che forma uno strato intermedio tra il livello di trasporto e i socket dell'applicazione. I socket di proprietà dell'applicazione sono supportati utilizzando il livello INET. Tutte le operazioni socket specifiche sono implementate in questo livello.

BSD è una struttura dati astratta contenente socket INET. La richiesta di un'applicazione di connettersi, leggere o scrivere su un socket viene tradotta in un'operazione INET da BSD.

Struttura generale del pacchetto. I dati sono racchiusi in una struttura dati comune chiamata sk_buff. Tutti i livelli utilizzano questa struttura dati. Una volta che i dati vengono copiati dallo spazio utente allo spazio del kernel, vengono inseriti in sk_buff e spostati a diversi livelli. A sua volta, il livello aggiunge le proprie intestazioni a questa struttura. Sk_buff contiene collegamenti a tutte le informazioni sul pacchetto, il suo socket, il dispositivo, il percorso, la posizione dei dati, ecc.

Funzionalità di rete Linux

Per un normale programmatore di rete, la parte front-end dei servizi di rete è disponibile utilizzando le seguenti routine della libreria C.

socket(), bind(), listen(), connect(), accept(), send(), sendto(), recv(), recvfrom(), getsockopt() e setsockopt().

La funzione socket() viene utilizzata per creare un nuovo socket. Tutte le operazioni con vari protocolli avvengono tramite socket. Poiché la funzione socket() restituisce il valore di un descrittore di file, è possibile accedervi mediante operazioni di file standard come read(), write().

La funzione bind() viene utilizzata per associare il socket creato a una porta. Porta insieme all'indirizzo IP interfaccia di rete, utilizzato per identificare in modo univoco un socket.

La funzione listen() viene utilizzata per programmare il server. Dopo aver creato un socket e averlo associato a una porta, la funzione listen() imposta il socket sullo stato di ascolto. Ciò significa che il socket è in attesa di connessioni da altri host.

Quando la funzione accept() viene chiamata sul server, il socket viene interrogato continuamente finché non viene ricevuta una richiesta di connessione da un altro host. Una volta stabilita la connessione, il programma server si attiva e consente al processo di elaborare una richiesta dall'host esterno. Il lato client utilizza la funzione connect() per indicare al server che il client desidera aprire una connessione socket e inviare una richiesta.

Strutture dati richieste

Questa struttura è la base per implementare l'interfaccia socket BSD. Questa struttura è configurata e inizializzata usando la chiamata di sistema socket().

sk_buff:

Questa struttura gestisce i singoli pacchetti di connessione inviati da e verso l'host. Ciò causa il buffering di I/O.

Questa struttura gestisce le diverse parti dei socket che sono specifiche della rete. È necessario per i socket TCP, UDP e RAW.

Questa struttura contiene un numero di operazioni che sono le stesse per tutti i protocolli.

sockaddr(sockaddr_in):

Questa struttura è necessaria per supportare vari formati indirizzi.

Moduli del kernel Linux

Nuclei kernel Linux sono composti da moduli. Alcune parti del kernel sono permanentemente in memoria (come lo scheduler) e altre vengono caricate quando necessario. Ad esempio, il file system VFAT per la lettura dei dischi viene caricato solo quando necessario. Questa caratteristica del kernel Linux consente allo spazio del kernel di occupare poco spazio.

Pertanto, è essenziale progettare il protocollo, i driver e qualsiasi tipo di software del kernel come moduli del kernel e inserirli nel kernel dallo spazio utente. Una volta inserito, il modulo diventa non rilocabile finché non viene rimosso dallo spazio del kernel. Devi solo essere un utente root per inserire o rimuovere i moduli. Questa è la notazione generale per un modulo del kernel.

#define MODULE #include /* ... altri file di intestazione richiesti ... */ /* * ... dichiarazioni e funzioni del modulo ... */ int init_module() ( /* il codice verrà chiamato dal kernel durante l'installazione del modulo */ ) void cleanup_module() ( /* codice che il kernel chiamerà durante la rimozione del modulo */)

Un progetto di modulo hacker per il protocollo TCP.

Il nostro modulo del kernel è molto semplice, è posizionato virtualmente tra l'interfaccia operativa del socket per l'inoltro dei pacchetti TCP e il livello TCP. Ora tutti i pacchetti di dati che passano attraverso un socket registrato con il protocollo TCP verranno intercettati dal nostro modulo del kernel. Questi dati verranno trasferiti a /proc/TCPdata.

Strutture dati utilizzate

tcp_prot -> Contiene puntatori a tutte le operazioni TCP eseguite

struct msghdr -> Contiene i dati inviati dall'applicazione, nonché altri campi per identificare l'indirizzo del socket.

Struct msg_iov -> situato in msghdr, contiene puntatori ai dati

Prima di iniziare a programmare, capiamo il significato del filesystem /proc. Il filesystem proc è così chiamato perché risiede nella directory /proc sulla maggior parte delle macchine Linux. Il sistema è un potente strumento spesso utilizzato dalle applicazioni. Questo fa parte del meccanismo attraverso il quale il kernel comunica con lo spazio utente e viceversa. Sebbene sia progettato come un file system con una struttura di directory e inode, allo stesso tempo è in realtà un componente di funzioni registrate che forniscono informazioni a variabili importanti.

Quando un file viene creato in /proc, viene immediatamente registrato con un insieme di funzioni che dicono al kernel cosa fare quando il file viene aperto o scritto. La maggior parte dei file è di sola lettura e solo pochi sono di sola scrittura.

Ora inizieremo a codificare

/* tcpdata.c. Di seguito è riportato un programma che mostra come installare un nuovo elemento nel filesystem proc. E, cosa più importante, questo programma infrange il protocollo TCP, tiene traccia di tutti i dati che passano attraverso il livello tcp e li visualizza in /proc/TCPdata. */ #define MODULE #define __KERNEL__ /*stiamo lavorando sul kernel*/ #include #include #include /*per la registrazione della voce proc*/ #include #include #include #include #include #include #include static struct proc_dir_entry *test_entry ; struct msghdr *msg_moniter; struct iovec *iovec_moniter; static char *tcp="Dati monitorati Tcp"; int (*originalSend)(struct sock *, struct msghdr *,int); /* show_tcp_stats Questa funzione è ciò che /proc FS chiamerà quando qualcosa tenta di leggere /proc/TCPstat potresti vedere gli ultimi 200 byte uscire dai socket attraverso le connessioni tcp */ static int show_tcp_stats(char *buf,char **start ,off_t offset,int len,int non utilizzato) ( len += sprintf(buf+len,"%s\n",tcp); return len; ) /* Questa è una funzione di gestione che cattura le richieste tcp sendmsg */ int moniter_tcp (struct sock *sk, struct msghdr *msg,int len) ( int size; char *temp; printk("Sto monitorando pericolosamente i tuoi dati tcp \n"); msg_moniter=(struct msghdr *)kmalloc(sizeof(struct msghdr ), GFP_KERNEL); memcpy(msg_moniter,msg,sizeof(struct msghdr)); orginalSend(sk,msg,len); iovec_moniter=msg_moniter->msg_iov; size=sizeof(tcp); printk("la dimensione di TCPdat è %d \n ",size); (sizeiov_base):strcpy(tcp,"Tcp monitored data"); kfree(msg_moniter); return len; ) /* init_module Questa funzione installa un modulo; registra semplicemente una nuova directory in /proc e crea un puntatore. */ int init_module() ( test_entry=create_proc_entry("TCPdata",S_IRUGO,NULL); test_entry->read_proc=show_tcp_stats; orginalSend=tcp_prot.sendmsg; /* printk("l'indirizzo di invio invia me è %x \n" ,tcp_prot.sendmsg); printk("l'indirizzo dell'hack me è %x \n",originalSend); */ tcp_prot.sendmsg=moniter_tcp; /* printk("l'indirizzo dell'hack me dopo l'hacking %x \n" ,tcp_prot.sendmsg); printk("l'indirizzo di send send me dopo l'hacking %x \n",moniter_tcp); */ return 0; ) /* init_module */ /* cleanup_module Questa funzione rimuove il modulo; Rimuove la registrazione della voce di directory da /proc FS */ void cleanup_module() ( /* riporta il puntatore al mittente del messaggio originale di tcp */ tcp_prot.sendmsg=originalSend; /* annulla la registrazione della funzione dal proc FS */ remove_proc_entry ( "TCPdata",NULL); ) /* cleanup_module */ MODULE_AUTHOR("shyamjithe.c.s "); /*macros*/ MODULE_DESCRIPTION("moniter tcp data"); MODULE_LICENSE("GPL");

Questo programmaè stato testato sul kernel 2.4, quindi puoi compilarlo usando:

Gcc -O6 -Wall -c tcpdata.c -I /usr/src/linux-2.4.20-8/include/ questo produrrà tcpdata.o ora insmod tcpdata.o aprirà alcune applicazioni tcp cat /proc/TCPdata per rimuovere il module use rmmod tcpdata Ora, per capire questo codice, darò qualche spiegazione. L'intero programma è solo un modo complicato per utilizzare i puntatori a funzione. Ma devi stare attento quando usi i tuoi gestori, perché smarrimento puntatore di funzione può causare il blocco del sistema. Come affermato, questo è il modo minimo per violare il TCP. Puoi formare nuovo livello sopra il livello TCP in questo modo, che interferirà con tutti i tipi di lavoro svolto da TCP. Lo stesso può essere fatto con UDP.

Conclusione

L'aspetto più importante del programma di cui sopra è che non è sempre necessario modificare il codice sorgente del kernel quando si apportano modifiche relative al protocollo. È un'implementazione orientata agli oggetti del kernel Linux che ci consente di manipolare oggetti di dati all'interno del kernel.

Stack di protocollo

Uno stack di protocolli è un insieme organizzato gerarchicamente di protocolli di rete di vari livelli sufficienti per organizzare e garantire l'interazione dei nodi in una rete. Attualmente, le reti utilizzano un gran numero di stack di protocolli di comunicazione. Gli stack più diffusi sono: TCP/IP, IPX/SPX, NetBIOS/SMB, Novell NetWare, DECnet, XNS, SNA e OSI. Tutti questi stack, ad eccezione di SNA, ai livelli inferiori - fisico e canale - utilizzano gli stessi protocolli ben standardizzati Ethemet, Token Ring, FDDI e alcuni altri, che consentono di utilizzare la stessa apparecchiatura in tutte le reti. Ma ai livelli superiori, tutti gli stack funzionano secondo i propri protocolli. Questi protocolli spesso non sono conformi alla stratificazione raccomandata dal modello OSI. In particolare, le funzioni del livello sessione e presentazione sono solitamente combinate con il livello applicazione. Questa discrepanza è dovuta al fatto che il modello OSI è apparso come risultato di una generalizzazione di stack già esistenti ed effettivamente utilizzati, e non viceversa.

Tutti i protocolli inclusi nello stack sono sviluppati da un produttore, ovvero sono in grado di funzionare nel modo più rapido ed efficiente possibile.

Un punto importante nel funzionamento delle apparecchiature di rete, in particolare una scheda di rete, è l'associazione del protocollo. Ti consente di utilizzare diversi stack di protocollo quando servi una scheda di rete. Ad esempio, è possibile utilizzare contemporaneamente gli stack TCP/IP e IPX/SPX. Se improvvisamente si verifica un errore durante il tentativo di stabilire una connessione con il destinatario utilizzando il primo stack, passerà automaticamente all'utilizzo del protocollo dallo stack successivo. Un punto importante in questo caso è l'ordine di associazione, poiché influisce chiaramente sull'uso dell'uno o dell'altro protocollo da diversi stack.

Indipendentemente da quanti adattatori di rete installato sul computer, l'associazione può essere eseguita sia "uno-a-molti" che "diversi-a-uno", ovvero uno stack di protocollo può essere associato a più adattatori contemporaneamente o più stack a un adattatore.

NetWare è un sistema operativo di rete e un insieme di protocolli di rete utilizzati in questo sistema per interagire con i computer client connessi a una rete. I protocolli di rete del sistema si basano sullo stack di protocolli XNS. NetWare attualmente supporta i protocolli TCP/IP e IPX/SPX. Novell NetWare era popolare negli anni '80 e '90 perché era più efficiente dei sistemi operativi. scopo generale. Questa è ormai una tecnologia obsoleta.

Lo stack di protocollo XNS (Internet Transport Protocol) di Xerox Network Services è stato sviluppato da Xerox per la trasmissione di dati su reti Ethernet. Contiene 5 livelli.

Il livello 1 - mezzo trasmissivo - implementa le funzioni dei livelli fisico e di collegamento nel modello OSI:

* gestisce lo scambio di dati tra il dispositivo e la rete;

* instrada i dati tra dispositivi sulla stessa rete.

Livello 2 - internetwork - corrisponde al livello di rete nel modello OSI:

* gestisce lo scambio di dati tra dispositivi situati in reti diverse (fornisce un servizio di datagrammi secondo il modello IEEE);

* descrive il modo in cui i dati passano attraverso la rete.

Livello 3 - trasporto - corrisponde al livello di trasporto nel modello OSI:

* Fornisce la comunicazione end-to-end tra l'origine dati e la destinazione.

Livello 4 - controllo - corrisponde al livello di sessione e presentazione nel modello OSI:

* gestisce la presentazione dei dati;

* gestisce il controllo sulle risorse del dispositivo.

Il livello 5 - applicato - corrisponde ai livelli più alti nel modello OSI:

* fornisce funzioni di elaborazione dei dati per le attività applicate.

Pila Protocolli TCP/IP (Transmission Control Protocol/Internet Protocol) è di gran lunga il più comune e funzionale. Funziona in reti locali di qualsiasi scala. Questo stack è lo stack principale in rete globale Internet. Il supporto dello stack è stato implementato nei computer con il sistema operativo UNIX. Di conseguenza, la popolarità del protocollo TCP/IP è aumentata. Lo stack del protocollo TCP / IP include molti protocolli che operano a vari livelli, ma ha preso il nome grazie a due protocolli: TCP e IP.

TCP (Transmission Control Protocol) è un protocollo di trasporto progettato per controllare la trasmissione dei dati nelle reti utilizzando lo stack del protocollo TCP/IP. IP (Internet Protocol) è un protocollo a livello di rete progettato per fornire dati su una rete composita utilizzando uno dei protocolli di trasporto, come TCP o UDP.

Il livello inferiore dello stack TCP / IP utilizza protocolli di trasferimento dati standard, che ne consente l'utilizzo nelle reti che utilizzano qualsiasi tecnologia di rete e su computer con qualsiasi sistema operativo.

Inizialmente, il protocollo TCP / IP è stato sviluppato per l'utilizzo nelle reti globali, motivo per cui è il più flessibile possibile. In particolare, grazie alla capacità di frammentazione dei pacchetti, i dati, nonostante la qualità del canale di comunicazione, raggiungono comunque la destinazione. Inoltre, grazie alla presenza del protocollo IP, diventa possibile trasferire dati tra segmenti di rete eterogenei.

Lo svantaggio del protocollo TCP/IP è la complessità dell'amministrazione della rete. Quindi, per il normale funzionamento della rete, sono necessari server aggiuntivi, come DNS, DHCP, ecc., Il cui mantenimento occupa la maggior parte del tempo dell'amministratore di sistema. Limoncelli T., Hogan K., Cheylap S. - Amministrazione di sistemi e reti. 2a ed. anno 2009. 944

Lo stack di protocollo IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange) è sviluppato e proprietario di Novell. È stato progettato per le esigenze sistema operativo Novell NetWare, che fino a poco tempo fa deteneva una delle posizioni di primo piano tra i sistemi operativi per server.

I protocolli IPX e SPX funzionano rispettivamente a livello di rete e di trasporto del modello ISO/OSI, quindi si completano perfettamente a vicenda.

Il protocollo IPX può trasmettere dati utilizzando datagrammi utilizzando le informazioni di instradamento di rete per farlo. Tuttavia, per trasferire i dati lungo il percorso trovato, è necessario prima stabilire una connessione tra il mittente e il destinatario. Questo è ciò che fa il protocollo SPX o qualsiasi altro protocollo di trasporto che funziona in tandem con IPX.

Sfortunatamente, lo stack di protocollo IPX/SPX era originariamente orientato a servire reti di piccole dimensioni, quindi il suo utilizzo in reti di grandi dimensioni è inefficace: l'uso eccessivo della trasmissione su linee di comunicazione a bassa velocità è inaccettabile.

sul fisico e strati di collegamento Lo stack OSI supporta i protocolli Ethernet, Token Ring, FDDI, nonché LLC, X.25 e ISDN, ovvero utilizza tutti i comuni protocolli di livello inferiore sviluppati al di fuori dello stack, come la maggior parte degli altri stack. Il livello di rete include il protocollo di rete orientato alla connessione (CONP) e il protocollo di rete senza connessione (CLNP) usati relativamente raramente. I protocolli di instradamento dello stack OSI sono ES-IS (End System -- Intermediate System) tra sistemi finali e intermedi e IS-IS (Intermediate System -- Intermediate System) tra sistemi intermedi. Il livello di trasporto dello stack OSI nasconde la distinzione tra servizi di rete senza connessione e senza connessione in modo che gli utenti ricevano la qualità del servizio richiesta indipendentemente dal livello di rete sottostante. Per garantire ciò, il livello di trasporto richiede all'utente di specificare la qualità del servizio desiderata. I servizi a livello di applicazione forniscono trasferimento di file, emulazione di terminale, servizi di directory e posta. Di questi, i più popolari sono il servizio di directory (standard X.500), E-mail(X.400), Virtual Terminal Protocol (VTP), File Transfer, Access and Control Protocol (FTAM), Transfer and Job Control Protocol (JTM).

Uno stack di protocollo abbastanza popolare sviluppato rispettivamente da IBM e Microsoft, focalizzato sull'uso nei prodotti di queste aziende. Come TCP / IP, i protocolli standard come Ethernet, Token Ring e altri funzionano a livello fisico e di collegamento dati dello stack NetBIOS / SMB, il che rende possibile utilizzarlo in tandem con qualsiasi attivo apparecchiature di rete. Ai livelli superiori funzionano i protocolli NetBIOS (Network Basic Input / Output System) e SMB (Server Message Block).

Il protocollo NetBIOS è stato sviluppato a metà degli anni '80 del secolo scorso, ma è stato presto sostituito dal più funzionale protocollo NetBEUI (NetBIOS Extended User Interface), che consente di organizzare uno scambio di informazioni molto efficiente in reti composte da non più di 200 computer .

La comunicazione tra computer utilizza nomi logici che vengono assegnati dinamicamente ai computer quando si connettono alla rete. In questo caso, la tabella dei nomi viene distribuita a ciascun computer della rete. È supportato anche il lavoro con i nomi dei gruppi, che consente di trasferire i dati a più destinatari contemporaneamente.

I principali vantaggi del protocollo NetBEUI sono la velocità e il fabbisogno di risorse molto basso. Se si desidera organizzare un rapido scambio di dati in una piccola rete costituita da un singolo segmento, non esiste un protocollo migliore per questo. Inoltre, per la consegna dei messaggi connessione stabilita non è un requisito obbligatorio: in assenza di una connessione, il protocollo utilizza il metodo del datagramma, quando il messaggio viene fornito con l'indirizzo del destinatario e del mittente e "decolla", spostandosi da un computer all'altro.

Tuttavia, NetBEUI presenta anche uno svantaggio significativo: è completamente privo del concetto di instradamento dei pacchetti, quindi il suo utilizzo in reti composite complesse non ha senso. Pyatibratov A.P., Gudyno LP, Kirichenko A.A. Macchine informatiche, reti e sistemi di telecomunicazione Mosca 2009. 292s

Per quanto riguarda il protocollo SMB (Server Message Block), organizza il funzionamento della rete ai tre livelli più alti: sessione, presentazione e livello dell'applicazione. È quando lo si utilizza che diventa possibile accedere a file, stampanti e altre risorse di rete. Questo protocollo è stato migliorato più volte (sono state rilasciate tre versioni), il che ha permesso di utilizzarlo anche in sistemi operativi moderni come Microsoft Vista e Windows 7. Il protocollo SMB è universale e può essere abbinato a quasi tutti i protocolli di trasporto, come TCP/IP e SPX.

Lo stack di protocollo DECnet (Digital Equipment Corporation net) contiene 7 livelli. Nonostante la differenza di terminologia, i livelli DECnet sono molto simili ai livelli del modello OSI. DECnet implementa il concetto di architettura di rete DNA (Digital Network Architecture) sviluppato da DEC, secondo il quale sistemi informatici eterogenei (computer di classi diverse) che operano sotto vari sistemi operativi possono essere combinati in informazioni geograficamente distribuite e reti informatiche.

Il protocollo SNA (System Network Architecture) di IBM è progettato per la comunicazione remota con computer di grandi dimensioni e contiene 7 livelli. SNA si basa sul concetto di una macchina host e fornisce l'accesso terminale remoto ai mainframe IBM. Di base segno distintivo SNA è la capacità di ciascun terminale di accedere a qualsiasi programma applicativo host. L'architettura di rete del sistema è implementata sulla base di un metodo di accesso virtuale alle telecomunicazioni (Virtual Telecommunication Access Method - VTAM) nel computer principale. VTAM gestisce tutti i collegamenti e i terminali, con ogni terminale che ha accesso a tutte le applicazioni.

Con aiuto livello di sessione (livello di sessione) si organizza un dialogo tra le parti, si fissa quale delle parti è l'iniziatore, quale delle parti è attiva e come finisce il dialogo.

Livello di presentazione si occupa della forma di fornire informazioni a livelli inferiori, ad esempio la ricodifica o la crittografia delle informazioni.

Livello applicazione questo è un insieme di protocolli che vengono scambiati tra nodi remoti che implementano la stessa attività (programma).

Va notato che alcune reti sono apparse molto prima dello sviluppo del modello OSI, pertanto, per molti sistemi, la corrispondenza dei livelli del modello OSI è molto arbitraria.

1.3. Pila di protocolli Internet

Internet è progettato per trasportare qualsiasi tipo di informazione da una fonte a un destinatario. Vari elementi della rete sono coinvolti nel trasporto di informazioni (Fig. 1.1): dispositivi terminali, dispositivi di commutazione e server. Gruppi di nodi con l'aiuto di dispositivi di commutazione sono combinati in una rete locale, le reti locali sono interconnesse da gateway (router). I dispositivi di commutazione utilizzano varie tecnologie: Ethernet, Token Ring, FDDI e altri.

Ogni dispositivo terminale (host) può servire contemporaneamente diversi processi di elaborazione delle informazioni (voce, dati, testo ...), che esistono sotto forma di applicazioni di rete (programmi specializzati) situati su il livello più alto; dall'applicazione, le informazioni entrano nei mezzi di elaborazione delle informazioni nei livelli inferiori.

Il trasporto dell'applicazione in ciascun nodo viene deciso in sequenza da diversi livelli. Ogni livello utilizza i propri protocolli per risolvere la propria parte del problema e fornisce la trasmissione duplex delle informazioni. La sequenza delle attività di passaggio forma una pila di protocolli. Nel processo di trasporto delle informazioni, ogni nodo utilizza lo stack di protocolli di cui ha bisogno. Sulla fig. 1.3 mostra lo stack completo dei protocolli sottostanti connessione di rete in Internet.

I nodi, dal punto di vista della rete, sono fonti e destinatari di informazioni. I quattro livelli inferiori sono collettivamente indipendenti dal tipo di informazioni trasmesse. Ogni applicazione di rete che comunica con il quarto livello è identificata dal suo numero unico porto. I valori delle porte vanno da 0 a 65535. In questo intervallo, i numeri di porta 0-1023 sono assegnati a porte note, i numeri di porta 1024-49151 sono utilizzati da sviluppatori di software specializzati, i numeri di porta 49152-65535 sono assegnati dinamicamente alle applicazioni di rete utenti durante la sessione. I valori numerici dei numeri di porta dello stack sono forniti in formato .

Il livello di trasporto (quarto) supporta due modalità di comunicazione

– con e senza realizzazione del collegamento. Ciascuna delle modalità è identificata dal suo numero di protocollo (Protocollo). Negli standard Internet è accettata la codifica in codice esadecimale. La prima modalità è utilizzata dal modulo TCP, che ha il codice di protocollo 6 (in codice esadecimale - 0x06) ed è utilizzato per il trasporto garantito delle informazioni. Per fare ciò, ogni pacchetto trasmesso viene fornito con un numero di sequenza e deve essere riconosciuto.

______________________________________________________________________________

dalla parte ricevente circa la sua corretta ricezione. La seconda modalità è utilizzata dal modulo UDP senza garanzia di consegna delle informazioni al destinatario (la garanzia di consegna è fornita dall'applicazione). Il protocollo UDP ha il codice 17 (in codice esadecimale - 0x11).

Applicato

Rappresentante

sessione

DHCP (Porta=67/68)

Trasporto

protocollo=0x0059

protocollo=0x0002

protocollo=0x0001

Tipo di protocollo = 0x0806

Tipo di protocollo = 0x0800

canalizzato

canalizzato

canalizzato

Fisico

canalizzato

Cavo, doppino intrecciato Ethernet, fibra ottica

Cavo fisico, doppino intrecciato, fibra ottica

Fisico

Cavo, doppino intrecciato, fibra ottica

Fisico

Cavo, radio, fibra

Riso. 1.3. Pila di protocollo di base Internet

______________________________________________________________________________

Il (terzo) livello di rete garantisce il movimento delle informazioni sotto forma di pacchetti tra le reti (interfacce del livello di collegamento) utilizzando un indirizzo di rete. La famiglia di protocolli di livello 3 è identificata dal tipo di protocollo (ARP - tipo 0x0806 o IP - tipo 0x0800) dai livelli sottostanti. L'accoppiamento protocollo-indirizzo di rete-numero di porta è chiamato socket. Una coppia di prese - trasmissione e ricezione - identifica in modo univoco una connessione stabilita. L'indirizzo di destinazione di ciascun pacchetto che entra nel modulo IP dal livello di collegamento viene analizzato per determinare se il pacchetto debba essere inoltrato alla propria applicazione o spostato su un'altra interfaccia per un ulteriore trasporto sulla rete.

Il secondo livello (canale) elabora i pacchetti nella rete locale utilizzando varie tecnologie: Ethernet, Token Ring, FDDI e altre. Il primo livello prevede la conversione dei codici binari in codici lineari, più adatti al mezzo di trasporto utilizzato (cavo metallico, linea in fibra ottica comunicazioni, radio).

DOMANDE PER LA SEZIONE 1.3

1. Cosa determina i mezzi del livello di rete per l'elaborazione dei pacchetti provenienti dal livello di collegamento?

Risposta. Tipo di protocollo: 0x0806 per ARP e 0x0800 per IP.

2. Cosa determina i mezzi strato di trasporto elaborare i pacchetti provenienti dal livello di rete?

Risposta. Numero di protocollo: 0x0006 per TCP e 0x0011 per UDP.

3. Cosa determina il tipo di applicazione di rete per l'elaborazione dei datagrammi?

Risposta. Numero di porta.

4. Fornire esempi di numeri di porta per applicazioni a livello di rete.

Risposta: la porta 80 è HTTP, la porta 23 è TELNET, la porta 53 è DNS.

1.4. Protocolli di accesso a Internet

Per accedere a Internet, viene utilizzata una famiglia di protocolli sotto il nome generico PPP (Point-to-Point Protocol), che comprende:

1. Link Control Protocol (LCP) per la negoziazione dei parametri di scambio dei pacchetti a livello di collegamento nella sezione del server di accesso alla rete host (in particolare, per la negoziazione della dimensione del pacchetto e del tipo di protocollo di autenticazione).

2. Protocollo di autenticazione per stabilire la legittimità dell'utente (in particolare, utilizzando il Challenge Handshake Authentication Protocol - CHAP).

3. Network Control Protocol (IP Control Protocol - IPCP) per la configurazione dei parametri di comunicazione di rete (in particolare, l'assegnazione indirizzi IP).

Successivamente, inizia lo scambio di informazioni tramite il protocollo IP.

Ciascuno di questi protocolli può utilizzare qualsiasi mezzo di trasporto, quindi esistono molti modi per incapsulare PPP a livello fisico. Per incapsulare PPP in collegamenti punto-punto, una procedura simile a

HDLC.

Lo scambio di frame utilizzando una procedura simile a HDLC (procedura di controllo del collegamento dati di alto livello) comporta uno scambio di frame duplex. Ogni frame trasmesso deve essere riconosciuto, se non viene ricevuto alcun riconoscimento entro il timeout, il trasmettitore ritrasmette. La struttura del telaio è mostrata in fig. 1.4. L'ordine di trasmissione dei campi del frame è da sinistra a destra. Lo scopo dei campi frame è il seguente.

Yu.F.Kozhanov, Kolbanev M.O INTERFACCE E PROTOCOLLI DI RETI DI PROSSIMA GENERAZIONE

______________________________________________________________________________

Riso. 1.4. Struttura del campo frame HDLC

Ogni frame trasmesso deve iniziare e terminare con una combinazione "Flag" (Flag), avente una struttura di bit della forma 01111110 (0x7e). La stessa combinazione "Bandiera" può essere utilizzata come chiusura per un telaio e apertura per il telaio successivo. Le combinazioni di flag devono essere rilevate dal lato ricevente per determinare i confini del frame. Per garantire il trasferimento di informazioni indipendente dal codice, è necessario escludere dai successivi campi del frame tutte le combinazioni che corrispondono ai caratteri di servizio (ad esempio, la combinazione "Flag").

A In modalità asincrona tutti i campi del frame sono formati byte per byte, ogni byte è preceduto da un bit di “start” e termina con un bit di “stop”.

A viene utilizzata la modalità sincrona inserimento di byte o inserimento di bit. Nel primo caso, le sequenze di byte 0x7e ("Flag") vengono sostituite nei campi frame con 2 byte 0x7d e 0x5e, 0x7d con 0x7d e 0x5d, 0x03 con 0x7d e 0x23. Nel secondo caso, dopo la formazione di tutti i campi del frame, il contenuto di ogni frame viene scandito bit per bit tra le combinazioni di "Flag" e viene inserito un bit "zero" dopo ogni cinque bit "uno" adiacenti. Durante la decodifica di un frame alla ricezione, viene eseguita una scansione bit per bit del contenuto del frame tra le combinazioni "Flag" e la rimozione del bit "zero" dopo ogni cinque bit "uno" adiacenti.

Il campo dell'indirizzo (Address) ha un valore costante di 11111111 (0xff) e il campo di controllo (Control) ha un valore di 00000011 (0x03).

Il campo protocollo assume il valore 0xc021 per il protocollo LCP, 0xc223 per il protocollo CHAP, 0x8021 per IPCP e 0x0021 per il protocollo IP.

La compilazione del campo informazioni dipende dal tipo di protocollo, ma la sua lunghezza non deve essere inferiore a 4 byte.

La sequenza di controllo (Frame Check Sequence, FCS) sulla trasmissione è formata in modo tale che a) quando si moltiplicano le informazioni tra i flag per X16 e b) quindi si divide il modulo 2 per il polinomio generatore X16 + X12 + X5 + 1, il risultato sarebbe essere uguale a un numero costante 0xf0b8.

La procedura per l'accesso dell'abbonato PSTN a Internet consiste in diverse fasi. Il primo passaggio utilizza il protocollo LCP (protocollo = 0xc021), che

utilizza il seguente formato (Figura 1.5).

Riso. 1.5. Formato frame LCP

Il campo protocollo assume il valore 0xc021. Ogni messaggio è caratterizzato dal suo codice (Code), numero seriale (ID), lunghezza (Length). La lunghezza del messaggio include tutti i campi da Codice a FCS. Un messaggio può contenere più parametri, ognuno dei quali è caratterizzato dal tipo di parametro (Type),

lunghezza (Length) e data (Data).

(Configure-Nak), 04 - rifiuto della configurazione (Configure-Reject), 05 - richiesta di terminazione (Terminate-Request), 06 - conferma di terminazione (Terminate-Ack).

In fig. 1.6.

______________________________________________________________________________

La Figura 1.6 mostra che inizialmente l'host ha richiesto una connessione utilizzando il protocollo LCP (Protocollo = 0xc021) con i parametri MTU=300, PFC=7, ma a seguito della loro negoziazione con il server di accesso NAS (Codice=02), il parametri MTU=200 (MTU - dimensione massima del pacchetto in byte), protocollo di autenticazione - CHAP (Auth.prot=c223). Lo scambio di intestazioni compresse (PFC=7) è stato rifiutato dal server di accesso NAS (codice=04).

Tipo = 3, indirizzo IP = a.b.c.d, maschera,

Protocollo=0xc021, codice=04,

Protocollo=0xc021, codice=01,

Tipo=1, MTU=300

Protocollo=0xc021, codice=03,

Tipo=1, MTU=200

Protocollo=0xc021, codice=01,

Tipo=1, MTU=200

Protocollo=0xc021, codice=02,

Tipo=1, MTU=200

Protocollo=0xc021, codice=01,

Protocollo=0xc021, codice=02,

Tipo = 3, Auth.prot=0xc223, Algoritmo=5

Protocollo=0xc223, codice=01,

Protocollo=0xc223, codice=02,

Prot=UDP, codice=01,

Nome=ABC, Valore=W

Auth=0, Attr=Nome, Chall=V

Prot=UDP, codice=02,

Indirizzo IP=a.b.c.d , Maschera,

Prot=UDP, codice=05, Dati

Protocollo = 0x0021, ...

Protocollo=0x0021, ...

Protocollo=0xc021, codice=05,

1994, DS]. L'essenza della procedura di autenticazione è che il NAS invia un numero casuale V all'host e l'host restituisce un altro numero W calcolato da una funzione precedentemente nota utilizzando il nome (Nome) e la password (Password), che vengono inseriti dall'utente nel computer dalla scheda Internet acquistata dal provider. In altre parole, W=f(V, Nome, Password). Si presume che un utente malintenzionato (hacker) sia in grado di intercettare i valori di V, Nome e W inviati in rete e conosca l'algoritmo per il calcolo della funzione f. L'essenza della formazione di W è che gli elementi iniziali (bit) del numero casuale V sono "mescolati" in vari modi con gli elementi della password Password sconosciuta all'attaccante. Il testo cifrato risultante viene quindi compresso, ad esempio aggiungendo i byte modulo due. Tale trasformazione è chiamata funzione digest o funzione hash e il risultato è chiamato digest. La procedura esatta per generare un digest è definita dall'algoritmo MD5 ed è descritta in . Il NAS interroga il server AAA per il vero valore di W tramite il protocollo RADIUS, inviandogli i valori Name e Challenge=V. Sulla base dei valori V e Name ricevuti dal NAS e della password Password che ha nel database, il server AAA calcola W utilizzando lo stesso algoritmo e lo invia al NAS. Il NAS confronta i due valori W ricevuti dall'host e dal server AAA: se corrispondono, viene inviato all'host un messaggio di autenticazione riuscita - Success (Code=03).

Nella terza fase, i parametri di rete vengono configurati utilizzando il protocollo IPCP (noto anche come PPP IPC, Protocol=0x8021). L'host richiede indirizzi IP di rete dal NAS e il NAS alloca un indirizzo IP dal pool (intervallo) per l'host (IP-address=a.b.c.d) e

riporta anche l'indirizzo IP del server DNS (IP-address=e.f.g.h). NAS su protocollo RADIUS

invia una notifica (Codice=04) al server AAA dell'inizio della fatturazione e riceve una conferma (Codice=05).

Nella 4a fase, l'utente avvia una sessione di comunicazione con Internet utilizzando il protocollo IP (Protocollo = 0x0021).

Dopo che la sessione è terminata (passo 5), l'utente invia un messaggio di terminazione della connessione (codice=05) al NAS tramite il protocollo LCP, il NAS riconosce questo messaggio (codice=06), invia una notifica di fine fatturazione al server AAA e ne riceve un riconoscimento. Tutti i dispositivi vengono riportati al loro stato originale.

DOMANDE PER LA SEZIONE 1.4

1. Denominare la composizione e lo scopo della famiglia di protocolli PPP.

Risposta. LCP - per negoziare i parametri di scambio dei pacchetti, CHAP - per stabilire la legittimità dell'utente, IPCP - per assegnare un indirizzo IP.

2. Il protocollo PPP fornisce il rilevamento degli errori e la consegna dei pacchetti in ordine?

Risposta. Rilevamento errori - sì, consegna in ordine - no, questo è fornito dal protocollo TCP.

3. Dove vengono archiviati i dati di autenticazione dell'utente?

Risposta. Nella scheda Internet e sul server AAA.

4. È possibile predeterminare l'indirizzo IP dell'utente prima di stabilire una connessione al server NAS?

Risposta: No. Dopo l'autenticazione riuscita, il NAS emette un indirizzo IP libero dall'intervallo di indirizzi assegnati.

5. Quali metodi vengono utilizzati per tenere conto del costo delle connessioni Internet? Risposta: di solito c'è un canone di abbonamento o un addebito sul volume.

Lo stack di protocolli, o nel linguaggio comune TCP/IP, è l'architettura di rete dei dispositivi moderni progettati per utilizzare la rete. Stack è un muro in cui ogni mattone costituente giace sopra un altro, dipende da esso. Chiamare lo stack del protocollo "stack TCP/IP" è dovuto ai due protocolli principali che sono stati implementati: l'IP stesso e il TCP basato su di esso. Tuttavia, sono solo i principali e i più comuni. Se non centinaia, dozzine di altri vengono utilizzati fino ad oggi per vari scopi.

Il web a cui siamo abituati (world wide web) si basa sull'HTTP (hyper-text transfer protocol), che a sua volta funziona sulla base del TCP. Questo è un classico esempio di utilizzo dello stack di protocollo. Esistono anche protocolli di posta elettronica IMAP/POP e SMTP, protocolli shell remota SSH, protocolli desktop remoto RDP, Dati MySQL, SSL/TLS e migliaia di altre applicazioni con i loro protocolli (..)

Qual è la differenza tra tutti questi protocolli? Tutto è abbastanza semplice. Oltre ai vari obiettivi fissati durante lo sviluppo (ad esempio, velocità, sicurezza, stabilità e altri criteri), vengono creati protocolli a scopo di differenziazione. Ad esempio, esistono protocolli a livello di applicazione che sono diversi per applicazioni diverse: IRC, Skype, ICQ, Telegram e Jabber sono incompatibili tra loro. Sono progettati per eseguire un'attività specifica e, in questo caso, la possibilità di chiamare WhatsApp in ICQ semplicemente non è definita tecnicamente, poiché le applicazioni utilizzano un protocollo diverso. Ma i loro protocolli sono basati sullo stesso protocollo IP.

Un protocollo può essere definito una sequenza pianificata e regolare di azioni in un processo in cui sono presenti diversi attori, nella rete sono chiamati peer (partner), meno spesso - un client e un server, sottolineando le caratteristiche di un particolare protocollo. L'esempio più semplice Il protocollo per chi ancora non capisce è una stretta di mano durante una riunione. Entrambi sanno come e quando, ma la domanda sul perché è già una questione di sviluppatori, non di utenti del protocollo. A proposito, c'è una stretta di mano in quasi tutti i protocolli, ad esempio, per garantire la differenziazione del protocollo e la protezione contro il "volo sull'aereo sbagliato".

Ecco cos'è TCP / IP sull'esempio dei protocolli più popolari. La gerarchia delle dipendenze è mostrata qui. Devo dire che le applicazioni utilizzano solo i protocolli specificati, che possono o meno essere implementati all'interno del sistema operativo.

Se assolutamente, assolutamente linguaggio sempliceè il servizio postale.

Ogni membro di una rete compatibile con IP ha il proprio indirizzo, che assomiglia a questo: 162.123.058.209. In totale, ci sono 4,22 miliardi di tali indirizzi per il protocollo IPv4.

Supponiamo che un computer voglia comunicare con un altro e inviargli un pacco, un "pacchetto". Si rivolgerà al "servizio postale" TCP/IP e le consegnerà il suo pacco, indicando l'indirizzo al quale dovrà essere recapitato. A differenza degli indirizzi nel mondo reale, spesso vengono assegnati gli stessi indirizzi IP computer diversi a sua volta, il che significa che il "postino" non sa dove si trova fisicamente computer desiderato, quindi invia il pacco all '"ufficio postale" più vicino, alla scheda di rete del computer. Forse ci sono informazioni su dove si trova il computer desiderato, o forse tali informazioni non sono presenti. Se lei non c'è, per tutto il venire " uffici postali" (scambia) viene inviata una richiesta di indirizzo. Questo passaggio viene ripetuto da tutti gli "uffici postali" fino a quando non trovano l'indirizzo desiderato, mentre ricordano quanti "uffici postali" è passata prima di loro e se è andata a buon fine un certo numero (abbastanza grande) di loro , quindi verrà restituito con una nota "indirizzo non trovato" Il primo "ufficio postale" riceverà presto una serie di risposte da altri "uffici" con opzioni per le modalità per il destinatario Se non viene trovato un solo percorso sufficientemente breve (solitamente 64 inoltri, ma non più di 255), il pacco verrà rispedito al mittente.Se vengono trovati uno o più percorsi, il pacco verrà trasferito lungo il percorso più breve di essi, mentre gli "uffici postali" ricorderanno per un po' questo percorso, permettendo di trasferire velocemente i successivi pacchi senza chiedere a nessuno l'indirizzo. Dopo la consegna, il "postino" costringerà necessariamente il destinatario a firmare una "ricevuta" attestante di aver ricevuto il pacco e consegnare questa "ricevuta" al mittente come prova che il pacco è stato consegnato valido - il controllo della consegna in TCP è obbligatorio. Se il mittente non riceve tale ricevuta dopo un certo periodo di tempo, o la ricevuta indica che il pacco è stato danneggiato o perso durante la spedizione, tenterà di inviare nuovamente il pacco.

TCP/IP è un insieme di protocolli.

Il protocollo è la regola. Ad esempio, quando vieni salutato, saluti in risposta (e non salutare o non vuoi la felicità). I programmatori diranno che usiamo il protocollo hello, per esempio.

Che tipo di TCP / IP (ora sarà abbastanza semplice, non bombardare i tuoi colleghi):

informazioni prima del tuo compa va via cavo (radio o altro - non importa). Se una corrente è stata fatta passare attraverso i fili, significa 1. Spento, significa 0. Risulta 10101010110000 e così via. 8 zeri e uno (bit) è un byte. Ad esempio 00001111. Questo può essere rappresentato come un numero in forma binaria. In forma decimale, un byte è un numero compreso tra 0 e 255. Questi numeri corrispondono a lettere. Ad esempio 0 è A, 1 è B. (Questo è chiamato codifica).

Così. Affinché due computer possano trasmettere efficacemente le informazioni sui cavi, devono fornire corrente secondo alcune regole: i protocolli. Ad esempio, devono concordare la frequenza con cui la corrente può essere modificata in modo che uno 0 possa essere distinto da un secondo 0.

Questo è il primo protocollo.

I computer in qualche modo capiscono che uno di loro ha smesso di fornire informazioni (come "ho detto tutto"). Per fare ciò, all'inizio della sequenza di dati 010100101 i computer possono inviare alcuni bit, la lunghezza del messaggio che vogliono inviare. Ad esempio, i primi 8 bit potrebbero indicare la lunghezza del messaggio. Cioè, prima, nei primi 8 bit, viene trasmesso il numero codificato 100 e poi 100 byte. Il computer ricevente attenderà quindi i successivi 8 bit e il messaggio successivo.

Qui abbiamo un altro protocollo, con il suo aiuto puoi inviare messaggi (computer).

Esistono molti computer in modo che possano capire chi deve inviare un messaggio utilizzando indirizzi di computer univoci e un protocollo che consente di capire a chi è indirizzato questo messaggio. Ad esempio, i primi 8 bit indicheranno l'indirizzo del destinatario, i successivi 8 - la lunghezza del messaggio. E poi un messaggio. Abbiamo appena inserito un protocollo in un altro. Il protocollo IP è responsabile dell'indirizzamento.

La comunicazione non è sempre affidabile. Per una consegna affidabile dei messaggi (computer) utilizzare TCP. Quando si esegue il protocollo TCP, i computer si chiederanno nuovamente se hanno ricevuto il messaggio corretto. C'è anche UDP: questo è quando i computer non chiedono più se l'hanno ricevuto. Perché è necessario? Qui stai ascoltando la radio su Internet. Se un paio di byte arrivano con errori, sentirai, ad esempio, "psh" e poi di nuovo musica. Non fatale e non particolarmente importante: per questo viene utilizzato UDP. Ma se un paio di byte vengono danneggiati durante il caricamento del sito, otterrai schifezze sul monitor e non capirai nulla. Il sito utilizza TCP.

TCP/IP (UDP/IP) sono protocolli nidificati che eseguono Internet. Alla fine, questi protocolli consentono di trasmettere un messaggio informatico in un unico pezzo ed esattamente all'indirizzo.

C'è anche il protocollo http. La prima riga è l'indirizzo del sito, le righe successive sono il testo che invii al sito. Tutte le righe http sono di testo. Che viene inserito in TCP un messaggio indirizzato tramite IP e così via.

Rispondere

pila di protocolliè un insieme organizzato gerarchicamente di protocolli di rete, sufficienti per organizzare l'interazione dei nodi nella rete. I protocolli funzionano contemporaneamente sulla rete, il che significa che il lavoro dei protocolli deve essere organizzato in modo tale che non vi siano conflitti o operazioni incomplete. Pertanto, lo stack del protocollo è suddiviso in livelli costruiti gerarchicamente, ognuno dei quali svolge un'attività specifica: preparazione, ricezione, trasmissione di dati e azioni successive con essi.

Il numero di livelli in uno stack varia in base allo stack di protocollo specifico. I protocolli di livello inferiore sono spesso implementati in una combinazione di software e hardware, mentre i protocolli di livello superiore sono generalmente implementati nel software.

Esiste un numero sufficiente di stack di protocollo ampiamente utilizzati nelle reti. Gli stack di protocollo più popolari sono: OSI dell'Organizzazione internazionale per la standardizzazione, TCP/IP, utilizzato su Internet e in molte reti basate sul sistema operativo UNIX, IPX/SPX di Novell, NetBIOS/SMB, sviluppato da Microsoft e IBM, DECnet di Digital Equipment Corporation, SNA di IBM e alcuni altri.

YouTube enciclopedico

    1 / 3

    Fondamenti di reti di dati. Modello OSI e stack di protocollo TCP IP. Nozioni di base sull'Ethernet.

    pila di protocolli

    Informatica. Tecnologie di rete: stack di protocollo OSI. Centro di apprendimento online Foxford

    Sottotitoli

Stack di protocolli di comunicazione standard

OSI

È importante distinguere Modello OSI e Pila di protocolli OSI. Mentre il modello OSI è un diagramma concettuale di come interagiscono i sistemi aperti, lo stack OSI è un insieme di specifiche specifiche del protocollo.

A differenza di altri stack di protocollo, lo stack OSI è completamente conforme al modello OSI, comprese le specifiche del protocollo per tutti e sette i livelli di comunicazione definiti in questo modello:

  • Sul fisico e strati di collegamento Lo stack OSI supporta i protocolli Ethernet, Token ring, FDDI, nonché i protocolli LLC, X.25 e ISDN, ovvero utilizza tutti i comuni protocolli di livello inferiore sviluppati al di fuori dello stack, come la maggior parte degli altri stack.
  • livello di rete include il protocollo di rete orientato alla connessione (CONP) e il protocollo di rete senza connessione (CLNP) usati relativamente raramente. Come suggeriscono i nomi, il primo è orientato alla connessione, il secondo no (senza connessione). Più diffusi sono i protocolli di instradamento dello stack OSI: ES-IS (End System - Intermediate System) tra il sistema finale e quello intermedio e IS-IS (Intermediate System - Intermediate System) tra i sistemi intermedi.
  • strato di trasporto Lo stack OSI, in conformità con le funzioni definite per esso nel modello OSI, nasconde le differenze tra servizi di rete orientati alla connessione e senza connessione, in modo che gli utenti ricevano la qualità del servizio richiesta indipendentemente dal livello di rete sottostante. Per garantire ciò, il livello di trasporto richiede all'utente di specificare la quantità desiderata di manutenzione.
  • Servizi strato di applicazione fornire trasferimento di file, emulazione di terminale, servizi di directory e posta. Di questi, i più popolari sono Directory Service (standard X.500), E-mail (standard X.400), Virtual Terminal Protocol (VTP), File Transfer, Access and Control Protocol (FTAM), Job Transfer and Management Protocol ( JTM).

TCP/IP

Lo stack del protocollo TCP/IP è l'insieme dei protocolli di rete su cui si basa Internet. In genere, nello stack TCP / IP, i primi 3 livelli (applicazione, presentazione e sessione) del modello OSI sono combinati in un'unica applicazione. Poiché tale stack non fornisce un protocollo di trasferimento dati unificato, le funzioni per determinare il tipo di dati vengono trasferite all'applicazione.

Livelli di stack TCP/IP:

  1. Livello di collegamento descrive come i pacchetti di dati vengono trasmessi attraverso il livello fisico, inclusa la codifica (ovvero speciali sequenze di bit che determinano l'inizio e la fine di un pacchetto di dati).
  2. livello di rete originariamente progettato per trasferire dati da una (sotto)rete a un'altra. Esempi di tale protocollo sono X.25 e IPC su ARPANET. Con lo sviluppo del concetto di rete globale, è stato introdotto il livello caratteristiche aggiuntive per la trasmissione da qualsiasi rete a qualsiasi rete, indipendentemente dai protocolli di livello inferiore, nonché la possibilità di richiedere dati da un lato remoto.
  3. Protocolli strato di trasporto può risolvere il problema della consegna non garantita del messaggio ("il messaggio è arrivato al destinatario?"), E garantire anche la corretta sequenza di arrivo dei dati.
  4. Sul strato di applicazione la maggior parte delle applicazioni di rete funziona. Questi programmi hanno i propri protocolli di comunicazione, come HTTP per WWW, FTP (trasferimento di file), SMTP (e-mail), SSH (connessione sicura a una macchina remota), DNS (traduzione da carattere a indirizzo IP) e molti altri .

C'è disaccordo su come adattare il modello TCP/IP al modello OSI, perché i livelli nei modelli non sono gli stessi. Un'interpretazione semplificata dello stack TCP/IP può essere rappresentata come segue:

OSI TCP/IP
7. Applicato HTTP, FTP, Telnet, SMTP, DNS (RIP su UDP e BGP su TCP fanno parte del livello di rete), LDAP Applicato
6. Contributi
5. Sessione
4. Trasporto TCP, UDP, RTP, NCP) e il Service Advertising Protocol (SAP).

NetBIOS/SMB

Ai livelli fisico e di collegamento dati di questo stack sono coinvolti anche i protocolli già diffusi, come Ethernet, Token Ring, FDDI, e ai livelli superiori i protocolli specifici NetBEUI (NetBEUI Extended User Interface Protocol) e SMB. NetBEUI è stato progettato come protocollo efficiente e con poche risorse per reti con un massimo di 200 workstation. Questo protocollo contiene molte utili funzionalità di rete che possono essere attribuite ai livelli di trasporto e di sessione del modello OSI, ma non può essere utilizzato per instradare i pacchetti. Ciò limita l'utilizzo del protocollo NetBEUI reti locali, non suddiviso in sottoreti e ne rende impossibile l'utilizzo in reti composite.

Il protocollo Server Message Block (SMB) supporta le funzioni del livello di sessione, del livello di presentazione e del livello dell'applicazione. Basato su SMB, il servizio file è implementato. nonché servizi di stampa e messaggistica tra le applicazioni.