计算机网络(二):物理层和数据链路层

来源:互联网 发布:ps淘宝优惠券 编辑:程序博客网 时间:2024/06/01 10:19

物理层考虑的是如何在连接计算机的传输媒体上传输数据比特流,主要针对的是01的比特流数据。出于更友好的控制01数据,差错检验(比如0变成了1),链路选择等问题,在物理层上抽象出了数据链路层。
相比较而言,物理层类比于机器语言,数据链路层类比于汇编语言。

说白了就是传输01的数据,相对而言,物理层和硬件打交道比较多,比如传播的介质——光缆,信道复用技术等。关于物理层,更多的是一个底层的传输媒介。

数据链路层的作用

正如在上一节所讲,网络层传输的是主机间的通信,而物理层是具体的实现方法,那么出于中间的数据链路层其作用是什么呢?
可以简答的认为数据链路层是起到一个中间的承载的作用。即将网络层的数据(IP数据报)添加上必要的信息(头和尾)后使用物理层来转发,这其中包括头里面的目标主机的地址,起始结束标识,填充等。另外还有差错检验。
数据链路的含义应该理解为整个网络中的一个段。这个段的两头是主机或者路由器等通信设备。
数据链路

上图中主机和路由器间,路由器和主机间的线路就是数据链路
可以看出路由器只有三层,因为路由器中没有主机之类的多进程概念,因此只需要定位到一个具体的ip即可。

数据包装

我们知道物理层传输的是01,那么数据链路层传递的是什么呢?
可以做两层理解:1.物理层01的抽象;2.网络层数据的包装
具体来说,网络层的数据单元为IP数据报(简称数据报,分组或包),这些数据单元只是数据,并不包含目的地信息等。因此数据链路层会给IP数据报添加上头尾信息组成(frame),然后在通过物理层传输。
这里写图片描述

具体实现

数据链路层实现承接网络层和物理层主要是通过三个问题解决的:封装成帧,透明传输,差错检验

  • 封装成帧
    即在IP数据报上添加首部和尾部,构成一个帧。首部和尾部主要的作用是表示该帧的起始和结尾。可以得出填充的头和尾都是特殊的ASCII码。

  • 透明传输
    如果IP数据报中含有和帧的首尾一样的特殊字符怎么办呢?这是就是用填充来实现。即数据链路层除了给IP数据报添加头尾之外,还会检查IP数据报的内容,如果发现有特殊字符,则添加填充。同样,另一端的数据链路层收到帧后会检查IP数据报的部分,请删除填充字符。

  • 差错检验
    即传输的数据出现问题吧,比如0变成1,此时使用检验方法——比如循环冗余检验CRC等。
    该方法也需要额外的填充数据来实现。

关于差错检验,需要明确的是,数据链路层值提供帧本身的差错检验,关于帧的重复,帧的丢失则没有应付措施,这部分的检验是TCP来实现的。

阅读全文
0 0
原创粉丝点击