文章参考--湖科大教书匠

链路层概述

链路层提供的服务

成帧

  • 将数据加上头部和尾部,封装成数据帧
  • 帧头部用MAC地址标识源和目的(不同于IP地址)
  • MSS = MTU - IP头部长度 - TCP头部长度

透明传输中因为对传输数据没有任何限制,即允许数据中存在帧定界符,所以接收方可能把数据中的那段数据错认成帧定界符。

解决方法:

  1. 对帧界定符进行“转义”,在其之前加上ESC
  2. 在数据中与转义字符相同的数据段中填充0

eg:

链路接入

  • 共享介质的信道访问

可靠交付

  • 很少用于误码率低的链路(光纤、双绞线链路)

  • 用于误码率高的链路(无线链路)

差错检测和纠正

  • 信号衰减和电磁干扰噪声导致出错

  • 接收方检测到错误存在:

    • 给发送方发送信号要求重传或丢弃该数据帧
    • 接收方检测和纠正帧中错误,不用重传

流量控制

  • 在相邻的收发节点间限制流量

半双工和全双工

  • 半双工时,链路两端的节点都能传输分组,但不能同时传输

链路层实现地点

差错检测和纠正技术

奇偶校验

循环冗余校验

发送方:

  1. ”除法“实质上是异或运算
  2. 是否够除,是看位数是否足够

接收方:

因特网检查和

分组:首先,将数据(或数据包)分为若干个16位的字(即每个字为两个字节)。如果数据长度不是16位的倍数,最后的一个部分将补充零填充。

求和:将所有16位的字相加,如果出现溢出(即超过16位),将溢出的部分加到和的最低位。也就是说,要进行“循环加法”。

取反:对最终的和值进行按位取反(将0变为1,1变为0),得到检查和。这个和值就是校验和

校验:接收方收到数据后,执行相同的操作,计算出一个校验和。若计算出的校验和为全1,则认为数据无误;如果不为全1,表示数据在传输过程中可能发生了错误。

多路访问链路和协议

广播链路的特点

广播链路是指在一个通信系统中,信号从单个源设备发送出去,所有处于链路上的接收设备都能接收到该信号。广播通常用于无线通信或广播电视中。

  • 单个共享广播信道

  • 两个或多个节点同时传输:相互干扰

  • 碰撞:一个节点同时收到两个或多个信号

多路访问协议

多路访问是指多个设备在同一时间使用共享的通信介质进行通信。为了避免冲突,多路访问需要一些协议来协调不同设备的传输。常见的多路访问方法包括时分多路访问(TDMA)、频分多路访问(FDMA)、码分多路访问(CDMA)等。

  • 分布式算法决定节点如何共享信道,如节点何时可以传输数据

  • 特别注意:有关共享信道的通信(协商)需使用信道本身

  • 没有额外的信道来进行协调

多址访问协议分类

多址访问实际上是多路访问的一个子集,特指如何在多个设备之间有效地分配通信资源。在多址访问中,每个设备有一个独立的标识(地址),这样设备之间可以根据地址来区分不同的通信流。

  • 信道划分协议

    • 将信道划分成小的“片”(时隙、频率、编码)
    • 将“片”分配给节点使用
  • 随机接入(访问)协议

    • 信道没有被分割,允许碰撞

    • 碰撞恢复

  • 轮流协议

    • 节点轮流传送,但数据量大的节点轮流更长时间

信道的划分

静态信道划分

动态信道划分

ALOHA

时隙ALOHA

  • 所有的帧大小相同

  • 时间被划分为相同大小的时隙,一个时隙等于传输一帧的时间

  • 节点只在时隙的开始传输帧

  • 节点被同步

  • 若有两个或多个节点在一个时隙内传送,则所有节点都能在该时隙内检测到冲突

  • 当节点有新的帧发送,它等到下一个时隙发送

  • 若没有碰撞,节点能在下一时隙传送完新帧

  • 若有碰撞,节点以概率p在后续的每一个时隙重传该帧,即在发生冲突后会随机间隔n个时隙进行重发

