数据链路层:概述与服务

链路层主要使用的信道包括:

  • 广播信道 : 这种信道采用一对多的广播通信方式,因此过程比较复杂.广播信道上主机众多,我们必须使用专用的共享信道协议来协调这些主机的数据发送
  • 点对点信道 : 这种信道使用一对一的点对点通信方式

链路层提供的服务

链路层协议定义了在链路两端的节点之间交互的分组格式,以及当发送和接受分组时这些节点采取的动作。
链路层协议可能提供的服务包括:

服务 概述
成帧 在每个数据报传输时,用链路层帧将其封装起来.一个帧由首部,数据字段和尾部组成.链路层的数据字段就是网络层的数据报
链路接入 媒体访问控制协议(Medium Access Control,MAC)规定了帧在链路上传输的规则.当对端只有一个的时候,可以随便发,MAC不作限制.当出现多路访问的问题的时候,MAC协议协调多个节点传输
可靠交付 表示两个链路层结点之间可以无差错传递帧.使用和TCP类似的确认与重传实现的.一般用于差错比例较大的链路(WiFi等).差错比特较低的链路(光纤等)一般不使用.
差错检测和纠正 差错检测用于检测比特差错,一般用硬件实现.差错纠正可以纠正出现的比特差错

适配器通信

对于给定的一个通信的链路,链路层协议的主要部分在适配器中实现。在主机中,链路层的主体是在网络适配器(网络接口卡)中实现的,还是有部分功能由软件实现,如组装链路层寻址信息和激活控制器硬件.位于网卡核心的是链路层控制器,控制器实现了许多链路层服务(成帧,链路接入,差错检测)的专用芯片,因此,链路层的许多功能是用硬件实现的.
适配器是一个半自治的单元。

差错检测和纠错技术

奇偶校验

单个比特的奇偶校验
单个比特的奇偶校验是指在要发送的数据最后附加一个奇偶校验位.奇校验的意思就是整个编码中的1的个数要是奇数.偶校验就是1的个数是偶数. 显然如果有偶数个比特发生错误,那么奇偶校验就检测不出来了.
二维奇偶校验
D中的d个比特被划分为i行j列.对每行没咧计算奇偶值.产生的i + j + 1奇偶比特就构成了链路层帧的差错检测比特.

当出现单个比特差错时,发生错误的行和列都会出现差错.接收方不仅可以检测差错,还可以根据行列索引来纠正它
二维奇偶校验也可以检测(但不能纠正)两个比特错误的任何组合.
如果在同一行两个比特错误,则那一行的奇偶校验正确,但是会有两列的奇偶校验失败.如果不同行,则会有四列出错.这两种情况都无法纠错,只能检测.但是还是有一些偶数个错误的情况是二维奇偶校验无法检测的.
接收方检测和纠错的能力被称为前向纠错.

检查和方法

在校验和方法中,数据被切成k比特的序列,这些序列全部相加之后取反码就是校验和.接收方收到数据之后,把所有数据加起来(包括校验和).用结果是否全为1来作为判断数据是否出错的标准.
和CRC相比,校验和提供较弱的保护.
为什么传输层使用校验和而链路层使用CRC呢?

  • 传输层使用软件实现,采用简单快速的方案是必须的(校验和)
  • 链路层的CRC用硬件实现,能够快速执行CRC操作.

循环冗余检测(CRC)

编码解码步骤
CRC编码也称为多项式编码,因为该编码能够将要发送的比特串看成系数是0或1的一个比特串,对比特串的操作被解释为多项式算数. 这里不过多讨论多项式理论.
编码步骤如下 :

  1. 发送方和接收方实现协商一个r + 1的比特模式(比特串)G,叫做生成多项式.要求G的最高位是1
  2. 对于一个给定的数据段D,发送方选择r个附加比特R,并将它们附加到D上.
  3. 使得得到的d + r比特模式用模2算数恰好能被G整除.(模2算数就是异或)

接收方的解码步骤很简单,用G去除收到的d + r比特.如果余数非0,接收方知道出了差错.否则认为数据被正确接收.
怎么计算R?
要使得R对于n有: D * 2 r XOR R = nG.
两边同异或R得: D * 2 r = nG XOR
所以 R = remainder {D * 2r / G}

多址访问协议

信道划分协议

