ch03 Data Link Layer-01
ch03 Data Link Layer-01
数据链路层基本概念及基本问题
一,基本概念
数据链路层解决的是相邻两节点间数据传输的问题
节点可以是主机或者路由器
数据链路与链路的区别
解答:
链路:从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
在进行数据通信时,两个计算机之间的通信路径往往要经过许多段这样的链路
链路只是一条路径的组成部分。
数据链路:链路 + 实现控制数据传输协议的硬件和软件
则是另一个概念。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现在最常用的方法是使用网络适配器(如拨号上网使用拨号适配器,以及通过以太网上网使用局域网适配器)来实现这些协议的硬件和软件般的适配器都包括了数据链路层和物理层这两层的功能
也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路。物理链路就是上面所说的链路,而逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
1. 从数据链路层观察帧的流动:
2. 数据链路层的信道类型
数据链路层使用的信道主要有以下两种类型:
点对点信道:这种信道使用一对一的点对点通信方式。
广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
二,数据链路层链路控制的三个功能
无论是数据链路层的什么协议,这三个问题都应该被考虑
1.封装成帧
如何将IP层传下来的数据封装道数据链路层的帧里
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界,具体来说就是用控制字符进行帧定界
如下图:
SOH:start of head
EOT:end of tail
只有拥有完整的SOH, EOT的帧才会被接收
2. 透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。
透明:数据中恰巧出现的和某个控制信息相同的比特组合在数据传输过程中就像是透明的一样,不会对传输产生干扰
这里举一种处理方式:
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”
3. 差错检测
CRC
FCS
两种情况下的数据链路层
一,使用点对点信道的数据链路层
1. 适应场景
家庭接入宽带
在家庭用户上网的情况下,家庭主机到ISP之间是点对点的
点:家庭主机和ISP
2. PPP协议----def
英文名:
Point to Point Protocol
3. PPP协议----封装成帧
PPP协议的帧格式:
标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 通常置为 0x03。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
PPP 有一个 2 个字节的协议字段:
- 0x0021 — PPP 帧的信息字段就是IP 数据报。
- 0xC021 — 信息字段是 PPP 链路控制数据。
- 0x8021 — 表示这是网络控制数据。
- 0xC023 — 信息字段是安全性认证PAP。
- 0xC025 — 信息字段是LQR。
- 0xC223 — 信息字段是安全性认证CHAP。
4. PPP协议----透明传输
4.1字节填充
问题:信息字段中出现了标志字段的值,可能会被误认为是“标志”,怎么办?
将信息字段中每个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)
将信息字段中每个 0x7D 字节转变成为 2 字节序列(0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
0x7D+0x23就当作出现0x7D来处理
这种情况是PPP异步传输的情况。异步传输是以字符为单位的。一个字节是8个二进制位,一个字符可能是一个字节,也可以是多个字节。如一个英文字母就是一个字节,而一个中文汉字就是两个字节。
此时如果使用零比特填充的话,会出现识别错误。
4.2 零比特填充方法
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的、
- 帧检验序列 FCS 字段可保证无差错接受。
二,使用广播信道的数据链路层
广播信道可以进行一对多的通信。下面要讨论的局域网使用的就是广播信道。
1. 适应场景
局域网
以下是局域网的几种拓扑:
2. 以太网简介
“以太网”应当是指符合 DIX Ethernet V2 标准 的局域网
3. CSMA/CD
中文
载波监听多点接入/碰撞检测
英文
Carrier Sense Multiple Access with Collision Detection
含义
“载波监听”:Carrier Sense
是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
“多点接入”:Multiple Access
表示许多计算机以多点接入的方式连接在一根总线上。
“碰撞检测”:Collision Detection
就是计算机边发送数据边检测信道上的信号电压大小,也称为“冲突检测”。
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
附加:以太网使用的 CSMA/CD协议与传统的时分复用TDM的对比
以太网使用的 CSMA/CD协议是以争用方式接入到共享信道的。这与传统的时分复用TDM相比优缺点如何?
解答:应当说, CSMA/CD协议与传统的时分复用TDM各有优缺点。
网络负荷较轻时, CSMA/CD协议很灵活,哪个站想发送就可以发送,而且发生碰撞的概率很小。如使用时分复用TDM,效率就比较低。当很多站没有信息要发送时,分配到的时隙也浪费了。
网络负荷很重时, CSMA/CD协议引起的碰撞很多,重传经常发生,因而效率大大降低。但这时TDM的效率就很高。
这好比在一个城市中的交叉路口的红绿灯系统。当车辆很少时,红绿灯可能会产生一些不必要的红灯等待。但车辆的流量很大时,使用红绿灯系统就是非常必要的,可以使得车辆的通行有条不紊。
4. 传播时延对载波监听的影响
现象描述:
当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
A 向 B 发出的信息,要经过一定的时间后才能传送到 B。
B 若在 A 发送的信息到达 B 之前发送自己的帧(因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞。
碰撞的结果是两个帧都变得无用。
通信两方都会发生碰撞,但是发现的时间不一样
还没有传输到,b无法监听,b依然认为信道为空这将导致碰撞,碰撞信号会很快传到B会稍微慢一些传到A
冲突现象示意图:
5. CSMA/CD小节
t是A,B都要发现冲突所用时:
最短:单程传播时延 \(\Large\tau\)
最长:双倍传播时延 \(2\Large\tau\)
CSMA/CD总结:
-
多点接入,广播信道才会用到,除广播信道外其余场合不会用到此协议
-
载波监听:通过电子技术进行信道信号的监听,但监听的过程中由于传播时延会导致当前监听的情况未必是真的,此时会有相应的处理
-
碰撞检测:发完数据后需要一段时间的检测,检测到无冲突后才能继续发送,一旦检测到冲突则立即停止
冲突检测时间最长2\(\Large\tau\)
6. CSMA/CD的重要特性
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
7. 以太网的争用期
以太网在发送数据时,如果经过争用期后仍然没有发生冲突,则之后数据就不会发生冲突。
以太网的端到端往返时延 2t 称为争用期,或碰撞窗口。
通常,取 51.2 ms 为争用期的长度。
对于 10 Mbit/s 以太网,在争用期内可发送512 bit,即 64 字节。
以太网在发送数据时,若前 64 字节未发生冲突,则后续的数据就不会发生冲突。
8. 以太网的最短有效帧长
§如果发生冲突,就一定是在发送的前 64 字节之内。
§由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
§以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
若传输数据不满64byte的,为避免被当作因为异常而终止的无效帧,会补足到64byte,所以但凡发现小于64byte的,肯定是因为冲突而终止的,直接丢弃就好
直接丢弃是因为以太网提供的服务是不可靠交付,如果帧出现差错则直接丢弃,差错的纠正由上层来处理(详见下方:以太网提供的服务)
帧被丢弃完后将会选择一段时间进行重传
9.二进制指数类型退避算法
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
-
确定基本退避时间,一般是取为争用期 2t
-
定义参数 k ,k = Min[重传次数, 10]
-
从整数集合[0,1,…, (2k -1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间
-
当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
局域网简介
局域网 LAN (Local Area Network) :局限在较小的范围(如 1 公里左右)
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限
1. 域网采用广播通信但广域网不使用广播通信
在局域网刚刚出现时,局域网比广域网具有更高的数据率、更低的时延和更小的误码率,但随着光纤技术在广域网中普遍使用,现在广域网也具有很高的数据率和很低的误码率
局域网的地理范围较小,且为一个单位所拥有,采用广播通信方式十分简单方便。但广域网的地理范围很大,如果采用广播通信方式势必造成通信资源的极大浪费,因此广域网不采用广播通信方式
2. 局域网拓扑的种类
常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不使用星形拓扑结构,但现在却改为使用星形拓扑结构?
常用的局域网的网络拓扑有星形网、环形网(最典型的就是令牌环形网)和总线网。
现在最流行的是星形网。
在局域网发展的早期,人们都认为有源器件比较容易出故障,因而无源的总线结构一定会更加可靠。
星形拓扑结构的中心使用了有源器件,人们就认为这比较容易出故障,而要使这个有源器件少出故障,必须使用非常昂贵的有源器件。然而实践证明,连接有大量站点的总线式以太网,由于接插件的接口较多,反而很容易出现故障。现在专用的ASIC芯片的使用可以把星形结构的集线器做得非常可靠。因此现在的以太网一般都使用星形结构的拓扑
以太网( 以太局域网)
局域网:Local Area Network (缩写:LAN)
一,概述
传统以太网就是最早流行的10 Mbit/s速率的以太网
1. 以太网的两个标准
以太网有两个标准,即 DIX Ethemet V2标准和IEEE802.3标准
严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
2. 以太网提供的服务
-
以太网提供的服务是不可靠的交付,即尽最大努力的交付。
-
当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
-
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
3.集线器(hub)
传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。不用电缆而使用无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收
这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub) 。
4. 集线器的特点
集线器是使用电子器件来模拟实际电缆线的工作,因此硬件设备的可靠性已大大提高了。
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
集线器很像一个多接口的转发器工作在物理层
下图中三个总线负责收发,本质上仍为总线型(使用广播信道,遵循CSMA/CD协议)
集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已大大提高了。
二,以太网的MAC层
1. MAC层的硬件地址(MAC地址)
由网络设备制造商生产时固化在网卡上用以唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址
在局域网中
硬件地址 == 物理地址 == MAC 地址(48bit)
以太网用的是广播信道,所以他需要一个标识,这个标识也就是MAC地址
IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。
2. 适配器检查MAC地址
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 地址。
-
如果是发往本站的帧则收下,然后再进行其他的处理。
-
否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧:
单播(unicast)帧(一对一)
广播(broadcast)帧(一对全体)
多播(multicast)帧(一对多)
3. MAC帧格式
常用的以太网MAC帧格式有两种标准 :
-
DIX Ethernet V2 标准
-
IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式。
wang'qiao
目的地址字段: 6字节
源地址字段 6 字节
类型字段 2 字节
类型字段用来标志上一层使用的是什么协议,
以便把收到的 MAC 帧的数据上交给上一层的这个协议。
数据字段 46 ~ 1500 字节
64-18=46
64:最小有效帧长
6+6+2+4=18
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
FCS 字段 4 字节
扩展以太网 (把以太网变大)
范围想做一个提升
一,在物理层考虑扩展
1->2发所有人都收的到
用集线器(hub)扩展局域网优点
-
使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
-
扩大了局域网覆盖的地理范围。
用集线器扩展局域网缺点
-
碰撞域增大了,但总的吞吐量并未提高。
-
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
二,在数据链路层扩展以太网
1. 网桥
一个交换机有很多个网桥
一个网桥能隔离两个冲突域
一个交换机能隔离多个冲突域
网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。
它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。
网络1 和网络2 通过网桥连接后,网桥接收网络1 发送的数据包,检查数据包中的地址,如果地址属于网络1 ,它就将其放弃,相反,如果是网络2 的地址,它就继续发送给网络2.
这样可利用网桥隔离信息,将同一个网络号划分成多个网段(属于同一个网络号),隔离出安全网段,防止其他网段内的用户非法访问。由于网络的分段,各网段相对独立(属于同一个网络号),一个网段的故障不会影响到另一个网段的运行。
网桥可以是专门硬件设备,也可以由计算机加装的网桥软件来实现,这时计算机上会安装多个网络适配器(网卡)。
2. 交换机【交换式集线器 (switching hub) 】简介
交换机本质上就是一个多接口的网桥
1990 年问世的交换式集线器 (switching hub) 可明显地提高以太网的性能。
交换式集线器常称为以太网交换机 (switch) 或第二层交换机 (L2 switch),强调这种交换机工作在数据链路层
3. 以太网交换机的特点
-
以太网交换机实质上就是一个多接口的网桥,通常都有十几个或更多的接口。
每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
所以交换机不会用到CSMA/CD协议
-
以太网交换机具有并行性。能同时连通多对接口,使多对主机能同时通信。相互通信的主机都是独占传输媒体,无碰撞地传输数据。
-
以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。
-
以太网交换机是一种即插即用设备,其内部的帧交换表(又称地址表【MAC地址表】)是通过自学习算法自动地逐渐建立起来的。
-
以太网交换机使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
4. 以太网交换机的自学习功能
-
以太网交换机运行自学习算法自动维护交换表。
-
开始时,以太网交换机里面的交换表是空的。
5. 虚拟局域网
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"
VLAN示意图:
当 B1 向 VLAN2 工作组内成员发送数据时,工作站 B2 和 B3 将会收到广播的信息。
B1 发送数据时,工作站 A1, A2 和 C1 都不会收到 B1 发出的广播信息。
虚拟局域网帧格式
虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的s标识符,称为 VLAN 标记(tag),用来指明此MAC帧属于的VLAN
高速以太网 (让以太网变快)
- 网速想做一个提升 XXxX