0%

网原 4.5 Internet 的数据链路层协议

需要说明:

  1. 停等协议Stop and Wait、顺序接收管道协议 GBN和 Slidding Window、选择重传协议 SR ,属于数据链路层传输数据时采用的协议,包含了差错控制和流量控制策略,这种策略可适用于局域网和因特网。
  2. BSC和HDLC属于OSI参考模型中数据链路层的控制协议,不是TCPIP网络的协议。
  3. 本节所讲的因特网的数据链路层协议,是指TCP/IP模型所使用的数据链路层协议,包括了控制协议和数据传输协议。(TCPIP模型没有单独的数据链路层,只有主机-网络接口层)

4.5.1 SLIP协议

串行线路 IP 协议,SLIP,Serial Line IP

SLIP协议的功能:

  • 在串行通信线路上,对网络层传递下来的 IP分组进行封装,组装成帧。
  • 允许用户通过电话线和MODEM接入TCP/IP网络

SLIP协议存在一些问题:

  • 连接过程中不支持动态 IP,通信双方必须事先告知对方IP地址。这对于没有固定IP地址的用户不方便。
  • SLIP帧没有“协议类型”字段,只支持IP协议
  • SLIP帧没有校验字段,无法检测差错。只能依赖更高层或更低层提供检错纠错功能。比如依靠物理层的MODEM提供检错能力(奇偶校验位)。

4.5.2 PPP协议

SLIP协议存在各种缺点,于是又推出了PPP协议。

PPP协议(Point to Point Protocal)即”点到点协议“,是全世界广泛使用的数据链路层协议(一个主要原因是TCPIP网络的占比很大)。

用户使用拨号电话线接入Internet时,一般都使用PPP协议。

PPP的功能

PPP协议有3个组成部分:

  1. 成帧:将网络层传递下来的 IP数据报 封装成帧,最终交给物理层形成位流。
  2. 提供链路控制协议 LCP (Link Control Protocol):LCP支持同步/异步线路,支持面向字节/比特的编码方法,提供了 协商链路层参数、建链、测试链路、拆链 等功能。
  3. 提供网络控制协议NCP:PPP协议提供了“协商网络层参数”的方法,这些方法独立于网络层协议:对于每一种支持的网络层,都有一个不同的网络控制协议 NCP (Network Control Protocol)。
PPP的工作过程

PC机接入Internet的过程

1.建立物理连接:
PC机通过自己的MODEM呼叫ISP的MODEM,ISP的MODEM应答了用户呼叫后,建立物理连接。

2.建立数据链路层:
PC机给ISP的路由器发送多个 PPP帧,这些帧的净荷包含了很多的 LCP 分组。这些分组,以及ISP路由器的应答信息,共同确定了PPP协议的参数。由此,建立了PPP协议的数据链路。

3.建立网络层:
PC机和ISP的路由器之间,传送 NCP 分组,开始配置网络层。
比如:
针对IP协议的NCP负责给PC机动态分配IP地址。针对其他协议的NCP负责给PC机配置对应的协议。
最终这些NCP分组使PC机运行了一个TCP/IP协议栈。

至此,PC机就接入了 Internet,成为了一台Internet的主机,可以发送和接收 IP 分组。

PC机如何断开与Internet的连接

  1. 断开网络层连接,释放IP地址。
  2. 断开数据链路层连接
  3. PC机通知MODEM 挂断电话,释放物理层连接。
PPP的帧格式

PPP帧 和 HDLC帧 在格式上非常相似,但存在本质上的不同:PPP帧面向字符,HDLC帧面向字节。

PPP在 拨号调制解调器线路 上使用了“字节填充技术“——有效数据中如果含有与标志字节相同的二进制模式,则通过填充字节来实现数据的透明性。
因此,PPP帧的长度都是字节的整数倍!

首尾的标志字节 F,和HDLC一样,采用 01111110 的二进制模式。

地址字节 A ,恒为广播地址 11111111 ,避免了给站点分配”数据链路层地址“的问题。
换句话说,PPP帧是广播帧,站点可以接收该帧,但帧内的IP数据报是否接收还取决于网络层的IP地址。

P.S. 数据链路层地址,即MAC地址。

控制字节 C,默认值是 00000011,此值表示该帧是一个无序号帧。换句话说,默认情况下,PPP帧无法利用序号(比如N(S)N(R))来实现重发表、选择重传等可靠传输。

协议字节 P,2个字节,指明净荷域(即数据,图中的信息部分)是哪一种分组,可能的分组有:LCP,NCP,IP,IPX,AppleTalk,其他协议。
如果协议域的值以0开头,说明净荷域是网络层协议的分组,即信息字段是IP数据报(IP,IPX,OSI CLNP,XNS)。
如果协议域的值以1开头,说明净荷域是LCP或NCP。

净荷域是变长的。

校验和域,2个字节。通常是CRC码,使PPP帧具有差错校验能力。

总之,PPP是一种多协议成帧机制,可以用于多种物理层上。

-------------本文结束,感谢您的阅读-------------