数据链路层是OSI参考模型第二层,上层是网络层。
1、数据链路层主要目的:将原始的、有差错的物理线路变成无差错的数据链路。
2、数据链路层主要功能:
⑴.链路管理:数据链路的建立、维护、释放;
⑵.帧同步:接收方应从收到的比特流中正确地判断出一帧的开始与结束位;
⑶.流量控制:控制发送方的数据发送速度,使得接收方来得及接收,以致网络不发生拥塞;
⑷.差错控制:发现传输中出现的错误;
⑸.透明传输:采取适当措施,使接收方不至于把数据误认为是控制信息;
⑹.寻址:收发双方应知道对方是谁;
3、数据链路层使用的信道主要有以下两种类型:
①.点对点信道:这种信道使用一对一的点对点通信方式。
②.广播信道:这种信道使用一对多的广播通信方式,过程比较复杂。广播信道上连接的主机很多,必须使用专用的共享信道协议来协调这些主机的数据发送。
4、基本概念:链路和数据链路
⑴、链路è是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
注意:一条链路只是一条通路的一个组成部分;
⑵、数据链路è除了物理线路外,还必须有通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路;
即:数据链路 = 链路 + 控制数据传输的通信协议。
①.现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件
②.一般的适配器都包括了数据链路层和物理层这两层的功能。
5、数据链路层协议传输的数据单位: 数据帧( 简称“帧” );
注意:物理层传输的数据单元是“比特”、网络层传输的数据单元是“IP数据报” (简称:数据报、分组、包);
6、实现数据链路层协议的最常用设备:网络适配器(即:网卡 或 网络接口卡);
⑴、发送方A数据链路层将网络层交下来的IP数据报添加首部和尾部封装成帧;
⑵、发送方A将封装好的帧发送给结点B的数据链路层;
⑶、接收方B收到的帧无错,则从帧中提取出IP数据报转交给网络层;若有错,则丢弃该帧
1、封装成帧:在一段数据的前后分别添加首部和尾部,就构成了一个帧
⑴、帧的首部和尾部一个重要作用是进行帧定界;
⑵、帧首和帧尾还包括许多必要的控制信息;
⑶、为提高帧传输效率,应使帧的数据部分尽可能大;
⑷、每一种链路层协议都规定了数据部分长度上限:MTU;
帧长 = 帧首部长 + 数据部分长 + 帧尾部长
2、透明传输:当数据部分是非ASCⅡ文件时,若数据某字节恰好是SOH或EOT这种控制字符时,数据链路层就会错误地处理帧,这就是“不透明传输”,显然:如果数据部分某字节是SOH或EOT字符时也能正确传输,我们称之为透明传输。
3、差错检测:
⑴、差错产生的原因和差错类型:
当数据从信源出发经过通信信道时,由于通信信道存在着噪声,因此数据信号通过通信信道到达信宿时,接收到的信号必然是数据信号与信号电平的叠加。
接收方对叠加后的信号进行判断,以确定0、1值。如果判断错误,则会产生数据传输错误。
⑵、CRC循环冗余编码工作原理:
将要发送的数据比特序列当作一个多项式f(x)的系数,在发送端用收发双方预先约定的生成多项式G(x)去除,求出一个余数多项式。将余数多项式加到数据多项式后发送到接收端;
接收端用同样的G(x)去除收到的f1(x),得到余数多项式。如果得到的余数多项式与接收到的余数多项式相同,表示传输无错。否则有错,发送方重传;
说明:在通讯线路质量差的早期年代数据链路层使用可靠传输协议HDLC(高级链路控制协议),现在普遍使用简单的点对点协议PPP(不是可靠传输协议)。
1、PPP协议应满足的需求:
⑴、简单:只进行CRC检测,如帧正确,则接收,否则丢弃;
⑵、封装成帧:规定帧定界符等帧封装方法;
⑶、透明性:定义转义字符ESC利用字节填充技术实现透明传输;
⑷、支持多种网络层协议:如支持IP和IPX等;
⑸、支持多种类型链路:串行的、并行的、同步的、异步的、低速的、高速的等等;
⑹、差错检测:能发现错误帧并立即丢弃;
⑺、连接状态检测:自动检测链路是否处于正常状态;
⑻、最大传输单元:数据部分最大长度MTU;
⑼、网络层地址协商:通过协商知道或配置彼此网络层地址;
⑽、数据压缩协商:协商使用何种数据压缩算法。
2、PPP协议不需要的功能:
⑴、纠错:只检错、不纠错;
⑵、流量控制:流量控制交给运输层TCP协议实现;
⑶、序号:不使用帧序号;
⑷、多点线路:不支持一个主站轮流和链路上多个从站通信;
⑸、半双工或单工链路:只支持全双工。
3、PPP协议组成:
⑴、一个将IP数据报封装到串行链路的方法;
⑵、一个链路控制协议LCP(Link Control Protocol):用来建立、配置和测试数据链路连接,定义了11种类型的LCP分组;
⑶、一套网络控制协议NCP(Network Control Protocol):一个NCP协议支持一种网络层协议。
1、各字段含义:
⑴、第一个字节和最后一个字节是标志字段F,规定为7EH;
⑵、第二个字节是地址字段A,规定为FFH;
⑶、第三个字节是控制字段C,规定为03H(地址字段实际上并不起作用);
⑷、协议字段2字节:当值为0021H时表示信息字段是IP数据报;值为C021H时,信息字段是PPP链路控制协议LCP的数据,若为8021H时为NCP控制数据;
⑸、信息字段最大长度不超过1500字节;
⑹、FCS字段使用CRC帧检验序列,2字节;
1、MAC层的硬件地址:局域网中硬件地址又称物理地址或MAC地址。
现在局域网适配器都是用6B(48bit)的全球地址,固化在适配器的ROM中,这种 48 位地址称为 MAC-48,它的通用名称是EUI-48。因此:
⑴、更换新的适配器,尽管计算机地理位置没有变,这台计算机在局域网中的硬件地址也就变了。
⑵、若计算机地理位置变了,只要适配器没变,则硬件地址不变。
注意:MAC地址的两种记法
一种是字节的高位在先(左),一种是字节的低位在先(左)。
所以:全球管理地址共有246个地址,超过70万亿个。
2、适配器检查 MAC 地址:
⑴、适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址.
①.如果是发往本站的帧则收下,然后再进行其他的处理。
②.否则就将此帧丢弃,不再进行其他的处理。
⑵、“发往本站的帧”包括以下三种帧:
①.单播(unicast)帧(一对一):I/G位=0;
②.多播(multicast)帧(一对多):I/G位=1;
③.广播(broadcast)帧(一对全体:48位MAC地址全1;
所有适配器都应至少识别单播帧和广播帧。
3、以太网的MAC帧格式
常用的以太网MAC帧格式有两种标准:
⑴、IEEE 的 802.3 标准;
⑵、DIX Ethernet V2 标准:最常用。
①.前同步码:用于同步,使接收端适配器与比特流达成同步,前7个字节为10交替码,第8个字节为1010101011;
②.目的MAC地址;
③.源MAC地址;
④.类型:高层使用何种协议,8137H表示novell ipx数据、0800H表示IP数据;
⑤. 客户数据字段:46~1500字节,不足46B需填充,填充操作由IP层完成。客户数据字段的最小长度 = 最小帧长度 64 字节 - 18 字节的首部和尾部
⑥.FCS:CRC检验;
IEEE 802.3的MAC帧格式与以太网V2 帧格式差别仅仅是:类型字段并不表示高层使用何种协议,而是表示客户数据字段的长度;
4、无效帧è以下帧为无效帧:
①.数据字段的长度与长度字段的值不一致;
②.帧的长度不是整数个字节;
③.用收到的帧检验序列 FCS 查出有差错;
④.数据字段的长度不在 46 ~ 1500 字节之间;
⑤.MAC 帧长度不在64 ~ 1518 字节之间;
⑥.对于检查出的无效 MAC 帧就简单地丢弃,以太网不负责重传丢弃的帧。