Outils pour utilisateurs

Outils du site


docs:faq:p2p_et_ports (lu 27449 fois)

Ceci est une ancienne révision du document !


Introduction

L’un des problèmes les plus fréquents sur les P2P est relatif aux ports (Voir Port_(logiciel)) Lorsque vous utilisez un logiciel qui a besoin d’internet (dont les P2P), il utilise des canaux chacun identifié par un numéro de port. Le problème, c’est que ces canaux sont parfois bloqués (les ports sont bloqués), et les causes de cela sont multiples. Le but de cet article est donc de vous permettre de vérifier s’il y a blocage, d’identifier les causes du blocage, et d’agir de sorte de les libérer.

Théorie

Port entrant et sortant

Tout comme l’on peut circuler dans les deux sens sur un canal, un port partage aussi cette propriété. Ainsi, on dit qu’un port est sortant lorsque le trafic qui circule dessus se dirige vers le réseau internet (vous émettez des données sur ce port). A l’inverse, un port entrant indique que le trafic se dirige vers votre ordinateur (vous recevez des données sur ce port).

Principe général d'un pare-feu

Le pare-feu (firewall) est le dispositif par excellence qui contrôle ce trafic.

Il n’est en effet pas souhaitable d’avoir un ordinateur relié à internet en laissant les données circuler comme bon leur semblent. Par exemple, certains virus (les vers) utilisent votre connexion internet pour se reproduire. D’autres virus (les troyens, ou trojan) prennent le contrôle de votre ordinateur et communiquent avec un autre ordinateur (qui contrôle ces troyens) sur internet à votre insu. Le pare-feu a pour objectif de bloquer ce trafic néfaste.

En règle général, un pare-feu bloque tout, et n’autorise que quelques exceptions. S’il bloquait absolument tout, vous ne pourriez même plus surfer sur internet !

Schémas de déroulement d'une communication

Un programme (un logiciel, une application) est souvent configuré pour utiliser un ou plusieurs ports précis. Nous envisagerons deux cas, le logiciel pourra souhaiter établir une connexion sortante, ou souhaiter attendre d’être contacté (établir une connexion entrante).

Etablir une connexion sortante

Le logiciel souhaite contacter un ordinateur sur internet. Exemple : votre navigateur internet souhaite joindre un site web. Pour cela, votre navigateur utilise le port sortant numéro 80. Pour recevoir la réponse du site web, un autre port est utilisé, mais cette fois-ci il s’agira d’un port entrant. Techniquement, le numéro de ce port importe peu, le principal c’est de recevoir ce qu’on a demandé, alors le port est choisi dynamiquement (c’est à dire un peu au hasard, par exemple : 3146).

Etablir une connexion entrante

Le logiciel peut ne pas avoir besoin de communiquer tout de suite, mais juste dire qu’il sera joignable et attendra qu’un autre ordinateur cherche à le contacter. Pour cela, il utilisera un port entrant (par exemple : 4561). Aucune communication n’est encore établie sur ce port, on dit qu’il est “en écoute” (“listening”). Il attendra qu’un autre ordinateur désire joindre le notre, il pourra alors nous joindre sur ce port sans que nous ne prenions l’initiative d’engager nous même la connexion. Pour aider à comprendre, une analogie : Avec un téléphone, si vous attendez sa sonnerie (êtes à l’écoute de celui-ci), alors qqn pourra vous appeler et vous répondrez. Si au contraire vous ne cherchez pas à écouter la sonnerie en vous bouchant les oreilles, alors vous serez injoignable (et si vous décidez d’appeler la personne, on retombe dans le cas a) Il y a une distinction, c’est que pour le téléphone, plusieurs personnes peuvent écouter et attendre la même sonnerie, tandis qu’en informatique, 2 applications ne peuvent pas écouter simultanément sur le même port.

Globalement

Notons que les deux cas précédents se complètent : nous ne pouvons établir une connexion sortante vers un ordinateur QUE si ce dernier souhaite établir une connexion entrante. Notons également qu’un même numéro de port peut servir indifférement à une connexion entrante ou sortante. L’utilisation de ports entrants ou sortant dépends de ce que l’application cherche à faire. Il se peut qu’elle n’ait besoin d’écouter sur un ou plusieurs port(s), voir aucun ! Idem pour les ports sortants.

Pare-feu et ports dynamiques

Un pare-feu bâtira ses règles de fonctionnement sur ce qu’il y a de fixe. Il ne cherchera pas à bloquer les ports dynamiques pour deux raisons : - d’une part, les ports étant justement dynamiques, ils sont choisis aléatoirement, et nous mêmes ne pouvons pas les deviner car ça change à chaque fois - d’autre part, les ports sont utilisés suite à une communication qui a déjà été vérifiée, et qui dispose donc du feu vert pour faire ce qu’elle veut. Cela explique pourquoi, bien qu’une communication aille dans les 2 sens, il suffit de n’autoriser explicitement qu’un seul sens pour que ça marche.

TCP et UDP

Pour compliquer (mais pas trop non plus !), on distingue les ports TCP et UDP. Ce qui les distingue est une caractéristique technique non essentielle ici (principalement, TCP est “orienté connexion” et assure une certaine fiabilité, ce qui n’est pas le cas d’UDP). Ce qui nous interesse, c’est qu’un même numéro de port peut en même temps être utilisé pour du trafic TCP, et du trafic UDP. On peut par exemple bloquer le port 1234 en TCP, mais le laisser libre en UDP. De même, une application peut écouter sur le port TCP 1234, et une autre application pourra écouter sur le port UDP 1234 (même s’il n’est pas judicieux d’utiliser le même numéro de port).

