专栏:计算机网络复习之路
好了,复习完了上面两章【第一章概述 | 第二章物理层】,我们接着复习数据链路层。
目录
1 数据链路层概述
数据链路和帧
2 三个基本问题
封装成帧
透明传输
差错检测(重点)
3 点对点协议PPP
PPP协议的组成
PPP协议的帧格式(重点)
ppp协议的工作状态
4 使用广播信道的数据链路层
局域网的数据链路层
适配器
CSMA/CD协议(重点)
使用集线器的星形拓扑
以太网的信道利用率
以太网的MAC层(重点)
5 扩展的以太网
在物理层扩展以太网
在数据链路层扩展以太网(重点)
虚拟局域网
6 高速以太网
100BASE-T以太网
吉比特以太网
结束语
1 数据链路层概述
- 点对点信道:这种信道使用一对一的点对点通信方式。
- 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
在复习之前,先看一下互联网进行通信时数据链路层所处的位置(两台主机之间)
数据链路和帧 数据链路和帧
数据链路和帧
- 从一个节点到相邻节点的物理线路。
- 链路只是一条通信路径的组成部分。
- 要传送数据,除了物理线路外,还必须有通信协议来控制数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 现在最常用的方法是使用网络适配器(即网卡,既有硬件也包括软件)来实现这些协议。一般的适配器都包括了数据链路层和物理层这两层的功能。
帧:数据链路层的协议数据单元
图示:
2 三个基本问题三个基本问题
在点对点信道的数据链路层进行传输时,我们需要考虑以下三个基本问题。
封装成帧 :
- 首部和尾部的一个重要作用就是帧定界(确定帧的界限)。
- 首部和尾部还包括许多必要的控制信息。不同数据链路层协议,首部和尾部的格式不同。
- 每一种数据链路层协议都规定了所能传送的数据部分长度上限,即最大传送单元 MTU
- 帧定界一般使用特殊的控制字符 SOH(Start Of Header)和 EOT
容易出现的相关问题:
(1) 假设发送端由于故障发送中断,故障消除后又重新开始发送。由于使用了帧定界符,接收端就会知道前面收到的数据是个不完整的帧(只有 SOH 而没有 EOT),而对于不完整的帧,会直接丢弃。(2) 如果数据中的某个字节的二进制代码恰好和 SOH (00000001)或 EOT (00000100)一样,数据链路层就会错误地“找到帧的边界”,导致发生错误。
透明传输
透明传输:是指无论什么样的数据,都能够不受阻碍地进行传输。
而上面提到的第二个问题显然不是 “ 透明传输 ” ,而为了解决透明传输的问题,就要采用字节填充的方法:
原理解释:
- 发送端的数据链路层在数据中出现的控制字符 SOH 或 EOT 的前面插入一个转义字符 ESC;
- 接收端的数据链路层遇到 ESC 后,会跳过检测下一个字节,并将 ESC 删去。这样在数据中就不会检测到 SOH 或 EOT,并能将插入的 ESC 删去;
- 如果 ESC 也出现在数据当中,为了避免被误删,在 ESC 前面也插入一个转义字符。这样,前面的 ESC 被删去,后面的 ESC 因跳过检测而被保留。
注意:MTU 指的是帧中原始数据的最大长度,不包括填充的数据。
差错检测(重点)
现实的通信链路都不会是理想的,这就是说:比特在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
- 比特差错是传输差错的一种,另一种是【帧丢失、帧重复、帧失序】(很复杂,本章不讲,后续会讲)
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER 。
- 误码率不可能下降到零,为了保证数据传输的可靠性,必须采用差错检测措施。
- “无比特差错”和“无传输差错”是不同的概念。在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。要做到可靠传输还必须再加上编号、确认和重传机制。
大概过程:
- 假定发送端的原始数据为 k 个比特。
- 对原始数据进行CRC 运算,产生 n 位冗余码供差错检测使用。
- 将原始数据和冗余码构成帧发送出去。
- 接收端检验。
重点:冗余码的计算 (必考)
计算演示:
用模2运算进行加法运算时不进位,例如:1111+1010 = 0101。减法和加法一样,按加法规则运算。
其实你也可以理解为, 二进制数进行按位 “ 异或 ” 运算,即相同为0,不相同为1。
接收端检验:
你可以自行带入上面那段计算演示,进行检验,很容易理解的。
只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错(即出现误码后接收端校验余数仍为零)的概率就很小很小。
可以用多项式来表示循环冗余检验的除数,如用多项式 P(X) = X3 + X2 + 1 表示 1101。这种多项式叫做生成多项式。
3 点对点协议PPP
对于点对点链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP。
用户通过 ISP 接入互联网时,用户计算机和 ISP 进行通信时所使用的数据链路层协议就是 PPP 协议 。
从PPP协议设计需求上,理解它的功能。
- 简单:不要求可靠传输;
- 封装成帧:规定特殊的字符作为帧定界符;
- 透明性:解决透明传输的问题;
- 多种网络层协议:能够同时支持多种网络层协议;
- 多种类型链路:能够在多种类型的链路上运行;
- 差错检测:能够对收到的帧进行检测,并立即丢弃有差错的帧;
- 检测连接状态:能够及时自动检测出链路是否处于正常工作状态;
- 最大传送单元:对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值(1500 字节);
- 网络层地址协商:提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址;
- 数据压缩协商:提供一种方法来协商使用数据压缩算法。
PPP协议的组成:
主要以下三大部分:
(1) 对各种协议数据报的封装方法(封装成帧)。
(2)链路控制协议(Link Control Protocol, LCP),LCP协议是PPP协议的一部分。它用于建立、配置、测试数据链路的连接。
(3)一套网络控制协议(Network Control Protocol, NCP),NCPs是一系列协议,用于建立和配置不同的网络层协议。每个NCP协议都支持不同的网络层协议,比如IP协议,OSI的网络层,苹果的Appple Talk等。
PPP协议的帧格式
各字段的意义:(注意不要和后面的MAC帧格式混为一谈)
PPP帧的首部和尾部分别为四个字段和两个字段。
- 首部的第一个字段和尾部的最后一个字段都是标志字段 F (Flag),规定为 0x7E(符号“0x” 表示它后面的字符是用16进制表示的,0x7E的二进制形式:01111110 )。标志字段就是 PPP 帧的定界符,连续两帧之间只需要用一个标志字段(如果出现连续两个标志字段,就表示这是一个空帧,应丢弃)。
- 地址字段 A 规定为 0xFF(11111111),控制字段 C 规定为 0x03(00000011)。这两个字段没有实际意义,并没有携带PPP帧的信息。
协议字段(2字节)指明信息部分的类别,当协议字段为 0x0021 时, PPP 帧的信息字段 就是 IP 数据报,当为0xC021,则信息字段是PPP链路控制协议LCP的数据,当为0x8021,表示这是网络层的控制数据........... 。 信息字段长度可变,不超过 1500 字节。 尾部的第一个字段(2字节)是使用 CRC 的帧检验序列 FCS 。
如果信息字段中出现 0x7E 这样的比特序列,会被误认为是“标志”字段,必须采取一定的方法解决这个问题,这也是之前我们提到的实现透明传输。
这里我们会从更深层角度探讨实现透明传输,即字节填充和零比特填充。
字节填充
当 PPP 使用异步传输(以字节为单位)时,采用字节填充的方法实现透明传输,转义符定义为 0x7D:
具体做法:
- 将信息字段中出现的每一个 0x7E 字节转变为 2 字节序列:0x7D 0x5E。
- 若信息字段中出现 0x7D 字节, 则将其转变为 2 字节序列:0x7D 0x5D。
- 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面加入一个 0x7D 字节,同时将该字符的第 5 位取反(即加上0x20)。(解释:例如出现0x03(00000011)【在控制字符中是“传输结束”ETX】就要把它的第五位‘0’取反为‘1’ ,变为00100011(0x23)所以就转变成了:0x7D , 0x23)
总结:
- 发送数据时在需要转义的字节前面插入转义符 0x7D,并把需要转义的字节的第 5 位取反。
- 在接收端,每检测到一个 0x7D 字节,就把它删掉,并把紧接着的下一个字节的第 5 位取反即可还原出原来的数据。
⚠️⚠️⚠️
异步传输以字节为单位,一个字节是8个二进制位。
字节的最右边是最低位,即第 0 位
零比特填充
当 PPP 使用同步传输(连续比特流传送)时,采用零比特填充的方法实现透明传输:
具体做法:
- 在发送端,只要发现有 5 个连续的 1,则立即填入一个 0,以保证不会在信息字段中出现 6 个连续的 1。
- 在接收端,先找到标志字段 F 以确定帧的边界,然后对其中的比特流进行扫描,每当发现 5 个连续的 1 时,就把这 5 个连续的 1 后的一个 0 删除,以还原成原来的信息比特流。
ppp协议的工作状态
由于我们学校不做考核,所以有需要的友友,可以参考这篇博客哦:
PPP协议的工作状态(点这)
4 使用广播信道的数据链路层
局域网的数据链路层
广播信道可以进行一对多的通信,下面讨论的局域网使用的就是广播信道。
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和主机数目均有限。
局域网主要有以下优点:
- 具有广播功能,从一台主机可以很方便地访问全网。局域网上的主机可共享连接在同一个局域网上的各种硬件和软件资源。
- 便于系统的扩展 和逐渐演变,各设备的位置可灵活调整和改变。
- 提高了系统的可靠性、可用性和生存性
局域网中的拓扑结构:
⚠️⚠️⚠️
局域网覆盖范围有限,而且局域网中的节点主要是主机,所以局域网无法形成网状结构。
局域网使用的传输媒体:
- 双绞线:最便宜最常用;
- 光纤:高数据率、长距离传输时使用。
信道共享的方法主要有两类:
- 静态划分信道,又称为信道复用(代价较高):
2. 动态媒体接入控制,又称为多点接入:
适配器
既然谈到了局域网,那么计算机是怎样连接到局域网上的呢?
计算机与外界局域网的连接是通过适配器。
适配器:是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。
适配器本来是主机箱内插入的一块网络接口板(又称为”网络接口卡NIC“,简称”网卡“),但是现在的计算机主板上就已经嵌入了这种适配器,不在使用单独的网卡了,因此现在的计算机上的适配器不是独立的。
注意:计算机的硬件地址(在后续的以太网的MAC层讨论)就在适配器的ROM中,而计算机的软件地址—— IP地址(在网络层会讲)则在计算机的存储器中。
适配器的作用
1.要进行数据串行传输和并行传输的转换。
2.对数据进行缓存。
3.实现以太网协议。
4.管理该适配器的设备驱动程序安装在计算机的操作系统。
CSMA/CD协议(重点)CSMA/CD
现在以太网已成为了局域网的代名词。以太网采用的是随机接入的方式。
最初的以太网是将许多计算机都连接到一根总线上。如图:
- 总线上的每一台计算机都能检测到计算机 B 发送的数据。
- 每一台计算机的网卡都有一个全球唯一的硬件地址。计算机 B 在发送数据帧时,在帧的首部写明计算机 D 的硬件地址。
- 只有计算机的硬件地址与数据帧首部的目的地址一致时才会接收这个帧,因此只有计算机 D 接收这个数据帧。
- 其他所有的计算机(A、C 和 E)检测到不是发送给它们的数据帧就丢弃。
⚠️⚠️⚠️
- 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
- 当目的主机收到有比特差错的数据帧时,就把帧丢弃,其他什么也不做,是否需要重传则由高层协议来决定。
以太网发送的数据信号使用曼彻斯特编码。
之前在物理层,没有细讲,这里针对考点,着重讲解一下
如图:曼彻斯特编码的编码方法是把每个码元分成两个相等的间隔(每一个码元都被调成两个电平)。码元1前一个间隔为低电压(也可采用相反的约定),后一个间隔为高电压,二码元0则相反。这样就保证了在每个比特的正中间出现一次电压的转换,而接收端就能利用这种电压的转换很方便的把位同步信息(比特同步信号)提取出来(优点)。
当然我们还能提取出更重要的信息:曼彻斯特编码所占的频带宽度比原始的基带信号增加了一倍(每秒传输的码元数加倍了),所以数据传输速率(bit/s)只有调制速率的1/2(码元/s) 。(这也是它的缺点所在)。
原因:比如说在一个时间内,要发送一个比特1,使用一个高电平就可以了,而使用曼彻斯特编码,它需要一个高和一个低电压,这个时候传输的码元(波形)就加倍了,因此频带宽度就加倍了,导致传输等量的数据所需的带宽增大了一倍 ,最后曼彻斯特编码的效率只可达到50%左右。(关于编码和调制,可以复习之前的物理层)。
下面介绍CSMA/CD协议的要点:——>
当多台计算机同时发送数据时,会产生碰撞,导致发送失败。以太网使用 CSMA/CD 协议来解决这一问题。
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 意思是载波监听多点接入/碰撞检测。
- 多点接入:就是说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。
- 载波监听:每一台计算机在发送数据之前要先检测一下总线上是否有其他计算机在发送数 据。如果有,则暂时先不发送数据,等到信道空闲时再发送。
- 碰撞检测:计算机边发送数据边检测信道上的信号电压的变化情况,以便判断是否与其他计 算机发生碰撞。
- 当多台计算机同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加)。
- 当计算机检测到信号电压变化幅度超过一定的门限值时,就认为总线上至少有两台计算机同时在发送数据,即产生了碰撞。
- 所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
- 任何一台正在发送数据的计算机,一旦发现总线上出现了碰撞,就要立即停止发送以免浪费网络资源,然后等待一段随机时间后再次发送。
那么问题来了:既然每一台计算机在发送数据之前已经监听到信道为空闲,那么为什么还会出现碰撞呢?
答:因为电磁波在总线上的传播速率是有限的,当某台计算机监听到总线空闲而发送数据时,可能已经有其他计算机在发送数据了,只是因为传播时延还没有到达该计算机那里。
对上述图解,详细解释一下。
最终,A和B发送数据均失败,它们都要推迟一段时间再重新发送。
从上述我们不难看出;
- 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。(一个站不能同时进行发送和接收,但可以边发送边监听信道)
- 每台计算机在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
- 16字总结:先听后发,边听边发,冲突停止,延迟重发。
根据上图,一台计算机在发送数据帧后最多经过时间 2t 就可知道自己所发送的数据帧是否遭受了 碰撞。(一台计算机在发送数据后,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞)
因此为了尽可能减少重传时再次发生冲突的概率,规避算法有如下具体的规定:
- 基本规避时间为2t (2t 称为争用期或碰撞窗口), 以太网规定具体的争用期时间为51.2µs (这也是为什么25.6*10^-6 * 2.0*10^8 = 5120m【实际上并没有这么远】局域网覆盖范围有上限的原因吧),对于10Mbit/s以太网也可以说争用期是512比特时间,1比特时间就是发送1比特需要的时间。例如:争用期是512比特,即争用期是发送512比特所需时间。
- 发生碰撞的计算机在停止发送数据后,等待信道空闲后不是立即发送而是要推迟(即退避)一个随机的时间才能再发送数据。具体的截断二进制指数退避算法如下:
§ 规 定 基本退避 时间为争用 期 2 t ;§ 定义参数 k , k = Min[ 重传次数 , 10 ] ;§ 从整数集合 [0 , 1, …, (2 k - 1)] 中随机地取出一个数,记为 r 。 重传应推后的时间就是 r 倍的基本退避时间。§ 当 重传达 16 次 仍不能成功 时则丢弃 该帧,并向高层报告 。
如果一个帧太短,发送方很快就能发送完毕而检测不到碰撞,但这个帧却有可能在到达目的主机的途中与其他主机发送的帧发生碰撞。由于不再监听信道,发送方无法知道这个帧发生了碰撞。
因此:
- 对于 10 Mbit/s 的传统以太网,在争用期内可发送 512 bit,即 64 字节。若前 64 字节未发生碰撞,则后续发送的数据就一定不会发生碰撞。
- 以太网规定最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是无效帧。如果要发送的数据非常少,则必须加入一些填充字节,使帧长不小于 64 字节。
关于涉及最短帧长的考点:
需要理解最短帧长的概念及计算公式, 最短帧长就是要求发送方在数据的传播过程中仍然不停地发送数据帧,即争用时间内发出的数据总数。 在CSMA/CD协议中,只有收到大于最短帧长的数据帧且经过争用期这段时间还没有检测到碰撞,才认为未检测到数据冲突。
最小数据帧长度 = 2 * 传播时延 * 数据传输率
因此当最短数据帧长度减小时,根据公式,如果保持数据传输率不变,传播时延就必须要减少,而传播时延等于站点间距离除于数据的传播速率,从而站点间距离就必须要减少。
帧间最小间隔
以太网还规定帧间最小间隔为 9.6 µs 。一台计算机在检测到总线开始空闲后,还要等待 9.6 µs 才能再次发送数据。
使用集线器的星形拓扑
传统以太网(10 Mbit/s)使用的传输媒体一直在变,从粗同轴电缆到细同轴电缆再到现在流行的双绞线。
使用双绞线的以太网往往采用星形拓扑,在星形的中心使用一种可靠性非常高的设备,叫做集线器
我们谈论这个肯定有它的意义:
- 这种使用双绞线的星形以太网又叫 10BASE-T 以太网。“10”代表 10 Mbit/s 的数据率,BASE 表示连接线上的信号是基带信号,T 代表双绞线。
- 10BASE-T 以太网的通信距离稍短,每个站到集线器的距离不超过 100 m。
- 10BASE-T 以太网是局域网发展史上的一个非常重要的里程碑,它奠定了以太网在局域网中的统治地位。
当然还有一个重要知识点,就是学习集线器
- 集线器使用电子器件来模拟实际电缆线的工作。使用集线器的以太网在物理上是一个星形网,但在逻辑上仍是一个总线网,各主机使用的还是 CSMA/CD 协议(更具体来说,是各主机中适配器执行CSMA/CD协议),并共享逻辑上的总线。
- 一个集线器有许多端口,每个端口通过RJ-45插头用两对双绞线与一台计算机的适配器相连。
- 集线器工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测。
当然我这里只讲了一些重要的概念,还有许多细节的地方没有过多阐述了,感兴趣的可以自行查找资料。(大概了解就行了)
以太网的信道利用率
若一个 10Mbps(Mbit/s) 的以太网同时有 10 个站工作,每个站所能发送数据的平均速率并不是 1 Mbps 。因为多个站在以太网上同时工作就可能发生碰撞。发生碰撞时信道资源被浪费
扣除这些浪费,以太网的信道利用率不可能达到 100%。
解释:上图就是以太网的信道被占用的情况。一个站在发送帧时出现了碰撞。经过一个争用期2t 后(t 是以太网单程端到端的传播时延),可能又出现了碰撞。这样经过若干个争用期后,一个站就发送成功了,假定发送帧所需要的时间是To (它等于帧长(bit)除以发送速率)
⚠️⚠️⚠️成功发送出一个帧后,需要占用信道的时间实际上是:To + t (t 是以太网单程端到端的传播时延),这里要多一个t , 实际上不难理解,这是因为发送的最后一个比特还要再经过时间 t 才能在信道上传送完。就好像火车过一个隧道,To 就等于一个火车完全进入隧道,可能它的头部已经出隧道了,但只有尾部彻底出来隧道(再经过 t),才真正通过。
从上图可以看出,要提高以太网的信道利用率,就必须 减小 t 与 T0 之比。在以太网中定义参数 a 为 t 与 T0 之比:
- a→0 表示 t 非常小,只要一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
- a 越大,表明争用期所占的比例越大,每发生一次碰撞浪费的信道资源就越多,信道利用率就越低。
解决方法:
a 的值应当尽可能小些,这就要求 t 的数值小些而 T0 的数值大些:
- 以太网的连线的长度不能太长,否则 t 的数值会太大。
- 以太网的帧长不能太短,否则 T0 的值会太小。
实际上,据统计,当以太网的利用率达到30%时就已经处于重载的情况,很多的网络容量被网上的碰撞消耗掉了。
以太网的MAC层
在局域网中,硬件地址又称为物理地址,或 MAC 地址(因为这种地址用在MAC帧中),长度为 48 位(ip地址:32位)。以太网中的数据帧又叫 MAC 帧。
适配器从网络上每收到一个 MAC 帧就先用硬件检查 MAC 帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理;否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧:
- 单播帧(一对一),即帧的目的 MAC 地址与本站的硬件地址相同。
- 广播帧(一对全体),即发送给本局域网上所有站点的帧,此时帧的目的 MAC 地址为全 1(0xFFFFFFFFFFFF)。
- 多播帧(一对多),即发送给本局域网上一部分站点(包含本站在内)的帧。
MAC帧的格式
常用的以太网MAC帧格式有两种标准,一种是 DIX Ethernet V2 标准 (即以太网 V2 标准),另一种是 IEEE的 802.3 标准 。(但大家也常常把以太网V2称为IEEE802.3标准的MAC帧,其实并不严格区分二者,区别一点都不大,详细请见:P99下面那段话)
⚠️⚠️⚠️MAC帧是数据帧的一种。而所谓数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据报。
在发送端,数据链路层把网络层传下来得数据封装成帧,然后发送到链路上去;在接收端,数据链路层把收到的帧中的数据取出并交给网络层。不同的数据链路层协议对应着不同的帧,所以,帧有多种,比如PPP帧、MAC帧等,其具体格式也不尽相同。
我这里说这些基础概念的原因就是:
不要和之前讲的使用点对点信道的PPP帧格式(广域网范畴)混为一谈!!!!
如图,这里只介绍使用最多的以太网V2的MAC帧格式 (假定网络层使用的是IP协议,实际上其他的也行)
- 从图中可以看出,以太网V2的MAC帧由五个字段组成,前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节长的类型字段(用来标志上一层使用的是什么协议,以便把收到的MAC 帧的数据上交给上一层的这个协议【例如:当类型字段的值是0x0800时,就表示上层协议是 IP 协议】) ,第四个字段是数据字段(最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度 ), 最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。
- 若数据字段的长度小于 46 字节,封装成帧时就会在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
- MAC 帧的首部并没有指出数据字段的长度是多少。在有填充字段的情况下,接收端的数据链路层在剥去首部和尾部后就把数据字段和填充字段一起交给上层协议。但这完全不必担心,上层协议具有识别有效的数据字段长度的功能。例如,当上层使用 IP 协议时,其首部就有一个“总长度”字段。
- MAC 帧中没有帧结束定界符。由于以太网使用曼彻斯特编码,当 MAC 帧发送完毕后,适配器的接口上就不再有电压变化,接收方可以很容易地找到 MAC 帧的结束位置。
插入的 8 字节比特流由两个字段构成,第一个字段占 7 个字节,叫做前同步码,用来使接收端适配器在接收 MAC 帧时迅速实现位同步。第二个字段是帧开始定界符,表示后面的信息就是 MAC 帧。(从数据链路层向下传到物理层时需要在帧的前面插入 8 字节比特流)。
由于 MAC 帧之间有一定的间隔,因此接收端只要找到帧开始定界符,其后连续到达的比特流就都属于同一个 MAC 帧。所以以太网不需要使用帧结束定界符,也不需要使用字节填充来保证透明传输。
以下为无效的 MAC 帧:
- 帧的长度不是整数个字节
- 用帧检验序列 FCS 查出有差错
- 帧的数据字段的长度不在 46 ~ 1500 字节之间(有效的 MAC 帧长度为 64 ~ 1518 字节之间)
5 扩展的以太网
在许多情况下,我们希望把以太网的覆盖范围扩展。
在物理层扩展以太网
现在,扩展以太网和集线器之间的距离的一种简单方法就是使用光纤和一对光纤调制解调器。
注:光纤调制解调器的作用是进行电信号和光信号的转换。
当以此为基础,使用多个集线器,就可以构成覆盖范围更大的多级星形结构的以太网。
用集线器扩展以太网的优点
- 使不同系的以太网上的计算机能够进行跨系的通信。
- 扩大了以太网覆盖的地理范围。
用集线器扩展以太网的缺点
- 扩展后网络的带宽并未提高,但网络中主机的数目增加,使每台主机分到的带宽降低。
- 如果不同系的以太网使用不同的数据率,那么就不能用集线器将它们互连起来。
注:
碰撞域又称为冲突域。在任一时刻,一个碰撞域中只能有一个站在发送数据。(之前讲的CSMA/CD协议里面就有碰撞检测)
在数据链路层扩展以太网
扩展以太网更常用的方法是在数据链路层进行。最初人们使用的是 网桥 (需要了解点击),但后续交换式集线器(以太网交换机或第二层交换机)的问世,很快就淘汰了网桥,因此这里就介绍以太网交换机就Ok了。
- 以太网交换机实质上就是一个多端口的网桥,通常都有十几个或更多的端口。
- 以太网交换机的每个端口都直接与一台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据,同时不再使用 CSMA/CD 协议。
- 交换机连接的两个主机可以是不同网络号,因此也可以连接到不同的多个路由器上。
和之间的在物理层用集线器扩展对比,以太网交换机逐渐占据它的市场。
例如:
对于传统的 10 Mbit/s 的 共享式 以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总 带宽的 1 / N 。使用以太网交换机时 , 假如 每个 接口到主机的带宽还是 10 Mbit/s ,由于每一 个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽, 因此每个用户的带宽还是 10 Mbit/s 。这正是交换机的最大优点 。以太网 交换机 的每个接口都是一个碰撞域⚠️⚠️⚠️:这里集线器的出现只是为了说明 以太网 交换机 的每个接口都是一个碰撞域,上述那个【例如】的例子成立是建立在以太网交换机每个端口直接和主机连接,中间可没有集线器,不要因为看到这张图而与上面的在物理层 使用集线器扩展以太网的情况混淆了哦 ~
以太网交换机的自学习功能
以太网交换机是一种即插即用设备,其内部的帧交换表(又叫地址表)是通过自学习算法自动地逐渐建立起来的。
- 开始时,以太网交换机里面的交换表是空的。
-
交换机收到一个帧后先进行自学习:查找交换表中有没有与收到的帧的源地址相匹配的项目。
。如没有,就在交换表中增加一 个新项目:将源地址写入 MAC 地址列,将进入 的 接口写入接口列,并设置有效时间。。如有,则把原有的项目进行更新 (接口 和 有效时间 ) 。
3. 然后转发这个帧:查找交换表中有没有与收到的帧的目的地址相匹配的项目。
总结上述过程:
以太网交换机中的MAC地址和接口很好理解,那这个有效时间的作用是什么呢?
随堂练习:
扩充知识(补充了解,不需要掌握):
为了避免单点故障,以太网中往往会增加一些冗余的链路。此时,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。
为了解决这种兜圈子的问题,IEEE 的 802.1D 标准制定了一个生成树协议 STP(Spanning Tree Protocol)。
从总线以太网到星形以太网:
总线以太网使用CSMA/CD协议,以半双工方式通信。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/CD协议,而是以全双工方式工作。既然连以太网的重要协议CSMA/CD都没有,为什么还叫作以太网呢?
原因就是它的帧结构未改变,仍然采用以太网的帧结构。
虚拟局域网
我们学校不掌握,这里就简要的介绍一下吧。
前瞻:
一个以太网是一个广播域,即以太网中任何一台设备发出的广播帧都能被该网络中的所有其他设备所接收。
一个单位的以太网往往为几个部门所共享,但有些部门的信息是需要保密的(例如财务、人事),许多部门共享一个局域网对信息安全不利。
利用以太网交换机可以很方便、灵活地建立虚拟局域网 VLAN (Virtual LAN),从而把一个较大的局域网,分割成一些较小的局域网。使用虚拟局域网不但可使广播域范围缩小,还能提高整个局域网的安全性。虚拟局域网其实只是局域网给用户提供的一种服务(或功能),而并不是一种新型局域网。
虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标签(tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入VLAN标签的帧称为802.1Q帧。
- 一个虚拟局域网的范围可以跨越多个交换机。划分虚拟局域网的方法有很多种,最常用的是按交换机的接口划分。
- 每台主机都是通过接入链路(access link)连接到交换机的,但主机并不知道 VLAN 的存在,它们发往交换机的帧都是标准以太网帧。
- 两台交换机之间的链路称为汇聚链路(trunk link)。只有在汇聚链路上才会使用 802.1Q 帧 。
需要更多相关知识的学习,请自行查阅其他博客哦。
6 高速以太网
随着电子技术的发展,以太网的速率也不断提升。从传统的10 Mbit/s 以太网一直发展到现在常用的速率为1 Gbit/s 的吉比特以太网,甚至更快的以太网。下面简单介绍几种高速以太网技术。
100BASE-T以太网
速率达到或超过 100 Mbit/s 的以太网称为高速以太网。
100BASE-T 是在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网,又称为快速以太网。
- 快速以太网的 MAC 帧格式仍然是以太网 V2 的帧格式。
- 100 Mbit/s 以太网的物理层标准:(了解就行)
几个必记的知识点:
- 快速以太网可在全双工方式下工作而无冲突发生,此时不使用 CSMA/CD 协议(使用以太网交换机);若在半双工方式工作,则一定要使用 CSMA/CD 协议。
- 快速以太网保持最短有效帧长 64 字节不变,争用期由原来的 51.2 µs 变为 5.12 µs ,帧间最小间隔由原来的 9.6 µs 变为现在的 0.96 µs 。都是10Mbit/s以太网的1/10。
- 快速以太网使用的MAC帧格式是IEEE802.3标准规定的帧格式,然而其标准并未包括对同轴电缆的支持,这就意味着想从细缆以太网升级到快速以太网的用户必须重新布线。
吉比特以太网
重要知识点:
- 允许在 1 Gbit/s 下以全双工和半双工两种方式工作。
- 使用以太网 V2 的帧格式。(书上说的是IEEE802.3协议的帧格式,但正如上面所说的这两种区别不大,可以互相交换的)
- 在半双工方式下使用 CSMA/CD 协议,在全双工方式不使用 CSMA/CD 协议。
- 与 10BASE-T 和 100BASE-T 兼容。
吉比特以太网的物理层标准:(了解就行)
吉比特以太网交换机可以直接与多个图形工作站相连,也可以作百兆以太网的主干网,与百兆比特或吉比特交换机相连,然后再和大型服务器连接在一起,如图示例:
扩充:
10 吉比特以太网与 10 Mbit/s,100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同,并保留了 64 字节的最短有效帧长,以便保持兼容性。
10 吉比特以太网只工作在全双工方式,因此不存在争用问题,也不使用 CSMA/CD 协议。
结束语
好了,到目前为止你就复习完了数据链路层,后续我还会更新网络层 ~文章来源:https://www.toymoban.com/news/detail-423497.html
期待您的点赞、收藏、关注,你的支持是我最大的动力 ₍ᐢ..ᐢ₎ ♡层以太网 链路层扩展以星形/C文章来源地址https://www.toymoban.com/news/detail-423497.html
到了这里,关于【计算机网络复习之路】数据链路层(谢希仁第8版)0基础也能看懂 !!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!