Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
040-adresses:030-demonstration-v4 [le 20/09/2025 à 15:04] – supprimée - modification externe (Date inconnue) 127.0.0.1040-adresses:030-demonstration-v4 [le 21/09/2025 à 14:03] (Version actuelle) – [Deuxième recherche ARP] prof
Ligne 1: Ligne 1:
 +====== Un exemple simple avec IPv4 ======
 +Nous allons mettre en évidence tous les mécanismes mis en jeu lorsqu'un nœud du réseau local qui vient de démarrer souhaite obtenir une page publiée par un serveur web.
  
 +====== Le banc de test ======
 +{{ 040-adresses:demolan.svg?600 |La Maquette}}
 +Le réseau local IPV4 est le suivant:
 +  * le bloc IPv4 = 192.168.60/24. Nous utilisons des adresses privées. En V4, pas possible de faire autrement, sauf en achetant des IPv4 publiques, ce qi n'est plus guère possible pour un particulier.;
 +  * une station de travail dispose de l'adresse 192.168.60.112;
 +  * un serveur DNS local a l'adresse 192.168.60.3;
 +  * la «box» du fournisseur d'accès a l'adresse 192.168.60.254 dans le réseau local. Elle est connectée au réseau du F.A.I par la fibre et dispose sur l'internet de l'unique adresse IPV4 que nous attribue le F.A.I. Un tour de passe-passe((Ce tour bien connu s'appelle «le masquage d'adresse» et nous ne manquerons pas, bien entendu, d'en étudier les subtilités.)) va tout de même permettre aux nœuds du lan, malgré leur adresse privée, de joindre des nœuds de l'internet disposant de «vraies adresses» IP(V4).
 +Un analyseur de trames est installé sur la station de travail et va capturer tout ce qu'il se passe le concernant lorsqu'il cherche à joindre la page d'accueil située sur ''demo.nain-t.net''.
 +====== Analyse de l'enregistrement ======
 +===== Première recherche ARP =====
 +<html><pre class="code">
 +1     <span class="hlg">1c:b7:2c:2d:74:e6</span>     <span  class="bhly">Broadcast             ARP      42     Who has 192.168.60.3? Tell 192.168.60.112</span>
 +2     <span class="hlb">1c:b7:2c:df:a1:f0</span>     <span class="hly">1c:b7:2c:2d:74:e6</span>     <span class="bhly">ARP      ''192.168.60.3'' is at 18:31:bf:df:a1:f0</span>
 +</pre></html>
 +Rappelons que la station de travail vient de se réveiller.
 +  * Elle demande alors par un broadcast ARP (ff:ff:ff:ff:ff:ff) qui a l'adresse IP 192.168.60.3 c'est-à-dire le serveur DNS;
 +  * Ledit serveur DNS utilise alors ARP pour répondre: ''192.168.60.3'' est à l'adresse ''18:31:bf:df:a1:f0''.
 +La réponse à la question "pourquoi la station de travail demande-t-elle cette information ?" se trouve dans les deux trames qui suivent: C'est pour joindre le serveur DNS
 +===== Résolution du nom de la cible =====
 +
 +<html><pre class="code">
 +3     <span class="hlg">192.168.60.112</span>        <span class="hlb">192.168.60.3</span>          <span class="hly">DNS      Standard query 0xcaaa A demo.nain-t.net</span>
 +4     <span class="hlb">192.168.60.3</span>          <span class="hlg">192.168.60.112</span>        <span class="hly">DNS      Standard query response 0xcaaa A <b>demo.nain-t.net A 51.68.121.59</b></span>
 +</pre></html>
 +La station de travail demande au serveur DNS quelle est l'adresse de ''demo.nain-t.net'' et le serveur lui répond que c'est ''51.68.121.59''. Bon. Mais que viennent faire les adresses MAC là dedans? Voyons tout le détail de la trame 3:
 +
 +<html><pre class="code">
 +Frame 3: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface enp2s0f2, id 0
 +
 +<span class="hlw">Ethernet II, Src: 1c:b7:2c:2d:74:e6 (1c:b7:2c:2d:74:e6), Dst: 1c:b7:2c:df:a1:f0 (18:31:bf:df:a1:f0)
 +    Destination: 1c:b7:2c:df:a1:f0 (18:31:bf:df:a1:f0)
 +        Address: 1c:b7:2c:df:a1:f0 (18:31:bf:df:a1:f0)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Source: 1c:b7:2c:2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        Address: 1c:b7:2c:2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Type: IPv4 (0x0800)</span>
 +<span class="hlo">Internet Protocol Version 4, Src: 192.168.60.112, Dst: 192.168.60.3
 +    0100 .... = Version: 4
 +    .... 0101 = Header Length: 20 bytes (5)
 +    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
 +        0000 00.. = Differentiated Services Codepoint: Default (0)
 +        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
 +    Total Length: 60
 +    Identification: 0x7449 (29769)
 +    010. .... = Flags: 0x2, Don't fragment
 +        0... .... = Reserved bit: Not set
 +        .1.. .... = Don't fragment: Set
 +        ..0. .... = More fragments: Not set
 +    ...0 0000 0000 0000 = Fragment Offset: 0
 +    Time to Live: 64
 +    Protocol: UDP (17)
 +    Header Checksum: 0xcca3 [validation disabled]
 +    [Header checksum status: Unverified]
 +    Source Address: 192.168.60.112
 +    Destination Address: 192.168.60.3</span>
 +    <span class="hlb">
 +User Datagram Protocol, Src Port: 51269, Dst Port: 53
 +    Source Port: 51269
 +    Destination Port: 53
 +    Length: 40
 +    Checksum: 0xf9fd [unverified]
 +    [Checksum Status: Unverified]
 +    [Stream index: 0]
 +    [Timestamps]
 +        [Time since first frame: 0.000000000 seconds]
 +        [Time since previous frame: 0.000000000 seconds]
 +    UDP payload (32 bytes)
 +Domain Name System (query)
 +    Transaction ID: 0xcaaa
 +    Flags: 0x0100 Standard query
 +        0... .... .... .... = Response: Message is a query
 +        .000 0... .... .... = Opcode: Standard query (0)
 +        .... ..0. .... .... = Truncated: Message is not truncated
 +        .... ...1 .... .... = Recursion desired: Do query recursively
 +        .... .... .0.. .... = Z: reserved (0)
 +        .... .... ...0 .... = Non-authenticated data: Unacceptable
 +    Questions: 1
 +    Answer RRs: 0
 +    Authority RRs: 0
 +    Additional RRs: 0
 +    Queries
 +        demo.nain-t.net: type A, class IN
 +            Name: demo.nain-t.net
 +            [Name Length: 14]
 +            [Label Count: 3]
 +            Type: A (Host Address) (1)
 +            Class: IN (0x0001)
 +    [Response In: 4]</span>
 +</pre></html>
 +  - La partie surlignée en blanc représente ce qui concerne la couche Ethernet. Dans cette couche, nous voyons bien que seules les adresses MAC sont utilisées. Cette couche ne concerne que le transport dans le réseau local. Les source et destination MAC correspondent bien aux IP des deux nœuds. Il y a dans cette couche le type utilisé dans la couche supérieure: ''Type: IPv4''.
 +  - La partie surlignée en orange représente le couche IP. Ici bien entendu ce sont les adresses IP qui sont utilisées. Le client s'adresse au serveur DNS. Ils sont tous les deux dans le réseau local. Ici, l'information concernant la couche supérieure est également indiquée: ''Protocol: UDP''.
 +  - Enfin, la partie surlignée en bleu correspond à la partie application. Nous découvrons les ports serveur (53) et client (51269). Nous y trouvons les détails du protocole DNS avec la question posée: ''demo.nain-t.net: type A, class IN''.
 +
 +Il n'est pas fondamental de détailler la trame 4 qui n'est que la réponse du berger à la bergère, en suivant le même protocole, ce qui donne: ''demo.nain-t.net: type A, class IN, addr 51.68.121.59''.
 +
 +<note important>Notons que l'adresse du serveur ''demo.nain-t.net'' n'est pas du tout dans le réseau local. La couche 3 du modèle OSI (Réseau) qui correspond dans notre modèle à la couche «Internet» l'a détecté et va donc rechercher le routeur à utiliser, ce qui exilique la présence des deux trames qui suivent:</note>
 +===== Deuxième recherche ARP =====
 +
 +<html><pre class="code">
 +5     1c:b7:2c:2d:74:e6     Broadcast             ARP      <span class="bhly">Who has 192.168.60.254? Tell 192.168.60.112</span>
 +6     FreeboxS_86:ec:02     1c:b7:2c:2d:74:e6     ARP      <span class="bhly">192.168.60.254 is at 68:a3:78:86:ec:02</span>
 +
 +</pre></html>
 +
 +La station de travail cherche à connaître l'adresse MAC de la «box» que nous savons être ''192.168.60.254'' car c'est elle qui assure la fonction de routage((À voir en détail dans le chapitre qui lui est consacré)) du LAN vers le reste du monde. Si bien que, lors de l'établissement de la connexion TCP entre la station de travail et le serveur distant:
 +===== Établissement de la connexion TCP avec la cible =====
 +
 +<html><pre class="code">
 +7    192.168.60.112        51.68.121.59          TCP      45616 → 80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=1954462386 TSecr=0 WS=128
 +8    51.68.121.59          192.168.60.112        TCP      80 → 45616 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=3689330405 TSecr=1954462386 WS=128
 +9    192.168.60.112        51.68.121.59          TCP      645616 → 80 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=1954462406 TSecr=3689330405
 + 
 +</pre></html>
 +En ce qui concerne directement TCP, nous pouvons observer que de nombreux paramètres vont être négociés:
 +^   Source Port |  45616  | C'est le client qui le choisit plus ou moins au hasard |
 +^   Destination Port |  80  | C'est le port conventionnel pour les serveurs HTTP |
 +^   Window |  64240  | Taille de la fenêtre proposée par le client |
 +^   MSS |  1460  | Maximum Segment Size, en rapport avec le MTU((Le MTU étant généralement de 1500 octets. Mais ici il faut retrancher la taille de l'en-tête IP (20 octets) ainsi que la taille de l'en-tête TCP, également de 20 octets.))|
 +^   WS |  128  | Window Scale (multiplicateur de la taille de la fenêtre)|
 +
 +==== Aparté sur le routage ====
 +
 +Si l'on regarde dans le détail de la trame 7 la couche Ethernet, nous voyons:
 +<html><pre class="code">
 +Frame 7: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface enp2s0f2, id 0
 +
 +<span class="hlw">Ethernet II, Src: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6), Dst: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +    <b>Destination: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)</b>
 +        Address: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Source: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        Address: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Type: IPv4 (0x0800)</span>
 +<span class="hlb">Internet Protocol Version 4, Src: 192.168.60.112, <b>Dst: 51.68.121.59</b>
 +...</span>
 +</pre></html>
 +La couche Ethernet va porter ce paquet à la «box» et là s'arrête sa vision, alors que dans le début de la trame IP nous voyons bien l'adresse IP du serveur ''demo.nain-t.net''.
 +
 +De même dans la trame 8:
 +<html><pre class="code">
 +Frame 8: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface enp2s0f2, id 0
 +
 +<span class="hlw">Ethernet II, Src: FreeboxS_86:ec:02 (68:a3:78:86:ec:02), Dst: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +    Destination: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        Address: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    <b>Source: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)</b>
 +        Address: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Type: IPv4 (0x0800)</span>
 +    <span class="hlb">Internet Protocol Version 4, Src: 51.68.121.59, <b>Dst: 192.168.60.112</b></span>
 +    </pre></html>
 +Sur la couche Ethernet, c'est l'adresse MAC de la «box» qui est la source.
 +
 +
 +===== Les applications discutent =====
 +La connexion TCP étant en place, le client effectue une première requête dans la trame 10:
 +<html><pre class="code">
 +Frame 10: 368 bytes on wire (2944 bits), 368 bytes captured (2944 bits) on interface enp2s0f2, id 0
 +Ethernet II, Src: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6), Dst: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +    Destination: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +        Address: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Source: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        Address: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Type: IPv4 (0x0800)
 +Internet Protocol Version 4, Src: 192.168.60.112, Dst: 51.68.121.59
 +    0100 .... = Version: 4
 +    .... 0101 = Header Length: 20 bytes (5)
 +    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
 +        0000 00.. = Differentiated Services Codepoint: Default (0)
 +        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
 +    Total Length: 400
 +    Identification: 0x47ec (18412)
 +    010. .... = Flags: 0x2, Don't fragment
 +        0... .... = Reserved bit: Not set
 +        .1.. .... = Don't fragment: Set
 +        ..0. .... = More fragments: Not set
 +    ...0 0000 0000 0000 = Fragment Offset: 0
 +    Time to Live: 64
 +    <span class="hlo">Protocol: TCP (6)</span>
 +    Header Checksum: 0x841d [validation disabled]
 +    <span class="hlo">Source Address: 192.168.60.112</span>
 +    <span class="hlo">Destination Address: 51.68.121.59
 +<span class="hly">Transmission Control Protocol, Src Port: 45616, Dst Port: 80, Seq: 1, Ack: 1, Len: 348
 +    Source Port: 45616
 +    Destination Port: 80
 +    <b>Sequence Number: 1    (relative sequence number)
 +    Sequence Number (raw): 983250803</b>
 +    <b>Acknowledgment Number: 1    (relative ack number)
 +    Acknowledgment number (raw): 3608667855</b>
 +    1000 .... = Header Length: 32 bytes (8)
 +    Flags: 0x018 (PSH, ACK)
 +        000. .... .... = Reserved: Not set
 +        ...0 .... .... = Accurate ECN: Not set
 +        .... 0... .... = Congestion Window Reduced: Not set
 +        .... .0.. .... = ECN-Echo: Not set
 +        .... ..0. .... = Urgent: Not set
 +        .... ...1 .... = Acknowledgment: Set
 +        <b>.... .... 1... = Push: Set</b>
 +        .... .... .0.. = Reset: Not set
 +        .... .... ..0. = Syn: Not set
 +        .... .... ...0 = Fin: Not set
 +    Window: 502
 +    Checksum: 0xab1a [unverified]
 +    Urgent Pointer: 0
 +    Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps
 +        TCP Option - No-Operation (NOP)
 +            Kind: No-Operation (1)
 +        TCP Option - No-Operation (NOP)
 +            Kind: No-Operation (1)
 +        TCP Option - Timestamps: TSval 1954463268, TSecr 3689330405
 +            Kind: Time Stamp Option (8)
 +            Length: 10
 +            Timestamp value: 1954463268
 +            Timestamp echo reply: 3689330405
 +    <b>TCP payload (348 bytes)</b></span>
 +<span class="hlb">Hypertext Transfer Protocol
 +    <b>GET / HTTP/1.1\r\n</b>
 +    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
 +    Upgrade-Insecure-Requests: 1\r\n
 +    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15\r\n
 +    Accept-Encoding: gzip, deflate\r\n
 +    Accept-Language: fr-FR,fr;q=0.90\r\n
 +    <b>Connection: Keep-Alive\r\n
 +    Host: demo.nain-t.net\r\n</b>
 +    \r\n</span>
 +</pre></html>
 +Dans la couche IP, nous confirmons bien que le transport se fera par TCP et que c'est bien le client local (192.168.60.112) qui s'adresse au serveur distant (51.68.121.59).
 +
 +Dans la couche Transport, nous pouvons remarquer:
 +  * les ''Sequence Number'' = 1 (notons que c'est Wireshark qui calcule ce paramètre. Le «vrai», c'est le «(raw)». C'est une attention du logiciel pour faciliter l'analyse):
 +  * le ''Acknowledgment Number: 1'' (même remarque que précédemment) , qu'il faudrait retrouver dans un ACK à-venir, augmenté du ''TCP payload'' comme nous l'avons vu [[010-deep:030-transport#Sequence_TCP|plus haut]];
 +  * le bit ''Push'' à 1, ce qui veut dire que l'application (le navigateur web) souhaite que le datagramme doit être envoyé sitôt finie sa construction. Le système peut en effet créer un tampon pour stocker des datagrammes avant de les envoyer.
 +  * le ''TCP payload'' de 348 octets
 +
 +Dans la couche application, ce qui est le plus important c'est:
 +  * ''GET / HTTP/1.1''. La commande ''GET'' signifie que le client ''demande'' un document. Ici la page d'accueil, celle qui est à la racine du site.
 +
 +Le segment suivant: 
 +<html><pre class="code">
 +11   51.68.121.59          192.168.60.112        TCP     80 → 45616 [ACK] Seq=1 <span class="bhly">Ack: 349</span>...
 +</pre></html>
 + 
 +C'est le serveur qui confirme au client qu'il a bien reçu le segment que le client lui a envoyé. Ici la taille de la fenêtre n'a pas d'importance vue la taille du segment. Ack : 349 est bien égal à 1 + 348
 + 
 +Dans le segment suivant, le serveur répond (pour alléger cette page, faisons l'impasse sur les couches IP et TCP):
 +<html><pre class="code">
 +Frame 12: 365 bytes on wire (2920 bits), 365 bytes captured (2920 bits) on interface enp2s0f2, id 0
 +
 +Ethernet II, Src: FreeboxS_86:ec:02 (68:a3:78:86:ec:02), Dst: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +    Destination: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        Address: ASUSTekC_2d:74:e6 (1c:b7:2c:2d:74:e6)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Source: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +        Address: FreeboxS_86:ec:02 (68:a3:78:86:ec:02)
 +        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
 +        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
 +    Type: IPv4 (0x0800)
 +Internet Protocol Version 4, Src: 51.68.121.59, Dst: 192.168.60.112
 +    0100 .... = Version: 4
 +    .... 0101 = Header Length: 20 bytes (5)
 +    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
 +        0000 00.. = Differentiated Services Codepoint: Default (0)
 +        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
 +    Total Length: 351
 +    Identification: 0xcf79 (53113)
 +    010. .... = Flags: 0x2, Don't fragment
 +        0... .... = Reserved bit: Not set
 +        .1.. .... = Don't fragment: Set
 +        ..0. .... = More fragments: Not set
 +    ...0 0000 0000 0000 = Fragment Offset: 0
 +    Time to Live: 53
 +    <span class="hlo">Protocol: TCP (6)</span>
 +    Header Checksum: 0xcb87 [validation disabled]
 +    <span class="hlo">Source Address: 51.68.121.59</span>
 +    <span class="hlo">Destination Address: 192.168.60.112</span>
 +Transmission Control Protocol, Src Port: 80, Dst Port: 45616, Seq: 1, Ack: 349, Len: 299
 +    Source Port: 80
 +    Destination Port: 45616
 +    Sequence Number: 1    (relative sequence number)
 +    Sequence Number (raw): 3608667855
 +    Acknowledgment Number: 349    (relative ack number)
 +    Acknowledgment number (raw): 983251151
 +    1000 .... = Header Length: 32 bytes (8)
 +    Flags: 0x018 (PSH, ACK)
 +        000. .... .... = Reserved: Not set
 +        ...0 .... .... = Accurate ECN: Not set
 +        .... 0... .... = Congestion Window Reduced: Not set
 +        .... .0.. .... = ECN-Echo: Not set
 +        .... ..0. .... = Urgent: Not set
 +        .... ...1 .... = Acknowledgment: Set
 +        .... .... 1... = Push: Set
 +        .... .... .0.. = Reset: Not set
 +        .... .... ..0. = Syn: Not set
 +        .... .... ...0 = Fin: Not set
 +    Window: 507
 +    Checksum: 0xd0cb [unverified]
 +    Urgent Pointer: 0
 +    Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps
 +        TCP Option - No-Operation (NOP)
 +            Kind: No-Operation (1)
 +        TCP Option - No-Operation (NOP)
 +            Kind: No-Operation (1)
 +        TCP Option - Timestamps: TSval 3689331288, TSecr 1954463268
 +            Kind: Time Stamp Option (8)
 +            Length: 10
 +            Timestamp value: 3689331288
 +            Timestamp echo reply: 1954463268
 +    TCP payload (299 bytes)
 +<span class="hlb">Hypertext Transfer Protocol
 +    <b>HTTP/1.1 200 OK</b>\r\n
 +        Response Version: HTTP/1.1
 +        <b>Status Code: 200</b>
 +        Response Phrase: OK
 +    Date: Fri, 14 Feb 2025 15:59:47 GMT\r\n
 +    Server: Apache/2.4.62 (Debian)\r\n
 +    Last-Modified: Mon, 10 Feb 2025 17:38:35 GMT\r\n
 +    ETag: "10-62dcd2d848e57"\r\n
 +    Accept-Ranges: bytes\r\n
 +    Content-Length: 16\r\n
 +        [Content length: 16]
 +    Keep-Alive: timeout=5, max=100\r\n
 +    Connection: Keep-Alive\r\n
 +    Content-Type: text/html\r\n
 +    \r\n
 +    File Data: 16 bytes
 +<b>Line-based text data: text/html (1 lines)
 +    Bonjour toi ;-)</b>\n
 +</span>
 +</pre></html>
 +
 +Dans le protocole HTTP, le code 200 signifie «OK».
 +
 +Le reste du dialogue ne présente pas un intérêt majeur: 
 +  * Le client demande au serveur sa «favicon»;
 +  * le serveur répond qu'il n'y en a pas;
 +  * la session TCP prend fin avec un segment ''FIN'':
 +
 +  21    51.68.121.59          192.168.60.112        TCP    80 → 45616 [FIN, ACK] ...
 +  22    192.168.60.112        51.68.121.59          TCP    45616 → 80 [ACK]...
 +
 +Le résultat tel qu'il se voit à l'écran du client:
 +{{ 040-adresses:bonjourtoi.png?800 |epiphany-browser}}
 +====== Et avec IPv6 ? ======
 +Au détail près qu'ici, chaque nœud du LAN dispose d'une «vraie» adresse publique et que le masquage d'adresse n'a donc plus lieu d'être, il se passe exactement la même chose, hormis le protocole ARP qui est remplacé par NDP [[https://fr.wikipedia.org/wiki/Neighbor_Discovery_Protocol|(Neighbor Discovery Protocol)]] dont le fonctionnement, bien que restant similaire, est tout de même plus évolué. Nous le verrons dans les manipulations faites autour d'IPv6.
Un exemple simple avec IPv4: Dernière modification le: 01/01/1970 à 00:00 par