<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Sockets</id>
	<title>Sockets - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Sockets"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Sockets&amp;action=history"/>
	<updated>2026-06-12T01:30:24Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Sockets&amp;diff=2138&amp;oldid=prev</id>
		<title>Justine le 22 juin 2022 à 11:49</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Sockets&amp;diff=2138&amp;oldid=prev"/>
		<updated>2022-06-22T11:49:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 22 juin 2022 à 11:49&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:linux]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Liens et ressources =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Liens et ressources =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://ops.tips/blog/how-linux-creates-sockets/ Un article que je reprend ici.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* https://ops.tips/blog/how-linux-creates-sockets/ Un article que je reprend ici.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-mediawiki:diff:1.41:old-1797:rev-2138:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Sockets&amp;diff=1797&amp;oldid=prev</id>
		<title>Justine le 19 novembre 2021 à 17:15</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Sockets&amp;diff=1797&amp;oldid=prev"/>
		<updated>2021-11-19T17:15:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 19 novembre 2021 à 17:15&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Ligne 15 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 15 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fichier:Socket accept.png|sans_cadre]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fichier:Socket accept.png|sans_cadre]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Où se trouvent les sockets &lt;/del&gt;dans mon &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GNU/Linux &lt;/del&gt;? =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Et &lt;/ins&gt;dans mon &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;OS &lt;/ins&gt;? =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;On va désormais se demander où se trouvent les sockets, combien il y&amp;#039;en, dans quel état ils sont et comment ils sont créés.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;On va désormais se demander où se trouvent les sockets, combien il y&amp;#039;en, dans quel état ils sont et comment ils sont créés.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Sockets&amp;diff=1796&amp;oldid=prev</id>
		<title>Justine : /* ss : la commande dédiée aux infos sur les sockets */</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Sockets&amp;diff=1796&amp;oldid=prev"/>
		<updated>2021-11-19T17:14:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;ss : la commande dédiée aux infos sur les sockets&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 19 novembre 2021 à 17:14&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l158&quot;&gt;Ligne 158 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 158 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LISTEN        0             4096                              *:ssh                              *:*                           &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LISTEN        0             4096                              *:ssh                              *:*                           &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LISTEN        0             128                            [::]:220                           [::]:*          &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LISTEN        0             128                            [::]:220                           [::]:*          &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Liste des sockets UDP en écoute ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Liste des sockets UDP en écoute ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Sockets&amp;diff=1795&amp;oldid=prev</id>
		<title>Justine : Page créée avec « = Liens et ressources = * https://ops.tips/blog/how-linux-creates-sockets/ Un article que je reprend ici. * http://n8on.free.fr/hackzines/counterstrike/3/rawsockets.html U… »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Sockets&amp;diff=1795&amp;oldid=prev"/>
		<updated>2021-11-19T17:14:18Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « = Liens et ressources = * https://ops.tips/blog/how-linux-creates-sockets/ Un article que je reprend ici. * http://n8on.free.fr/hackzines/counterstrike/3/rawsockets.html U… »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Liens et ressources =&lt;br /&gt;
