3.1 使用点对点信道的数据链路层
3.1.1 数据链路和帧
链路:从一个结点到相邻结点的一段物理线路。
数据链路:包括物理线路外,还有一些必要的通信协议。这些协议通过网络适配器来实现。
帧:数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出交给网络层。
3.1.2 三个基本问题
封装成帧:在一段数据的前后分别添加首部和尾部,这样就构成了帧。
透明传输:通过插入转义字符来解决透明传输问题。
差错检测:比特在通信链路中传输会产生比特差错,为了保证数据传输的可靠性,使用了循环冗余检验CRC。还有一些帧丢失、帧重复、帧失序的传输错误。
3.2 点对点协议PPP
3.2.1 PPP协议的特点
1.PPP协议应满足的需求
(1)简单:简单的设计可使协议在实现时不容易出错,这样使得不同厂商对协议的不同实现的互操作性提高了。
所以,这种数据链路层的协议非常简单:接收方每收到一个帧,就进行CRC检验。如果CRC检验正确,就收下这个帧;反之,就丢弃这个帧。
(2)封装成帧:PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确的找出帧的开始和结束的位置。
(3)透明性:PPP协议必须保证数据传输的透明性。如果说是数据中碰巧出现和帧定界符一样的比特组合时,就要采用必要的措施来解决。
(4)多种网络层协议:PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(IP和IPX等)的运行。
当点对点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所链接的局域网或路由器上运行的各种网络层协议。
(5)多种类型的链路:除了要支持多种网络层的协议外,PPP还必须能够在多种链路上运行。
串行的(一次只发送一个比特)
并行的(一次并行地发送多个比特)
同步或异步、低速或高速的、电的或光的、交换的(动态的)或非交换的(静态的)点对点链路。
(6)差错检测:PPP协议必须能够对接收端收到的帧进行检测,并舍弃有差错的帧。
(7)检测连接状态:必须具有一种机制能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。
出现故障的链路隔了段时间后重新正常工作时,就特别需要这种及时检测功能。
(8)最大传送单元:协议对每一种类型的点对点链路设置最大传送单元MTU(最大接受单元,至少是1500字节)的标准默认值。
MTU是数据链路层的帧可以载荷的数据部分的最大长度,不是帧的总长度。
(9)网络层地址协商:协议必须提供一种机制使通信的两个网络层(如两个IP层)的实体能够通过协商知道或能够配置彼此的网络层地址。协商的算法应尽可能简单,并且能在所有的情况下得出协商结果。
(10)数据压缩协商:协议必须能够提供方法来协商使用数据压缩算法。但PPP协议不要求将数据压缩算法进行标准化。
2.PPP协议的组成
(1)一个将IP数据报封装到串行链路的方法。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。通信的双方可协商一些选项。在RFC1661中定义了11种类型的LCP分组。
(3)一套网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。
3.2.2 PPP协议的帧格式
1.各字段的意义
首部中的地址字段A规