数据链路层
目录
一、功能
保障两个直接相连的计算机无差错进行数据传输,也就是保障点到点的数据传输。
1、给网络层提供服务
无确认的无连接服务:源节点发送数据时不需先建立链路连接,目的机器收到数据帧不返回确认收到信息。对丢失的帧,数据链路层不负责重发而交给上层处理。适用于实时通信或误码率低的信道,如以太网。
有确认的无连接服务:节点发送数据时不需先建立链路连接,目的机器收到数据帧返回确认收到信息。源节点在所规定的时间内没有收到确认信号,就重传丢失的帧。适用于误码率较高的通信信道,如无线通信。
有确认的面向连接服务:帧传输要有建立数据链路、帧传输、释放数据链路。目的机器收到每一帧都要有确认,源节点收到确认后才能发送下一帧,因而可靠性最高。适用于通信要求较高的场合。
2、链路管理,即数据链路层连接的建立、维持和释放
3、成帧
帧是一种信息单位,每一帧应该包括一定数量的数据和一些必要的控制信息。控制信息包括同步信息(帧的开始、结束信息)、地址信息、差错控制信息和流量控制信息。
在HDLC协议中,规定用标识符F(01111110)来标识帧的开始和结束。
透明传输:不管所传数据是什么样的比特组合,都能在链路上传输。
4、流量控制
由于收发双方各自的工作速率和缓存空间的差异,可能出现发送方发送能力大于接收方接收能力的现象。流量控制就是限制发送发的数据流量,使得发送速率不能超过接收方接收能力。
流量控制并不是数据链路层特有的功能,许多高层协议也提供了这样的功能,只是数据链路层控制的是两个相邻结点的流量,对于传输层来说,控制的是源端到目的端的流量。
5、差错控制
由于信道噪声等原因,数据帧在传输过程中可能出现错误。用以使发送方确定接收方是否正确收到了由他发送数据的方式叫差错控制。通常,这些错误可以分为位错和帧错。
帧错:帧的丢失、重复或失序等。通常引入定时器和编号机制解决。
位错:帧的某一位或某几位错误,通常采用CRC校验码发现位错,通过自动重传(ARQ)方式来重传出错的帧。
二、检错编码和纠错编码
1、检错编码
奇偶校验码:由n-1个数据位和1位校验位组成,如果是奇校验码,则在加上校验码之后,1的个数为奇数;否则就是偶校验码。奇偶校验码只能发现奇数个比特的错误。
循环冗余校验码(CRC):数据向左平移r位,除以特征多项式,模二除法,得到的余数就是校验码,之后发送的时候把这个校验码放到数据后边一块发送。接收方收到后用收到的数据除以特征多项式,能整除在正确。CRC可以检测出所有单比特错误。
2、纠错编码
汉明码:m个信息位插入r位校验位组成m+r位的码字,且有2^r>=m+r+1。汉明码能纠正1位,能检错2位。
三、介质访问控制
假设只有一条共享信道,A要和C通信,B要和D通信,如果不加控制,两对结点的通信可能因为相互干扰而失败。数据链路层分为介质访问控制子层(MAC)和 逻辑链路控制子层(LLC)。MAC层主要负责与物理层相关的所有问题,LLC层不涉及与物理层的问题,主要功能是与高层相关的问题。介质访问控制也就是决定谁,什么时间能占用共享信道传输信息。
1、载波监听多路访问/冲突检测(CSMA/CD)
(1)载波监听多路访问(CSMA)
CSMA原理是,当一个结点要发送数据前,需要先监听总线。如果总线上没有其他站点发送,即总线是空闲的,则该节点发送数据。如果总线是忙的,则等待一段时间重新监听总线,再根据总线忙闲情况决定是否发送数据。
(2)载波监听多路访问/冲突检测(CSMA/CD)
由于数据在总线上传播需要时间,因此即使采用了CSMA算法,仍然会出现冲突。CSMA/CD是CSMA的改进方案。CD部分是在每个站点发送数据期间同时检测是否有冲突发生。一旦检测到冲突,立即停止发送,并向总线发送阻塞信号,通知总线上各站点已经产生冲突。
CSMA/CD总线网中所有帧的数据必须要大于一个最小帧长。在10Mbps的以太网中,规定51.2us作为争用期(在这段时间内没有检测到冲突,那么这次发送就不会发生冲突)长度,在争用期内可发送64B。在以太网发送数据时,如果前64B没有发生冲突,那么后续的数据也不会冲突。换句话说如果发生冲突,一定在前64B。
用二进制指数退避算法解决碰撞问题,重传16次仍未成功时,表明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
2、令牌传递协议
主要用于环形拓扑结构的局域网上。在令牌传递协议中,一个令牌在各个节点以某个固定次序交换。令牌是由一组特殊的比特组合而成的帧。当环上的一个站希望传送帧时,必须等待令牌。一旦收到令牌,站点便可启动发送帧。帧中包括目的地址,以标识哪个站接收此帧。帧在环上传送时,不管该帧是否发给本站点的,所有节点都进行转发,直到该帧回到它的始发站,并由始发站撤销该帧。
四、局域网
1、局域网基本概念
局域网可以使用双绞线、铜缆、光纤等多种传输介质,其中双绞线为主流传输介质。
局域网介质访问控制方法主要有:CSMA/CD、令牌总线和令牌环。其中前两种主要用于总线型局域网,令牌环主要用于环形局域网。
三种特殊局域网拓扑实现:
以太网(IEEE802.3):逻辑拓扑是总线型结构,物理拓扑是星型结构。
令牌环(IEEE802.5):逻辑拓扑是环形结构,物理拓扑是星型结构。
FDDI(光纤分布数字接口,IEEE802.8):逻辑拓扑是环形结构,物理拓扑是双环结构。
2、以太网(IEEE802.3)
以太网采用无连接的工作方式,即不对发送的数据帧进行编号,也不要求接收方发送确认。因此以太网尽最大努力交付数据,提供的是不可靠服务,对于差错的纠正由上层完成。以太网最小帧长64B,数据段帧长46B-1500B。
(1)网卡
网卡又叫网络适配器,网卡是局域网中连接计算机和传输介质的接口,因此网卡工作在物理层和数据链路层。全世界每块网卡在出厂时都有一个唯一的代码,称为MAC地址。数据链路层设备如网桥和交换机都可以各个网卡的MAC地址。
MAC地址共6个字节,前3个字节是厂商代码,后3个字节是序列号。由于总线上使用的是广播通信,因此网卡从网络上每收到一个MAC帧,首先用硬件检查MAC帧中的MAC地址。如果是发往本站的帧就收下,否则丢弃。
(2)以太网常识
BASE前边代表数据率,BASE代表基带信号传输,后边的数字表示每段电缆的长度,T表示双绞线,F表示光纤。
对于一些全双工工作方式的高速以太网,彻底摆脱了CSMA/CD协议,因为全双工至少两根线。
10Gbps以上的以太网只采用光纤作为传输媒体。
3、无线局域网(IEEE802.11)
IEEE802.11采用的是CSMA/CA协议进行介质访问控制,即使在发送过程中发生了碰撞,也要把整个帧发送完毕;而在有线局域网中,发生冲突则结点立即停止发送数据。
五、广域网
广域网数据链路层协议:PPP,HDLC
1、PPP协议协议
PPP提供差错检测但不提供纠错功能,是不可靠协议,因此也不使用序号和确认机制。
PPP只支持全双工链路。
PPP的两端可以运行不同的网络层协议,但仍可以使用同一个PPP进行通信。
PPP是面向字节的,没有最短帧,数据段长度为0-1500B。
2、HDLC协议
HDLC是可靠传输,使用了编号和确认机制。
HDLC是面向比特的。
全双工通信。
3、和局域网的对比
六、数据链路层设备
1、网桥
两个或者多个以太网通过网桥连接起来后,就成为一个覆盖范围更大的以太网,原来的每个以太网可称为一个网段。相当于一个低层的路由器,连接两个LAN,根据MAC地址转发帧。
2、交换机
交换机要比集线器智能一些,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。交换机通过对信息进行重新生成,并经过内部处理后转发至指定端口,具备自动寻址能力和交换作用。但是交换机并不懂得IP地址,它只知道MAC地址。
交换机是使用硬件来完成以往网桥使用软件来完成过滤、学习和转发过程的任务。交换机速度比HUB快,这是由于HUB不知道目标地址在何处,发送数据到所有的端口。而交换机中有一张MAC地址表,如果知道目标地址在何处,就把数据发送到指定地点,如果它不知道就发送到所有的端口。这样过滤可以帮助降低整个网络的数据传输量,提高效率。但是交换机的功能还不止如此,它可以把网络拆解成网络分支、分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的数据信息流量而使每个网络更有效,提高整个网络效率。
现代交换机是这样处理数据帧的:一旦目标头域(目标地址)已经进来了,尽管帧的其他部分还没有到达,则只要输出线路可以使用,交换机就开始转发该帧,而不需理会帧后面的内容,也即是说交换机并没有使用“存储—转发”交换方式。
交换机,可以理解为高级的网桥,他有网桥的功能,但性能比网桥强。交换机和网桥的细微差别就在于:交换机常常用来连接独立的计算机,而网桥连接的目标是LAN,所以交换机的端口较网桥多。