Ainsi, il y a juste à connaitre quel port sortant utilise l’application pour joindre l’exterieur (internet), et quel port entrant utilise l’application pour être joignable. Il n’est pas systématique qu’une application ait besoin d’un unique port sortant et d’un unique port entrant. Une application utilisera autant de ports que nécessaire, peut être aucun (ou plusieurs) port(s) entrant(s), idem pour les ports sortants. * 2 types de pare-feu



Il faudra parler de : - routeurs, en les listant et en renvoyant à la partie “modem” du wifi - firewalls, en mentionnant celui d’XP, et les autres (Norton, Jetico, McAffee, ISafer, etc…) - port mapping, en mentionnant ICS, les wingates, les proxys …

Pour le moment, cette page est identique à cette question du FAQ : http://aide.p2pfr.com/faq.php?categ=4#C4Q21

Les problèmes de connexion peuvent être dûs a une indisponibilité du serveur (auquel votre P2P tente de se connecter), mais plus fréquemment à un problème relatif à votre réseau, en voici quelques sources :

- Firewall, désactivez-le pour tester si ça marche sans (risqué à long terme compte tenu du nombre de virus/vers qui circulent sur internet, et les failles de Windows), ou configurez-le pour autoriser les ports utilisés par le P2P (certains firewalls comme ZoneAlarm vous proposeront de laisser le P2P agir en tant que serveur et client, ce que vous devrez faire). Note: Windows XP intègre un firewall, il se peut qu’il soit activé sans que vous le sachiez (Aller dans le panneau de configuration pour vérifier cela). Certains logiciels P2P vous permettent de choisir le port que vous souhaitez utiliser, ou vous proposent d’utiliser le port 80 en alternative (à essayer : et si ça marche cela veut dire que votre problème venait de la configuration de votre réseau, vous pouvez alors continuer à utiliser le port 80 ou reconfigurer votre réseau/firewall/proxy…).

La procédure générale pour configurer son firewall est donc la suivante : - reperez le port utilisé par votre logiciel (dans les options d’eMule, de Kazaa ou ailleurs). Si aucun port par défaut n’est configuré (la mention “0” à la place du port apparait généralement), précisez-le à la main en choisissant un numéro superieur à 1024 (aux alentours de 2000 par exemple) - allez ensuite dans la configuration de votre firewall, et ajoutez ce numéro de port en faisant en sorte que les connexions soient autorisées sur ce port.

- Proxy / Wingate. Si vous constatez que votre ordinateur est configuré pour utiliser un proxy (à vérifier dans : Panneau de configuration > Options internet > Connexions > Paramètres > Serveur Proxy ), alors vous devrez le signaler aussi à votre logiciel P2P s’il dispose d’une option pour configurer cela (ce qui est probablement le cas). Vous devrez aussi probablement jeter un oeil à la configuration de votre Proxy pour ajouter les ports utilisés par les P2P.

- Routeur, Partage de connexion (ou ICS), ICS est le mécanisme de partage de connexion utilisé par Windows (le nom ICS vous est peut être inconnu, mais si vous avez activé ce partage de connexion Windows vous l’utilisez sans le savoir). Les outils Wingate ou Winroute peuvent aussi assurer un partage de connexion et sont peut être plus simples à configurer, ou mappez (redirigez en associant un numéro de port à une adresse IP) votre port manuellement (quelques recherches sur google vous seront sans doute nécessaires, en tapant ICS suivi de votre version de windows). Certains modems aDSL ont une fonctionnalité de routeur, et à ce titre doivent être configurés pour faire fonctionner les P2P. La procédure de configuration est similaire à celle du firewall (choix d’un port depuis le logiciel P2P, puis configuration du routeur pour qu’il transmette les données de ce port vers la bonne machine)

Si les notions de firewall et de port vous sont étrangères, consultez le dossier sur la sécurité

Pour avoir une idée des ports utilisés par défaut par les P2P, vous pouvez consulter le topic sur le forum “Liste des ports utilisés par les P2P”

Si vous avez Windows XP et le Service Pack 2 d’installé (SP2), vous pouvez consulter ce topic, vos problèmes y sont peut être liés. (Avec SP2, il est parfois difficile d’obtenir de bonnes performances sur certains P2P, voir même difficile de s’y connecter)

Assurez vous également à ce que votre connexion internet ne soit pas trop sollicitée par d’autres programmes (sourtout vrai pour les possesseurs de connexion internet bas débit), si votre connexion est déjà occupée ailleurs, vous ne réussirez pas à établir une connexion tant le débit d’informations reçues sera insuffisant, le délai qui est imparti pour l’établissement de celle-ci sera dépassé et la connexion sera rompue. (Timeout)

Il ne faut pas non plus oublier la nature du serveur auquel vous êtes connecté, dans les P2P décentralisés, ce sont des utilisateurs tout comme vous (supernodes/ultrapeers), qui sont donc susceptibles de se déconnecter et de ne plus assurer la transition entre votre ordinateur et celui des autres.

docs/faq/p2p_et_ports.1176119334.txt.gz · Dernière modification: 04-04-2013 22:05 (modification externe)