Bien que cette question ait déjà été marquée comme ayant reçu une réponse, je voulais répondre à certaines des questions supplémentaires posées dans le PO.
Ces ports sont-ils des objets physiques?
Aucun port n'est pas un objet physique.
Un numéro de port est un entier non signé de 16 bits, ce qui signifie que la plage de ports disponibles pour une utilisation va de 1 à 65535 (le numéro de port 0 est réservé et ne peut pas être utilisé). Un processus associe ses canaux d'entrée ou de sortie via des sockets Internet, un type de descripteur de fichier, à un protocole de transport, un numéro de port et une adresse IP. Ce processus est connu sous le nom de liaison et permet d'envoyer et de recevoir des données via le réseau.
Sont-ils intégrés à mon ordinateur? Sont-ils même quelque chose de physique? Ou écrit en code? Où est ce code? Le système d'exploitation? Qu'est-ce qu'un port?
Le logiciel de mise en réseau du système d'exploitation a pour tâche de transmettre les données sortantes de tous les ports d'application au réseau et de transmettre les paquets réseau arrivant à un processus en faisant correspondre l'adresse IP et le numéro de port du paquet.
Un seul processus peut se lier à une combinaison d'adresses IP et de ports spécifiques à l'aide du même protocole de transport. Les échecs d'application courants, parfois appelés conflits de port, se produisent lorsque plusieurs programmes tentent de se lier aux mêmes numéros de port sur la même adresse IP à l'aide du même protocole.
Le paragraphe ci-dessus est essentiel pour comprendre pourquoi les ports / protocoles sont utilisés en réseau. Si nous n'avions pas de moyen de spécifier le protocole, qui transmet les données sur un numéro de port convenu - vous ne seriez pas en mesure de faire plus d'une chose à la fois (vérifiez votre courrier électronique et utilisez le Web) car votre ordinateur aurait aucun moyen de faire la différence entre les données de votre client de messagerie et les données du site Web que vous consultez.
Combien de ports y a-t-il?
Les numéros de port sont attribués de différentes manières, en fonction de trois plages:
Ports bien connus / système (0-1023) - Cette gamme de ports est utilisée par les processus système qui fournissent des types de services réseau largement utilisés (HTTP / 80, HTTPS / 443, Telnet / 21, SSH / 22)
Ports enregistrés / utilisateurs (1024-49151) - La plage de numéros de port de 1024 à 49151 sont les ports enregistrés. Ils sont attribués par l'IANA pour un service spécifique à la demande d'une entité requérante. (Webmin / 10000, proxy HTTP / 8080, protocole de bureau à distance / 3389, etc.)
Ports éphémères / dynamiques / privés (49152-65535) - La plage 49152–65535 contient des ports dynamiques ou privés qui ne peuvent pas être enregistrés auprès de l'IANA. Cette gamme est utilisée à des fins personnalisées ou temporaires et pour l'allocation automatique de ports éphémères.
Puis-je augmenter ou diminuer le nombre de ports?
En ce qui concerne la possibilité d'augmenter le nombre de ports disponibles, vous ne pouvez pas attribuer un port supérieur à 65535 en raison des mathématiques qui permettent au réseau de fonctionner (binaire) - donc la réponse à cette question est non, vous ne pouvez pas augmenter le nombre total de ports disponibles ports au-dessus de 65535.
Quels sont les protocoles?
En informatique, un protocole de communication est un système de règles numériques pour l'échange de messages à l'intérieur ou entre des ordinateurs. Lorsque des messages sont échangés via un réseau informatique, le système de règles est appelé protocole réseau. Un protocole est essentiellement un ensemble convenu d'instructions / commandes / appels sur lequel deux appareils en réseau peuvent communiquer. Vous pensez que si nous n'avions pas convenu de protocoles et de serveurs Web, nous avons simplement envoyé des données de manière aléatoire à des navigateurs Web dont le navigateur ne savait pas quoi faire? Heureusement, nous avons HTTP et que chaque navigateur Web créé a intégré au logiciel afin qu'il puisse communiquer avec n'importe quel serveur Web qui parle également la même langue (HTTP).
J'imagine qu'il s'agit d'une sorte de code ... Pouvez-vous créer votre propre protocole? Quelle langue utilisez-vous pour créer un protocole?
Oui, vous pouvez créer vos propres protocoles. Les protocoles sont écrits dans une grande variété de langues. Je ne suis pas développeur de logiciels, mais je suis à peu près sûr que tant que la langue que vous utilisez possède des bibliothèques qui vous permettent d'écrire des logiciels qui peuvent communiquer via TCP / IP (il existe d'autres suites de protocoles, mais TCP / IP est le plus largement utilisé), vous pouvez utiliser cette langue pour écrire un protocole. Le langage de programmation «C» semble être le plus couramment utilisé pour écrire des protocoles. Cela est dû au fait que bon nombre des premiers protocoles réseau ont été développés sur UNIX dans les années 1970 et C se trouve être le langage dans lequel UNIX lui-même est écrit.
Comment obtenir un port spécifique pour exécuter un protocole spécifique?
Cela diffère un peu entre les systèmes d'exploitation. Par exemple, pour modifier le numéro de port sur lequel s'exécute le protocole Bureau à distance sous Windows, vous devez modifier le registre. Sous Linux, de nombreux services réseau peuvent être configurés directement à partir d'un fichier .conf pour un service réseau particulier.
Comment définissez-vous ou inventez-vous un nouveau protocole?
Voir https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ pour un article de blog par quelqu'un qui a récemment développé un nouveau protocole de mise en réseau et quel genre de choses il devait faire le long du chemin.