TDM(时分多路复用)
TDM把时间划分为时间帧,并进一步把时间帧划分为N个时隙(slot).(时间帧和链路层交换的单元帧不是一个意思)
然后把每个时隙分给N个节点中的一个.无论何时某个节点在有分组想要发送的时候,他在循环的TDM帧中指派给它的时隙内传输分组比特.时隙长度一般应是一个时隙内能传输一个分组
TDM的缺点

  • 最高速率只能达到R/N bps ,即使只有一个人使用信道
  • 节点总是总是要等待它的时隙,可能会对缓存等造成压力

FDM(频分多路复用)
FDM将Rbps的信道划分为不同的频段(每个频段具有R/N带宽),并把每个频段分给N个结点中的一个.因此FDM在N个较大的信道中创建了N个较小的R/N信道.
FDM的缺点和TDM相同,限制了每个结点只能使用R/N带宽.
码分多址
又称为CDMA,此处不作介绍.只需要知道类似于TDM的时隙和FDM的频率,能分配给多路访问信道的用户.

随机访问协议

时隙ALOHA
时隙ALOHA的原则是

  • 当结点有一个新帧要发送时,它等到下一个时隙开始并在该时隙传输整个帧
  • 如果没有碰撞就成功传输该帧
  • 如果碰撞,该结点在时隙结束之前检测到碰撞.结点以概率P重传该帧,知道该帧传出去.

优点:

  • 当结点是唯一活跃的节点时,时隙ALOHA可以让节点全速传输.
  • 时隙ALOHA是一个简单的协议

缺点:

  • 当有大量节点有帧需要传输时,则最多仅有37%的时隙做有效工作.因此信道传输效率是0.37Rbps.(推导过程看书)

ALOHA
ALOHA是一个非时隙,分散的协议.当有帧需要传输时,ALOHA会马上传输.如果碰撞了,ALOHA会以概论P重传该帧.否则,该结点等待一个帧传输的时间.因为ALOHA的分散,所以ALOHA的最大效率仅为1/(2e).仅为时隙ALOHA的一半.
载波侦听多路访问(CSMA)
载波侦听的意思包含两点:

  • 说话之前先听:一个结点发送之前需要先侦听信道,如果有其他结点在发送,就等待发完.
  • 如果其他结点发送,则立即停止发送.

为什么所有结点都载波侦听,还是会碰撞?
因为信道传输会有时延(虽然速度接近光).
具有碰撞检测的载波侦听多路访问(CSMA/CD)
在纯CSMA中,即使检测到了碰撞,结点还是会发完它的帧.在CSMA/CD中,结点检测到碰撞就会停止发送一个无用的帧,有助于改善协议性能.
CSMA/CD运行的过程

  1. 适配器从网络层一条获得数据报,封装成帧,将其放入帧适配器缓存中.
  2. 如果适配器监听到信道空闲,它将传输.如果信道忙,就等待到不忙
  3. 传输时未监听到其他结点的信号能量,完成传输.如果检测到,就中止传输.
  4. 中止后,等待一个随机时间量(二进制指数后退),返回步骤2.

如果每个结点都等待同样的时间T,那么可能会一直碰撞下去.为了解决这个问题,一般采用二进制指数后退算法.
二进制指数后退算法:传输一个帧时,如果经历了一连串的n次碰撞后,结点随机等概率从[0, 1, 2,3,…,2n-1]中选择一个K值,然后等待K * 512比特时间(例如,对于100Mbps,这个时间是5.12微秒.)后重传.
CSMA/CD协议效率 : 效率 = 1 / (1 + 5dprop / dtrans),其中dprop表示信号能量在任意两个适配器中传播所需的最大时间,dtrans表示传输一个最大长度的以太网帧的时间.从公式可以看出,如果dprop 接近0 , 则效率接近1

链路层编址

  1. 地址解析协议(ARP),该协议为节点提供了将IP地址转换为链路层地址的机制。
  2. 动态主机配置协议(DHCP)。

MAC地址

