【计算机网络】第三章、数据链路层

288 阅读9分钟

链路层的功能

概念

结点:主机、路由器

链路:网络中两个结点之间的物理通道,分为有线链路和无线链路

数据链路:网络之间两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路

:链路层的协议数据单元,封装网络层数据报

数据链路层主要负责通过一条链路从一个结点向另一个物理链路直接相连的结点传送数据报

功能

  1. 为网络层提供服务。无确认无连接服务、有确认无连接服务、有确认面向连接服务(有连接一定有确认)
  2. 链路管理,即连接的建立、维持、释放(用于面向连接的服务)
  3. 组帧
  4. 流量控制
  5. 差错控制(帧错、位错)

封装成帧

首部和尾部包含许多控制信息,一个重要作用是帧定界

帧同步:接收方应当能从接收到的二进制比特流区分出帧的起始和终止

透明传输:不管数据是什么样的比特组合,都能在链路上传送

组帧的四种方法

  1. 字符计数法
  2. 字符(节)填充法
  3. 零比特填充法:有5个连续的1,就填充一个0
  4. 违规编码法

差错控制(比特错)

传输中的差错都是由于噪声引起的

差错

  1. 位错:比特位出错,1变成0,0变成1
  2. 帧错:丢失、重复、失序

差错控制

  1. 检错编码:
    1. 奇偶校验码:只能检查出奇数个比特错误
    2. 循环冗余码CRC;可以实现无比特差错的传输,但这不是可靠传输
  2. 纠错编码:海明码

流量控制与可靠传输

较高的发送速度和较低的接收能力的不匹配,会造成传输出错

链路层的流量控制是点对点的,传输层的是端到端的

链路层流量控制手段:接收方收不下就不回复确认

传输层流量控制手段:接收端给发送端一个窗口公告

可靠传输:发送端发啥,接收端收啥

流量控制:控制发送速率

滑动窗口解决

  1. 流量控制:收不下就不给确认,想发也发不了
  2. 可靠传输:发送方自动重传

停止-等待协议

每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧

为什么要有停止-等待协议?

除了比特差错,底层信道还会出现丢包问题。为了实现流量控制

应用情况

  1. 无差错情况

  2. 有差错情况

    1. 数据帧丢失或检测到帧出错

    发完一个帧后,必须保留它的副本

    数据帧和确认帧必须编号

    1. ACK丢失

    1. ACK迟到

优点:简单

缺点:信道利用率低

滑动窗口协议

提高信道利用率

发送窗口:发送方维持一组连续的允许发送的帧的序号

接收窗口:接收方维持一组连续的允许接收的帧的序号

后退N帧协议(GBN)

GBN发送方必须响应的三件事:

  1. 上层的调用

  2. 收到了一个ACK

    GBN协议中,对n号帧的确认采用累计确认的方式,表明接收方已经收到n号帧和它之前的全部帧

  3. 超时事件

    如果出现超时,发送方重传所有已发送但未被确认的帧

GBN接收方要做的事:

  1. 如果正确收到n号帧,并且按序,那么接收方为n号帧发送一个ACK,并将该帧中的数据部分交给上层
  2. 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK

滑动窗口的长度不可以无限,有一定的限度。发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧

总结

  1. 累计确认(偶尔捎带确认)
  2. 接收方只按序接收帧,不按序无情丢弃
  3. 确认序列号最大的、按序到达的帧
  4. 发送窗口最大为2n12^n - 1,接收窗口大小为1

性能分析

  • 因连续发送数据帧而提高了信道利用率
  • 在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低

选择重传协议(SR)

解决GBN协议的弊端:批量重传

发送方必须响应的三件事

  1. 上层的调用

  2. 收到了一个ACK

  3. 超时事件

    每个帧都有自己的定时器,一个超时事件发生后只重传一个帧

接收方要做的事:来者不拒(窗口内的帧),不管是否按序,失序的帧将被缓存

如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK(可能是因为发送方超时重传了)。其他情况,就忽略该帧

发送窗口最好等于接收窗口(大了会溢出,小了没意义)

总结

  1. 对数据帧逐一确认,收一个确认一个
  2. 只重传出错帧
  3. 接收方有缓存
  4. 窗口大小:WT max=WR max=2n1W_{T\ max} = W_{R\ max} = 2^{n - 1}

链路层的两种信道

