物理层考虑的是如何在连接计算机的传输媒体上传输数据比特流,主要针对的是01的比特流数据。出于更友好的控制01数据,差错检验(比如0变成了1),链路选择等问题,在物理层上抽象出了数据链路层。
相比较而言,物理层类比于机器语言,数据链路层类比于汇编语言。
说白了就是传输01的数据,相对而言,物理层和硬件打交道比较多,比如传播的介质——光缆,信道复用技术等。关于物理层,更多的是一个底层的传输媒介。
数据链路层的作用
正如在上一节所讲,网络层传输的是主机间的通信,而物理层是具体的实现方法,那么出于中间的数据链路层其作用是什么呢?
可以简答的认为数据链路层是起到一个中间的承载的作用。即将网络层的数据(IP数据报)添加上必要的信息(头和尾)后使用物理层来转发,这其中包括头里面的目标主机的地址,起始结束标识,填充等。另外还有差错检验。
数据链路的含义应该理解为整个网络中的一个段。这个段的两头是主机或者路由器等通信设备。
上图中主机和路由器间,路由器和主机间的线路就是数据链路。
可以看出路由器只有三层,因为路由器中没有主机之类的多进程概念,因此只需要定位到一个具体的ip即可。
数据包装
我们知道物理层传输的是01,那么数据链路层传递的是什么呢?
可以做两层理解:1.物理层01的抽象;2.网络层数据的包装
具体来说,网络层的数据单元为IP数据报(简称数据报,分组或包),这些数据单元只是数据,并不包含目的地信息等。因此数据链路层会给IP数据报添加上头尾信息组成帧(frame),