[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"$f3nutvefvfkjdf":3},"\u003Cp>﻿# \u003Cspan style=\"background-color: #b95442;color: white;font-size: 0.43em;border-radius: 5px;padding: 2px 5px;\">转载\u003C\u002Fspan> Wireshare 分析 IPv6 包\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>[WARNING]\n本文的部分URL已失效，但为了保留原文，未作修改\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"场景\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#场景\">\u003Cspan>场景\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>执行 \u003Ccode>curl 6.ipw.cn\u003C\u002Fcode>，查看本机的 IPv6 通信包。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>如果有 DNS 缓存，可以执行 \u003Ccode>sudo killall -HUP mDNSResponder;sudo killall mDNSResponderHelper;sudo dscacheutil -flushcache\u003C\u002Fcode> 清理缓存\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"理论支撑\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#理论支撑\">\u003Cspan>理论支撑\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc8200.html\">RFC8200\u003C\u002Fa> 的 IPv6 Header Format 章节\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-text\">\u003Cspan class=\"line\">\u003Cspan>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |Version| Traffic Class |           Flow Label                  |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |         Payload Length        |  Next Header  |   Hop Limit   |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |                                                               |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +                                                               +\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |                                                               |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +                         Source Address                        +\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |          请求的源地址，如 2408:824c:200::2b8b:336f:cc9c          |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +                                                               +\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |                                                               |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |                                                               |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +                                                               +\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |                                                               |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +                      Destination Address                      +\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |         目标地址，例如 2402:4e00:1013:e500:0:940e:29d7:3443     |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +                                                               +\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   |                                                               |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-text\">\u003Cspan class=\"line\">\u003Cspan>  Version             4-bit Internet Protocol version number = 6.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Traffic Class       8-bit Traffic Class field.  See Section 7.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Flow Label          20-bit flow label.  See Section 6.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Payload Length      16-bit unsigned integer.  Length of the IPv6\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      payload, i.e., the rest of the packet\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      following this IPv6 header, in octets.  (Note\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      that any extension headers (see Section 4)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      present are considered part of the payload,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      i.e., included in the length count.)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Next Header         8-bit selector.  Identifies the type of header\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      immediately following the IPv6 header.  Uses\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      the same values as the IPv4 Protocol field\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      [IANA-PN].\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Hop Limit           8-bit unsigned integer.  Decremented by 1 by\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      each node that forwards the packet.  When\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      forwarding, the packet is discarded if Hop\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      Limit was zero when received or is decremented\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      to zero.  A node that is the destination of a\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      packet should not discard a packet with Hop\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      Limit equal to zero; it should process the\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      packet normally.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Source Address      128-bit address of the originator of the\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      packet.  See [RFC4291].\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Destination Address 128-bit address of the intended recipient of\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      the packet (possibly not the ultimate\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      recipient, if a Routing header is present).\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                      See [RFC4291] and Section 4.4.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"实战\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#实战\">\u003Cspan>实战\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>使用 wireshark 开启抓包，命令访问 `curl \u003Ca href=\"http:\u002F\u002F6.wsmdn.dpdns.org\">6.wsmdn.dpdns.org\u003C\u002Fa>`，抓包截图如下：\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002Fwireshark_ipv6.png\" alt=\"wireshark_ipv6\">\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>DNS 解析（2332-2335）\u003C\u002Fp>\n\u003Cul>\n\u003Cli>编号为2332：向 DNS 服务器 `240e:1f:1::1` （广东电信 IPv6 DNS）请求 \u003Ca href=\"http:\u002F\u002F6.wsmdn.dpdns.org\">6.wsmdn.dpdns.org\u003C\u002Fa> 的 A 记录（即IPv4 记录）\u003C\u002Fli>\n\u003Cli>2333： 请求 \u003Ca href=\"http:\u002F\u002F6.wsmdn.dpdns.org\">6.wsmdn.dpdns.org\u003C\u002Fa> 的 AAAA 记录（即IPv6 记录）\u003C\u002Fli>\n\u003Cli>2334: DNS 服务器返回 \u003Ca href=\"http:\u002F\u002F6.wsmdn.dpdns.org\">6.wsmdn.dpdns.org\u003C\u002Fa> 的 AAAA 记录为 `2402:4e00:1013:e500:0:940e:29d7:3443`\u003C\u002Fli>\n\u003Cli>2335: 返回 \u003Ca href=\"http:\u002F\u002F6.wsmdn.dpdns.org\">6.wsmdn.dpdns.org\u003C\u002Fa> 的 A 记录为空（实际上 \u003Ca href=\"http:\u002F\u002F6.wsmdn.dpdns.org\">6.wsmdn.dpdns.org\u003C\u002Fa> 只添加 AAAA 记录，未添加 A 记录）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>TCP 三次握手（2336-2338）\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>HTTP 传输（2339-2341）\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>TCP 四次挥手再见（2342-2345）\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002Fwireshark_ipv6_tcp_ack.png\" alt=\"wiresharkipv6\">\u003C\u002Fp>\n\u003Cp>在上图中可以看到 IPv6 包头。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>下次解释下，这次太晚了，先睡觉了。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n",1787918414479]