并非节点具有链路层地址,而是节点的适配器具有链路层地址。
MAC地址的作用是标识局域网内一个帧从哪个接口到哪个物理相连的其他接口.因此,拥有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址,就像他们也具有多个IP地址一样.需要注意的是,链路层交换机没有MAC地址.
MAC地址也被称为LAN地址,物理地址.
MAC地址长度为6个字节,,共有248个可能的MAC地址.
MAC地址空间由IEEE统一管理.当一个公司要生产适配器的时候,他象征性的付一点钱给IEEE,买一个224的地址空间.IEEE固定前24位,后24位由各个公司自己生成唯一标识.
当适配器收到一个帧时,会先检查这个帧的MAC地址与自己的接口MAC是否一致,如果不匹配就丢弃该帧,如果匹配向上传递.这种适配是使用硬件实现的.
FF-FF-FF-FF-FF-FF是唯一的用来广播的MAC地址

地址解析协议(ARP)

ARP做什么?
ARP的任务是把网络层的IP地址和链路层的MAC进行转换
在发送主机的ARP模块将取在相同局域网上的任何IP地址进行输入,然后返回相应的MAC地址
DNS和ARP很相似,但是DNS和ARP的区别是DNS为因特网上的任何主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址.
ARP如何工作?
每台主机或者路由器在它的内存中都有一张ARP表,这张表包含了IP地址到MAC地址的映射关系.ARP表中也有一个寿命(TTL)值,它指示了从表中删除每个映射的时间,一个表项的过期时间一般是20分钟
这张表不必为该子网上的每台主机和每个路由器都包含一个表项,某些可能从没进入过表,某些可能已经过期
当主机222.222.222.220要发送一个数据报,该数据报要IP寻址到本子网上另一台主机或路由器.发送主机需要拿到MAC地址然后进行发送.如果ARP表中有这一项,那么直接取即可.如果没有,那么就会发送一个ARP分组.
一个ARP分组有几个字段,包括发送和接收IP地址和MAC地址.ARP查询分组和ARP响应分组都具有相同格式.
222.222.222.220向广播地址FF-FF-FF-FF-FF-FF发送一个ARP查询分组,子网中的每个结点都把这个分组向上传给ARP模块,ARP检查查询分组中的IP地址和自己的是否一样,其中匹配的那一个给查询者送回(不是广播)一个ARP响应,然后222.222.222.220更新它的ARP表并发送数据报

TIP:

  • ARP查询是广播,ARP响应是标准传输
  • ARP是即插即用的,不需要管理员配置
  • ARP是跨越链路层和网络层边界的协议
  • 当向另一个子网中发送数据时,每次都会使用ARP找到下一跳,然后一跳一次的穿过去.不能用ARP直接解析,因根本不在一个子网中

动态主机配置协议(DHCP)

DHCP是一个客户机/服务器协议。
对于一台新到达的主机,DHCP协议分四个阶段进行:

  1. DHCP服务器发现(DHCP server discovery):一台新到达主机的首要任务是发现一台与其交互的DHCP服务器。通过使用一个DHCP发现报文来完成。
  2. DHCP服务器提供(DHCP server offer):一个DHCP服务器收到一个DHCP发现报文时,它响应客户机发回一个DHCP提供报文(包含在UDP段中,UDP段包含在IP数据报中,IP数据报包含在链路层帧中,然后链路层帧被发给刚到达的客户机)。
  3. DHCP请求(DHCP request):该新到达的客户机从一个或多个服务器提供中选择一个,并用一个DHCP请求报文对选中的提供进行响应,回应相关的配置参数。
  4. DHCP ACK(DHCP ACK):服务器用一个DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。

以太网

以太网是一种局域网技术.
以太网现行的主要结构是星型拓扑,不再使用集线器,而是使用交换机.
交换机不仅是无碰撞的,而且是名副其实的存储转发分组交换机.交换机运行在第二层.

以太网帧结构

|–前同步码–|–目的地址–|–源地址–|–类型–|–数据–|–CRC–|

字段 描述
数据字段(46-1500字节) 这个字段承载IP数据报.以太网的最大传输单元(MTU)是1500字节.如果超过就要分片.最小是46字节,如果不足,就要填充.网络层使用IP数据报标记的长度来确定去掉填充的字节.
目的地址(6字节) 网卡的MAC地址.只有本接口地址和广播地址才会被接收方送到网路层.
源地址(6字节) 发送者的MAC地址
类型字段(2字节) 不一定数据一定是IP数据报.可能是各种不同的网络协议.比如ARP,AppleTalk等.用来标记网络层协议类型,以正确分发给网络层
CRC(4字节) 用来纠错
前同步码(8字节) 前七个字节用来”唤醒”接收适配器,并且同步时钟频率(为了支持不同的以太网速率总会产生漂移).第8个字节最后两个比特(第一个连续出现的1)用来警告网卡:”数据马上到来”