* https://ops.tips/blog/how-linux-creates-sockets/ Un article que je reprend ici.&lt;br /&gt;
* http://n8on.free.fr/hackzines/counterstrike/3/rawsockets.html Un truc sur les sockets RAW&lt;br /&gt;
* https://www.networkworld.com/article/3327557/using-the-linux-ss-command-to-examine-network-and-socket-connections.html Un truc sur sockstat&lt;br /&gt;
* https://www.tecmint.com/ss-command-examples-in-linux/ Des exemples de commande ss&lt;br /&gt;
&lt;br /&gt;
= Qu&amp;#039;est-ce qu&amp;#039;un Socket ? =&lt;br /&gt;
Les sockets sont des objets permettant à des processus situés sur différentes machines de communiquer entre eux via un réseau sous-jacent; ils peuvent également permettre à plusieurs processus situés sur la même machine de communiquer entre eux via des sockets UNIX. &lt;br /&gt;
&lt;br /&gt;
On peut donc voir les sockets comme les portes d&amp;#039;une maison (le kernel), dans laquelle le processus serait un occupant. Pour chaque porte, un client peut arriver frapper, ce qui correspond à l&amp;#039;envoi d&amp;#039;un paquet SYN. La maison répond alors avec une réponse (SYN/ACK) : c&amp;#039;est le handshake TCP.&lt;br /&gt;
Pendant que le processus est en attente, les clients sont organisés en deux files d&amp;#039;attente : une pour ceux avec qui le kernel est toujours en train de faire son handshake, et une pour ceux avec qui c&amp;#039;est fait.&lt;br /&gt;
&lt;br /&gt;
Pour les clients avec qui le handshake est fini, la communication peut alors s&amp;#039;établir. Pour ce faire, le kernel crée un socket client (une porte privée, en quelque sorte), et permet au processus de dialoguer avec son client.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Socket accept.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
= Où se trouvent les sockets dans mon GNU/Linux ? =&lt;br /&gt;
On va désormais se demander où se trouvent les sockets, combien il y&amp;#039;en, dans quel état ils sont et comment ils sont créés. &lt;br /&gt;
&lt;br /&gt;
Imaginons un programme qui créée un socket et n&amp;#039;en fais rien. Je reprends ici l&amp;#039;exemple de l&amp;#039;article ops.tips situé dans les liens qui est en C.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
// socket.c - creates a socket and then sleeps.&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Creates a TCP IPv4 socket and then just&lt;br /&gt;
 * waits.&lt;br /&gt;
 */&lt;br /&gt;
