1. 数据链路层概述
- 链路:就是从一个结点到相邻结点的一段物理链路,而中间没有任何其他的交换结点。
- 数据链路:就是把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
- 数据链路层以帧为单位来传输数据。
数据链路层功能:
- 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!
- 链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
- 组帧。
- 流量控制,限制发送方
- 差错控制(帧错/位错)。
2. 数据链路层的三个重要问题
2.1封装成帧与透明传输
- 封装成帧:就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
- 帧头和帧尾中包含重要的控制信息。
- 帧头和帧尾的作用是:
- 帧定界:确定帧的界限。
- 帧同步::接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
- 组帧的方法: 1. 字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法。
- 透明传输是指:不管所传数据是什么样的比特组合,都应当能够在链路上发送,数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
当所传 数据中的比特组合 恰巧与 某一控制信息完全一样 时,则必须采取适当措施,使接收方不会将这样的数据误认为是某种控制信息,这样才能保证数据链路层的传输是透明的。
- 面向字节的物理链路使用字节填充(字符填充(插入转义字符ESC))的方式实现透明传输。
- 面向比特的物理链路使用比特填充 ( 插入比特0 )的方法实现透明传输。
2.1.1 PPP协议
对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议PPP
PPP协议是目前使用最广泛的广域网协议,这是因为它具有以下特性:
- 能够控制数据链路的建立;
- 能够对IP地址进行分配和使用;
- 允许同时采用多种网络层协议;
- 能够配置和测试数据链路;
- 能够进行错误检测;
- 有协商选项,能够对网络层的地址和数据压缩等进行协商。
帧的格式
PPP协议如何实现透明传输?
协议的工作状态
2.2 差错检测
- 差错从何而来?
- 如何解决差错?
奇偶检验:在数据后面添加1位奇偶检验位,检查“1”/“0”的个数。
- 如果有奇数个位发生误码,则奇偶性改变,可以检测出误码。
- 如果有偶数个位发生误码,则奇偶性不发生变化,不能检测出误码。
环冗余校验(CRC):
发送方
- 发送方给出需要传递的数据(Data),并定义多项式(polynomial),以多项式得到(n+1)位除数(n为最高次幂的指数),对数据的末尾补上n位0,作为被除数,用除数去除被除数,得到的余数就是所需要计算的n位CRC校验码,将得到的CRC校验码拼接到原始数据的末端生成新的数据,将这个数据一并传给接收方。
接收方
- 接收方需要做的事就更简单一些,将得到的一整块数据作为被除数,用在发送方得到的除数去除被除数,如果结果余数为0的话,代表数据的传输没有出错,得到的数据事正确且有效的。
- 接收方还有另外一种方法,即使发送方分别发送数据和CRC数据,结束方得到数据末尾补n个0作为被除数,用多项式除数去除被除数,得到的余数如果作为接收方的CRC校验码,如何接收方得到的CRC数据和发送方发的CRC一致的话,同样也可以证明数据的传输是没有问题的。
2.3流量控制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
- 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。
- 数据链路层流量控制手段:接收方收不下就不回复确认。
- 传输层流量控制手段:接收端给发送端一个窗口公告。
流量控制的三种实现机制
2.3.1. 停止-等待协议SW
- 为什么要有停止-等待协议?
- 在数据传输过程中,除了比特出差错,底层信道还会出现丢包问题。
- 实现流量控制
- 停等协议的三种应用情况
- 无差错
- 数据帧丢失或检测到帧错误
- ACK迟到
- 为了让接受方能够判断所收到的分组是否重复,需要给数据分组编号。由于停止等待协议的停等特性,只需1个比特编号就够了,即编号0和1.
- 为了让发送方能够判断所收到的ACK分组是否重复,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样,数据链路层一般不会出现ACK分组迟到情况,因此在数据链路层实现停止等待协议可以不用给ACK分组编号。
- 超时计时器设置的重传时间应仔细选择,一般选择略大于“从发送方到接受方的平均往返时间”。
信道利用率=数据帧发送时延/数据帧发送时延+端到端往返时延
2.3.2. 回退N帧协议GBN
- 只接受按序到达的,未按序的到达了也丢弃
- GBN采用累计确认
2.3.3. 选择重传协议SR
选择重传协议为了使发送方仅重传出现差错的分组,接收方不在进行累计确认,而需要对每个正确收到的数据分组进行逐一确认!(对回退N帧协议的改进)
3. 介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发送互相干扰的情况。
3.1 信道划分介质访问控制
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理的分配给网络上的设备。
- 频分多路复用:每个用户占一个频段,通过该频段发送数据,这样就使所有的用户在传输数据时不会互相干扰。
- 时分多路复用:将时间划分为一段段等长的时分复用帧(TMD帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
- TDM帧时在物理层传送的比特流所划分的帧,标志一个周期。
- 波分多路复用:光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
- 码分多路复用:每一个用户可以在相同的时间使用同样的频带进行通信。
- 码分多址(CDMA)是码分复用的一种方式。
3.2 随机访问介质访问控制
3.2.1 ALOHA协议
- 纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。(想发就发)
- 时隙ALOHA协议思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
3.2.2 CSMA协议
协议思想:发送帧之前,监听信道。(先听再说)
- CS:载波监听/侦听,每一个站在发送数据前要检测一下总线上是否有其他计算机在发送数据。
- MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
3.2.3 CSMA/CD协议(碰撞检测)
关于截断二进制退避算法参考:截断二进制退避算法
最小帧长:
最大帧长:
为什么要有最大帧长?
如果一个帧的长度过大,一个站点不停地发送帧,让其他站点一直无法无法使用信道;另外如果帧的长度过大,接收方的缓冲区可能也装不下该帧产生溢出。
3.2.4 CSMA/CA协议(碰撞避免)
CSMA/CS与CSMA/CA的区别
4.局域网
4.1局域网概述
局域网( Local Area Network) :简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
- 局域网的特点:
- 覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
- 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高( 10Mb/s ~ 10Gb/s)。
- 通信延迟时间短,误码率低,可靠性较高。
- 各站为平等关系,共享传输信道。
- 多采用分布式控制和广播式通信,能进行广播和组播。
- 决定局域网的主要要素为:
- 网络拓扑
- 传输介质
- 介质访问控制方法。
4.2局域网的网络拓扑结构
4.3以太网
- 以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公 司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD (载波监听多路访问及冲突检测)技术。
以太网在局域网各种技术中占统治性地位:
- 造价低廉(以太网网卡不到100块) ;
- 是应用最广泛的局域网技术;
- 比令牌环网、ATM网便宜,简单;
- 满足网络速率要求: 10Mb/s~10Gb/s.
- 以太网的两个标准:
- DIX EthernetV2:第一个局域网产品(以太网)规约。
- IEE 802.3: IEE 802委员会802.3工作组制定的第-一个IEEE的 以太网标准。( 帧格式有一丢丢改动)
- 以太网提供无连接、不可靠的服务
- 无连接:发送方和接收方之间无“握手过程”。
- 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
4.3.1适配器与MAC地址
- 适配器
- MAC地址
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址(硬件地址、物理地址)。
- MAC地址是对网络上各接口的唯一标识,而不是对各设备的唯一标识。
4.3.2虚拟局域网VLAN
- VLAN是一种将局域网内的设备划分为与物理位置无关的逻辑组技术,这些逻辑组具有某些共同的需求。
- 同一VLAN内部可以广播通信,不同VLAN之间不能广播通信。
VLAN的实现机制
5.链路层设备
5.1网桥
- 网桥:是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞(冲突)。网桥将网络的同一网段在数据链路层连接起来,只能连接同构网络(同一网段),不能连接异构网络(不同网段)。
- 网桥的分类
透明网桥
通过自学习来构建转发表。每一个通过网桥的数据包都会被记录下网桥收到数据时数据对应的地址和网桥自己的接口,通过许许多多的数据包的构造的缓存,网桥就可以知道哪个数据包在哪个接口,以后如果要传数据包就知道要往哪个接口发送数据包了
原路由网桥
在发送时,直接将最佳路径放到帧首部。那么网桥如何获得最佳路径?通过广播方式向目标地址发送广播,此时可能会经过不同路由产生不同的路径,目标地址收到后再将每一条路径都发一个响应帧给网桥,网桥经过对比就知道哪个接口最快了
5.2交换机
随着网桥接口越来越多,网桥就变成了交换机
交换机的任务是接收入链路层帧并将它们转发到出链路
交换机自身对节点透明:某节点向另一节点寻址一个帧,顺利地将该帧发送进LAN,而不知道这个帧经过了某个交换机的接收与转发
交换机表是自动、动态、自治地建立的,没有来自网络管理员或配置协议的任何干预。换句话说,交换机是自学习的