以太网面向无连接,都向网络层提供不可靠服务.当使用CRC检测到帧错误后,它只是简单的丢掉,不会确认重传

CSMA/CD: 以太网的多址访问协议

前面已经分析,这里不再分析

互联:链路层交换机

交换机转发和过滤

过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能.
转发是决定一个帧应该被导向哪个接口并且导向这个接口的功能.
转发和过滤通过交换机表来完成
交换机表项有:

  • MAC地址
  • 通向该MAC地址的接口号
  • 表项放在表中的时间

交换机转发的分组和路由器不一样,交换机转发的分组基于MAC地址
当一个目的地址发来时,交换机做这样的处理:

  • 表中没有该表项时,交换机广播(除了来源接口)
  • 查表得来源接口和目的接口一样,交换机丢弃分组(已经在包含目的地的局域网网段广播过了)
  • 查表得有一个表项匹配,且不是来源接口,交换机转发分组过去.

自学习

交换机是这样自学习的

  • 交换机初始为空
  • 每个入帧到达,交换机会存储1.该帧源地址2.该帧到达的接口3.当前时间
  • 如果过了老化期后,交换机没有收到同一个源地址的帧,交换机就删除这个表项.(防止接口上的一台PC被另一个替换)

交换机是即插即用的

链路层交换机的性质

交换机的几个优点:

  • 消除碰撞:使用交换机的局域网没有因碰撞浪费的带宽.交换机缓存帧,并且同一时刻只发一个.最大聚合带宽是所有接口之和
  • 异质的链路:交换机将链路彼此隔离
  • 管理:交换机易于进行网络管理

TIP:交换机毒化

  • 攻击者向交换机发送大量具有不同源MAC地址的分组,用伪造表项填满交换机表项.让正常的分组没办法传输,交换机只能广播大部分的帧,这些帧能够由嗅探器俘获到

交换机与路由器比较

交换机的优点和缺点
优点 :

  • 即插即用
  • 具有相对较高的分组过滤转发速率

缺点:

  • 大型交换网络要求主机和路由器上有大的ARP表,这将生成可观的ARP流量和处理量.
  • 交换机对于广播风暴不提供任何保护措施,如果主机出故障不停广播帧,交换机会转发所有帧,让以太网崩溃

路由器的优点和缺点
优点:

  • 路由器没有生成树限制,所以路由器允许以丰富的拓扑结构构建因特网
  • 路由器对第二层的广播风暴提供了防火墙保护

缺点:

  • 不是即插即用的
  • 处理分组时间长

链路虚拟化:网络作为链路层

多协议标签交换的目标是:对于基于固定长度标签和虚电路的技术,在不放弃基于目的地IP数据报转发的基础设施的前提下,当可能是通过选择新的标识数据报并允许路由器基于固定长度的标签(而不是目的地IP地址)转发数据报来增强功能
MPLS分组只能在MPLS使能的路由器之间发,因为MPLS首部位于链路层和网络层首部之间,普通路由器不认识.
MPLS使能的路由器会通告其他路由自己能到达的目的地A,并且通告MPLS的某个标签可以到达目的地A.
当一个MPLS分组到达时,路由器解析入标签,查MPLS表,然后把标签换成表中的出标签,发送到表中标记的接口中(类似虚电路).
MPLS可以配置一条预计算的无故障的路径来应对链路故障.