int&lt;br /&gt;
main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
	// The `socket(2)` syscall creates an endpoint for communication&lt;br /&gt;
	// and returns a file descriptor that refers to that endpoint.&lt;br /&gt;
	//&lt;br /&gt;
	// It takes three arguments (the last being just to provide greater&lt;br /&gt;
	// specificity):&lt;br /&gt;
	// -    domain (communication domain)&lt;br /&gt;
	//      AF_INET              IPv4 Internet protocols&lt;br /&gt;
	//&lt;br /&gt;
	// -    type (communication semantics)&lt;br /&gt;
	//      SOCK_STREAM          Provides sequenced, reliable,&lt;br /&gt;
	//                           two-way, connection-based byte&lt;br /&gt;
	//                           streams.&lt;br /&gt;
	int listen_fd = socket(AF_INET, SOCK_STREAM, 0);&lt;br /&gt;
	if (err == -1) {&lt;br /&gt;
		perror(&amp;quot;socket&amp;quot;);&lt;br /&gt;
		return err;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Just wait ...&lt;br /&gt;
        sleep(3600);&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Des informations sur les sockets ==&lt;br /&gt;
&lt;br /&gt;
En interne, l&amp;#039;appel système de création de socket provoque plusieurs méthodes internes; celles-ci peuvent nous laisser voir des informations dans :&lt;br /&gt;
* /proc/&amp;lt;pid&amp;gt;/net/tcp&lt;br /&gt;
* /proc/&amp;lt;pid&amp;gt;/fd&lt;br /&gt;
* /proc/&amp;lt;pid&amp;gt;/net/sockstat&lt;br /&gt;
&lt;br /&gt;
=== /proc/&amp;lt;pid&amp;gt;/net/fd : fichiers ouvert par le processus ===&lt;br /&gt;
Le répertoire fd nous donne une liste des fichiers ouverts par le process. Par exemple, ici avec Varnish:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@gate:/proc/4179698/fd# ls -lah&lt;br /&gt;
total 0&lt;br /&gt;
dr-x------ 2 root   root     0 Nov 19 17:47 .&lt;br /&gt;
dr-xr-xr-x 9 vcache varnish  0 Nov 19 17:47 ..&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 0 -&amp;gt; /dev/null&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 1 -&amp;gt; &amp;#039;socket:[24908688]&amp;#039;&lt;br /&gt;
l-wx------ 1 root   root    64 Nov 19 17:47 11 -&amp;gt; &amp;#039;pipe:[24908763]&amp;#039;&lt;br /&gt;
lr-x------ 1 root   root    64 Nov 19 17:47 12 -&amp;gt; &amp;#039;pipe:[24908764]&amp;#039;&lt;br /&gt;
lr-x------ 1 root   root    64 Nov 19 17:47 14 -&amp;gt; &amp;#039;pipe:[24908765]&amp;#039;&lt;br /&gt;
lr-x------ 1 root   root    64 Nov 19 17:47 16 -&amp;gt; /var/lib/varnish/gate/_.vsm_child&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 2 -&amp;gt; &amp;#039;socket:[24908688]&amp;#039;&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 3 -&amp;gt; &amp;#039;socket:[24908709]&amp;#039;&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 4 -&amp;gt; &amp;#039;socket:[24908710]&amp;#039;&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 5 -&amp;gt; /var/nish/varnish_storage.bin&lt;br /&gt;
l-wx------ 1 root   root    64 Nov 19 17:47 6 -&amp;gt; /var/lib/varnish/gate/_.pid&lt;br /&gt;
lr-x------ 1 root   root    64 Nov 19 17:47 7 -&amp;gt; /var/lib/varnish/gate/_.vsm_mgt&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 8 -&amp;gt; &amp;#039;socket:[24908761]&amp;#039;&lt;br /&gt;
lrwx------ 1 root   root    64 Nov 19 17:47 9 -&amp;gt; &amp;#039;socket:[24908762]&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== /proc/&amp;lt;pid&amp;gt;/net/tcp : informations sur les connexions actives ===&lt;br /&gt;
Toujours avec Varnish, nous avons des informations sur l&amp;#039;état des connexion TCP dans le namespace réseau de notre process :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@gate:/proc/4179698/net# cat tcp&lt;br /&gt;
  sl  local_address rem_address   st tx_queue rx_queue tr tm-&amp;gt;when retrnsmt   uid  timeout inode                                                     &lt;br /&gt;
   0: 00000000:0050 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 14539 1 00000000e68e62f0 100 0 1 10 0                     &lt;br /&gt;
   1: 00000000:0051 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 24908709 1 000000001333672c 100 0 0 10 0                  &lt;br /&gt;
   2: 00000000:20D4 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 14528 1 00000000a1a3a11a 100 0 1 10 0                     &lt;br /&gt;
   3: 00000000:01BB 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 14540 1 00000000593430e6 100 0 1 10 0                     &lt;br /&gt;
   4: 00000000:00DC 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 839035 1 00000000128a12ea 100 0 0 10 0                    &lt;br /&gt;
   5: 00000000:199C 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 13703 1 0000000025d2d4ad 100 0 0 10 0                     &lt;br /&gt;
   6: 0100007F:17C2 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 24908761 1 0000000009c5c214 100 0 0 10 0                  &lt;br /&gt;
   7: 0200000A:199C 0400000A:E5F8 06 00000000:00000000 03:00000880 00000000     0        0 0 3 000000006a58b6a3                                      &lt;br /&gt;
   8: ECBA825E:00DC FA4E4152:D3AC 01 00000034:00000000 01:00000015 00000000     0        0 121402388 4 000000008d80e568 21 5 31 10 -1                &lt;br /&gt;
   9: ECBA825E:01BB FA4E4152:E7DA 01 00000000:00000000 00:00000000 00000000   106        0 121410090 1 000000006e54dbe1 21 4 25 10 -1                &lt;br /&gt;
  10: 0200000A:9EC6 0300000A:0050 01 00000000:00000000 00:00000000 00000000   106        0 121413050 1 00000000c38a7689 20 4 26 10 -1                &lt;br /&gt;
  11: ECBA825E:01BB C64F0C31:DE44 06 00000000:00000000 03:0000043E 00000000     0        0 0 3 000000003cf315ac                                      &lt;br /&gt;
  12: 0200000A:9B00 0500000A:0BB8 01 00000000:00000000 00:00000000 00000000   106        0 121413061 1 00000000ce9ec671 20 4 22 10 -1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
C&amp;#039;est peu lisible par un humain !&lt;br /&gt;
&lt;br /&gt;
=== /proc/&amp;lt;pid&amp;gt;/net/sockstat : Résumé concernant le socket ===&lt;br /&gt;
Varnish, encore une fois.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
sockets: used 156&lt;br /&gt;
TCP: inuse 10 orphan 0 tw 8 alloc 13 mem 1&lt;br /&gt;
UDP: inuse 2 mem 2&lt;br /&gt;
UDPLITE: inuse 0&lt;br /&gt;
RAW: inuse 0&lt;br /&gt;
FRAG: inuse 0 memory 0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nous avons ici:&lt;br /&gt;
* TCP : Connexion utilisées, orphelines (donc plus attachées à un descripteur de fichier), en timewait, allouées (de tout type); et mem, la mémoire totale utilisée pour le socket.&lt;br /&gt;
* UDP : Connexions utilisée, mémoire totale&lt;br /&gt;
* UDPLITE : Un protocole décrit dans la RFC 3828, un genre d&amp;#039;UDP adapté aux connexions peu fiables (les paquets endommagés sont quand même délivrés).&lt;br /&gt;
* RAW : Socket RAW, soit des sockets où les en-têtes sont écrites à la main (sans protocole spécifique attaché). Utile pour coder un truc comme Nmap par exemple.&lt;br /&gt;
* FRAG : Fragmentés.&lt;br /&gt;
&lt;br /&gt;
=== ss : la commande dédiée aux infos sur les sockets ===&lt;br /&gt;
Cette commande, dont le nom est un raccourci de &amp;quot;sockstat&amp;quot;, donne beaucoup d&amp;#039;informations sur les connexions en cours. C&amp;#039;est une superbe alternative à lsof et netstat. Un lancement simple de la commande affiche toutes les connexions en cours, sockets UNIX compris :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
u_str    ESTAB    0         0                                          * 14478                      * 13625                   &lt;br /&gt;
u_str    ESTAB    0         0                /run/dbus/system_bus_socket 12976                      * 12975                   &lt;br /&gt;
u_str    ESTAB    0         0                /run/systemd/journal/stdout 13625                      * 14478                   &lt;br /&gt;
u_str    ESTAB    0         0                                          * 14425                      * 14426                   &lt;br /&gt;
tcp      ESTAB    0         52                            94.130.186.236:220             82.65.78.250:54188                   &lt;br /&gt;
tcp      ESTAB    0         0                                   10.0.0.2:47436               10.0.0.5:3000                    &lt;br /&gt;
tcp      ESTAB    0         0                             94.130.186.236:https           82.65.78.250:59366                   &lt;br /&gt;
tcp      ESTAB    0         0                                   10.0.0.2:48398               10.0.0.3:http &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elle offre beaucoup de possibilités. Deux trois exemples ci-dessous, mais il existe plein d&amp;#039;autres choses.&lt;br /&gt;
&lt;br /&gt;
==== Liste des socket tcp actuellements en mode écoute ====&lt;br /&gt;
ss -tl: t pour tcp, l pour listening&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@gate:/proc/4179698/net# ss -tl&lt;br /&gt;
State         Recv-Q        Send-Q                Local Address:Port                  Peer Address:Port        Process        &lt;br /&gt;
LISTEN        0             4096                        0.0.0.0:http                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             1024                        0.0.0.0:81                         0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             4096                        0.0.0.0:8404                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             4096                        0.0.0.0:https                      0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             128                         0.0.0.0:220                        0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             64                          0.0.0.0:6556                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             10                        127.0.0.1:6082                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             1024                           [::]:81                            [::]:*                          &lt;br /&gt;
LISTEN        0             4096                              *:ssh                              *:*                          &lt;br /&gt;
LISTEN        0             128                            [::]:220                           [::]:*         &lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Liste des sockets UDP en écoute ====&lt;br /&gt;
ss -lu&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@gate:/proc/4179698/net# ss -tl&lt;br /&gt;
State         Recv-Q        Send-Q                Local Address:Port                  Peer Address:Port        Process        &lt;br /&gt;
LISTEN        0             4096                        0.0.0.0:http                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             1024                        0.0.0.0:81                         0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             4096                        0.0.0.0:8404                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             4096                        0.0.0.0:https                      0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             128                         0.0.0.0:220                        0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             64                          0.0.0.0:6556                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             10                        127.0.0.1:6082                       0.0.0.0:*                          &lt;br /&gt;
LISTEN        0             1024                           [::]:81                            [::]:*                          &lt;br /&gt;
LISTEN        0             4096                              *:ssh                              *:*                          &lt;br /&gt;
LISTEN        0             128                            [::]:220                           [::]:*         &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sous le capot d&amp;#039;un lancement de Socket ==&lt;br /&gt;
&lt;br /&gt;
CONTINUER https://ops.tips/blog/how-linux-creates-sockets/&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>