第三章 数据链路层

数据链路层使用的信道主要有以下两种形式
(1) 点对点信道       一对一的点对点通信方式
(2)广播信道            一对多
局域网不放在网络层讨论,网络层讨论多个网络互连,是讨论分组怎样从一个网络,通过路由器,转发到另一个网络。本章,我们讨论分组怎样从一台主机传送到另一台主机,但并不经过路由器转发。局域网仍属于数据链路层。
第三章 数据链路层

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

3.1.1 数据链路和栈

链路:一个结点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。(物理链路)
数据链路:数据在线路传送,除了物理线路还需要通信协议来控制数据传输。实现协议的硬件和软件加在链路上,就构成了数据链路。现在最常用的方法是网络适配器来实现这些协议。一般的适配器包括数据链路层和网络层。(链路)
数据链路层协议数据单元:帧

  • 数据链路层把网络上交下来的数据构成帧发送到链路上。把收到的帧中数据取出上交网络层。网络层协议数据单元IP数据报(简称数据报,分组或包)第三章 数据链路层
  • 点对点信道数据链路层进行通信的主要步骤如下
  • 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
  • 结点A把帧发送给结点B的数据链路层
  • 若B收到的帧无差错,从收到的帧中提取出IP数据报交给上面的网络层,否则丢掉这个帧。


3.12 三个基本问题
1.封装成帧

在数据(IP数据报)前后添加首部和尾部(作用帧定界和包含很多控制信息)。接收端收到物理层比特流后,就能根据首部和尾部的标记,从收到的比特流识别帧的开始各结束。
为提高传输效率,帧的数据长度大于首部和尾部。但是每一种链路层协议都规定了所能传送的帧的数据部分长度上限。最大传送单元MTU。
当数据由可打印的ASCII码组成的文本文件时,帧定界可使用帧定界符。ASCII码是七位编码,一共128种,可打印(可以从键盘输入的)有95个,不可打印33个。控制字符SOH放在一帧的最前面,EOT放在最后。十六进制编码分变为01和04.。可判断帧的完整。

2.透明传输

所传输任何8比特组合不允许使用用作帧定界的控制字符的比特编码。
当传送的帧是用文本文件组成的帧时(都是可以从键盘输入的),其数据部分显然不会出现像SOH或EOT,透明传输。
非ASCII码文本文件,如计算机程序和图像等。会出错。在数据中出现控制字符前面加上转义字符ESC,十六进制(1B)。接收端送往网络层之前删除esc。这种方法叫做字节填充。如果转义字符也出现在数据中,在前面再添加一个ESC。收到两个转义字符,删除前面一个。

3.差错检测

比特差错:0变成1,1变成0。
误码率BER:传输错误占传输总数比率,信噪比高,误码率小。
循环冗余检验码CRC
数据划分为分组,每组k个比特,待传送数据M=101001(k=6)。CRC就是在M后面添加n位冗余码。用二进制的模2运算(加法不进位)进行2n乘M的运算。相当于M后面加n个0。除以双方事先商定好的除P(n+1位)。得出商是Q,余数是R(n位)。R作为冗余码拼接在M后,R称为帧检验序列FCS(k+n位)。第三章 数据链路层
接收端把接收到的数据以帧为单位CRC检测。除以同样的除数P(模2运算),检查余数R。无差错R为0。(有错极小概率是0)
多项式表示循环冗余检验过程。P=1101。P(X)=(1)X3+(1)X2+(0)X1+(1)X0
数据链路层FCS生成和CRC检验都是硬件完成的,速度快。
只使用CRC只能无差错接受,近似的认为没有差错。不是可靠传输,现在并没有要求数据链路层向网络层提供可靠传输。传输差错两类:比特差错,帧丢失,帧重复,帧失序。
CRC增加帧编号,确认,重传机制。收到正确的帧向发送端发送确认,发送端一段是时间内没收到确认就重传。通信质量好的有线传输线路不确认重传。要是有错,交给上层协议纠正。
质量差的确认 重传机制。这样提高通信效率。


3.2 点对点协议ppp

3.2.1 ppp协议的特点

ppp协议就是用户计算机和ISP进行通信时所使用的数据链路层协议第三章 数据链路层