计算机网络——链路层相关推荐

  1. 计算机网络——链路层之流量控制和可靠传输机制

    文章目录 1.链路层为什么要进行流量控制? 2.链路层的流量控制方法 3.流量控制协议的窗口大小 4.可靠传输.滑动窗口.流量控制 5.总结 1.链路层为什么要进行流量控制? \qquad因为较高的发 ...

  2. 计算机网络——链路层之信道

    文章目录 一.信道划分介质访问控制 1.传输数据使用的两种链路 2.介质访问控制 3.信号划分介质访问控制 3.1 频分多路复用FDM 3.2 时分多路复用TDM 3.3 波分多路复用WDM 3.4 ...

  3. 计算机网络——链路层之PPP协议和HDLC协议

    文章目录 一 PPP协议 1.广域网 2.PPP协议的特点 3.PPP协议应该满足的要求 4.PPP协议的三个组成部分 5.PPP协议的状态图 6.PPP协议的帧格式 二 HDLC协议 一 PPP协议 ...

  4. 计算机网络——链路层之局域网

    文章目录 一 局域网的基本概念和体系结构 1.局域网 2.局域网拓扑结构 3.局域网传输介质 4.局域网介质访问控制方法 5.局域网的分类 6.IEEE802标准 7.MAC和LLC子层 8.总结 二 ...

  5. 计算机网络——链路层之停止等待协议

    文章目录 1.为什么要有停止等待协议? 2.研究停止等待协议的前提 3.停止等待协议有几种应用情况? 3.1 无差错情况 3.2 有差错的情况 4.总结 1.为什么要有停止等待协议? 2.研究停止等待 ...

  6. 计算机网络 物理层链路层

    计算机网络 物理层 复用 课中给到的示例 检错机制 纠错码 链路层 分组太大帧装不下? 为何帧要限制大小? 以太网 链路层 tracert www.baidu.cn(xxx) 在应用层协议有限定长度标 ...

  7. 计算机网络 第六章 链路层与局域网

    参考书籍:<计算机网络:自顶向下的方法>第七版 链路层提供的服务 将IP数据报封装成帧 链路接入(媒体访问控制协议) 可靠交付(针对某些不稳定的链路,进行差错检验和纠错)(注意以太网是提供 ...

  8. 计算机网络自顶向下-链路层

    链路层和局域网 两台主机之间,数据报跨越一系列通信链路传输,一些是有线链路一些是无线链路,从源主机起,通过一些了分组交换机在目的主机结束.在链路层中有两种不同的链路层信道, 第一种是广播信道,这种信道 ...

  9. 计算机网络笔记——概述、物理层、链路层(方老师408课程)

    文章目录 前言 互联网概述 互联网发展的三个阶段 互联网标准化机构 互联网的组成 边缘部分的通信方式 核心部分的交换方式 我国计算机网络的发展 计算机网络的类别 计算机网络的性能 速率.带宽.吞吐量 ...

最新文章

  1. 代理 Delegeta
  2. 王欢:如何构建好的智能风控工具体系?
  3. 给Resnet加人工经验提升30%的准确率
  4. OSPF的LSA类型 ——连载一路由器LSA
  5. php date 毫秒_高性能的PHP日志系统 SeasLog 使用
  6. 中断处理过程示意图_聊聊什么是中断机制?
  7. Yii中设置时间分区
  8. linux系统命令学习系列8-文件相关操作touch,rm,mv,cat,head,tail命令
  9. 【转】js字符串转换成数字
  10. SPI读写串行FLASH(W25Q64)
  11. 学生成绩管理系统c语言直方图,Excel表格的25招必学秘技 电子表格常用技巧大全...
  12. linux-ext4格式文件误删除恢复
  13. 探索搜索引擎技术的现状和将来(转)
  14. JOI2014Final 飞天鼠
  15. android手机相册多张上传,一键批量上传手机照片到QQ相册功能 节省手机流量
  16. 腾讯云表格识别Python-SDK使用
  17. android studio 使用lint工具优化app时全过程记录
  18. sqlite编辑器 linux,SQLite3 ARM平台交叉编译
  19. 如何验证服务器有没ftp服务,如何检查ftp服务器是否联机并获取它未生成的错误?...
  20. 傅里叶分析的方方面面:复正弦、负频率

热门文章

  1. 【测试表征】电化学循环伏安法QA
  2. 大一python期末必考题_Python期末复习材料
  3. LeetCode 217、219. 存在重复元素
  4. 详解炒股知识,炒股常识之五大理论
  5. html的样式下拉框的联动,Web框架Ajax实现html下拉框联动
  6. 增广拉格朗日乘子法(Augmented Lagrange Method)
  7. Solr从安装到使用 for Linux(详细教程)
  8. Unity获取NoloVR手柄
  9. day fit into much one too_励志人生的一句英文
  10. laydate动态设定时间范围