《计算机网络——自顶向下方法》学习笔记——链路层和局域网

链路层和局域网

两种不同类型的链路层信道。
第一种类型是广播信道,这种信道用于连接有线局域网、卫星网和混合光纤同轴电缆(Hybrid Fiber Coaxial cable, HFC )接入网中的多台主机。
第二种类型的链路层信道是点对点通信链路,诸如长距离链路连接的两台路由器之间,或用户办公室计算与它们所连接的邻近以太网交换机之间等场合。

点到点协议(Point-to-Point Protocol, PPP),该协议的适用范围从经电话线的拨号服务到经光纤链路的高速点到点帧传输。

链路层概述

将运行链路层协议的任何设备均称为节点(node)。
节点包括主机、路由器、交换机和WiFi接入点。

将沿着通信路径连接相邻节点的通信信道称为链路(link)。

通过特定链路时,传输节点将数据报封装在链路层帧中,并将该帧传送到链路中。

在这里插入图片描述

链路层提供的服务

基本服务:
将数据报通过单一通信链路从一个节点移动到相邻节点,但所提供的服务细节能够随着链路层协议的不同变化。

链路层协议能提供的可能服务包括:

  • 成帧
    一个帧由一个数据字段和若干首部字段组成,其中网络层数据报就插在数据字段中。
    帧结构由链路层协议规定。
  • 链路接入
    媒体访问控制(Medium Access Control, MAC)协议规定了帧在链路上传输的规则。对于在链路的一端仅有一个发送方、链路的另一端仅有一个接收方的点对点链路,MAC协议比较简单(或者不存在),即无论何时链路空闲,发送方都能够发送帧。
    MAC协议用于协调多个节点的帧传输。
  • 可靠交付
    当链路层协议提供可靠交付服务时,它保证无差错地经链路层移动每个网络层数据报。
    链路层的可靠交付服务通常是通过确认和重传取得的。
    链路层可靠交付服务通常用于易于产生高差错率的链路。
    目的是本地(也就是在差错发生的链路上)纠正一个差错,而不是通过运输层或应用层协议迫使进行端到端的数据重传。
    许多有线的链路层协议不提供可靠交付服务。
  • 差错检测和纠正
    链路层差错检测和纠正用硬件实现。
    差错纠正类似于差错检测,区别于接收方不仅能检测帧中出现的比特差错,而且能够准确地确定帧中的差错出现的位置(并因此纠正这些差错)。

链路层在何处实现

链路层是实现在路由器的线路卡中的。

链路层的主体部分在网络适配器(network adapter)中实现的,网络适配器有时也称为网络接口卡(Network Interface Card, NIC)。

位于网络适配器核心的是链路层控制器,该控制器常是一个实现了许多链路层服务(成帧,链路接入,,差错检测等)的专用芯片。

在发送端,控制器取得了由协议栈较高层生成并存储在主机内存中的数据报,在链路层帧中封装该数据报(填写帧的各个字段),然后遵循链路接入协议将帧传进通信链路中。
接收端,控制器接收整个帧,抽取出网络层数据报。

在这里插入图片描述

上图显示了大部分链路层在硬件实现,但部分链路层是在运行与主机CPU上的软件实现。
链路层的软件组件实现了高层链路层功能,如组装链路层寻址信息和激活控制器硬件。
在接收端,链路层软件响应控制器中断,处理差错条件和将数据报上传给网络层。

链路层是硬件和软件的结合体,即此处是协议栈中软件与硬件交接的地方。

差错检测和纠正技术

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

在这里插入图片描述上图说明了我们研究的环境。

在发送节点,为了保护比特免受差错,使用差错检测和纠正比特(Error-Detection and-Correction, EDC)来增强数据D。

通常,要保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,而且包括链路帧首部中的链路级的寻址信息、序号和其他字段。

差错检测和纠正技术使接收方有时但并总是检测出已经出现的比特差错。
即使采用差错检测比特,也还是可能有未检出比特差错;就是说,接收方可能无法知道接收的信息中包含着比特差错。

传输数据中检测差错的3种技术:

  • 奇偶校验
    用来描述差错检测和纠正背后隐含的基本思想
  • 检验和方法
    通常更多地应用于运输层
  • 循环冗余检测
    通常更多地应用在适配器中的链路层

奇偶校验

在这里插入图片描述偶校验方案:发送方只需包含一个附加的比特,选择它的值,使得这 d+1 比特(初始信息加上一个校验比特)中1的总数是偶数。
奇校验方案:选择校验比特值使得有奇数个1.

采用单个奇偶校验位方式,接收方只需要数一数接收的 d+1 比特中1的数目即可。

如果偶校验方案中发现了奇数个值为1的比特,接收方知道至少出现了一个比特差错。即出现了奇数个比特差错。

在这里插入图片描述
使用二维奇偶校验方案,包含比特值改变的列和行的校验值都将会出现差错。
因此接收方不仅可以检测到出现了单个比特差错的事实,而且还可以利用存在奇偶校验差错的列和行的索引来实际识别发生差错的比特并纠正它。

接收方检测和纠正差错的能力被称为前向纠错(Forward Error Correction, FFC)。
可减少重发次数,允许立即纠错。

检验和方法

在检验和技术中,图6-4的d比特数据被作为一个k比特整数的序列处理。
一个简单检验和方法是将这k比特整数加起来,并且用得到的和作为差错检测比特。

因特网检验和基于这种方法,即数据的字节作为16比特的整数对待并求和。这个和的反码形成了便携在报文段首部的因特网检验和。

一般运输层使用检验和,链路层使用CRC。
运输层差错检测用软件实现,检验和方案简单快速。
链路层差错检测在适配器中用专用硬件实现,能快速执行复杂的CRC。

循环冗余检测

广泛应用的差错检测技术基于循环冗余检测(Cyclic Redundancy Check, CRC)编码

CRC 编码也称为多项式编码,因为该编码能够将要发送的比特串看作为系数是0和1一个多项式,对比特串的操作被解释为多项式算术。

CRC编码操作:
考虑d比特的数据D,发送节点要将它发送给接收节点。
发送方和接收方必须先协商一个r+1比特模式,称为生成多项式,表示为G。
要求G的最高有效位比特(最左边)是1。

在这里插入图片描述

对一个给定的数据段D,发送方要选择r个附加比特R,并将它们附加到D上,使得到d+r比特模式用摸2算术恰好能被G整除(即没有余数)。

用CRC进行差错检测的过程:
接收方用G去除接收到的d+r比特。如果余数为非0,接收方知道出现了差错;否则,认为数据正确被接收。

所有CRC计算采用模2算术来做,在加法中不进位,在减法中不借位。
意味着:加法和减法是相同的,而且这两种操作等价于操作数的按位异或(XOR)。

除了所需的加法或减法操作没有进位或借位外,乘法和除法与在二进制算法中是相同的。
乘以 2 k 2^k 2k即为比特左移k个位置。
给定D和R, D ∗ 2 r X O R R D*2^{r} XOR R D2rXORR产生上图的d+r比特模式。

发送方怎样计算R,要求出R使得对n有:
D ∗ 2 r X O R R = n G D*2^{r} XOR R = nG D2rXORR=nG
即要选择R使得G能够除以 D ∗ 2 r X O R R D*2^{r} XOR R D2rXORR而没有余数。

对上述等式的两边都用R异或(即用模2加,而没有进位),得到如下:
D ∗ 2 r = n G X O R R D*2^{r} = nG XOR R

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值