优点:

  • 单个活动节点能以全速R连续传输

  • 高度分散:时隙只在节点同步

  • 简单

缺点:

  • 碰撞,浪费时隙

  • 时隙空闲

  • 节点需要在分组传送时间以内检测到碰撞

  • 时钟同步

效率:

时隙ALOHA:

纯ALOHA:

CSMA/CD

概念

分类:

非坚持CSMA:一旦监听到信道忙(即发现有其他站在发送数据),就不再坚持听下去,而是根据协议的算法延迟一个随机的时间后重新再监听。若进行载波监听时发现信道空闲,则将准备好的帧发送出去。

时隙非坚持CSMA:采用划分时隙的随机接入CSMA协议,协议规定只能在每个时隙开始时才能发送帧。

1坚持CSMA:当一个站点要传送数据时,首先侦听信道,看是否有其他站点正在传送。如果信道正忙,它就持续等待直到它侦听到信道空闲时,便将数据送出。若发生冲突,站点就等待一个随机长的时间,然后重新开始。

P坚持CSMA:当一个站点要传送数据时,首先侦听信道,看是否有其他站点正在传送。如果信道正忙,它就持续等待直到它侦听到信道空闲时,以概率P发送数据,而以概率(1-P)延迟一段时间τ(网络中最远的端到端的传播时延),重新监听信道。若发生冲突,站点就等待一个随机长的时间,然后重新开始。

CSMA比较:

  • 非坚持:不能充分利用信道刚刚转入空闲期的这段时间。

  • 1坚持:容易在上述这段时间产生冲突。

  • P坚持:可以在一定程度上克服这些缺点,但却很难选择一个能用于各种通信量强度的P值。

在实际网络中常选择1坚持

习题

发送流程

轮流协议

三者比较

信道划分协议

  • 在重负荷时,共享信道有效、公平

  • 在轻负荷时效率低:信道访问延时,即使只有一个活动节点,也只能分配到1/N的带宽

随机访问协议

  • 轻负荷时效率高:只有一个节点时,能充分利用信道

  • 在重负荷下:碰撞的开销

轮流协议

  • 在两个方面寻求最佳的解决方案!

交换局域网

链路层寻址和ARP

Q:既然有IP地址,为何要MAC地址

A:局域网设备不能够识别IP地址(工作在链路层),只能通过MAC地址寻找主机

Q:进程产生的套接字是端口号+IP地址,在局域网中如何找到目的主机

A:通过IP地址获取MAC地址

Q:如何在已知IP地址的情况下,获得MAC地址

A:地址解析协议(ARP)

MAC地址(LAN地址,物理地址)

物理地址指的是MAC地址,在数据链路层上

ARP

根据目标的IP地址获取其MAC地址

ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用

以太网

以太网类型

  • 总线式以太网
  • 交换式以太网

以太网的帧结构

数据字段:(46字节~1500字节)

前同步码

  • 总共8字节,前7 字节的格式为 10101010 ,最后一个字节格式为10101011

  • 用于同步发送方与接收方时钟

地址:6 字节

  • 若适配器收到以太网帧,目的地址为自己的MAC地址或广播地址(如ARP包),就将帧中的数据传给网络层。
  • 否则,适配器丢弃该帧

类型:上层协议类型 (大多为IP协议,也支持其它协议如Novell IPX 和AppleTalk)

CRC:由接收方检查,若检测到错误,就将该帧丢弃

以太网提供的服务

  • 无连接服务:在发送适配器和接收适配器之间不需要握手

  • 不可靠服务:接收适配器不发送确认帧或否认帧给发送方

    • 交给网络层的数据报可能存在间隙
    • 若应用使用TCP,间隙会被填充
    • 否则,应用就会看见间隙

以太网使用的CSMA/CD

特点

  • 没有时隙

  • 当适配器侦听到其它适配器在传输,则不传输帧,即载波侦听

  • 正在传输的适配器若检测到其它适配器也在传输,则它中止自己的传输,即碰撞检测

  • 在重新传输之前,适配器要等待一段随机时间,即随机访问

