TCP o Transmission Control Protocol è un protocollo del livello di trasporto che risiede
nello strato 4 nel modello OSI ed è orientato alla connessione
ancora una volta consente ai protocolli ad alto livello l'accesso al livello di rete o IP ma
in questo caso fornisce affidabilità.
È orientato alla connessione prima della
trasmissione e viene stabilita una sessione tra 2 dispositivi.
TCP generalmente implementa una modalità di funzionamento full duplex.
Ci sono alcune eccezioni ma qui non entreremo
in esse. In altre parole, una connessione TCP è una coppia di
circuiti virtuali uno in ogni direzione che operano in modalità full duplex.
Il trasmettitore può ricevere dati contemporaneamente alla sua trasmissione.
Entrambi gli host in una conversazione possono trasmettere e ricevere allo stesso tempo.
c'è un controllo degli errori in
TCP perché c'è un checksum nel datagramma per verificare che non ci sia corruzione.
I segmenti TCP sono anche numerati in sequenza in modo che la destinazione possa riordinare i segmenti e determinare se mancano i dati.
C'è anche il riconoscimento della ricezione dei dati, quindi tutti i dati vengono riconosciuti dal destinatario.
il trasmettitore o il mittente può ritrasmettere il segmento o terminare la connessione se determina
che il ricevitore non è più coinvolto nella conversazione.
TCP implementa funzionalità di recupero dati, in altre
parole ci può essere ri-trasmissione dei dati persi.
Quindi se non c'è riconoscimento di un segmento, il segmento verrà ritrasmesso.
Il segmento TCP viene inviato utilizzando i pacchetti IP.
L'intestazione TCP seguirà l'intestazione IP fornendo informazioni specifiche per il protocollo TCP.
Come potete vedere qui l'intestazione TCP ha molte più opzioni rispetto all'intestazione UDP.
Quindi, in primo luogo si dispone di un numero di porta di origine a 16 bit che identifica la porta di invio.
Abbiamo una porta di destinazione a 16 bit, che identifica la porta di ricezione.
C'è un numero di sequenza a 32 bit, se il bit SYN è impostato, questo è
il numero di sequenza iniziale.
Il numero di sequenza del primo byte di dati effettivo è quindi questo numero di sequenza più 1.
Se il bit SYN non è impostato, il numero di sequenza è il numero di sequenza accumulato del primo byte
di dati di questo pacchetto per la sessione corrente.
Quindi ha un numero di riconoscimento a 32 bit.
Se il flag ACK è impostato o il bit è impostato, il valore del
numero di riconoscimento è il numero
di sequenza successivo che il ricevitore si aspetta di ricevere.
Questo campo conferma la ricezione di tutti i byte precedenti.
Il pugno ACK o la conferma inviata da ciascuna estremità
conferma l'altro numero di sequenza iniziale ma nessun dato.
La lunghezza dell'intestazione o l'offset dei dati specifica la dimensione dell'intestazione TCP in parole da 32 bit.
La dimensione minima dell'intestazione è di 5 parole e il massimo è di 15 parole.
La dimensione minima dell'intestazione è 20
byte e la dimensione massima dell'intestazione
è di 60 byte in IPv4, che consente fino a 40 byte di opzioni nell'intestazione.
La riserva riempie il set a 0 ed è riserva per uso futuro.
Ora ci sono molti flag o bit di controllo disponibili nell'intestazione TCP e non li
esamineremo tutti.
Il flag di riduzione della finestra di congestione fa parte di un meccanismo
di notifica della congestione utilizzato insieme al bit ECE
o al flag o al flag di eco di notifica di congestione dell'eco.
Ancora una volta utilizzato nella notifica di congestione.
Questo può essere usato in termini di qualità del servizio in cui
la rete e l'host comunicano per indicare la congestione,
facendo quindi sapere al trasmettitore che deve rallentare.
Il flag URG può indicare che questo segmento è urgente e deve essere
elaborato il prima possibile.
Il flag ACK come menzionato viene utilizzato per il riconoscimento dei dati.
PSH è il flag impostato dal mittente TCP per far passare immediatamente il ricevitore TCP 60 i
dati di quel segmento al socket dell'applicazione del
ricevitore insieme a tutti gli altri dati dell'ordine che il ricevitore deve ancora fornire a tale applicazione.
Reset; ripristina la connessione in altre parole, la connessione viene disattivata.
SYN è usato per sincronizzare i numeri di sequenza.
Solo il primo pacchetto inviato da ciascuna estremità avrà questo flag impostato.
FIN significa che non ci sono più dati dal mittente.
La dimensione della finestra che è lunga 16 bit
specifica la dimensione della finestra ricevuta,
che è il numero di byte che il ricevitore è attualmente disposto a ricevere, parleremo di
più sul controllo del flusso e le dimensioni delle finestre in un momento.
TCP include anche un checksum TCP a 16 bit che
viene utilizzato per il controllo dell'errore dell'intestazione e dei dati.
Il puntatore urgente a 16 bit viene utilizzato con il flag URG che,
se impostato su, indica che viene utilizzato il puntatore urgente a 16 bit.
Ciò indica uno scostamento dal numero di sequenza che indica l'ultimo byte di dati urgenti.
Ci sono anche varie opzioni
disponibili nel TCP, ma questo non rientra nell'ambito di questo corso.
E infine abbiamo i dati, che sono i dati dei protocolli di
livello superiore incapsulati all'interno dell'intestazione TCP.
Esistono alcuni esempi di applicazioni basate su TCP o UDP.
Esempi includono protocolli di trasferimento file; FTP o File Transfer Protocol
TFTP o Trivial File Transfer Protocol, NFS o Network File System.
Nell'e-mail tendiamo a utilizzare POP3 o il protocollo Post Office per ricevere la posta Simple Mail Transfer Protocol o SMTP per inviare posta o IMAP
o Internet Message Access Protocol, che è un altro protocollo utilizzato per il
recupero della posta elettronica 86 Per il collegamento remoto
ai dispositivi, è possibile utilizzare telnet
che invia il traffico in chiaro e quindi è
protetto o protetto da SHELL o SSH che consente
una connessione sicura ai dispositivi remoti.
Per la gestione della rete possiamo utilizzare Simple Network Management Protocol o SNMP e per la gestione
dei nomi possiamo usare Domain Name System che consente
l'uso di nomi piuttosto che indirizzi IP e
traduce tali nomi di dominio significativi, in indirizzi
IP quindi per esempio cisco. com verrà convertito in un indirizzo IP
quando un utente naviga in Internet.
Prima di continuare vorrei menzionare di nuovo come funzionano le mappature
tra i diversi livelli del modello OSI.
Al livello 2 in un frame Ethernet 2, c'è un campo chiamato numero di tipo che consente a un host di distinguere tra più protocolli di livello 3 al livello 3, ricorda che potresti utilizzare un protocollo come IPv4 o IPv6 o ai vecchi tempi IPX o Apple Talk.
Quindi, a livello 2, il NEC deve sapere quale protocollo di livello 3 inviare a questo traffico e il numero di
tipo viene usato per differenziare i diversi protocolli di livello 3.
Al livello 3 viene utilizzato un numero di protocollo per differenziare 105 i diversi protocolli in esecuzione al livello 4, quindi in
un'intestazione IP il campo del protocollo indicherà dove viene utilizzato il TCP o l'UDP al livello 4 Al livello 4 viene utilizzato
un numero di porta per differenziare più applicazioni in uso al livello 7. 108 Quindi è importante notare che al livello 4 il modo in
cui TCP o UDP sanno a quale applicazione questo traffico è destinato dal numero di porta.