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.