1. 以太⽹帧
1.1 格式

- 源地址和⽬的地址是指⽹卡的硬件地址(也叫MAC地址),⻓度是48位,是在⽹卡出⼚时固化的;
- 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
- 帧末尾是CRC校验码。
1.2 认识MAC地址
MAC地址,即 Media Access Control Address,⽤于标识⽹络设备的硬件物理地址。
- 主机具有⼀个或多个⽹卡,路由器具有两个或两个以上⽹卡;其中每个⽹卡都有唯⼀的⼀个MAC地址。(可理解为每个人的身份证号,无论去哪里,身份证号不变)
- ⽹络通信,即⽹络数据传输,本质上是⽹络硬件设备,将数据发送到⽹卡上,或从⽹卡接收数据。
- 硬件层⾯,只能基于MAC地址识别⽹络设备的⽹络物理地址。(可理解为坐高铁得刷身份证不能报名字)
- MAC地址⽤来识别数据链路层中相连的节点
- ⻓度为48位,即6个字节。⼀般⽤16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19
- 在⽹卡出⼚时就确定了,不能修改。虚拟机中的MAC地址不是真实的MAC地址,可能会冲突(可理解为在游戏世界里创建的角色都有一个专属ID,这个ID只在游戏世界里有用);也有些⽹卡⽀持⽤户配置MAC地址。
特殊的MAC地址
⼴播数据报:发送⼀个⼴播数据报,表示对同⽹段所有主机发送数据报。⼴播数据报的MAC地址
为:FF:FF:FF:FF:FF:FF
2. 认识MTU
最⼤传输单元(Maximum Transmission Unit, MTU )
MTU相当于发快递时对包裹尺⼨的限制。这个限制是不同的数据链路对应的物理层,产⽣的限
制。
- 以太⽹帧中的数据⻓度规定最⼩46字节,最⼤1500字节,ARP数据包的⻓度不够46字节,要在后⾯补填充位(可以理解为发货的快递箱内不能太空,得塞泡沫避免中途损坏);
- 最⼤值1500称为以太⽹的最⼤传输单元(MTU),不同的⽹络类型有不同的MTU;
- 如果⼀个数据包从以太⽹路由到拨号链路上,数据包⻓度⼤于拨号链路的MTU了,则需要对数据包进⾏分⽚(fragmentation)(可理解为一个快递箱放不下得分成两个快递箱发货);
- 不同的数据链路层标准的MTU是不同的(可理解为不同的快递公司快递箱的尺寸标准不同);
MTU对IP协议的影响
由于数据链路层MTU的限制,对于较⼤的IP数据包要进⾏分片。
- 将较⼤的IP包分成多个⼩包,并给每个⼩包打上标签(可理解为一个快递箱放不下得分成两个快递箱,并且是两个快递箱分别发货,有两张快递单);
- 每个⼩包IP协议头的 16位标识(id) 都是相同的(可理解为拆成两个快递分别发货,但两份快递单中的地址,收件人和联系电话都一致);
- 每个⼩包的IP协议头的3位标志字段中,第2位置为0,表示允许分⽚,第3位来表示结束标记(当前是否是最后⼀个⼩包,是的话置为1,否则置为0);
- 到达对端时再将这些⼩包,会按顺序重组,拼装到⼀起返回给传输层(可理解为发过来的是一个未组装好的家具,拿到手后得先将其组装好后才能使用);
- ⼀旦这些⼩包中任意⼀个⼩包丢失,接收端的重组就会失败。但是IP层不会负责重新传输数据(可理解拿快递的时候弄丢任何一个包裹,收货人无法正常组装家具,但快递员不会重新送货);
3. 总结:
回顾全文,我们其实只讲了两件简单的事:地址 和包装。
-
关于地址 :MAC地址就像人的身份证号,与生俱来、全球唯一。在网络世界里,硬件设备只认这个号码。
-
关于包装 :MTU就像快递公司的箱子尺寸限制。以太网的箱子最大装1500字节,太小了还得塞泡沫(填充位)。如果数据包太大,路由器就得拆箱(IP分片),拆的时候要贴上相同的订单号(16位标识),还要标注"未完待续"还是"最后一件"(标志位)。