算法

  1. 适配器收到来自网络层的数据报,创建帧
  2. 若适配器检测到信道空闲,则开始传输帧;若检测到信道忙,就开始等待,直到信道空闲再开始传输该帧
  3. 若适配器传输了整个帧而没有检测到其它适配器的传输,则该适配器完成该帧的传输
  4. 若适配器在传输时检测到其它适配器也在传输,则停止传输,发送拥塞信号
  5. 中止传输后,适配器进入指数回退阶段,在经历第m次碰撞后,适配器随机从\({0,1,2,…,2^m-1}\)中选择K值。适配器在等待 \(K·512\)比特时间后,返回第2步

重要特性

  • 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。

  • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。

  • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

传统以太网的物理层

10BASE5

  • 10表示传输速率为10Mbps
  • BASE表示基带传输:将信源的数据经过变换变为数字基带信号直接传输,信号不经过频谱搬移。
    • 基带数字信号在传输过程中,随着传输距离加大,信号衰减及噪声干扰会使得数字信号波形产生失真
    • 为消除失真,每隔一定传输距离加设一个中继器
    • 中继器工作在物理层,把一端电缆的信号放大后传到另一端的电缆中。
  • 5表示最远传输距离为500m

吉比特以太网(千兆以太网)

  • 使用标准以太网帧格式

  • 允许点对点链路和共享的广播信道

  • 共享信道时,使用CSMA/CD; 为了得到可接受的效率,节点之间的距离要短

  • 对于点到点链路,可以以1Gbps的速率全双工工作

  • 2006年达到10 Gbps

信号编码

曼彻斯特编码

编码规则

  1. 每个比特周期分为两个部分(前半周期和后半周期)。
  2. 逻辑0
    • 前半周期为高电平,后半周期为低电平(高到低跳变)。
  3. 逻辑1
    • 前半周期为低电平,后半周期为高电平(低到高跳变)。

也可以简单记为:

  • 电平高到低表示0
  • 电平低到高表示1

特性

  1. 同步性
    • 每个比特周期都有一个中间跳变(高到低或低到高),提供了时钟同步信号。
  2. 直流平衡
    • 平均电平为零,不存在直流分量(频谱更适合传输介质)。
  3. 抗干扰性
    • 即使传输中发生一些干扰,由于信号变化的频率较高,接收端更容易检测和恢复信号。

差分曼彻斯特编码

基于信号的物理层编码技术,常用于数字通信中,用于将比特数据转换成电信号传输。它结合了差分编码和曼彻斯特编码的优点,具有良好的抗干扰能力和同步特性。

  1. 编码规则

    • 逻辑“0”:在比特开始时进行翻转(电平从高到低,或低到高)。
    • 逻辑“1”:在比特开始时不翻转(电平保持上一位结束时的状态)。
    • 同步跳变:每个比特周期中间(即位间隔中点)必须翻转,确保同步信号的存在。

    NRZ信号

    • 作为对比,NRZ 信号直接用高低电平表示逻辑“1”和逻辑“0”。
    • 无中点翻转,容易因长时间电平不变而丢失同步。

    差分曼彻斯特信号

    • 每位的中点始终有一次固定翻转(用于时钟同步)。
    • 根据开始时是否翻转来区分逻辑“0”和“1”。
    • 不同于普通曼彻斯特编码,差分曼彻斯特编码对信号极性反转不敏感。

信号解读

以图中的比特流 0 1 0 0 1 1 0 1 0 为例,逐位分析:

在最开头的高横线表示之前的状态

  • 第一位 0
    • 开始时翻转(横线高到低)。
    • 中点时翻转(横线低到高)。
  • 第二位1
    • 开始时不翻转,保持上一位结束时的状态(横线高)。
    • 中点时翻转(横线高到低)。
  • 第三位 0
    • 开始时翻转(横线低到高)。
    • 中点时翻转(横线高到低)。
  • 后续位依次按规则进行。

链路交换机

集线器

集线器本质上是物理层的中继器:

  • 从一个接口收到的比特流会传给其它所有接口

  • 同样速率

  • 没有帧缓存

  • 集线器没有 CSMA/CD :由适配器检测碰撞

  • 提供网络管理功能(可网管、智能、网络分段)

