认识以太网
“以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。
例如:规定了网络拓扑结构,访问控制方式,传输速率等;
例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;
以太网数据帧
图中, 目的地址和源地址都是 mac 地址, mac 地址是 6 字节的, 是 IPv4 的地址量的 6w 多倍, 所以现在 mac 地址现在还是够用的, 当前每台设备都有唯一的 mac 地址, mac 地址不需要动态分配, 出厂就写死了.
为什么有了 IP 地址还要 mac 地址呢 ?
其实这是历史遗留问题, 数据链路层和网络层是同一时期各自独立发明的, 导致发明 IP 地址的大佬不知道有 mac 地址, 发明 mac 地址的大佬不知道有 IP 地址.
正因为 mac 地址每台设备都不一样, 所以 mac 地址就是网上识别身份的有效手段.
CRC 是校验和, 用来判别传输数据是否出错了.
1500 的意思是一个以太网数据帧最大载荷长度就是 1500 字节.
不同的数据链路层协议对应的物理设备不一样, 传输数据的最大上限也就不一样. 以太网使用的以太网对应的网线.
我们把数据链路层数据帧的最大载荷长度称为 MTU. 如果承载的数据超过了 MTU, 就会在 IP 层进行分包, 使每个包的大小都在 MTU 范围内. (IP层的一个功能就是分包/组包)
一个大的数据报拆分为多个小数据报后, 这些小数据报的标识位是相同的, 片偏移表示每个小的数据报之间的先后顺序, 便于组包.
3 位标志位含义分别为 : 一位不用, 一位表示是否分包了, 一位表示当前这个分包是否是最后一个.
虽然有 MTU 限制, 但是 IP 通过拆包/组包, 仍然可以保证传输一个更大的数据.