计网:数据链路层

1. 使用点对点信道的数据链路层

1.1 数据链路和帧

什么是链路和数据链路

链路:所谓链路就是从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。在进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路。也叫物理链路。

数据链路:数据链路则是另一个概念。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。也叫逻辑链路。

点对点信道的数据链路层的协议数据单元是——帧。

网络层协议数据单元是——IP数据报

数据链路层进行通信时的主要步骤

  1. 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。

  2. 结点A把封装好的帧发送给结点B的数据链路层。

  3. 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。

1.2 三个基本问题

数据链路层如何封装成帧

封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。

接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

网络层的IP数据报传送到数据链路层就成为帧的数据部分。

在帧的数据部分的前面和后面分别添加上首部和尾部,构成了一个完整的帧。

这样的帧就是数据链路层的数据传送单元。

一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。

由于帧的开始和结束的标记使用专门指明的控制字符,SOH放在一帧的最前面,表示帧的首部开始;EOT放在一帧的最后面,表示帧的结束

数据链路层透明传输的概念

由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。

当传送的帧是用文本文件组成的帧时(文本文件中的字符都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。

但当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),情况就不同了。如果数据中的某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,数据链路层就会错误地“找到帧的边界”,把部分帧收下(误认为是个完整的帧),而把剩下的那部分数据丢弃(这部分找不到帧定界控制字符SOH)。这样的帧的传输显然就不是“透明传输”,因为当遇到数据中碰巧出现字符“EOT”时就传不过去了。

透明传输是指:在数据链路层透明传送数据时无论传输什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。

数据链路层如何进行透明传输

为了解决透明传输问题,就必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。

具体的方法是:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充或字符填充。

如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转义字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面的一个。

数据链路层如何进行差错检验

现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这就叫做比特差错。比特差错是传输差错中的一种。这里所讨论的就是比特差错。

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。误码率与信噪比有很大的关系。如果设法提高信噪比,就可以使误码率减小。实际的通信链路并非是理想的,它不可能使误码率下降到零。因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

目前在数据链路层广泛使用了循环冗余检验CRC的检错技术。

这n位冗余码可用以下方法得出。用二进制的模2运算进行2”乘M的运算,这相当于在M后面添加n个0。得到的(k+n)位的数除以收发双方事先商定的长度为(n+1)位的除数P,得出商是Q而余数是R(n位,比P少一位)。假设,M=101001(即k=6)。假定除数P=1101(即n=3)。经模2除法运算后的结果是:商Q=110101(这个商并没有什么用处),而余数R=001。这个余数R就作为冗余码拼接在数据M的后面发送出去。这种为了进行检错而添加的冗余码常称为帧检验序列FCS。因此加王FCS后发送的帧是101001001(即2"M+FCS),共有(k+n)位。

在接收端把接收到的数据以帧为单位进行CRC检验:把收到的每一个帧都除以同样的除数P(模2运算),然后检查得到的余数R。

请注意,我们现在并没有要求数据链路层向网络层提供“可靠传输”的服务。所谓“可靠传输”就是:数据链路层的发送端发送什么,在接收端就收到什么。

2. 点对点协议PPP

2.1 PPP协议的特点

我们知道,互联网用户通常都要连接到某个ISP才能接入到互联网。PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。

PPP协议应满足的需求

  • 简单
  • 封装成帧
  • 透明性
  • 差错检验
  • 多种网络层协议:多种网络层协议PPP协议必须能够在在同一条物理链路上同时支持多种网络层协议的运行。
  • 多种类型链路
  • 检测连接状态
  • 最大传送单元
  • 网络层地址协商
  • 数据压缩协商

PPP协议的组成部分

PPP协议有三个组成部分:

  • 将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。
  • 用来建立、配置和测试数据链路连接的链路控制协议LCP。通信的双方可协商一些选项。
  • 一套网络控制协议NCP。其中的每一个协议支持不同的网络层协议。

2.2 PPP协议的帧格式

PPP帧的各字段意义

PPP帧的首部和尾部分别为四个字段和两个字段。

首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),标志字段表示一个帧的开始或结束。因此标志字段就是PPP帧的定界符。

首部中的地址字段A规定为0xFF,控制字段C规定为0×03,这两个字段实际上并没有携带PPP帧的信息,无意义。

PPP首部的第四个字段是2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。

2.3 PPP协议的工作状态

PPP链路是如何进行初始化的

当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。

这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。

接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。

这样,用户个人电脑就成为互联网上的一个有IP地址的主机了。

当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。

接着,LCP释放数据链路层连接。

最后释放的是物理层的连接。

3. 使用广播信道的数据链路层

广播信道可以进行一对多的通信。局域网使用的就是广播信道。局域网技术在计算机网络中占有非常重要的地位。

3.1 局域网的数据链路层

局域网如何按照网络拓扑进行分类

  1. 星形网

  2. 环形网

  3. 总线网

以太网已经在局域网市场中占据了绝对优势,现在以太网几乎成为了局域网的同义词。

双绞线已成为局域网中的主流传输媒体。当数据率很高时,往往需要使用光纤作为传输媒体。

共享信道的解决问题

  1. 静态划分信道。比如频分复用、时分复用、波分复用和码分复用等。用户只要分配到了信道就不会和其他用户发生冲突。但这种划分信道的方法代价较高,不适合于局域网使用。
  2. 动态媒体接入控制。它又称为多点接入,其特点是信道并非在用户通信时固定分配给用户。这里又分为以下两类:
  • 随机接入。随机接入的特点是所有的用户可随机地发送信息。但如果恰巧有两个或更多的用户在同一时刻发送信息,那么在共享媒体上就要产生碰撞(即发生了冲突),使得这些用户的发送都失败。因此,必须有解决碰撞的网络协议。
  • 受控接入。受控接入的特点是用户不能随机地发送信息而必须服从一定的控制。这类的典型代表有分散控制的令牌环局域网和集中控制的多点线路探询,或称为轮询。

以太网属于随机接入。受控接入则目前在局域网中使用得较少。

3.2 CSMA/CD协议

以太网的特点

  • 第一,采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。以太网提供的服务是尽最大努力的交付,即不可靠的交付。以太网使用总线型的连接方式,我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用。因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数被破坏。以太网使用CSMA/CD协议来解决这一问题
  • 第二,以太网发送的数据都使用曼彻斯特编码的信号。曼彻斯特编码就保证了在每一个码元的正中间出现一次电压的转换,而接收端就利用这种电压的转换很方便地把位同步信号提取出来。

CSMA/CD 协议的特点

  1. 多点接入。这说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
  2. 载波监听。就是用电子技术检测总线上有没有其他计算机也在发送。因此载波监听就是检测信道。不管在发送前,还是在发送中,每个站都必须不停地检测信道。
  3. 碰撞检测。也就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
  4. 因为不可能同时进行发送和接收,使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。

3.3 以太网的MAC层

MAC层的硬件地址

在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)。

MAC地址随配适器的改变而改变,不随地理位置的改变而改变。

以太网MAC帧格式

你可能感兴趣的:(计网:数据链路层)