tcp ip model with different layers
Una guida completa ai livelli del modello TCP / IP:
Abbiamo imparato tutto Protezione firewall nel nostro precedente tutorial. Qui, in questo tutorial impareremo a conoscere il modello TCP / IP.
Il modello TCP / IP si riferisce al protocollo di controllo della trasmissione e al protocollo Internet.
L'attuale modello Internet utilizza questo modello di rete per scopi di comunicazione. Leggi il file Esercitazioni di formazione sulla rete per una chiara comprensione del concetto.
Questi protocolli sono semplicemente una combinazione delle regole che regolano ogni comunicazione sulla rete. Questi, a loro volta, decidono il percorso da seguire per la comunicazione tra la sorgente e la destinazione o Internet.
Il modello TCP / IP è costituito da quattro livelli che concludono il processo di comunicazione generale. In questo tutorial, daremo uno sguardo approfondito alla funzionalità di ogni livello.
In qualità di tester del software, è necessario entrare in empatia con il modello TCP / IP, poiché le applicazioni software funzionano sul livello superiore, ovvero il livello dell'applicazione di questo modello.
Cosa imparerai:
Architettura di rete
L'architettura a quattro livelli è la seguente:
I protocolli e le reti utilizzati in questo modello di rete sono mostrati nella figura seguente:
Riassumiamo i protocolli e gli usi principali di ogni livello nel modello TCP / IP con l'aiuto del diagramma sottostante.
come convertire i video di YouTube in file wav
Funzioni di ogni livello nel modello TCP / IP
Di seguito sono elencate le varie funzioni di ogni livello nel modello TCP / IP.
Livello di accesso alla rete
Di seguito vengono fornite le funzioni del livello di accesso alla rete:
- Questo è il livello inferiore del modello TCP / IP e include tutte le funzionalità del livello fisico e del livello di collegamento dati del modello di riferimento OSI.
- Quindi caratterizza i protocolli, l'hardware e i media da utilizzare per la comunicazione.
- I pacchetti di dati dal livello Internet vengono passati a questo livello per essere inviati alla destinazione su un supporto fisico.
- Il compito principale di questo livello è combinare i byte di dati in frame e fornire un meccanismo per la trasmissione di frame di dati IP sul supporto fisico.
- Punto a punto (PPP) è il protocollo utilizzato per creare un collegamento punto a punto sulle linee affittate. Viene inoltre implementato per fornire connettività tra l'utente finale e i provider di servizi Internet tramite modem. Supporta anche il provisioning degli indirizzi IP tramite collegamenti PPP.
- La maggior parte degli utenti finali preferisce un collegamento Ethernet che funziona solo su protocollo di collegamento dati Ethernet. Viene così creato PPP over Ethernet che consente l'invio dei frame di dati incapsulati all'interno di frame Ethernet.
- PPPoE inizialmente crea un tunnel tra i dispositivi di rete dell'utente finale come router e router ISP. Quindi il router invia frame PPP su quel tunnel poiché il tunnel funziona come un collegamento punto a punto tra i router. Ora i dati vengono trasmessi anche su reti WAN grazie a questa tecnologia.
- PPP utilizza anche il processo di autenticazione per verificare la responsabilità per l'uso dei dati con gli ISP. I metodi includono il protocollo PAP (password authentication protocol) e il protocollo CHAP (channel handshake authentication).
Livello Internet
- Il secondo livello dal basso è il livello Internet.
- Una volta che i dati sono stati segmentati da TCP o UDP aggiungendo le intestazioni corrispondenti nel pacchetto di dati, li invierà al livello inferiore per ulteriori comunicazioni.
- L'host di destinazione a cui è destinato il pacchetto di dati può risiedere in qualche altra rete il cui percorso può essere raggiunto passando attraverso vari router. È compito del livello Internet assegnare gli indirizzi logici e instradare i pacchetti di dati in modo efficiente alla rete di destinazione.
- Il livello Internet (IP) è il protocollo più popolare utilizzato per eseguire questa operazione.
Protocollo Internet
Lo scopo di questo protocollo è quello di instradare i pacchetti di dati alla destinazione secondo le informazioni nell'intestazione del pacchetto seguendo una serie di protocolli.
Aggiungendo un'intestazione che ha l'indirizzo IP dell'origine e della destinazione, il segmento ricevuto da TCP o UDP viene convertito in PDU noto come pacchetto. Quando il pacchetto arriva al router, esamina l'indirizzo di destinazione nell'intestazione e quindi inoltra il pacchetto di conseguenza al router successivo per raggiungere la destinazione.
Comprendiamo questo con un esempio:
Nella figura seguente, quando l'host A desidera comunicare con l'host B, non utilizzerà alcun protocollo di routing poiché entrambi si trovano nello stesso intervallo di rete con gli indirizzi IP dello stesso set.
Ma se l'Host A vuole inviare un pacchetto all'Host C, con l'aiuto del protocollo scopre che l'host di destinazione è di un'altra rete. Pertanto, il formato di cui sopra cercherà nella tabella di instradamento per trovare l'indirizzo del salto successivo per raggiungere la destinazione.
In questo caso, l'host A raggiungerà l'host C tramite i router A, B e C. Poiché il router C è direttamente connesso a una rete di destinazione tramite uno switch, il pacchetto viene consegnato all'host C.
Il router ottiene tutte le informazioni relative al routing dai campi dell'intestazione IP. Il livello di rete di TCP / IP (livello di collegamento dati) sarà responsabile della consegna end-to-end dei pacchetti di dati.
Flusso di pacchetti nel protocollo Internet
Intestazione IPV4
- Versione: L'IPV4 ha il numero di versione 4.
- Lunghezza intestazione: Mostra la dimensione dell'intestazione.
- Campo DS: Il campo DS sta per campo dei servizi differenziati ed è utilizzato per la costruzione di pacchetti.
- Lunghezza totale: Indica la dimensione dell'intestazione più la dimensione del pacchetto di dati.
- Identificazione: Questo campo viene utilizzato per la frammentazione dei pacchetti di dati e per l'allocazione di ogni campo e quindi aiuta a costruire il pacchetto di dati originale.
- Bandiere: Usato per denotare la procedura di frammentazione.
- Scostamento del frammento: Indica il numero di frammento e l'host di origine che li utilizza per riorganizzare i dati frammentati nell'ordine corretto.
- Ora di andare: Questo è impostato all'estremità dell'host di origine.
- Protocollo: Denota il protocollo utilizzato per la trasmissione dei dati. TCP ha il numero di protocollo 6 e UDP il numero di protocollo 17.
- Checksum intestazione: Questo campo viene utilizzato per il rilevamento degli errori.
- Indirizzo IP di origine: Salva l'indirizzo IP dell'host di origine.
- Indirizzo IP di destinazione: Salva l'indirizzo IP dell'host di destinazione.
Ne discuteremo in dettaglio, nei nostri prossimi tutorial.
Livello di trasporto
- Questo è il terzo livello dal basso in quanto è responsabile del trasferimento complessivo dei dati ed è utile per stabilire una connettività logica end-to-end tra l'host di origine e di destinazione ei dispositivi in una rete.
- Per eseguire queste attività vengono utilizzati due protocolli:
- Il primo è il protocollo di controllo della trasmissione (TCP), che è un protocollo affidabile e basato sulla connessione.
- Il secondo è il protocollo UDP (User Datagram Protocol), che è un protocollo senza connessione.
- Prima di esplorare questi due protocolli in profondità, discuteremo il concetto di NUMERO DI PORTA che viene utilizzato da entrambi questi protocolli.
Numero di porta:
In una rete, un dispositivo host può inviare o ricevere traffico da più sorgenti contemporaneamente.
In una tale situazione, il sistema non riconoscerà a quale delle applicazioni appartengono i dati. I protocolli TCP e UDP risolvono questi problemi inserendo un numero di porta nelle intestazioni. I noti protocolli del livello di applicazione vengono assegnati con il numero di porta compreso tra 1 e 1024.
All'estremità di origine, ogni sessione TCP o UDP viene assegnata con un numero di porta casuale. L'indirizzo IP, il numero di porta e il tipo di protocollo utilizzati in combinazione riformano un socket sia all'estremità di origine che a quella di destinazione. Poiché ogni socket è esclusivo, diversi host possono inviare o ricevere traffico nello stesso intervallo di tempo.
La tabella seguente mostra il numero di porta assegnato a diversi protocolli del livello di applicazione corrispondenti al protocollo del livello di trasporto.
Protocollo applicativo | Protocollo di trasporto | Numero di porta |
---|---|---|
DNS | TCP, UDP | 53 |
HTTP | TCP | 80 |
HTTPS | TCP | 443 |
FTP (controllo) | TCP | ventuno |
FTP (dati) | TCP | venti |
SSH | TCP | 22 |
Telnet | TCP | 2. 3 |
SMTP | TCP | 25 |
TFTP | UDP | 69 |
Sessione multipla utilizzando il numero di porta
TCP
- Ogni volta che il livello dell'applicazione deve far circolare il flusso di un enorme traffico o dati, lo invia al livello di trasporto in cui il TCP esegue tutta la comunicazione end-to-end tra le reti.
- TCP inizialmente imposta un processo di handshake a tre vie tra l'origine e la destinazione, quindi suddivide i dati in piccoli blocchi noti come segmenti e include un'intestazione in ogni segmento e quindi li inoltra al livello Internet.
La figura seguente mostra il formato dell'intestazione TCP.
- Stretta di mano a tre vie: È il processo implementato da TCP per stabilire una connessione tra l'host di origine e quello di destinazione nella rete. Viene utilizzato per eseguire una trasmissione dati affidabile. Distribuisce flag SYN e ACK dei bit di codice dell'intestazione TCP per eseguire l'attività. Fornisce una comunicazione affidabile eseguendo un riconoscimento positivo con ritrasmissione ed è anche noto come PAR. Il sistema che utilizza PAR ritrasmetterà il segmento di dati finché non riceve l'ACK. Ogni volta che il destinatario scarta i dati, il mittente deve ritrasmettere i dati fino a quando non riceve l'ACK positivo dal destinatario.
Ci sono 3 fasi di handshaking a tre vie, che sono le seguenti:
- Passo 1: L'host di origine A vuole stabilire una connessione con l'host di destinazione B, trasmette un segmento con SYN e numero di sequenza, che denota che l'host A vuole iniziare una sessione di comunicazione con l'Host B e con quale numero di sequenza è definito in quel segmento.
- Passo 2: L'host B risponde alla richiesta dell'host A con SYN e ACK impostati nel bit di segnale. ACK denota la risposta del segmento ricevuto e SYN denota il numero di sequenza.
- Passaggio 3: L'host A riconosce la risposta dall'host B ed entrambi stabiliscono una connessione sicura tra di loro e quindi iniziano la trasmissione dei dati su di esso.
Come descritto nella figura seguente, nel processo di handshake a tre vie, in primo luogo l'host di origine invia un'intestazione TCP all'host di destinazione impostando il flag SYN. In risposta, ottiene di nuovo il SYN e il flag di riconoscimento impostati. L'host di destinazione utilizza il numero di sequenza ricevuto più 1 come numero di riconoscimento.
TCP IP supporta il modello client-server del sistema di comunicazione.
Processo di stretta di mano a tre vie
- Segmentazione dei dati :
- Questa è una delle caratteristiche del protocollo TCP. Il livello dell'applicazione invia un numero enorme di dati per la trasmissione alla destinazione al livello di trasporto. Ma il livello di trasporto limita la dimensione dei dati da inviare in una volta sola. Questo viene fatto suddividendo i dati in piccoli segmenti.
- Per riconoscere la sequenza dei segmenti di dati, viene utilizzato un numero di sequenza nell'intestazione TCP e che descrive il numero di byte dell'intero segmento di dati.
- Controllo del flusso:
- L'host di origine invierà i dati in un cluster di segmenti. L'intestazione TCP con un bit di finestra viene utilizzata per scoprire il conteggio dei segmenti che possono essere inviati in un'istanza di tempo. Viene utilizzato per eludere il traffico insignificante alla fine della destinazione.
- Quando la sessione viene avviata, la dimensione della finestra è minuscola ma con l'aumentare del traffico nel tempo, la dimensione della finestra può diventare enorme. L'host di destinazione può regolare la finestra in base al controllo del flusso. Quindi la finestra è chiamata finestra scorrevole.
- La sorgente può trasmettere solo il numero di segmenti consentiti dalla finestra. Per inviare più segmenti, prima attenderà un riconoscimento dal destinatario una volta ricevuto l'ACK, e successivamente potrà aumentare le dimensioni della finestra in base alle sue necessità.
- Nella figura sottostante, l'host di destinazione sta migliorando la dimensione da 500 a 600 e quindi a 800 dopo aver inviato l'ACK all'host di origine.
- Consegna affidabile e ripristino degli errori :
- Dopo che l'ultimo segmento della finestra decisa è stato ricevuto dalla destinazione, deve inviare un ACK all'estremità della sorgente. Il flag ACK è impostato nell'intestazione TCP e il numero ACK viene inserito come numero di sequenza del byte successivo presunto. Se la destinazione non riceve i segmenti nell'ordine corretto, non ritrasmetterà l'ACK alla sorgente.
- Questo spiega la fonte che alcuni dei segmenti sono fuori posto durante la trasmissione e ritrasmetterà tutti i segmenti.
- Nella figura sottostante, è stato illustrato che quando la sorgente non ha ricevuto l'ACK per il segmento con il numero SEQ 200, allora sta ritrasmettendo i dati e dopo aver ricevuto l'ACK sta inviando la sequenza successiva del segmento di dati in in base alle dimensioni della finestra.
- Consegna ordinata :
- Il TCP garantisce la consegna sequenziale dei dati alla destinazione. Fornisce i dati nell'ordine in cui li riceve dal livello dell'applicazione per la consegna all'host di destinazione. Pertanto, per mantenere la consegna ordinata, utilizza il numero di sequenza durante la trasmissione dei segmenti di dati.
- Terminazione della connessione :
- Quando la trasmissione dei dati tra origine e destinazione è completata, il TCP concluderà la sessione inviando flag FIN e ACK e utilizza un handshake a quattro vie per chiuderla.
Finestra scorrevole TCP e consegna affidabile
Protocollo datagramma utente (UDP):
È il protocollo inaffidabile e senza connessione per la trasmissione dei dati. In questo protocollo, a differenza di TCP, non genera alcun flag ACK, quindi l'host di origine non aspetterà una risposta dall'estremità di destinazione e trasmetterà i dati senza alcun ritardo e attenderà ACK.
In uno scenario in tempo reale, l'UDP viene utilizzato in quanto si preferisce l'eliminazione dei pacchetti di dati rispetto all'attesa dei pacchetti per la ritrasmissione. Pertanto è più ampiamente utilizzato nei giochi, nella visione di video online, nelle chat, ecc. Dove il riconoscimento dei dati non è un problema. In questi scenari, il controllo e la correzione degli errori avvengono a livello dell'applicazione.
Intestazione UDP:
- Porta di origine: Classifica le informazioni sul pacchetto finale di origine che hanno una dimensione di 16 bit.
- Porto di destinazione : Ha anche una dimensione di 16 bit e viene utilizzato per classificare il tipo di servizio dati nel nodo di destinazione.
- Lunghezza : Indica la dimensione complessiva del datagramma UDP. La dimensione massima del campo della lunghezza può essere la dimensione complessiva dell'intestazione UDP stessa.
- Checksum : Salva il valore di checksum valutato dall'estremità della sorgente prima della trasmissione. Se non contiene alcun valore, tutti i suoi bit vengono impostati a zero.
Applicazioni UDP :
- Fornisce datagramma, quindi è appropriato per il tunneling IP e il file system di rete.
- Semplice in uso, quindi viene utilizzato in DHCP e banale protocollo di trasferimento file.
- Essere apolidi lo rende efficiente per lo streaming di applicazioni multimediali come IPTV.
- Adatto anche per voice over IP e programmi di streaming in tempo reale.
- Supporta il multicast, quindi è appropriato per servizi di trasmissione come Bluetooth e protocollo di informazioni di routing.
Livello applicazione
(i) Questo è il livello superiore del modello TCP / IP.
(ii) Esegue tutte le attività di un livello di sessione, livello di presentazione e livello di applicazione del modello TCP / IP.
(iii) Combina le funzioni di interfacciamento con varie applicazioni, codifica dei dati, traduzione dei dati e accesso alle disposizioni per consentire agli utenti di comunicare con vari sistemi di rete.
I protocolli a livello di applicazione più comuni sono definiti di seguito:
# 1) TELNET: Sta per protocollo di emulazione terminale. Generalmente si esercita ad accedere alle applicazioni terminali remote. Il server telnet che funge da host avvia un'applicazione server telnet per stabilire una connessione con l'host remoto noto come client telnet.
Dopo che la connessione è stata stabilita, viene presentata al sistema operativo del server telnet. Le persone sul lato server usano la tastiera e il mouse per operare e accedere all'host remoto tramite TELNET.
# 2) HTTP: Sta per protocollo di trasferimento ipertestuale. È la base del World Wide Web (WWW). Questo protocollo viene utilizzato per scambiare l'ipertesto tra diversi sistemi. È un tipo di protocollo richiesta-risposta.
Per esempio, Il browser Web come Internet Explorer o Mozilla funge da client Web e l'applicazione in streaming sul PC che ospita il sito Web fungerà da server Web.
Pertanto, il server che fornisce le risorse come file HTML e altre funzioni richieste dal client restituisce un messaggio di risposta al client che ha il contenuto dei dati sullo stato di completamento e i dati richiesti nella riga del messaggio.
Le risorse HTTP vengono riconosciute e posizionate sulla rete da URL (Uniform Resource Locator) che distribuiscono metodi URI (Uniform Resource Identifier) HTTP e https.
# 3) FTP: Sta per protocollo di trasferimento file. Viene utilizzato per condividere o trasferire i file tra due host. L'host che esegue l'applicazione FTP si comporta come il server FTP mentre l'altro si comporta come il client FTP.
L'host client che richiede la condivisione dei file richiede l'autenticazione dal server per accedere ai dati. Una volta autorizzato, può accedere a qualsiasi tipo di file dal server, inviare o ricevere file.
# 4) SMTP: Il protocollo di trasporto della posta semplice è un esercizio per inviare e-mail. Quando configuriamo l'host per l'invio di e-mail, utilizziamo SMTP.
# 5) DNS: Ciascuno dei dispositivi host in qualsiasi rete ha un indirizzo logico univoco chiamato indirizzo IP. Come già detto, gli indirizzi IP sono un gruppo di tanti numeri e non è facile da memorizzare. Quando digitiamo un indirizzo web su un browser web come Google.com, stiamo effettivamente richiedendo un host con un indirizzo IP.
Ma non è necessario memorizzare l'indirizzo IP della pagina web che stiamo richiedendo poiché DNS (server del nome di dominio) mappa un nome su ogni indirizzo IP logico e lo memorizza.
Pertanto, quando digitiamo nel browser per qualsiasi pagina Web, invia la query DNS al suo server DNS per mappare l'indirizzo IP sul nome. Una volta ottenuto l'indirizzo, viene creata una sessione HTTP con l'indirizzo IP.
# 6) DHCP: Ciascuno dei dispositivi host in qualsiasi rete richiede un indirizzo IP per la comunicazione con gli altri dispositivi nella rete. Ottiene questo indirizzo tramite configurazione manuale o utilizzando un protocollo di configurazione host dinamico (DHCP). Se si utilizza DHCP, all'host verrà assegnato automaticamente un indirizzo IP.
Supponiamo che una rete sia composta da 10.000 dispositivi host. Quindi assegnare manualmente l'indirizzo IP a ciascun host è molto difficile e richiede tempo, quindi utilizziamo il protocollo DHCP per assegnare un indirizzo IP e altre informazioni ai dispositivi host collegati come l'IP della subnet mask o l'IP del gateway.
I programmi di test del software funzioneranno su questo livello del modello TCP / IP, poiché consente agli utenti finali di testare i vari servizi e utilizzare tali servizi.
Conclusione
Abbiamo visto i diversi protocolli utilizzati a ogni livello del modello TCP / IP per eseguire le attività associate al livello e i loro vantaggi in un sistema di comunicazione.
Tutti i protocolli sopra definiti hanno il loro significato e ruoli diversi nel test e nell'applicazione degli strumenti software.
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Tutto sugli switch Layer 2 e Layer 3 nel sistema di rete
- Una guida completa al firewall: come creare un sistema di rete sicuro
- Tutto sui router: tipi di router, tabella di instradamento e instradamento IP
- Che cos'è Wide Area Network (WAN): esempi di reti WAN live
- Cosa sono i protocolli HTTP (Hypertext Transfer Protocol) e DHCP?
- Importanti protocolli a livello di applicazione: protocolli DNS, FTP, SMTP e MIME
- IPv4 vs IPv6: qual è la differenza esatta
- Qual è il mio indirizzo IP e la mia posizione (controlla il tuo IP reale qui)