Il est dit qu'un réseau peer to peer n'est pas basé sur un serveur pour le routage et le traitement des données et qu'il utilise uniquement un serveur pour obtenir les adresses de nœuds à jour (probablement leur adresse IP Internet) afin de se connecter à d'autres nœuds directement sans serveur intermédiaire. ma question est donc la suivante : comment l'ordinateur (nœud) A peut-il établir une connexion avec le nœud B sur Internet ? les adresses IP que le fournisseur d'accès nous donne ne sont pas valides et ne sont pas joignables. alors comment le p2p fonctionne-t-il avec ces adresses IP de nœuds non valides sur Internet ?
Réponse
Trop de publicités?En supposant que la question porte sur les raccordements domicile/résidence :
La plupart des fournisseurs d'accès Internet câblés donnent en fait une adresse IPv4 accessible au public à leurs clients. Cette adresse est attribuée au routeur domestique du client, et ce routeur peut recevoir des paquets et les transmettre à tout appareil interne spécifié par le client. (Il doit déjà le faire pour délivrer correctement les réponses entrantes appartenant à une connexion sortante régulière - il se souvient de quelle connexion les paquets doivent être envoyés à quel hôte interne).
Pour le P2P, soit a) le client ajoute une règle statique ("port forwarding" aka DNAT) pour toujours envoyer des paquets pour le port TCP/UDP spécifié vers son ordinateur (nœud A). Les autres noeuds peuvent alors simplement utiliser l'adresse publique du routeur et celui-ci transmettra les paquets en interne au noeud A.
(Les programmes peuvent même utiliser NAT-PMP et/ou UPnP IGD pour ajouter automatiquement des règles de "transfert de port").
Ou b) le programme peut utiliser divers "NAT traversal" / "perforation" comme STUN (qui utilise un serveur "auxiliaire" pour la poignée de main initiale). Ces mécanismes consistent généralement à tromper le suivi automatique des connexions des routeurs pour faire croire que chaque nœud se connecte à l'autre en même temps, sur la même paire de ports.
Pour les ISP qui utilisent CGNAT et Ne le fais pas. donner aux clients une adresse IPv4 publique, l'option a) n'est généralement pas possible, et l'option b) fonctionne parfois, parfois non. AFAIK, deux nœuds CGNAT'ed ne peuvent généralement pas communiquer directement.
(Notez que même les nœuds CGNAT'ed peuvent toujours établir des connexions sortantes vers n'importe quel nœud ayant une adresse publique, ils ne sont donc pas complètement isolés. Je veux dire, s'ils ne pouvaient pas faire cela, alors ils ne pourraient pas non plus accéder aux serveurs web/mail/jeux).
Cependant, au moins certains de ces FAI fournissent un support IPv6 en plus du service IPv4 de la CGNAT. En général, IPv6 fournit une adresse publique pour chaque Ainsi, lorsque les deux nœuds sont compatibles IPv6, ils peuvent utiliser directement l'adresse IPv6 publique de l'autre.
(Il se peut qu'ils aient encore besoin de percer des trous ou de configurer manuellement le routeur, mais c'est parce qu'une pare-feu est généralement dans le chemin, et non plus à cause du routage/adressage).