1.ppp协议应满足的需求
  • 简单:数据链路层的帧,不需要纠错,不需要序号和流量控制。提高互操作性。
  • 封装成帧:ppp协议必须规定特殊的字符为帧定界符,
  • 透明性:数据中碰巧出现了帧定界符,要解决这个问题。
  • 多种网络层协议:ppp协议必须能够在同一条物理链路上支持多种网络协议(如IP和IPX)的运行
  • 多种类型链路:串行、并行,同步、异步,低速或高速,动态或静态,电或光的点对点链路。
  • 差错检测:接收端对帧进行检测,丢掉不对的帧。
  • 检测连接状态:必须具有一种及时(不超过几分钟)自动检测出链路是否处于正常状态。防止故障了一会重新恢复正常。
  • 最大传送单元:必须对每一种类型点对点链路设置最大传送单元。促进互操作性,高层协议传送超过mtu的帧,丢弃,返回差错。mtu是数据部分最大长度,而不是帧的总长度。
  • 网络层地址协商:使两个网络层(如两个iP层)的实体能够通过协商知道或能够配置对方的网络层地址。保证网络层可以传输分组。
  • 数据压缩协商:协商数据压缩算法
    ppp不支持多点线路(一个主站轮流和链路上的多个从站进行通信),只支持点对点的链路通信,只支持全双工链路。
2.ppp协议的组成
  • 一个将IP数据报封装到串行链路的方法
  • 一个用来建立、配置和测试数据链路连接的链路控制协议LCP,通信的双方可协商一些选项。
  • 一套网络控制协议ncp,其中的每一个协议支持不同的网络层协议。

3.2.2 ppp协议的帧格式
1.各字段的意义

首部和尾部分别为四个字段和两个字段
首部第一个字段和尾部最后一个字段都是标志字段F,规定为(0x7E)(01111110),是ppp帧的定界符。连续两帧之间只需要一个定界符,如果两个就是空帧,应当丢弃。第三章 数据链路层
字段A规定为0xFF(11111111),控制字段C规定为0x03(00000011),第四个字段是2个字节的通信协议。洗衣字段为0x0021帧的信息字段就是IP数据报,若为0xC021,信息字段为链路控制协议LCP的数据,0x8021表示网络层的控制数据。FCS是帧检验序列。

2.字节填充

当信息字段中出现和标志字符字段一样的比特(0x7e)时。
当ppp使用异步传输时,他把转义字符定义为0x7D(01111101),并使用字节填充。

  • 把信息字段每一个0x7E字节转变为2字节序列(0x7d,0x5e)
  • 信息字段出现0x7D的字节(即出现了和转义字符一样的比特组合),把它变成两字节(0x7D,0x5D)
  • 信息字段出现ASCII码的控制字符(数值小于0x20的字符),在该字符起前面要加一个0x7D字节,同时该字符的编码加以改变,0x7D变为(0x7D,0x23)
3.零比特填充

ppp在SONET/SDH链路时,使用同步传输(一连串连续发送),而不是异步传输(逐个字符的传输)。这种情况下ppp协议采用零比特填充方法来实现透明传输。

  • 发送端先扫描整个信息字段(硬件实现,也可以用软件实现)。发现5个1,立即填入一个0,可以保证不会出现连续6个1。
  • 接收端先找到F,硬件对比特流扫描,连续5个1删除后面0,第三章 数据链路层
3.23 ppp协议的工作状态

用户拨号接入ISP,建立了一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发搜发送一系列的链路控制协议LCP分组(封装成多个ppp帧),以便建立lcp连接。这些分组及其相应选择了将使用的ppp参数,还要进行网络层配置,网络控制层协议NCP给新接入的用户个人电脑分配一个临时的IP地址。这样,用户个人电脑就成为互联网上的一个有IP地址的主机了。
通信完毕,NCP释放网络层连接,收回原来分配出去的IP地址。lcp释放数据链路层连接,最后释放物理层连接。
ppp链路的起始和终止状态永远是链路静止。Lcp连接之后协商配置选项,发送lcp配置请求帧。这是个ppp帧,协议字段配置为lcp对应的代码,而信息字段包括特定的配置请求。
链路的另一端相应:配置确认帧、配置否认帧(所有选项理解但不能接受)、配置拒绝帧(有的无法识别或接受需要协商)第三章 数据链路层

  • LCP配置包括最大帧长、鉴别协议的规约,以及不使用ppp帧的地址和控制字段。因为这两个字段值固定,可以省略。
  • 协商后双方建立了lcp链路,进入鉴别状态,只允许传输lcp协议的分组、鉴别协议的分组以及检测链路质量的分组 。若是有口令鉴别协议PAP,发起通信的一方发送身份标志符合口令。可允许用户重试若干次。为了安全性,可使用更复杂的口令握手鉴别协议CHAP。鉴别身份识别,链路终止。成功,进入网络层协议。
  • 网络层协议,ppp链路的两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组。ppp协议两端网络层可以运行不同网络层协议 ,仍然可以使用同一个ppp协议进行通信。
  • 如果ppp链路运行的是IP协议,则对ppp链路每一段配置IP协议模块(如分配IP地址)就要使用ncp中支持IP的协议——IP控制协议IPCP,IPCP的分组也封装成ppp帧(协议字段0x8021)在ppp链路传送。低速链路时双方可以协商使用压缩的TCP和IP首部。
  • 网络层配置完毕。链路打开,两个ppp端点向对方发送分组。还可以发送回送请求lcp分组和回送回答lcp分组检查链路状态。
  • 数据传输结束。由链路一端发送终止请求lcp分组。收到对方终止确认lcp分组,链路终止。调制解调器载波停止,链路静止。ppp协议不是纯粹数据链路层协议,还包括物理层和网络层。

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

