数据链路可以理解为数据传输通道,在物理层和网络层之间,是数据传输中比较重要的一层。物理设备为终端设备间传递传输媒介及连接,但通讯设备之间的传输连接只能在通讯时短暂连接。每次通信都要经过建立通信连接和拆除通信连接两个过程,这种建立起来的数据收发就叫数据链路,承担这种工作任务的设备就称为数据链路设备。常见的有网卡,网桥,交换机。
链路层主要任务就在于将网络层的PDU,进行通过帧的形式来传递。
所以链路层的协议就规定了:单端链路的两端结点之间的交互的帧格式,以及这些结点在发送和接收帧是所采取的操作
注意一条端到端路径上的不同单端链路可运行不同的链路协议,并且每种链路层的协议提供的服务可能不同。
上面说,链路层负责将网络层的PDU(IP数据报)在两个结点间进行传递。而结点间的链路分为两种:
a.网卡(网络适配器)
作用:是连接计算机与网络的硬件设备,可以实现与局域网传输介质直接的物理连接和电信号匹配,还涉及到帧的发送与接收,帧的封装与拆封,介质访问控制,数据的编码与解码以及数据缓存的功能等。
“计算机与外界局域网的连接是通过主机箱内插入一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡)。网络接口板又称为通信适配器或网络适配器(Network Adapter)或网络接口卡NIC(Network Interface Card),但是更多的人愿意使用更为简单的名称‘网卡’。” —— 百度百科
b.网桥
作用:是实现局域网互连的存储转发设备。网桥从一个局域网接收MAC帧,拆封、校对、校验之后,按另一个局域网的格式重新组装,发往它的物理层
“网桥像一个聪明的中继器,它将两个相似的网络连接起来,并对网络数据的流通进行管理,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性” —— 百度百科
c.交换机
作用:是一种用于电信号转发的网络设备,可以把要传输的信息发送的符合要求的设备上。
交换机内部的cpu会在每个端口连接成功时,通过将mac地址和端口对应起来,形成一张mac表,在之后的通信中,发送该mac地址的数据包将仅发送器对应的端口,而不是所有的端口。
在上面的节点中结点间链路类型有两种,一种为点对点链路,一种为广播链路。其中广播链路中的以太网和无线局域网比较广为人知。而点对点链路中的相关协议,接触的比较少。我们简单来看看点对点协议中的两种典型代表:PPP协议和HDLC协议
ppp(点到点协议)是为在同等单元之间传输数据包这样简单的链路设计的链路层协议。这种链路是双全工操作,并按照顺序传递数据包。设计目的是主要通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机,网桥和路由器之间简单连接的一种共通的解决方案。
它的优点就是简单,具备用户识别认证能力以及支持动态ip地址分配,家庭拨号上网就是通过PPP在用户端上和运营商的接入服务器之间建立通信链路。
a.组成
c.特点
HDLC——面向比特的同步协议,它不依赖任何一种字符编码集,数据报文可以透明传输,全双工通信,CRC检验,且对帧进行顺序编号,防止漏发或者重发,可靠性高;传输控制功能与处理功能分离,较为灵活。
帧格式
除了少了协议字段,其他几乎和PPP相同。
帧格式也是FAC+信息字段+FCS(2字节)+F
透明传输什么样意思呢?
前面我们知道,PPP和HDLC都存在一个标志字段F,来表示帧的开始和结束。但是如果帧的内容中本身就存在标志字端,那是不是会将后面的数据舍弃。为了解决这个问题,提出了透明传输。
a.解决
b.PPP的字节填充
c.ppp的零比特填充
在上面我们说的是点对点的链路传输,我们看看广播链路。广播链路一般用于局域网环境,采用的是多路访问方式
多路访问协议特征
多路访问会产生一个问题,就是碰撞。比如,两个结点同时发送帧,信号会发生纠缠,无法分清。
对于多路访问带来的碰撞问题,有三种方法可以解决
下面来分别说上面三种协议。
信道划分协议
特点:
适用场合:存在大量需要频繁访问信道的结点,信道划分协议可以公平的为每个节点分配的固定的信道资源。
但是不适用局域网,因为局域网对于带宽的需求是无法预见的。
轮流协议主要分为两种:
适用场合:
希望共享信道,但是无法预测访问结点数量的场景。
令牌传递:
在令牌总线网当中,各个站点连接到总线式的电脑上面,在逻辑上所有的站点是构成了一个环形。每一个站点都知道自己的左边和右边站点的地址,逻辑环初始化以后账号最大的站点可以发送第一帧,然后发送一个令牌给其后的邻居,把发送权交给邻站,那么令牌是代表1个帧发送权限的控制。
令牌绕着逻辑环来进行传送,站点只有获得令牌才能够发送帧,那么令牌沿着逻辑环传递的时候,任何一个时刻只会有一个站点获得令牌,因此令牌总线网当中不会产生冲突。
需要注意的是这种逻辑环上的站点的次序和总线上的站点的实际顺序是没有关系的,因为总线是一个广播的信道,每一个站点都能接收到所有的帧,但是会把不能发送给自己的帧丢弃掉。
令牌环一个重要的优点就是信道访问时间具有确切的上界,这个就是令牌环网重要的优点。
随机接入协议常见的有以下几种:
特点:
CSMA载波监听策略分为两种:
以太网特指DIX Ethernet V2所描述的技术,在1982年,IEEE 802委员会以DIX Ethernet V2为基础,推出来IEEE802.3.虽然“以太网”和IEEE802.3略有区别,但在忽略网络协议细节时,人们习惯性将IEEE802.3称为以太网。
上面说的是IEEE802.3是指局域网,我们看看802其他协议
问题1:就在于如何在具体广播性质的总线上实现一对一通信。
解决:以广播的形式将帧发送给所有节点,但只有目标节点接收,其他节点将不是发给自己的帧丢失。
问题2:如果快捷方便的进行通信。
解决:a.不保证可靠传输,即,不建立连接,不进行编号,不进行错误重传。可靠传输交给上层实现。b.使用曼彻斯特码对传输的数据进行编码
问题3:如何解决碰撞
解决:刚开始是使用CSMA/CD解决的碰撞
以太网采用的是带碰撞检验的载波监听多点接入CSAM/CD.
a.内容
发送前先监听信道是否空闲,若空闲则立即发送数据,在发送是,边发送边监听。若监听到碰撞,则立即停止发送,等待一段随机时间后,在重新尝试。
总结来说,四句话:
发前先监听,空闲则发送
边发边检测,碰撞则回退
b.流程
c.截断二进制指数退避算法
算法让发送碰撞的站停止发送数据后,不是等待信道空闲后立即再发送数据,而是要推迟一个随机等待时间。
具体算法如下:
d.以太网中应用CSMA/CD
半双工是指传输过程中只能向一个方向传输,一方数据结束之后,另一方在回应。也就是说同时只能有一个节点能够传输,如果两个节点同时传输数据的话就会产生拥挤
全双工是以太网此采用两对电缆线,而不是半双工那样采用一对电缆线。全双工模式在发送设备的发送方和接收设备的接收方采用点对点连接。由于发送数据和接收数据是在不同的电缆线上完成,因此不会产生冲突。
IEEE802标志为每一个DTE规定了一个48位的全局地址,他是站点全球唯一的标识符,与其物理位置无关。其格式如下:
mac地址的广播地址:FF-FF-FF-FF-FF-FF-FF
为了达到比特同步的目的,在传输媒体上实际传输的要比MAC帧多8字节的前导码
同时在两个帧之间还存在帧间最小间隔,称为帧间隙,长度为12Byte。适配器只有检测到超过12B没有电流,就知道一个帧结束了。
交换机的是二层设备,处于数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将mac地址和端口对应,形成一种mac表,在今后的通信中,仅仅将mac地址的数据包送到其对应的端口。
在交换机过滤转发的过程,最重要的是mac表的生成。mac表的生成是采用的自学习算法。
其过程如下:
在采用交换机的以太网局域网中,会产生广播风暴(当主机X发送一个广播帧,或者不在ab交换机的mac地址表的这帧),所以为了避免产生广播风暴,交换机采用一种生成树算法(STP)来消除回路。
生成树协议构造过程中,要经历如下的三个过程:
a.选举根网桥
每个网桥广播自己的网桥ID,ID最小的成为生成树的根,在给定广播域内,只有一个网桥成为根网桥。网桥的所有端口都处于转发状态。
名次解释:
b.选取根端口
选出根网桥后,每个非跟网桥都要选出一个根端口,这是通过比较非跟网桥的每个端口到根网桥的根路径的开销来决定的。具有最小跟路径开销的端口被选做根端口,如果具有相同的开销,则具有最小的端口ID的端口被选做跟端口,一个网桥只能有一个跟端口。
根端口也处于转发状态
名词接收:
c.确定指派网桥和指派端口
对于每一个网段,在所有连接到它的网桥端口中,选择一个到跟网桥最近的端口,负责该网桥间的数据传递,这个端口就称为该网段的指派端口,其他端口通常处于非指派端口,非指派端口通常处于阻塞状态。
名词解释:
一个具有三个交换机的形成的生成树
d.重新计算生成树
当网桥或者链路由于故障导致拓扑结构发生改变时,生成树协议通过将阻塞端口变为转发状态来确保连接。如下图:
e.生成树状态
生成树在通过状态维护了一个无环路的拓扑,有如下四种状态。
a.概念
《计算机网络:原理和实践》