2013-03-24 8 views
21

Secondo le mie conoscenze, se è necessario progettare un'applicazione Internet, dovremmo utilizzare un servizio orientato alla connessione o un servizio senza connessione, ma non entrambi.Se TCP è orientato alla connessione, perché i pacchetti seguono percorsi diversi?

Il servizio orientato alla connessione di Internet è TCP e il servizio senza connessione è UDP ed entrambi risiedono nel livello di trasporto dello stack del protocollo Internet.

L'unico livello di rete di Internet è IP, che è un servizio senza connessione. Quindi significa che qualsiasi applicazione che progettiamo alla fine usa l'IP per trasmettere i pacchetti.

I servizi orientati alla connessione utilizzano lo stesso percorso per trasmettere tutti i pacchetti, mentre quelli senza connessione no.

Pertanto il problema è

se un'applicazione orientato alla connessione è stata progettata, dovrebbe trasmettere i pacchetti usando lo stesso percorso. Ma l'IP infrange quella regola usando percorsi diversi. Quindi come funzionano entrambi TCP e IP in questo senso? Mi confonde totalmente.

+7

"I servizi orientati alle connessioni utilizzano lo stesso percorso per trasmettere tutti i pacchetti." No, non lo fanno. L'hai appena inventato. – EJP

+2

Se pubblichi una lettera al giorno, nello stesso indirizzo, per oltre 100 giorni, è probabile che arriveranno 100 lettere. Quello che stai suggerendo è che, solo perché usi sempre la stessa casella postale per la pubblicazione e tutte le lettere arrivano alla stessa destinazione, gli stessi postini, furgoni, camion ecc. Vengono usati per ogni lettera. –

risposta

27

Tu, amico mio, stai confondendo la funzionalità di due livelli diversi.

TCP è orientato alla connessione nel senso che esiste una connessione stabilita, tra i due estremi, dove possono negoziare tra l'altro cose diverse come il meccanismo di controllo della congestione.
Lo scopo generale dei protocolli a livello di trasporto è fornire una consegna da processo a processo, il che significa che non sa nulla di percorsi; il modo in cui i pacchetti raggiungono il sistema finale va oltre il loro scopo, si preoccupano solo di come i pacchetti vengono trasmessi tra i due PROCESSI finali.

IP, d'altra parte, il protocollo del livello di rete per Internet, riguarda la trasmissione dei dati tra i sistemi finali ma è senza connessione, non mantiene alcuna connessione, quindi ogni pacchetto viene gestito indipendentemente dagli altri pacchetti.
Lasciando il sistema, ogni router sceglierà il percorso che ritiene opportuno per OGNI pacchetto e questo percorso potrebbe cambiare in base alla disponibilità/congestione.

Come risponde la domanda?
TCP assicurerà che i pacchetti raggiungano l'altro processo, non gli interesserà come sono arrivati.
IP, d'altra parte, non importa se raggiungono l'altra estremità, semplicemente inoltrerà ogni pacchetto diverso in base a ciò che ritiene più adatto per un particolare pacchetto.

Nota:
Supponiamo che IP è stato orientato alla connessione, sarebbe che i pacchetti medi avrebbero seguito lo stesso percorso? Non necessariamente, dipende da cosa significa la parola "connessione" a questo livello, se significa negoziare determinate opzioni relative alla sicurezza, ad esempio, potresti ancora avere tutti i pacchetti inoltrati attraverso percorsi diversi su Internet.

EDIT:
non confondere voi, però, la maggior parte dei servizi orientati alla connessione a livello di rete e di sotto significa che la connessione, se introdotta, stabilisce anche un virtuale percorso che devono seguire tutti i 'pacchetti', per maggiori informazioni leggere:
Virtual circuit e frame-relay networks

+0

"Il TCP si assicurerà che i pacchetti raggiungano l'altro processo, non gli interesserà come sono arrivati." Ma i servizi orientati alla connessione sono definiti in quanto tutti i pacchetti seguiranno lo stesso percorso giusto? Quella parte mi confonde ancora – Assasins

+4

Scusami per il tipo di risposta tardiva; nessuna affermazione è una generalizzazione fuorviante. È necessario rendersi conto che i percorsi a pacchetti sono una preoccupazione del livello di rete e non del livello di trasporto, quindi l'orientamento della connessione al livello di trasporto non fa alcuna differenza per i percorsi di pacchetto. – Fingolfin

1

Il protocollo TCP è implementato dalle macchine di invio/ricezione, una volta che i pacchetti lasciano la macchina di invio, i router che viaggiano non sanno nulla di TCP, usano solo IP per ottenere i pacchetti dalla sorgente alla destinazione. Quindi, è compito della macchina di destinazione, tramite TCP, assicurarsi che tutti i pacchetti arrivino e che arrivino nell'ordine corretto. Internet non conosce nulla di TCP, è solo uno strato (spesso software) che fornisce la connessione a un mezzo senza connessione (Internet).

Così un pacchetto lascia una destinazione, può percorrere qualsiasi percorso (principalmente) finché arriva alla desintazione, indipendentemente dal protocollo di livello superiore (come TCP o UDP).

Voglio dire, è un po 'più complicato di quello, ma per quanto posso ricordare è l'Idea generale.

+0

ok allora perché diciamo che i servizi orientati alla connessione inviano pacchetti attraverso lo stesso percorso, quando non è ciò che sta realmente accadendo. – Assasins

+1

@Fazian Non lo diciamo. Sei l'unica persona che l'ha detto. L'hai inventato. Non possiamo spiegarti perché l'hai fatto. – EJP

3

questo link risponde alla tua domanda abbastanza bene http://www.tcpipguide.com/free/t_ConnectionOrientedandConnectionlessProtocols-3.htm

Alcune persone considerano questo (TCP) di essere come una “s imulazione "di commutazione di circuito su strati di rete superiori; questa è forse un'analogia dubbia. Anche se è possibile utilizzare una connessione TCP per inviare dati avanti e indietro tra i dispositivi, tutti i dati vengono effettivamente inviati come pacchetti; non esiste un vero circuito tra i dispositivi. Ciò significa che TCP deve gestire tutte le potenziali insidie ​​della comunicazione a commutazione di pacchetto, ad esempio il potenziale per la perdita di dati o la ricezione di pezzi di dati nell'ordine errato.

Il protocollo TCP si occupa del problema dei pacchetti IP che arrivano fuori ordine o sono persi, per darti la sensazione di arrivare attraverso un singolo canale FIFO. Sì, TCP è abbastanza intelligente da farlo, non c'è bisogno di un canale sottostante dedicato.

+1

Devo impegnarmi che questa è la risposta che sto cercando. –

0

Il router funziona solo su tre livelli (fisico, collegamento dati e livelli di rete), pertanto i router prenderanno una decisione in base solo alle informazioni. di livello di rete (protocollo IP) quindi non ci sono informazioni disponibili sul suo TCP o UDP sul router