计算机网络(自顶向下)第六章总结

计算机网络

第六章:链路层和局域网

链路层信道。第一种类型是广播信道,这种信道用于连接有线局域网、卫星网和混合光纤同轴电缆接入网中的多台主机。因为许多主机与相同的广播信道连接,需要所谓的媒体访问协议来协调帧传输。第二种类型的链路层信道是点对点通信链路,这在诸如长距离链路连接的两台路由器之间,或用户办公室计算机与它们所连接的邻近以太网交换机之间等场合经常能够发现。

6.1 链层概述

  • 将运行链路层协议的任何设备均称为节点(node)。把沿着通信路径连接相邻节点的通信信道称为链路(link)。为了将一个数据报从源主机传输到目的主机,数据报必须通过沿端到端路径上的各段链路传输。
6.1.1 链路层提供的服务
  • 链路层协议能够提供的可能服务包括:
    • 成帧。 在每个网络层数据报经链路传送之前,几乎所有的链路层协议都要将其用链路层帧封装起来。一个帧由一个数据字段和若干首部字段组成,其中网络层数据报就插在数据字段中。
    • 链路接入媒体访问控制(Medium Access Control, MAC)协议规定了帧在链路上传输的规则。对于在链路的一端仅有一个发送方、链路的另一端仅有一个接收方的点对点链路,MAC协议比较简单(或者不存在),即无论何吋链路空闲,发送方都能够发送帧。
    • 可靠交付。当链路层协议提供可靠交付服务时,它保证无差错地经链路层移动每个网络层数据报。其目的是本地(也就是在差错发生的链路上)纠正一个差错,而不是通过运输层或应用层协议迫使进行端到端的数据重传。
    • 差错检测和纠正。通过让发送节点在帧中包括差错检测比特,让接收节点进行差错检查,以此来完成这项工作。链路层的差错检测用硬件实现。差错纠正类似于差错检测,区别在于接收方不仅能检测帧中出现的比特差错,而且能够准确地确定帧中的差错出现的位置(并因此纠正这些差错)。
6.1.2 链层在何处实现
  • 链路层的主体部分是在网络适配器(network adapter)中实现的,网络适配器也称为网络接口卡(Network Interface Card, NIC)。位于网络适配器核心的是链路层控制器,该控制器通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片。链路层控制器的许多功能是用硬件实现的。

  • 在发送端,控制器取得了由协议栈较高层生成并存储在主机内存中的数据报,在链路层帧中封装该数据报,遵循链路接入协议将该帧传进通信链路中。

  • 在接收端,控制器接收了整个帧,抽取出网络层数据报。如果链路层执行差错检测,则需要发送控制器在该帧的首部设置差错检测比特,由接收控制器执行差错检测。

  • 尽管大部分链路层是在硬件中实现的,但部分链路层是在运行于主机CPU上的软件中实现的。链路层的软件组件实现了高层链路层功能,如组装链路层寻址信息和激活控制器硬件。接收端,链路层软件响应控制器中断,处理差错条件和将数据报向上传递给网络层。链路层是硬件和软件的结合体,即此处是协议栈中软件与硬件交接的地方

    image-20210424151133681

6.2 差错检测和纠正技术

  • 比特级差错检测和纠正,即对从一个节点发送到另一个物理上连接的邻近节点的链路层帧中的比特损伤进行检测和纠正,它们通常是链路层提供的两种服务。

  • 为了保护比特免受差错,使用差错检测和纠正比特 (Error- Detection and- Correction EDC)来增强数据D。要保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,而且包括链路帧首部中的链路级的寻址信息、序号和其他字段。链路级帧中的D和EDC都被发送到接收节点。在接收节点,接收到比特序列D’和EDC’,注意到因传输中的比特翻转所致,D‘和EDC‘,可能与 初始的D和EDC不同。

  • 差错检测和纠正技术使接收方有时但并不总是检测出已经出现的比特差错。即使采用差错检测比特,也还是可能有未检出比特差错。因此要选择一个差错检测方案,使得这种事件发生的概率很小。

    image-20210424152811782

6.2.1 奇偶校验
  • 在偶校验方案中,发送方只需包含一个附加的比特,选择它的值,使得这d + 1比特(初始信息加上一个校验比特)中1的总数是偶 数。对于奇校验方案,选择校验比特值使得有奇数个1。
  • 采用单个奇偶校验位方式,接收方只需要数一数接收的d + 1 比特中1的数目即可。如果在采用偶校验方案中发现了奇数个值为1的比特,接收方知道出现了奇数个比特差错。但是如果出现了偶数个比特差错,将导致一个未检出的差错。
  • 接收方检测和纠正差错的能力被称为前向纠错(Forward Error Correction, FEC)。可以减少所需的发送方重发的次数。允许在接收方立即纠正差错。FEC避免了不得不等待的往返时延,而这些时延是发送方收到NAK分组并向接收方重传分组所需要的。
6.2.2 检验和方法
  • 简单检验和方法就是将这k比特整数加起来,并且用得到的和作为差错检测比特。因特网检验和(Internet checksum)就基于这种方法,即数据的字节作为16比特的整数对待并求和。这个和的反码形成了携带在报文段首部的因特网检验和。接收方通过对接收的数据(包括检验和)的和取反码,并且检测其结果是否为全1比特来检测检验和。
  • 为什么运输层使用检验和而链路层使用CRC呢?
    • 运输层通常是在主机中作为用户操作系统的一部分用软件实现的。因为运输层差错检测用软件实现,采用简单而快速如检验和这样的差错检测方案是重要的。链路层的差错检测在适配器中用专用的硬件实现,它能够快速执行更复杂的CRC操作。
6.2.3 循环冗余检测
  • 循环冗余检测(Cyclic Redundancy Check, CRC)编码。CRC编码也称为多项式编码 (polynomial code),因为该编码能够将要发送的比特串看作为系数是0和1一个多项式,对比特串的操作被解释为多项式算术。

  • 考虑d比特的数据D,发送节点要将它发送给接收节点。发送方和接收方必须协商一个r + 1比特模式,称为生成多项式(general),我们将其表示为G。G的最高有效位的比特(最左边)是1。对于一个给定的数据段D,发送方要选择厂个附加比特心并将它们附加到D上,使得得到的d + r比特模式。用模2算术恰好能被G整除 。接收方用G去除接收到的d + r比特。如果余数为非零,接收方知道出现了差错;否则认为数据正确而被接收。

  • 接收方用G去除接收到的d + r比特。如果余数为非零,接收方知道出现了差错;否则认为数据正确而被接收。

    image-20210424160146959

6.3 多访问链和协议

  • 有两种类型的网络链路点对点链路广播链路点对点链路(point-to point link)由链路一端的单个发送方和链路另一端的单个接收方组成。广播链路(broadcast link),它能够让多个发送和接收节点都连接到相同的、单一的、共享的广播信道上。当任何一个节点传输一个帧时,信道广播该帧,每个其他节点都收到一个副本。对链路层很重要的问题 如何协调多个发送和接收节点对一个共享广播信道的访问,这就是多路访问问题(muhiple access problem)。
  • 计算机网络广播信道上的节点既能够发送也能够接收。多路访问协议(multiple access protocol࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值