Oggi inizieremo concentrandoci su TCP. All'inizio del capitolo sulla stratificazione, abbiamo menzionato un punto importante. Nel livello di rete e in basso, si tratta più di connessioni host per host, il che significa che il computer deve sapere dove si trova un altro computer per connettersi ad esso. Tuttavia, la comunicazione in una rete è spesso la comunicazione di interprocesso piuttosto che la comunicazione di intermaca. Pertanto, il protocollo TCP introduce il concetto di porta. Una porta può essere occupata da un solo processo, che fornisce una comunicazione diretta tra i processi di applicazione in esecuzione su host diversi.
Il compito del livello di trasporto è come fornire servizi di comunicazione diretta tra i processi di candidatura in esecuzione su diversi host, quindi è anche noto come protocollo end-to-end. Il livello di trasporto nasconde i dettagli fondamentali della rete, consentendo al processo di applicazione di vedere come se esistesse un canale di comunicazione end-to-end logico tra le due entità del livello di trasporto.
TCP sta per il protocollo di controllo della trasmissione ed è noto come protocollo orientato alla connessione. Ciò significa che prima che un'applicazione possa iniziare a inviare dati all'altra, i due processi devono fare una stretta di mano. Handshake è un processo logicamente connesso che garantisce la trasmissione affidabile e la ricezione ordinata dei dati. Durante la stretta di mano, viene stabilita una connessione tra gli host di origine e di destinazione scambiando una serie di pacchetti di controllo e accettando alcuni parametri e regole per garantire la trasmissione dei dati riusciti.
Cos'è TCP? (Mylinking'sTocca di reteEBroker di pacchetti di retepotrebbe elaborare entrambi i pacchetti TCP o UDP)
TCP (Protocollo di controllo della trasmissione) è un protocollo di comunicazione del livello di trasporto orientato alla connessione, affidabile, basato su byte.
Oriente alla connessione: Orientato alla connessione significa che la comunicazione TCP è uno a uno, cioè la comunicazione end-to-end da punto a punto, a differenza dell'UDP, che può inviare messaggi a più host contemporaneamente, quindi non è possibile ottenere la comunicazione individuale.
Affidabile: L'affidabilità del TCP garantisce che i pacchetti vengano consegnati in modo affidabile al ricevitore indipendentemente dalle modifiche al collegamento di rete, il che rende il formato dei pacchetti di protocollo di TCP più complesso di quello dell'UDP.
Basato su byte-stream: La natura basata su byte-stream di TCP consente la trasmissione di messaggi di qualsiasi dimensione e garantisce l'ordine dei messaggi: anche se il messaggio precedente non è stato completamente ricevuto e anche se i successivi byte sono stati ricevuti, TCP non li consegnerà al livello dell'applicazione per l'elaborazione e farà cadere automaticamente pacchetti duplicati.
Una volta che l'host A e l'host B hanno stabilito una connessione, l'applicazione deve solo utilizzare la linea di comunicazione virtuale per inviare e ricevere dati, garantendo così la trasmissione dei dati. Il protocollo TCP è responsabile del controllo di compiti come stabilimento di connessione, disconnessione e detenzione. Va notato che qui diciamo che la linea virtuale significa solo stabilire una connessione, la connessione del protocollo TCP indica solo che i due lati possono avviare la trasmissione dei dati e garantire l'affidabilità dei dati. I nodi di routing e trasporto sono gestiti dai dispositivi di rete; Il protocollo TCP stesso non si occupa di questi dettagli.
Una connessione TCP è un servizio full duplex, il che significa che l'host A e l'host B possono trasmettere dati in entrambe le direzioni in una connessione TCP. Cioè, i dati possono essere trasferiti tra l'host A e l'host B in un flusso bidirezionale.
TCP memorizza temporaneamente i dati nel buffer di invio della connessione. Questo buffer di invio è una delle cache impostate durante la stretta di mano a tre. Successivamente, TCP invierà i dati nella cache di invio alla cache di ricezione dell'host di destinazione al momento opportuno. In pratica, ogni peer avrà una cache di invio e una cache di ricezione, come mostrato qui:
Il buffer di invio è un'area di memoria mantenuta dall'implementazione TCP sul lato mittente che viene utilizzato per archiviare temporaneamente i dati da inviare. Quando viene eseguita la stretta di mano a tre vie per stabilire una connessione, la cache di invio viene impostata e utilizzata per archiviare i dati. Il buffer di invio viene regolato dinamicamente in base alla congestione della rete e al feedback del ricevitore.
Un buffer di ricezione è un'area di memoria mantenuta dall'implementazione TCP sul lato ricevente che viene utilizzato per archiviare temporaneamente i dati ricevuti. TCP memorizza i dati ricevuti nella cache di ricezione e attende che l'applicazione superiore lo legga.
Si noti che la dimensione della cache di invio e la cache di ricezione è limitata, quando la cache è piena, TCP può adottare alcune strategie, come il controllo della congestione, il controllo del flusso, ecc., Per garantire la trasmissione di dati affidabili e la stabilità della rete.
Nelle reti di computer, la trasmissione dei dati tra gli host viene effettuata mediante segmenti. Allora cos'è un segmento di pacchetti?
TCP crea un segmento TCP o un segmento dei pacchetti, dividendo il flusso in arrivo in blocchi e aggiungendo intestazioni TCP a ogni pezzo. Ogni segmento può essere trasmesso solo per una quantità limitata di tempo e non può superare la dimensione massima del segmento (MSS). Sulla strada, un segmento di pacchetti passa attraverso il livello di collegamento. Il livello di collegamento ha un'unità di trasmissione massima (MTU), che è la dimensione massima del pacchetto che può passare attraverso il livello di collegamento dati. L'unità di trasmissione massima è generalmente correlata all'interfaccia di comunicazione.
Allora qual è la differenza tra MSS e MTU?
Nelle reti informatiche, l'architettura gerarchica è molto importante perché tiene conto delle differenze tra i diversi livelli. Ogni livello ha un nome diverso; Nel livello di trasporto, i dati sono chiamati un segmento e nel livello di rete i dati sono chiamati pacchetto IP. Pertanto, l'unità di trasmissione massima (MTU) può essere considerata come la dimensione massima del pacchetto IP che può essere trasmessa dal livello di rete, mentre la dimensione massima del segmento (MSS) è un concetto di livello di trasporto che si riferisce alla quantità massima di dati che può essere trasmessa da un pacchetto TCP alla volta.
Si noti che quando la dimensione massima del segmento (MSS) è maggiore dell'unità di trasmissione massima (MTU), la frammentazione IP verrà eseguita sul livello di rete e TCP non dividerà i dati più grandi in segmenti adatti per la dimensione MTU. Ci sarà una sezione sul livello di rete dedicato al livello IP.
Struttura del segmento dei pacchetti TCP
Esploriamo il formato e il contenuto delle intestazioni TCP.
Numero di sequenza: Un numero casuale generato dal computer quando la connessione viene stabilita come valore iniziale quando viene stabilita la connessione TCP e il numero di sequenza viene inviato al ricevitore tramite il pacchetto SYN. Durante la trasmissione dei dati, il mittente aumenta il numero di sequenza in base alla quantità di dati inviati. Il ricevitore giudica l'ordine dei dati in base al numero di sequenza ricevuta. Se i dati vengono scoperti fuori servizio, il ricevitore riordinerà i dati per garantire l'ordine dei dati.
Numero di riconoscimento: Questo è un numero di sequenza utilizzato in TCP per riconoscere la ricezione dei dati. Indica il numero di sequenza dei dati successivi che il mittente prevede di ricevere. In una connessione TCP, il ricevitore determina quali dati sono stati ricevuti correttamente in base al numero di sequenza del segmento dei pacchetti di dati ricevuti. Quando il ricevitore riceve correttamente i dati, invia un pacchetto ACK al mittente, che contiene il numero di riconoscimento di riconoscimento. Dopo aver ricevuto il pacchetto ACK, il mittente può confermare che i dati prima di riconoscere il numero di risposta sono stati ricevuti correttamente.
I bit di controllo di un segmento TCP includono quanto segue:
ACK BIT: Quando questo bit è 1, significa che il campo di risposta di riconoscimento è valido. TCP specifica che questo bit deve essere impostato su 1 ad eccezione dei pacchetti SYN quando la connessione è inizialmente stabilita.
Primo bit: Quando questo bit è 1, indica che esiste un'eccezione nella connessione TCP e la connessione deve essere costretta a essere disconnessa.
Syn bit: Quando questo bit è impostato su 1, significa che la connessione deve essere stabilita e il valore iniziale del numero di sequenza è impostato nel campo Numero di sequenza.
Pin bit: Quando questo bit è 1, significa che non verranno inviati più dati in futuro e si desidera la connessione.
Le varie funzioni e caratteristiche del TCP sono incorporate dalla struttura dei segmenti dei pacchetti TCP.
Cos'è UDP? (Mylinking'sTocca di reteEBroker di pacchetti di retepotrebbe elaborare entrambi i pacchetti TCP o UDP)
User Datagram Protocol (UDP) è un protocollo di comunicazione senza connessione. Rispetto a TCP, UDP non fornisce meccanismi di controllo complessi. Il protocollo UDP consente alle applicazioni di inviare direttamente pacchetti IP incapsulati senza stabilire una connessione. Quando lo sviluppatore sceglie di utilizzare UDP anziché TCP, l'applicazione comunica direttamente con l'IP.
Il nome completo del protocollo UDP è il protocollo di datagram utente e la sua intestazione è solo otto byte (64 bit), il che è molto conciso. Il formato dell'intestazione UDP è il seguente:
Porte di destinazione e di origine: Il loro scopo principale è indicare quale processo UDP dovrebbe inviare pacchetti.
Dimensione del pacchetto: Il campo Dimensione del pacchetto contiene le dimensioni dell'intestazione UDP più le dimensioni dei dati
Checksum: Progettato per garantire la consegna affidabile delle intestazioni e dei dati UDP Il ruolo del checksum è di rilevare se si è verificato un errore o una corruzione durante la trasmissione di un pacchetto UDP per garantire l'integrità dei dati.
Differenze tra TCP e UDP in MylinkingTocca di reteEBroker di pacchetti di retepotrebbe elaborare entrambi i pacchetti TCP o UDP
TCP e UDP sono diversi nei seguenti aspetti:
Connessione: TCP è un protocollo di trasporto orientato alla connessione che richiede che una connessione sia stabilita prima che possa essere trasferito i dati. UDP, d'altra parte, non richiede una connessione e può trasferire immediatamente i dati.
Oggetto di servizio: TCP è un servizio a due punti uno a uno, ovvero una connessione ha solo due endpoint per comunicare tra loro. Tuttavia, UDP supporta la comunicazione interattiva da uno a uno, da uno a molti e da molti a molti, che può comunicare con più host contemporaneamente.
Affidabilità: TCP fornisce il servizio di fornitura in modo affidabile dei dati, garantendo che i dati siano privi di errori, senza perdite, non duplicati e arrivano su richiesta. UDP, d'altra parte, fa il suo meglio e non garantisce una consegna affidabile. L'UDP può soffrire di perdita di dati e altre situazioni durante la trasmissione.
Controllo della congestione, controllo del flusso: TCP ha meccanismi di controllo della congestione e controllo del flusso, che possono regolare la velocità di trasmissione dei dati in base alle condizioni di rete per garantire la sicurezza e la stabilità della trasmissione dei dati. UDP non ha meccanismi di controllo della congestione e controllo del flusso, anche se la rete è molto congestionata, non apporterà le regolazioni alla velocità di invio dell'UDP.
Testa sopra di testa: TCP ha una lunga lunghezza dell'intestazione, in genere 20 byte, che aumenta quando vengono utilizzati i campi di opzione. L'UDP, d'altra parte, ha un'intestazione fissa di soli 8 byte, quindi UDP ha una testata inferiore.
Scenari di applicazione TCP e UDP:
TCP e UDP sono due diversi protocolli di livello di trasporto e hanno alcune differenze negli scenari di applicazione.
Poiché TCP è un protocollo orientato alla connessione, viene utilizzato principalmente negli scenari in cui è richiesta la consegna affidabile dei dati. Alcuni casi d'uso comuni includono:
Trasferimento di file FTP: TCP può garantire che i file non siano persi e corrotti durante il trasferimento.
Http/https: TCP garantisce l'integrità e la correttezza dei contenuti Web.
Poiché UDP è un protocollo senza connessione, non fornisce garanzia di affidabilità, ma ha le caratteristiche dell'efficienza e del tempo in tempo reale. UDP è adatto per i seguenti scenari:
Traffico a basso contenuto di pacchetti, come DNS (Sistema di nomi di dominio): Le query DNS sono di solito pacchetti corti e UDP può completarle più velocemente.
Comunicazione multimediale come video e audio: Per la trasmissione multimediale con requisiti elevati in tempo reale, l'UDP può fornire una minore latenza per garantire che i dati possano essere trasmessi in modo tempestivo.
Comunicazione trasmessa: UDP supporta la comunicazione da uno a molti e da molti a molti e può essere utilizzato per la trasmissione dei messaggi di trasmissione.
Riepilogo
Oggi abbiamo imparato a conoscere TCP. TCP è un protocollo di comunicazione di comunicazione di trasporto orientato alla connessione, affidabile, basato su byte. Garantisce la trasmissione affidabile e l'accoglienza ordinata dei dati stabilendo connessione, stretta di mano e riconoscimento. Il protocollo TCP utilizza le porte per realizzare la comunicazione tra i processi e fornisce servizi di comunicazione diretta per i processi di candidatura in esecuzione su host diversi. Le connessioni TCP sono full duplex, consentendo trasferimenti di dati bidirezionali simultanei. Al contrario, UDP è un protocollo di comunicazione orientato senza connessione, che non fornisce garanzie di affidabilità ed è adatto ad alcuni scenari con elevati requisiti in tempo reale. TCP e UDP sono diversi in modalità di connessione, oggetto di servizio, affidabilità, controllo della congestione, controllo del flusso e altri aspetti e anche i loro scenari di applicazione sono diversi.
Tempo post: DEC-03-2024