3.3.1 局域网的数据链路层

局域网的主要特点:网络作为一个单位所有,且地理范围和站点数目均有限。
局域网的优点:

  • 具有广播功能,从一个站点可以很方便的访问全网。连在局域网上的主机共享硬件和软件资源
  • 便于系统的拓展和逐渐演变,各设备的位置可灵活调整和改变。
  • 提高了系统的可靠性,可用性和生存性。
    局域网按网络拓扑分类:
  • 星型网:由于集线器的出现和双绞线大量用于局域网中,得以推广。
  • 环形网
  • 总线网:各站直接连在总线上。第三章 数据链路层
    局域网可以使用多种传输媒体,双绞线是局域网主流传输媒体,数据率很高,可以用光纤。
    局域网工作层次跨越了数据链路层和物理层。
    共享信道:
  • 静态划分信道:如频分复用、时分复用、波分复用和码分复用。代价较高,不适合局域网。
  • 动态媒体街入控制:多点接入,信道并非在用户通信时固定分配给用户。
    1.随机接入:所有用户可随机发送消息,恰巧多个用户同时发送消息,碰撞,发送失败。
    2.受控接入:用户不能随机发送消息而必须服从一定的控制,如有分散控制的令牌环局域网和集中控制的多点线路探询。或称为轮询。
    1.以太网的两个标准
    以太网是一种基带总线局域网。用无源电缆作为总线传输数据帧。
    IEE802委员会把局域网的数据链路层拆成两个子层,逻辑链路控制LLC子层和媒体接入控制MAC子层。
    现在很多厂商适配器仅装有MAC协议
    2.适配器的作用
    计算机与外界局域网的连接是通过通信适配器进行的。本来是接口板又称为网络接口卡NIC或简称为网卡。适配器上装有处理器和储存器(包括RAM和ROM)。适配器和计算机之间通信通过计算主板上的I/O总线并行传输。适配器一个重要功能进行数据串行传输和并行传输的转换。网络数据率和总线数据率不相同,所以适配器装有对数据进行缓存的数据芯片。还要装驱动,告诉适配器,应该从什么位置把多长数据块发动的局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。
    适配器发送接收帧时,不适用计算机的cpu。这时计算机中的cpu可以处理其他任务。适配器收到差错帧直接丢掉,收到正确帧中段来告诉计算机,并交付给协议栈中的网络层。当计算机要发送IP数据报,就有协议栈把IP数据报向下交给适配器,组装成帧后发送给局域网。第三章 数据链路层

3.3.2 CSMA/CD协议

最早的以太网将许多计算机连接在一根总线上。
总线特点:一台计算机发送数据,总线上所有计算机都能监测到。广播通信,为了实现一对一,可以使每一台计算机适配器拥有一个独一无二的地址。发送数据帧时,在帧首部写明接收站的地址。目的地址和适配器ROM中存放的地址一致时,该适配器才能接收这个数据帧。不是自己的丢掉,广播总线就可以一对一通信。
局域网上的计算机称为:主机、工作站、站点或站。
为了通信简便,以太网采用以下两种措施。

  • 第一,采用灵活的无连接工作方式。适配器对发送的数据帧不进行编号,也不要求对方发回确认。局域网信道质量好,很少发生差错。因此,以太网提供的服务是尽最大努力的交付。目的主机收到差错帧,丢掉,什么也不做,是否重传由高层决定。如高层TCP协议,TCP发现丢失数据,一段时间TCP就把这些数据重新传递给以太网重传,但以太网不知道这是重传帧。总线一台计算机发送数据就占用资源,因此,同一时间只允许一台计算机发送数据,否则就会互相干扰。以太网是简单的随机接入,但有很好的协议减少冲突。比人发言,必须等待,同时发言,全部停止。CSMA/CD 载波监听多点接入/碰撞检测。
  • 以太网发送的数据都使用曼彻斯特编码的信号,保证每个码元中间出现一次电压的转换,而接收端就利用这种电压的转换很方便地把位同步信号提取出来。缺点,占用频带宽度比原始的基带信号增加了一半,因为每秒传送的码元数加倍了。第三章 数据链路层