交换机

  • 数据链路层+物理层

  • 主机直接连接到交换机

  • 交换机缓存数据包

  • 每一条链路都采用了以太网协议,但之间没有冲突,全双工通信

自学习转发

每条记录都有自己的有效时间,到期会自动删除;因为MAC地址和结构的关系不是永久的。

习题

网桥

网桥实质上就是一种存储转发设备,用来实现MAC层的LAN互连

网桥的工作原理

  • 不断监听各端口是否有信号

  • 收到无差错的帧则缓存,反之将差错帧丢弃

  • 若所收帧的目的MAC地址属另一网段,则通过站表决定向何端口转发

  • 网桥不转发同一“网段”内通信的帧

  • 目的主机和源主机不连接在网桥的同一接口上才会转发

  • 网桥不修改所转发的帧的源地址

网桥的优势

  • 过滤通信量

  • 扩大了局域网的物理范围

  • 提高了可靠性

  • 可互连不同物理层、不同MAC子层和不同速率的局域网

网桥的缺点

  • 由于要接收和转发,增加了时延

  • MAC子层没有流量控制功能,网络负荷重时,网桥缓存空间可能发生溢出,产生帧丢失现象

  • 不同MAC子层的网段桥接时,在转发帧之前要修改帧的某些字段,这也需要耗费时间

  • 出现广播风暴。网桥只适合用户少于几百个和通信量不太大的局域网,否则有时会因传播过多广播信息而产生网络拥塞

网桥和集线器的区别

  • 集线器只是将网络的覆盖距离简单的延长,而且距离有限,具体实现在物理层;网桥不仅具有将LAN的覆盖距离延长的作用,而且理论上可做到无限延长(?),具体实现在MAC层

    • MAC层(媒体访问控制层)是计算机网络中的一个子层,属于数据链路层。MAC层的主要职责是控制设备如何访问物理介质并实现数据帧的可靠传输。它是网络中通信设备之间协同工作、避免冲突的重要机制。
  • 集线器仅具有简单的信号整形和放大的功能;网桥则属于一种智能互连设备,它主要提供信号的存储/转发、数据过滤、路由选择等能力。

  • 集线器仅是一种硬设备,而网桥既包括硬件又包括软件

  • 集线器仅只能互连同类LAN,而网桥可支持不同类型的LAN互连。

透明网桥

这里所谓“透明”是指局域网上的每个站并不知道所发送的帧将经过哪几个网桥,即网桥对各站来说是看不见的

存在问题一一兜圈子

假设网络中存在多个互联网桥A、B、C,形成了一个环路。当某设备发送广播帧时:

  1. 广播帧从网桥A被转发到网桥B,然后又被转发到网桥C,再返回到网桥A。
  2. 每个网桥不断将广播帧转发到其他网桥,帧在环路中不断循环,形成广播风暴。
  3. 在此过程中,各网桥不断更新MAC地址表,但无法正确确定设备的位置

解决方案——支撑树算法

  • 互连在一起的网桥彼此通信后,就能找出原来的网络拓扑的一个子集,在这个子集里整个连通的网络中不存在回路。一旦支撑树确定了网桥就会将某些端口断开,以确保从原来的拓扑得出一个支撑树

  • 支撑树算法选择一个网桥为树的根,然后以最短路径为依据,找到树上的每一个结点

  • 为了让支撑树能反映网络拓扑的变化,每隔几秒钟每个网桥要广播其标识号,和它所知道的所有其他网桥

缺点:互连局域网数目非常大时,支撑树算法可能花很多时间。

以太网交换机——多端口网桥

  • 链路层设备

  • 存储和转发以太网帧

  • 检查帧头部,根据目的MAC地址转发帧

  • 当帧转发到LAN网段,用CSMA/CD 访问 LAN网段

  • 透明主机不知道交换机的存在

  • 即插即用,自学习,交换机不需配置

  • 直通交换:帧从入端口转发到出端口不需收集整个帧

  • 能少量减少延迟

  • 共享/专用的、10/100/1000Mbps接口的结合

对比

虚拟局域网

习题