# Réseau - sockets

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/w4Sdebutant-png.png)  
</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Débutant

Notions : adressage IP, port, modèle OSI, protocoles réseaux.

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

<p class="callout danger">**Prérequis** : Connaître les notions de modèle OSI et l'adressage IP (à minima V4).</p>

Lorsqu'une machine veut utiliser un protocole pour envoyer ou recevoir des informations sur un réseau, elle va devoir ouvrir un canal de communication.

Comme la machine peut ouvrir plusieurs canaux de communication à la fois, elle va avoir besoin de pouvoir identifier quel canal est utilisé pour quelle communication.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Principes du socket</span>**</span>

#### **<span style="color: rgb(35,111,161);">2.1 Définition</span>**

En réseau, un socket est un couple d'adresse ip / port basés sur un protocole, permettant d'envoyer ou recevoir des données à travers un réseau informatique.

Il y a 3 choses qui identifient un socket sur le réseau :

- **Adresse IP** : l'adresse IP avec laquelle la machine initie la communication.
- **Port** **source** : le port source qu'elle va dédier à la communication (selon le protocole, celui-ci peut être fixe, compris dans une plage ou défini aléatoirement).
- **Protocole** : Le protocole utilisé dans la communication.

Pour la machine, un socket se présente comme suit : ***&lt;ip machine&gt;:&lt;port&gt;.***

*Par exemple : 192.168.1.10:250458 (TCP)*

Il existe trois types de socket, basé sur le protocole utilisé (TCP, UDP, Raw) :

<table id="bkmrk-type-description-uti" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(194,224,244);">Type</td><td class="align-center" style="background-color: rgb(194,224,244);">Description</td><td class="align-center" style="background-color: rgb(194,224,244);">Utilisation type</td></tr><tr><td>**Stream Socket (TCP)**</td><td>Fiable et orienté connexion.</td><td>navigation web, messagerie, etc...</td></tr><tr><td>**Datagram Socket (UDP)**</td><td>Plus rapide mais pas de contrôle</td><td>streaming vidéo, VoIP, jeux en ligne, etc...</td></tr><tr><td>**RAW Socket**</td><td>Accès direct aux couches basses</td><td>Diagnostics réseaux, protocoles personnalisés, etc...</td></tr></tbody></table>

#### **<span style="color: rgb(35,111,161);">2.1 Limitations</span>**

Un socket ne peut être attribué qu'a un seul canal de communication à la fois, donc si la machine veut en ouvrir plusieurs, elle devra utiliser plusieurs sockets différents.

Selon les protocoles utilisés et leurs limitations ou paramétrage, elle ne pourra en ouvrir qu'un nombre simultané limité. Voire un seul.

#### **<span style="color: rgb(35,111,161);">2.3 Attribution des sockets</span>**

Un socket ne peut être attribué qu'a un seul canal de communication à la fois, donc si la machine veut en ouvrir plusieurs, elle devra utiliser plusieurs sockets différents.

Selon les protocoles utilisés et leurs limitations ou paramétrage, elle ne pourra en ouvrir qu'un nombre simultané limité. Voire un seul.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">III. Socket client et socket serveur</span>**</span>

#### **<span style="color: rgb(35,111,161);">3.1 Côté serveur</span>**

Côté serveur, le socket d'écoute est fixé par le protocole.

Il peut s'agir d'un port fixe : par exemple le 53(UDP/TCP) pour le DNS ou le 123 (UDP) pour le NTP.

Une plage de port : 3478 - 3481 (Microsoft TEAMS)

*Souvent, un port unique fait office de point d'entrée et un répartiteur écoutant sur ce port, redirige le client sur un port destination spécifique de la plage.*

#### **<span style="color: rgb(35,111,161);">3.1 Côté client</span>**

Côté client, il s'agit le plus souvent d'un port source dynamique

Sauf fonctionnement spécifique, la plage de port pour un socket côté client s’étend de  **49152 - 65535** conformément à ce qui est prévus dans les catégories de ports.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">IV. Opérations de diagnostics</span>**</span>

#### **<span style="color: rgb(35,111,161);">4.1 Visualiser les sockets utilisés.</span>**

##### *<span style="color: rgb(35,111,161);">4.1.2 Sur windows</span>*

Utiliser les commandes suivantes :

```bash
netstat -an
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ljlimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Ljlimage-png.png)

Pour plus de détails :

```bash
netstat -anob
```

Lister seulement les ports en écoutes :

```
netstat -anob | findstr LISTENING
```

##### *<span style="color: rgb(35,111,161);">4.1.2 Sur linux</span>*

Utiliser les commandes suivantes :

```
netstat
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/K4oimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/K4oimage-png.png)

Lister seulement les ports en écoutes :

```bash
netstat -tunlp
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DnEimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/DnEimage-png.png)

Lister depuis les processus :

```
lsof -nP -iTCP -sTCP:LISTEN
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PX8image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/PX8image-png.png)