数据链路层在TCP/IP五层模型中,处于第二层的位置,数据链路层是使用以太网数据帧对数据进行传输,首先我们来看看以太网数据帧的格式:
目的地址、源地址:这里的目的地址和源地址和网络层中IP协议报头中的源地址和目的地址是完全不一样的,IP协议中的源地址和目的地址代表是IP地址,而我们以太网数据帧中的源地址和目的地址代表是MAC地址,MAC指的是网卡的硬件地址,从网卡诞生的那一刻,MAC地址就固定下来了,不像我们的IP地址是可以变化的,我们知道网络层的作用就进行路由选择,路由选择规划出来的路线是一个长期目标,而传输数据的过程需要从一个路由器到另一个路由器,最终到达我们的目的地,这就好像快递一样,快递公司会规划一条物流路线,然后运输快递的车,需要到好几个中转站进行中转,最后到达目的地。从一个长期目标转化成多个短期目标,我们的数据链路层就是完成这些短期目标。那我们的网络层和数据链路层的设计为什么不一起设置成IP地址,这样不是更好吗?那是因为我们数据链路层的设计者和网络层的设计者不是同一个人,网络层的设计者不知道数据链路层的设计者要怎么设计,没法做到统一。
因为数据链路层的数据空间非常的小,所以我们的网络层传输过来的数据需要进行分包,所以我们网络层的IP协议中才会有16位标识,三位标志,13位片偏移来进行分包和组包。