计算机网络CH4 数据链路层



《计算机网络CH4 数据链路层》由会员分享,可在线阅读,更多相关《计算机网络CH4 数据链路层(215页珍藏版)》请在文档大全上搜索。
1、计算机网络原理第 4 章 数据链路层第 4 章 数据链路层4.1 数据链路层基本功能4.2 使用点对点信道的数据链路层4.2.1 点对点协议 PPP概述 4.2.2 PPP 协议的帧格式及工作状态4.3 使用广播信道的数据链路及协议4.3.1 局域网的数据链路层4.3.2 CSMA/CD协议第 4 章 数据链路层(续)4.4 以太网 4.4.1 以太网的基本原理 4.4.2 交换式以太网4.5 快速以太网 4.5.1 100M以太网 4.5.2 吉比特以太网 4.5.3 10吉比特以太网 第 4 章 数据链路层(续)4.6 VLAN 4.6. 1 VLAN的作用 4.6.2 VLAN的划分 4
2、.7 无线网络 4.7.1 无线局域网WLAN 4.7.2 无线城域网WMAN 4.7.3 无线个人区域网WPAN数据链路层使用的信道主要有以下两种类型:n点对点信道。这种信道使用一对一的点对点通信方式。n广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。数据链路层的简单模型局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R
3、2R3H1H2从层次上来看数据的流动数据链路层的简单模型( 续)局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动n链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。n一条链路只是一条通路的一个组成部分。n数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。n现
4、在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。n一般的适配器都包括了数据链路层和物理层这两层的功能。 4.1 数据链路层基本功能n4.1.1成帧n4.1.2 帧同步n4.1.3 透明传输n4.1.4 差错控制IP 数据报1010 0110帧取出数据链路层网络层链路结点 A结点 B物理层数据链路层结点 A结点 B帧(a)(b)发送帧接收链路IP 数据报1010 0110帧装入数据链路层传送的是帧数据链路层像个数字管道 n常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。n早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层
5、,规程和协议是同义语。 结点结点帧帧4.1.1 封装成帧n封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。n首部和尾部的一个重要作用就是进行帧定界。 帧结束帧首部IP 数据报帧的数据部分帧尾部 MTU数据链路层的帧长开始发送帧开始用控制字符进行帧定界的方法举例 SOH装在帧中的数据部分帧帧开始符帧结束符发送在前EOT4.1.2 帧同步n帧同步指的是接收方应当能从接收到的二进制比特流中区分出帧的起始与终止。n常用的帧同步方法有:使用字符填充的首尾定界符法、使用比特填充的首尾标志法。n使用字符填充的首尾定界符法使用一些特定的字符来定界帧的首尾,但
6、所用的特定字符领带于所采用的字符编码集,兼容性比较差,使用麻烦。n 使用比特填充的首尾标志法用一组特定的比特模式来标志帧的起始与终止。4.1.3 透明传输SOHEOT出现了“EOT”被接收端当作无效帧而丢弃被接收端误认为是一个帧数据部分EOT完整的帧发送在前解决透明传输问题n发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。n字节填充(byte stuffing)或字符填充(character stuffing)接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。n如果转义字符也出现数据当中,那么应在转义字符前面插入
7、一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。 SOHSOHEOTSOHESCESCEOTESCSOHESCESCESCSOH原始数据EOTEOT经过字节填充后发送的数据字节填充字节填充字节填充字节填充发送在前帧开始符帧结束符用字节填充法解决透明传输的问题 SOH4.1.4 差错检测n在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。n在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。n误码率与信噪比有很大的关系。n为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
8、 循环冗余检验的原理 n在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。n在发送端,先把数据划分为组。假定每组 k 个比特。 n假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。 冗余码的计算 n用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。n得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。 冗余码的计算举例 n现在 k = 6, M = 10
9、1001。n设 n = 3, 除数 P = 1101,n被除数是 2nM = 101001000。 n模 2 运算的结果是:商 Q = 110101, 余数 R = 001。n把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R 即:101001001,共 (k + n) 位。 110101 Q (商) P (除数) 1101 101001000 2nM (被除数) 1101 1110 1101 0111 0000 1110 1101 0110 0000 1100 1101 001 R (余数),作为 FCS 循环冗余检验的原理说明 帧检验序列 FCS n在数据后
10、面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。n循环冗余检验 CRC 和帧检验序列 FCS并不等同。nCRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。nFCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。 接收端对收到的每一帧进行 CRC 检验 n(1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。n(2) 若余数 R 0,则判定这个帧有差错,就丢弃。n但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。n只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不
11、到的差错的概率就很小很小。 应当注意 n仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。n“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。n也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。n出现丢失,重复,失序就不能用该方法解决了。n要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。(这属于传输层负责的问题。) n该层负责的是“比特差错”,而不是“传输差错”。4.2 使用点对点信道的数据链路及协议n4.2.1 点对点协议PPP 概述n