Definizione della connessione di rete [chiusa]

0

Nel discutere di push vs polling con un collega, stavamo cercando di capire se c'è una differenza ben definita tra i due lati di una conversazione che è "connessa" rispetto alla "disconnessione". Per un esempio, pensa che una connessione TCP sia "aperta".

Abbiamo finito per decidere che la nozione di "essere connessi" è in realtà solo una questione di grado. In altre parole, se la comunicazione sembra relativamente facile tra i lati, vengono utilizzate le frasi "una connessione è aperta" o "i lati sono attualmente connessi".

Questa vista è corretta? O c'è qualche differenza qualitativa e ben definita tra l'essere due lati collegati o disconnessi?

    
posta Joseph Johnson 21.07.2015 - 04:01
fonte

2 risposte

2

In rete, il termine tecnico "connessione" si riferisce a una sessione in cui i dati vengono trasmessi in streaming (trasmessi e ricevuti in ordine). Le sessioni hanno un set-up e una fase di strappo in cui viene creato un canale (che può essere virtuale) & distrutto. TCP e ATM hanno connessioni, UDP no.

Se non si utilizza il termine tecnico e si desidera includere tutti i tipi di comunicazioni di rete (ad es. UDP), è ancora possibile definire "connesso" concretamente: due host sono collegati se essi e i dispositivi di rete che intervengono hanno i dati aperti necessari strutture per inviare e amp; ricevere messaggi l'un l'altro.

Qui "open" significa che le strutture si trovano negli stati corretti per inviare & ricevi messaggi a & dall'altro host. Ad esempio, considera la macchina di stato TCP :

  • Un socket TCP in uno stato "LISTEN" riceve da qualsiasi host sulla rete e non può inviare messaggi, quindi non fa parte di una connessione a un altro host.
  • Allo stesso modo, i socket "CHIUSO", "CHIUSURA", "TIME_WAIT" e "LAST_ACK" non possono inviare o ricevere * dati, quindi non sono collegati.
  • Negli stati di apertura ("SYN_SENT" e "SYN_RCVD"), i dati possono essere inviati insieme a un pacchetto SYN, quindi potresti essere tentato di considerarli "aperti". Tuttavia, in pratica i dati non vengono inviati con i pacchetti SYN e non è possibile inviare dati aggiuntivi fino al completamento dell'handshake. Quest'ultimo in particolare significa che questi stati non sono "aperti".
  • Una volta che un socket TCP entra nello stato "ESTABLISHED", esiste una connessione.
  • Con alcuni stati di chiusura ("FIN_WAIT_1", "FIN_WAIT_2", "CLOSE_WAIT"), un lato può solo inviare, l'altro solo ricevere. Pertanto, queste aperture e stati non dovrebbero essere considerati come completamente "aperti".

Che alcuni dati possono essere inviati e amp; ricevuto (con limitazioni) durante gli stati di apertura e chiusura suggerisce che sarebbero utili termini aggiuntivi. Oltre a "connesso" e "non connesso", gli host possono essere "parzialmente connessi". Durante l'apertura, l'host ha una "connessione embrionale". Il termine " semiaperto " viene spesso utilizzato per gli stati di apertura e chiusura, anche se in un paio di modi diversi: può riferirsi a connessioni half duplex (come TCP durante la chiusura), a connessioni in cui un host si è chiuso senza conoscenza dell'altro e a connessioni embrionali.

I dispositivi di rete che intervengono devono essere considerati perché i dispositivi su alcuni segmenti di rete (ad esempio il NAT su un router domestico, uno switch ATM) potrebbero dover tenere traccia della connessione per consentire la comunicazione. Se è necessario ma non accade, gli host non saranno in grado di inviare o ricevere, quindi non si può dire che siano collegati.

*: i pacchetti ritardati e duplicati possono ancora arrivare durante la maggior parte di questi stati, ma i pacchetti vengono scartati e l'applicazione ha già ricevuto i dati in precedenza, quindi (in senso stretto) i socket non ricevono dati.

    
risposta data 21.07.2015 - 06:39
fonte
3

Nella rete di base hai end to end . Questo è ciò che chiamerei connesso. TCP è un protocollo end-to-end. Riceverai una ricevuta di consegna. È bello ma c'è un sovraccarico con una comunicazione end-to-end.

Hai anche comunicazione senza connessione come UDP o IP. Si invia ma non si ottiene una ricevuta di consegna.

Un buon libro è Reti e Internet dei computer di Douglas Comer . Puoi usarlo abbastanza a buon mercato. I fondamenti del networking non sono cambiati molto.

Sondaggio contro push sono in genere entrambi collegati, è solo la fine che inizia la connessione. Generalmente non si invia un carico utile sperando che trovi la destinazione.

    
risposta data 21.07.2015 - 06:18
fonte

Leggi altre domande sui tag