[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"blog:\u002Fblog\u002Fethernet":3},{"id":4,"title":5,"body":6,"cover":237,"description":238,"draft":239,"extension":240,"lang":241,"meta":242,"navigation":243,"path":244,"publishedAt":245,"seo":246,"stem":247,"tags":248,"updatedAt":237,"__hash__":251},"blog\u002Fblog\u002Fethernet.md","Ethernet 的学习笔记",{"type":7,"value":8,"toc":229},"minimark",[9,18,22,34,37,44,47,52,55,65,68,72,84,107,112,118,125,129,143,159,163,169,174,178,184,198,201,209,213,219,224,226],[10,11,12,13,17],"p",{},"本文在涉及到 AI 生成内容的时候，会使用 ",[14,15,16],"span",{},"AIGC"," 标签。",[19,20,21],"h2",{"id":21},"以太网帧",[10,23,24,25,29,30,33],{},"我在研究以太网帧过后发现，每个标准的以太网帧都包含一个 ",[26,27,28],"code",{},"Header"," 以及一个长度可以为 0 的 ",[26,31,32],{},"Payload","，",[10,35,36],{},"Header 中又包含：",[38,39,40],"ul",{},[41,42,43],"li",{},"源 Mac 地址、目标 Mac 地址（也是判断是否为广播的依据）以及帧的类型（IPV4、IPV6、ARP 等）",[10,45,46],{},"Payload 中包含：",[38,48,49],{},[41,50,51],{},"各个协议(IPV4、IPV6 等)的包",[10,53,54],{},"以下为图解",[56,57,62],"pre",{"className":58,"code":60,"language":61},[59],"language-text","[ Ethernet Frame ]\n    ├── Ethernet Header\n    └── Payload\n            ├── IPv4 Packet\n            |       ├── IPv4 Header\n            |       └── Payload\n            ├── IPv6 Packet\n            |       ├── IPv6 Header\n            |       └── Payload\n            └── ARP Packet\n","text",[26,63,60],{"__ignoreMap":64},"",[66,67],"hr",{},[19,69,71],{"id":70},"ipv4-包","IPv4 包",[10,73,74,75,77,78,80,81,83],{},"IPv4 包中含一个 ",[26,76,28],{}," 和一个 ",[26,79,32],{},"，\n",[26,82,28],{}," 是整个包的前 20 个字节，其中包含了：",[38,85,86,89,92,95,98,101,104],{},[41,87,88],{},"Version(版本)、Type of Service(服务类型)、IHL(头长度)、Total Length(总长度)、",[41,90,91],{},"Identification(分片 ID)、Flags(分片控制位)、Fragment Offset(当前分片在原始数据中的位置)、",[41,93,94],{},"TTL(存活时间)、Protocol(协议类型)、Header Checksum(校验和)、",[41,96,97],{},"Source IP Address(源 IP 地址)、",[41,99,100],{},"Destination IP Address(目标 IP 地址)、",[41,102,103],{},"Options(选项，此为可选)、",[41,105,106],{},"Payload(载荷)",[10,108,109,110],{},"以下为图解 ",[14,111,16],{},[56,113,116],{"className":114,"code":115,"language":61},[59],"0                   1                   2                   3\n0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|Version|  IHL  |Type of Service|        Total Length         |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|       Identification          |Flags|    Fragment Offset    |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|   TTL   |    Protocol         |       Header Checksum       |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                       Source IP Address                     |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                    Destination IP Address                   |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                    Options (optional)                       |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                           Payload                           |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n",[26,117,115],{"__ignoreMap":64},[10,119,120,121,124],{},"在本项目里，我们只关注 ",[26,122,123],{},"Version、IHL、Total Length、TTL、Protocol、Source IP、Destination IP、Payload"," 这几个字段",[19,126,128],{"id":127},"ipv6-包","IPv6 包",[10,130,131,132,77,134,136,137,140,142],{},"IPv6 包中同样包含一个 ",[26,133,28],{},[26,135,32],{},"。",[138,139],"br",{},[26,141,28],{}," 固定为 40 字节，常见字段包含：",[38,144,145,148,151,154,157],{},[41,146,147],{},"Version(版本)、Traffic Class(流量类别)、Flow Label(流标签)、Payload Length(载荷长度)、",[41,149,150],{},"Next Header(下一头部\u002F上层协议类型)、Hop Limit(跳数限制)、",[41,152,153],{},"Source Address(源 IPv6 地址)、",[41,155,156],{},"Destination Address(目标 IPv6 地址)、",[41,158,106],{},[10,160,109,161],{},[14,162,16],{},[56,164,167],{"className":165,"code":166,"language":61},[59],"0                   1                   2                   3\n0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|Version| Traffic Class |           Flow Label                |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|         Payload Length        | Next Header  |  Hop Limit   |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                                                             |\n+                                                             +\n|                                                             |\n+                       Source Address                        +\n|                                                             |\n+                                                             +\n|                                                             |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                                                             |\n+                                                             +\n|                                                             |\n+                    Destination Address                      +\n|                                                             |\n+                                                             +\n|                                                             |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n|                           Payload                           |\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n",[26,168,166],{"__ignoreMap":64},[10,170,120,171,124],{},[26,172,173],{},"Version、Payload Length、Next Header、Hop Limit、Source Address、Destination Address、Payload",[19,175,177],{"id":176},"arp-包","Arp 包",[10,179,180,181,183],{},"ARP 包用于在局域网中根据 IP 地址查询对应的 MAC 地址。",[138,182],{},"\nARP 报文由固定格式字段组成（无复杂可变头部），常见字段包含：",[38,185,186,189,192,195],{},[41,187,188],{},"Hardware Type(硬件类型)、Protocol Type(协议类型)、",[41,190,191],{},"HLen(硬件地址长度)、PLen(协议地址长度)、Operation(操作码：请求\u002F响应)、",[41,193,194],{},"Sender Hardware Address(发送方 MAC)、Sender Protocol Address(发送方 IP)、",[41,196,197],{},"Target Hardware Address(目标 MAC)、Target Protocol Address(目标 IP)",[10,199,200],{},"其中：",[38,202,203,206],{},[41,204,205],{},"ARP Request：通常已知目标 IP，不知道目标 MAC（THA 常为全 0）",[41,207,208],{},"ARP Reply：返回目标 IP 对应的目标 MAC",[10,210,109,211],{},[14,212,16],{},[56,214,217],{"className":215,"code":216,"language":61},[59],"0                   15 16                  31\n+---------------------+---------------------+\n| Hardware Type       | Protocol Type       |\n+---------------------+---------------------+\n| HLen | PLen |       Operation             |\n+---------------------+---------------------+\n| Sender Hardware Address (SHA)             |\n+-------------------------------------------+\n| Sender Protocol Address (SPA)             |\n+-------------------------------------------+\n| Target Hardware Address (THA)             |\n+-------------------------------------------+\n| Target Protocol Address (TPA)             |\n+-------------------------------------------+\n",[26,218,216],{"__ignoreMap":64},[10,220,120,221,124],{},[26,222,223],{},"Hardware Type、Protocol Type、Operation、Sender Hardware Address、Sender Protocol Address、Target Hardware Address、Target Protocol Address",[66,225],{},[10,227,228],{},"未完待续...",{"title":64,"searchDepth":230,"depth":230,"links":231},3,[232,234,235,236],{"id":21,"depth":233,"text":21},2,{"id":70,"depth":233,"text":71},{"id":127,"depth":233,"text":128},{"id":176,"depth":233,"text":177},null,"本文在涉及到 AI 生成内容的时候，会使用 [AIGC] 标签。",false,"md","zh-CN",{},true,"\u002Fblog\u002Fethernet","2026-06-19",{"title":5,"description":238},"blog\u002Fethernet",[249,250],"Ethernet","Rust","eUnKCHMOuiM1X3FUzqzyNzyPiNp7OXSA6ziC2uL8GeU",1789620384899]