传输数据使用的两种链路

  1. 点对点链路(两个相邻节点通过一个链路相连,无第三者):PPP协议,常用于广域网(打电话)

  2. 广播式链路(所有主机共享通信介质):常用于局域网(对讲机)

    典型拓扑结构:总线型、星型

介质访问控制

采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况

静态划分信道

信道划分介质访问控制

  1. 频分多路复用 FDM
  2. 时分多路复用 TDM
  3. 波分多路复用 WDM
  4. 码分多路复用 CDM:码分多址(CDMA)

动态分配信道

动态媒体接入控制/多点接入

特点:信道并非在用户通信时固定分配给用户

轮询访问介质访问控制:令牌传递协议

随机访问介质访问控制

所有用户可随机发送信息,发送信息时占全部带宽

  1. ALOHA协议:不听就说

  2. CSMA协议(载波监听多路访问协议):先听再说

    CS:载波监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据

    MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上 (总线型网络)

    协议思想:发送帧之前,监听信道(信道空闲:发送完整帧、信道忙:推迟发送)

  3. CSMA/CD协议:载波监听多点接入/碰撞检测

    CD:碰撞检测,“边发送边监听” (半双工网络)

    争用期、冲突窗口、碰撞窗口2τ2\tau(只要经过2τ2\tau的时间没有检测到碰撞,就能肯定这次发送不会发生碰撞)

    重传时机:截断二进制指数规避算法

    最小帧长

    以太网规定最短帧长为64B,凡是小于64B的都是由于冲突而异常终止的无效帧

  4. CSMA/CA协议

局域网、广域网

局域网(LAN)

指在某一区域内由多台计算机互联成的计算机组,使用广播信道

特点

  1. 覆盖范围小
  2. 数据传输速率高(双绞线、同轴电缆)
  3. 通信时延短,可靠性高
  4. 共享传输信道
  5. 能进行广播和组播

决定局域网的主要要素:网络拓扑、传输介质、介质访问控制方法

拓扑结构:星型(集线器)、总线型、环形、树形

传输介质

介质访问控制方法

  1. CSMA/CD(常用于总线型局域网)
  2. 令牌总线
  3. 令牌环

分类

  1. 以太网:逻辑拓扑为总线型,物理拓扑为星型或拓展星型,使用CSMA/CD

    提供无连接、不可靠的服务。

    只实现无差错接收,不实现可靠传输

    负责物理层和链路层

    10BASE-T以太网:采用无屏蔽双绞线,传输速率为10Mb/s,物理上采用星型拓扑,逻辑上总线型,采用曼彻斯特编码,采用CSMA/CD介质访问控制

    适配器(网卡):计算机与外界有局域网的连接是通过通信适配器

    MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家,后24位厂家自己指定。在局域网中,硬件地址又称为物理地址或MAC地址【实际上是标识符】

    以太网MAC帧

    高速以太网

  2. 令牌环网

  3. FDDI网

  4. ATM网

  5. 无线局域网

广域网(WAN)

通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里

广域网的通信子网主要采用分组交换技术

强调资源共享

PPP协议(点对点协议)

用户使用拨号电话接入因特网时一般使用PPP协议

只支持全双工链路

PPP协议满足的要求

  1. 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制
  2. 封装成帧
  3. 透明传输
  4. 多种网络层协议:封装的IP数据报可以采用多种协议
  5. 多种类型链路:串行/并行、同步/异步
  6. 差错检测:错就丢弃
  7. 检测连接状态:链路是否正常工作
  8. 最大传送单元:MTU
  9. 网络层地址协商
  10. 数据压缩协商

PPP协议无需满足的要求

  1. 纠错
  2. 流量控制
  3. 序号
  4. 不支持多点线路

PPP协议的三个组成部分

  1. 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法
  2. 链路控制协议LCP:建立并维护数据链路连接。身份验证
  3. 网络控制协议NCP:PPP可支持多种网络层协议

链路层的设备

链路层扩展以太网

网桥

网桥根据MAC帧的目的地址对帧进行转发和过滤

优点

  1. 过滤通信量,增大吞吐量
  2. 扩大了物理范围
  3. 提高了可靠性
  4. 可互连不同物理层、不同MAC子层和不同速率的以太网

分类

  1. 透明网桥:自学习
  2. 源路由网桥

交换机

多接口网桥

两种交换方式

  1. 直通式交换机
  2. 存储转发式交换机

冲突域和广播域