È interessante osservare lo sviluppo della rete di condivisione di file, ma è ancora più interessante parteciparvi.
Oggi, installando e lanciando un moderno NMDC hub, il nuovo amministratore ha accesso a quasi tutti gli sviluppi e l'esperienza accumulati in quest'area dai suoi predecessori. Dispone di un sistema pronto per l'espansione e la personalizzazione, anche con l'ausilio di numerosi script.
С ADC hub altrimenti. La progettazione di questo protocollo è destinata ad essere estensibile. Vuoi una nuova funzionalità? Bene, offrilo, promuovilo, implementalo, implementalo, usalo.
Di conseguenza, puoi, ovviamente, ottenere un hub già pronto fuori dalla scatola, ma semplicemente avviarlo e dimenticartene non andrà bene. L'estensibilità in un contesto storico implica anche la presenza di un numero diverso di funzioni diverse del software client e server, a seconda della versione. E ciò che funzionerà senza problemi per un utente potrebbe essere incompatibile con il client di un altro, e questo deve essere preso in considerazione.
Questo è successo con IPv6. Il vecchio NMDC non sa come farlo in linea di principio, ma lo stesso ADC è pronto per questo. Tuttavia, non tutto è così semplice.
Solo una piccola teoria
L'utente "attivo" può accettare connessioni in entrata. In realtà, la richiesta di connessione che ne deriva lo è effettivamente invito.
Un utente "passivo" può generalmente utilizzare solo le richieste in uscita. Attraverso l'hub lui просит l'utente attivo invia un invito e la connessione viene stabilita.
E sì, questo meccanismo non dipende dalla versione del protocollo IP utilizzato.
Cigno, Cancro e Luccio
Parliamo del software client.
Supporto IPv6 DC ++ è di natura sperimentale. Non ci sono impostazioni separate per questo, ed è stato ancora più sorprendente per me vedere diverse modalità operative per diverse versioni di IP, con passiva solo per la sesta, ma questo non è accurato.
Non è stato possibile ottenere la modalità attiva durante la configurazione manuale anche utilizzando esplicitamente un dominio IP con un record AAAA come WAN, ma in modalità automatica utilizzando UPnP tutto ha funzionato come previsto.
AirDC ++ supporta anche le connessioni IPv6 ed è implementato in modo completamente separato da IPv4. Inoltre, questo client modifica i tag utente in modo tale da visualizzare contemporaneamente le modalità operative per entrambi i protocolli IP. Gli stessi hub non sanno (ancora) come farlo, il che è un peccato.
Devo prenotare subito: AirDC++ lo fa da solo e per se stesso. In futuro, per comodità, utilizzerò combinazioni come AP o AA come indicazione delle modalità operative attive o passive rispettivamente per IPv4 e IPv6, piuttosto che la loro visualizzazione nel tag client reale sull'hub reale. È importante.
Nel nostro esperimento useremo FlylinkDC++ come client non ha alcuna familiarità con IPv6. Va anche notato che il supporto NATT per lui al momento della stesura di questo articolo non è stato implementato da nessuna parte.
Inizio
Innanzitutto esamineremo le connessioni ovviamente impossibili tra utenti di diverse versioni del protocollo IP. Verrà utilizzato per il test Hub pronto per IPv6 con record di risorsa A e AAAA per il nome di dominio che funge da indirizzo.
Tieni presente che quando provi (effettivamente) a contattare un utente con un indirizzo IP versione XNUMX, viene visualizzato un errore.
Ciò che è importante è la modalità di connessione visualizzata sull'hub.
I client senza supporto IPv6 dovranno vedere gli utenti connessi tramite esso come chiaramente passivi, semplicemente perché l'hub non si popola per loro I4 o I6 campo di conseguenza.
FlylinkDC++ vs. IPv6
In realtà la situazione è più semplice e più complessa allo stesso tempo.
AirDC++ vs. IPv6
Più semplice perché IPv6 ha la precedenza su IPv4, e questo è comprensibile. È attraverso di esso (anche se l'override è disponibile utilizzando l'opzione corrispondente) che verrà stabilita la connessione all'hub e il client attivo la offrirà al client passivo per la connessione.
È più difficile, perché se ci sono utenti con supporto IPv6 sull'hub, ma sono collegati rigorosamente tramite un indirizzo IPv4, allora...
... quindi puoi connetterti a loro (in modo casuale) senza avere IPv4.
Tieni presente che il cliente remoto si è designato come una risorsa, ma è trattato come una passività. Perché?
Lanciatelo in un'altalena
Ora proviamo a connettere client con set di protocolli IP diversi, ma comuni in termini di IPv4, supportati tra loro.
Sì, è un peccato che gli utenti passivi debbano fumare in disparte. Ma questo non può essere evitato, dal momento che il loro indirizzo IP visibile non è particolarmente importante – ecco perché sono passivi.
Bah! Il client attivo invia comando passivo?.. Sarebbe logico aspettarsi una connessione “bloccata”, ma no, risulta alle condizioni A4.
Perché? Contattiamo lo sviluppatore e otteniamo la risposta:
CTM non va bene se l'altro utente non supporta IPv6
E non puoi discutere! Ma questo richiede una logica interna, indipendente dall’hub (vedi cod qui и qui). È ancora impossibile aiutare i passivi, perché
I tentativi di connessione tra client con set di supporto IP IPv6 comuni hanno questo aspetto. Lascia che te lo ricordi, raggiungilo PA Non ci sono riuscito per DC++.
E ancora una sorpresa. Si scopre che la modalità passiva per IPv6, dimostrata da DC++, è un falso deliberato o un bug.
Quali sono le prospettive?
Attualmente esistono esattamente due modi per risolvere tutti i possibili problemi di connessione degli utenti in modalità diverse e con diversi set di supporto del protocollo IP.
Il primo è disattivare completamente IPv6 o, al contrario, creare un hub per funzionare solo attraverso di esso.
La seconda è questa estensione, che si sta appena avvicinando alla fase di test.
Bene, se sei troppo pigro per impostare la modalità attiva per lavorare in DC, ricorda:
A chi ha sarà dato quello che ha, a chi non ha sarà tolto anche quello che pensa di avere. Luca. 8:18