数据链路层:
数据链路以帧为单位传输和处理数据。
数据链路层的三个问题:封装成帧、差错检测、可靠传输
封装成帧:数据链路层给网络层交付的协议数据单元添加帧头和帧尾的操作。
帧头和帧尾中包含有重要的控制信息,帧头和帧尾的作用之一就是帧定界。
以太网V2的MAC帧 帧头:目的地址+源地址+类型 帧尾:FCS
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样、
差错检测:使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层要解决的重要问题之一
循环冗余校验CRC:发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;接收方通过生成多项式来计算收到的数据是否产生了误码。
举例:待发送信息某数,生成多项式为某式,计算余数。
先构造被除数(待发送信息后面添加生成多项式最高次数个0);再构造除数(生成多项式各项系数构成的比特串);做除法(异或);检查余数(余数的位数应与生成多项式最高次数相同,如果位数不够,则在余数前补0来凑足位数);将余数添加到发送信息的后面就可以发送了。
余数为0,传输过程无误码;余数不为0,传输过程产生误码。
检错码只能检测出帧在传输过程中出现了差错,但不能定位错误,因此无法纠正错误。
用检错重传方式来纠正传输中的差错或者是仅仅丢弃检测到差错的帧,这取决于数据链路层向上层提供的是可靠传输服务还是不可靠传输服务。
以太网的媒体接入控制协议:载波监听多点接入/碰撞检测CSMA/CD
可靠传输的基本概念:使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可以检测出帧在传输过程中是否产生了误码(比特错误)。
数据链路层向上层提供的服务类型:
不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
一般情况下,有线链路的误码率比较低,为了减少开销不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
传输差错包括比特差错、分组丢失、分组失序、分组重复,一般来讲后三种情况不会出现在数据链路层,而是出现在其上层,可靠传输服务并不局限于数据链路层,其它各层均可选择实现可靠传输。
可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
三种可靠传输的实现机制:(这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中)
停止-等待协议SW(自动请求重传ARQ):发送方向接收方发送数据,接收方发送ACK确认接收,之后接收方对收到的数据进行差错检测,发现了误码,则丢弃数据分组,并给发送方发送否认分组,简称NAK,发送方收到接收方发送的否认分组后,立刻重传该数据分组。因此发送方每发完一个数据分组后,并不能立刻将该分组从缓存中删除,只有在收到针对该数据分组的确认分组后才能将其从缓存中删除。所以发送方每发送完一个数据分组后,就停止发送下一个数据分组,等待来自接收方的确认分组或否认分组,若收到确认分组则可继续发送下一个数据分组;若收到否认分组,则重发之前发送的那个数据分组。为解决第一个数据包就丢失的情况,在发送方发送完一个数据分组时,启动一个超时计时器,若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。为避免分组重复这种传输错误,必须给每个分组带上序号。对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以,因此用一个比特编号就够了。
信道利用率:U=TD/(TD+RTT+TA)
当往返时延RTT远大于数据帧发送时延TD时(例如使用卫星链路),信道利用率非常低。
停止-等待协议的信道利用率很低,若出现超时重传,则信道利用率更低。采用流水线传输可以提高信道利用率。
回退N帧协议GBN:(Go-back-N)
接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定),对按序到达的最后一个数据分组确认发送。ACKn表示序号为n及以前的所有数据分组都已正确接收。
回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种ARQ协议;在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议。由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。
选择重传协议SR:(对回退N帧协议的改进)
为了进一步提高性能,可设法只重传出现误码的数据分组,因此接收窗口的尺寸Wr不应该再等于1(而应该大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议。
选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收到的数据分组进行逐一确认。
与回退N帧协议不同,选择重传协议不支持累积确认,接收方每接收一个数据帧,就会发回相应的确认帧。
点对点协议PPP:(是目前使用最广泛的点对点数据链路层协议)
媒体接入控制:共享信道要着重考虑的一个问题是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC
媒体接入控制分为静态划分信道和动态接入控制
静态划分信道:信道复用
复用就是通过一条物理线路同时传输多路用户的信号。常见的复用技术有频分复用FDM、时分复用TDM、波分复用WDM、码分复用CDM
频分复用的所有用户同时占用不同的频带资源并行通信;时分复用的所有用户在不同的时间占用同样的频带宽度;码分复用(码分多址CDMA)
复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间互相独立,互不干扰,从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
多址(更确切应该称为多点接入)处理的是动态分配信道给用户,这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久地分配给用户的应用中,多址是不需要的。
码片序列挑选原则:
1、分配给每个站的码片序列各不相同,实际常采用伪随机码序列
2、分配给每个站的码片序列必须正交(规格化内积为0)
用收到的码片序列分别与各站的码片序列进行求内积运算,若计算结果为数值1,则被判断的站发送了比特1;若计算结果是-1,则被判断的站发送了比特0;若计算结果为0,则被判断的站未发送数据。
动态接入控制主要分为两类:受控接入和随机接入(受控接入已经被淘汰)
最小帧长=征用期2t*数据传输速率
现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。
总线局域网使用的协议:CSMA/CD(载波监听多址接入/碰撞检测)
无线局域网使用的协议:CSMA/CA(载波监听多址接入/碰撞避免)
帧间间隔IFS:
所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
短帧间间隔SIFS(28us):使用该帧类型的一般有ACK、CTS帧
DCF帧间间隔DIFS(128us):在DCF方式中用来发送数据帧和管理帧
CSMA/CA协议的工作原理:
当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
以下情况必须使用退避算法:
在发送数据帧之前检测到信道处于忙状态时;在每一次重传一个数据帧时;在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)
MAC地址:(数据链路层)
MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
IP地址:因特网上的主机和路由器所使用的地址,用于标识两部分的信息
网络编号:标识因特网上数以百万计的网络
主机编号:标识同一网络上不同主机(或路由器接口)
在数据包的转发过程中,源IP地址和目的IP地址始终保持不变;而源MAC地址和目的MAC地址逐段链路(或逐个网络)改变。
ARP协议只能在一段链路或一个网络中使用,而不能跨网络使用。
集线器与交换机的区别:
可将集线器简单看作一条总线;集线器只工作在物理层;集线器是半双工,共享信道;
交换机可以隔离碰撞域
以太网交换机生成树协议STP:
虚拟局域网VLAN:(在交换机上实现)
使用路由器隔离广播域
虚拟局域网是一种将局域网内的设备划分成为与物理位置无关的逻辑组技术,这些逻辑组技术既有某些共同需求。
交换机进行VLAN 划分需要交换机可以处理带有VLAN标记的帧IEEE 802.1Q帧,二是交换机的各端口可以支持不同的端口类型,不同的端口对帧的处理方式不同。
交换机的端口一般分为三种类型:Access、Trunk、Hybird(华为私有,可以用于交换机之间或交换机与路由器之间的互,也可用于交换机与用户计算机之间的互连)
Access一般用于客户之间
Trunk端口一般用于交换机之间或交换机与路由器之间的互连