数据链路层使用的信道主要有点对点信道和广播信道。从数据链路层来看H1到H2的通信可以看成是由四段不同的链路层通信组成。
1. 点对点信道的数据链路层
a. 数据链路:在一条线路上传送数据时,除了有一条屋里线路外还需要一些必要的通信协议来控制数据的传输,将这些协议的硬件和软件加到链路上就构成了数据链路。
b. 帧:点对点信道的数据链路层的协议数据单元。数据链路层吧网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。
c. 三个基本问题:数据链路层协议有很多,但有三个基本问题是共同的:
封装成帧:在一段数据的前后分别添加首部和尾部。控制符SOT(十六进制:01,二进制:00000001)和EOT(04, 00000100),所传输的数据中任何8比特的组合一定不允许和作用帧定界的控制字符的比特码一样,否则会出现帧定界错误。
透明传输:不管从键盘上输入什么字符都可以放在帧中传输过去,这样的传输就是透明传输。当数据中某个字节和SOT或者EOT一样,数据链路层就会错误的找到帧边界,这样帧的传输就不是透明传输。用字节填充法解决这个问题:在发送端数据中出现的SOT或EOT前面插入一个转义字符ESC,接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。
错检测:使用循环冗余检验CRC
比特错误:1变0,0变1了(还有一类传输差错,帧丢失,重复,失序)
误码率BER:一段时间内传输错误的比特占所传输比特总数的比率。信噪比提高,误码率则减小,所以需要错检测,常用循环冗余检验CRC:只能做到对帧检测。
2.点对点协议PPP:目前使用的最广泛的数据链路层协议,用户计算机和ISP进行通信时使用。是不可靠的传输协议。只支持全双工链路
简单:数据链路层的协议很简单,接收方每接收到一个帧就进行CRC检测,正确就收下,不正确丢弃,其他什么也不做。
分装成帧:PPP协议必须规定帧定界符
透明性:保证传输的透明性,数据中出现和帧定界符一样的比特组合是要采取有效措施。
多种网路协议:在同一条物理链路上同时支持多种网络层协议(IP/IPX)的运行。
多种类型链路:能在多种类型的链路上运行。
差错检测
检测链接状态:PPP必须有一种能及时自动检测出链路是否处于正常工作状态的机制。
最大传送单元:PPP必须对每一种类型的点对点链路设置最大输送单元MTU的标准默认值。
网络层地址协商:提供一种机制使通信的两个网络层的实体能通过协商制度活能配置彼此的网络层地址。
数据压缩协商
PPP协议的组成:一个将IP数据包封装到串行链路的方法;一个用来建立、配置和测试数据链路连接的链路控制协议LCP;一套网络控制协议
PPP协议的帧格式:F:标志字段,7E==01111110,所以当信息字段中出现和标志字段一样的0x7E时,就要进行填充:当PPP使用异步传输时用字节填充,使用同步传输时用零比特填充;A:首部中的地址字段; C:控制字段;协议:为0x0021时PPP帧信息字段就是IP数据报,0xC021信息字段就是PPP链路控制协议LCP的数据,0x8021表示是网络层的控制数据; FCS:CRC的帧检验序列。
PPP协议的工作状态: