数据链路层(Link Data Layer)
数据链路层位于OSI模型和TCP/IP模型的倒数第二层,数据链路层的传输单元是帧(Frame)。
帧的总体结构如图
其中帧头中类型的作用是识别上层协议,为上层提供服务,在数据向上层网络层传输时来识别走其中的IP协议还是ARP协议,类型一般用十六进制表示其中0x800表示IP协议而0x806表示ARP协议。
整个帧的最大大小为1518字节,其中目标MAC和源MAC分别为48个bit而8bit=1Byte,如果有不明白如何换算的可以看看这张图一目了然。
图片转自知乎,要是感兴趣可以看看原文https://zhuanlan.zhihu.com/p/46040087?utm_id=0
当计算机收到一个帧后,计算机首先会判断帧头里面的目标MAC地址是不是自己的MAC地址,如果是就发给网络层进行进一步处理,如果不是那就会丢弃,所以其实我们的计算机随时都在接受来自不同计算机的帧。
而生成这样一个帧需要你的计算机有一个网卡,而网卡又分为有线网卡和无线网卡,这两种网卡对应着不同的帧协议,它们遵循IEEE标准定义的协议,有线网卡通常是IEEE 802.3协议而无线网卡则是IEEE 802.11协议,如果帧的协议与网卡的协议不匹配网卡是无法进行处理的。