数据链路层概述:
数据链路层功能:
实现数据在一个网络之间的传输。因此,为了实现这个功能就有了以下多个概念:
两台主机通过互联网进行通信时数据链路层所处的地位:
从数据链路层来看,H1到H2的通信可以看成有四段不同的链路层通信组成,即H1---->R1,R1 ---->R2, R2 —>R3和R3 —>H2。这四段不同的数据链路层可能采用不同的数据链路层协议。
数据链路层使用的信道主要有:
1.点对点信道(一对一的通信方式)
2.广播信道(一对多的广播通信方式,连接的主机很多,必须使用专用的共享信道协议来协调这些主机的数据发送)
点对点的信道的数据链路层:
数据链路和帧:
链路:从一个节点到一个相邻节点的一段物理线路,而中间没有任何其他交换节点。
数据链路:数据链路的构成由把实现通信协议的硬件和软件加到链路上构成的。
数据链路以帧为单位传输和处理数据。
点对点信道的数据链路层在进行通信事的主要步骤如下:
1、结点A的数据链路层吧网络层交下来的IP数据报添加首部和尾部封装成帧
2、结点A把封装好的帧发送给结点B的数据链路层
3、若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层,否则丢弃这个帧。
数据链路层的三个重要问题:
封装成帧:
封装成帧是把网络层交付的协议数据单元,添加帧头和帧尾的操作,称为封装成帧,主要目的是为了在链路上以帧为单元传输数据,从而实现数据链路层本身的功能。
最大传送单元MTU(Maximum Transfer Unit):数据部分长度上限
例如:
帧的格式就是一个帧,带有帧头和帧尾。
在物理层中会将构成帧的各比特,转换成电信号交给传输媒体,为了便于接收方数据链路层从物理层交付比特流中提取出一个一个的帧,因此需要帧头跟帧尾来做一个帧定界,来实现从比特流中提取出一个一个的帧。
帧定界
例如在ppp帧的格式中,在帧头和帧尾各有一个帧定界编制,由1子节组成,其01111110和01111110所包裹的数据就是一个帧,数据链路层可以识别这个帧定界从而提取出一个帧。
当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符,ASCII码是7位编码,可以组成128个不同的ASCII码,其中可打印的有95个,不可打印的有33个。SOH和EOT都是控制字符的名称,她们16进制编码分别是01(00000001)和04(00000100)。
但是也存在没有帧定界标志的数据链路层协议:mac码