Cosa aggiunge TCP / UDP a "raw ip"?


18

So che sia TCP che UDP sono basati sull'IP, e conosco le differenze tra TCP e UDP, ma sono confuso su cosa sia esattamente "raw ip". Sarebbe giusto dire che TCP e UDP implementano entrambi l'IP, ma quell'IP in sé e per sé non è in grado di trasferire dati? Oppure l'IP è una forma di comunicazione di livello molto basso, che viene ulteriormente sottratta da TCP e UDP?


2
Per approfondire alcuni dei commenti di seguito (non abbastanza per una risposta completa, solo per motivi di chiarezza): IP è un protocollo che trasporta i dati. TCP o UDP sono protocolli che trasportano anche dati. TCP e UDP si trovano spesso in cima all'IP, quindi per IP il suo payload di dati può essere TCP o UDP. Ethernet viene spesso utilizzata per trasportare IP. Quindi, ad esempio, un frame Ethernet può trasportare e un pacchetto IP in quanto è il payload di dati e quel pacchetto IP può trasportare un segmento TCP come è il payload e così via. Finisci
jwbensley,

3
L'IP certamente trasferisce i dati - porta ad esempio quei pacchetti TCP / UDP. Di solito non è utilizzabile dall'applicazione. UDP è un protocollo molto grezzo sull'IP, ma aggiunge già numeri di porta , consentendo a più servizi di gestire il traffico UDP contemporaneamente su un sistema. Altrimenti, avresti solo tanti servizi quanti ne hai gli indirizzi IP.
Luaan,

Risposte:


23

IP è un protocollo di livello 3 . TCP / UDP sono protocolli di livello 4 . Ognuno di essi ha scopi diversi.

Il livello 3 è responsabile della consegna end-to-end . La sua unica funzione è aggiungere tutto il necessario a un pacchetto per ottenere un pacchetto da un host a un altro.

Il livello 4 è responsabile della consegna da servizio a servizio . La sua unica funzione è quella di separare i flussi di dati. Il tuo computer può avere più programmi in esecuzione, ognuno dei quali invia / riceve bit sul filo. IE: Potresti avere più schede del browser in esecuzione, streaming di radio Internet, esecuzione di un download, esecuzione di alcuni torrent legali , utilizzo di un'applicazione di chat, ecc. Tutti questi ricevono 1 e 0 dal cavo e il Livello 4 segrega ogni flusso di dati nel applicazione unica che ne ha bisogno. Ecco un'illustrazione:

L4 flussi di dati separati

L'IP non è in grado di consegnare un pacchetto al servizio / applicazione corretti. E TCP / UDP non è in grado di consegnare un pacchetto da un capo all'altro di Internet.

Sia TCP che IP lavorano insieme per consentire ad entrambi di raggiungere l '"obiettivo finale" della comunicazione Internet.

I dati che devono passare da un host a un altro vengono generati dai livelli superiori del modello OSI.

Questi dati vengono passati a L4 che aggiungerà le informazioni necessarie per fornire i dati da un servizio all'altro, come un'intestazione TCP con una porta di origine e di destinazione. L'intestazione Data e L4 è ora indicata come un segmento.

Quindi il segmento verrà passato a L3 che aggiungerà le informazioni necessarie per consegnare il segmento da un capo all'altro, come un'intestazione IP con un indirizzo IP di origine e destinazione. L'intestazione L3 e il segmento ora possono essere definiti pacchetti.

Questo processo è noto come incapsulamento e decapsulamento (o talvolta decapsulazione). Ecco un'animazione di come funziona:

Incapsulamento e decapsulamento, utilizzati con l'autorizzazione di Practical Networking.net

Se ciò non ha senso, suggerisco di leggere di più sul modello OSI e su come ogni livello ha responsabilità diverse che lavorano insieme per realizzare lo spostamento di un pacchetto su Internet .


7
Si noti che Internet segue vagamente il modello OSI.
user253751

2
inside an IP header is usually a TCP or UDP headernon è corretto, l'intestazione TCP / UDP non è all'interno dell'intestazione IP, è all'interno della parte di dati del pacchetto IP.
Eborbob,

"La sua unica funzione è quella di separare i flussi di dati", mentre ciò è principalmente vero per UDP (c'è anche un checksum ma meh), non è certamente vero per TCP.
Peter Green,

1
@immibis Vero, ma devo ancora vedere dove seguire il modello OSI ha portato a un'implementazione spalancata o alla comprensione della parodia. Per la maggior parte, e specialmente per qualcuno che si avvicina di recente alle tecnologie Internet, è più prezioso continuare a pensare lungo i vincoli del modello OSI.
Eddie,

@Eborbob Posso vedere come è sbagliato a seconda di come guardare la frase. Onestamente, l'intero paragrafo potrebbe usare una riformulazione, cercherò di arrivare più tardi stasera. Grazie per segnalarlo.
Eddie,

6

L'IP può trasmettere i dati bene, il problema è cosa succede quando i dati arrivano all'altra estremità. Le uniche informazioni di identificazione sono gli indirizzi IP degli host e un numero di protocollo. Nessuno dei due fornisce un modo per distinguere quale socket sono i dati.

È possibile che i programmi utilizzino direttamente l'IP attraverso quelli che sono noti come "socket grezzi", ma la mancanza di un meccanismo adeguato per decidere quale socket inviare i dati solleva problemi di sicurezza e prestazioni (il kernel deve inviare i dati a tutti i socket grezzi per un determinato numero di protocollo). Per questo motivo la possibilità di aprire "socket grezzi" è generalmente limitata a root (o all'equivalente della tua piattaforma).

UDP è un livello abbastanza minimale su IP. Aggiunge numeri di porta per identificare a quale socket sono destinati i dati e un checksum (per rifiutare i pacchetti corrotti). L'applicazione rimane responsabile della gestione dei pacchetti persi, del controllo della congestione e della suddivisione dei dati in pacchetti di dimensioni adeguate.

TCP è un protocollo più complesso che oltre a fornire numeri di porta e checksum suddivide i flussi di byte in pacchetti, riassembla quindi a destinazione e fornisce funzionalità di controllo e ripristino della congestione.


4

IP è un protocollo OSI livello 3, mentre TCP e UDP sono protocolli OSI livello 4. Come protocollo di livello 3, l'IP può trasportare diversi protocolli di livello 4. TCP e UDP sono probabilmente i più comuni, ma non sono i soli. I protocolli di livello 4 sono ciò che le applicazioni usano come connessioni end-to-end. L'IP trasporta i protocolli di livello 4 dalla rete alla rete (da host a host). I protocolli di livello 2, come Ethernet, trasportano i protocolli di livello 3 su una LAN.

Dovresti ricercare il modello OSI, ma renditi conto che si tratta di un modello concettuale e che il mondo reale spesso non corrisponde esattamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.