osi 数据链路层 - yaokun123/php-wiki GitHub Wiki

六、数据链路层

6.1、数据链路层基本概念及基本问题

基本概念

链路(link):是一条点到点的物理线路,中间没有任何其他的交换节点。
    一条链路只是一条通路的一个组成部分
数据链路(data link):除了物理线路外,还必须有通信协议来控制这些数据的传输。
若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    现最常见的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
    一般的适配器都包括了数据链路层和物理层这两层的功能。

三个基本问题

1、封装成帧
2、透明传输
3、差错检测
传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1。
在一段时间内,传输错误的比特占所传输比特总数的比率成为误码率BER(Bit Error Rate)
误码率与信噪比有很大的关系
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

帧检验序列FCS
在数据后面添加上的冗余码称为帧检验序列FCS(Frame Check Sequence)。
循环冗余检验CRC和帧检验序列并不等同。
    CRC是一种常见的检错方法,而FCS是添加在数据后面的冗余码。
    FCS可以用CRC这种方法得出,但CRC并非用来获取FCS的唯一方法。

检验:
    若得出的余数R=0,则判断这个帧没有差错,就接受(Accept)
    若余数R!=0,则判定这个帧有差错,就丢弃
特点:
    但这种检测方法不能确定究竟是哪一个或哪几个比特出现了差错。
    只要经过严格的挑选,并使用位数足够多的余数P,那么出现检测不到的差错的概率就很小。

封装成帧

透明传输

字节填充解决透明传输问题

循环冗余进行差错检测

6.2、两种情况下的数据链路层

使用点对点信道的数据链路层

这种信道使用一对一的点对点通信方式

现在全世界使用给最多的数据链路层协议是点对点协议(Point-to-Point-Protocol)
用户使用拨号电话线接入互联网时,一般都是使用ppp协议。

ppp协议应该满足的要求:
1、简单-这是首要的要求
2、封装成帧
3、透明性
4、多种网络层协议
5、多种类型链路
6、差错检测
7、检测连接状态
8、最大传送单元
9、网络层地址协商
10、数据压缩协商

ppp协议不需要满足的要求
1、纠错
2、流量控制
3、序号
4、多点线路
5、半双工或单工链路

将HDLC协议改成PPP协议。ppp协议还支持实名验证

config t
interface serial 3/0
encapsulation ppp

使用广播信道的数据链路层(集线器/总线型----交换机不是这个机制)

这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,
因此必须使用专用的共享信道协议来协调这些主机的数据发送。

载波监听多点接入/碰撞检测 以太网使用CSMA/CD协议
CSMA/CD表示Carrier Sense Multiple Access with Collision Detection。
多点接入:表示许多计算机以多点接入的方式连接载一根总线上。
载波监听:是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据
         以免发生碰撞。载波监听就是用电子技术检测总线上有没有其他计算机发送的数据信号。

碰撞检测:就是计算机边发送数据边检测信道上的信号电压大小。
    当几个站同时在总线上发数据时,总线上的信号电压摆动值将会增大(互相叠加)。
    当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
    所谓“碰撞”就是发生冲突。因此“碰撞检测”也称“冲突检测”

检测到碰撞后:
    在发生碰撞时,总线上传输的信号产生严重的失真,无法从中恢复出有用的信息来。
    每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段时间后再次发送。

使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性使整个以太网的平均通信量小于以太网的最高数据率。

6.3、以太局域网(以太网)

以太网的两个标准

DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约/
IEEE的802.3标准
    DIX Ethernet V2标准与IEEE的802.3标准只有很小的差别,因此可以将802.3局域网简称“以太网”
    严格来说,“以太网”应当是指符合DIX Ethernet V2标准的局域网

以太网与数据链路层的两个子层

为了使数据链路层更好的适应多种局域网标准,802委员会就将局域网的数据链路层分为两个子层:
逻辑链路控制LLC(Logical Link Control)子层
媒体接入控制MAC(Medium Access Control)子层

与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关,不管采用何种协议的局域网对LLC子层来说都是透明的。
由于TCP/IP体系经常使用的局域网是DIX Ethernet V2而不是IEEE的802.3标准中的几种局域网,因此现在802委员会制定了逻辑
链路控制子层LLC(即802标准)的作用已经不大了。
很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议

以太网提供的服务

以太网提供的是不可靠的交付,即尽最大努力的交付。
当接收站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。

拓扑

以太网的信道利用率

以太网的信道被占用的情况
争用期长度位2t,即端到端传播时延的两倍。检测到碰撞后不发送干扰信号。
帧长为L(bit),数据发送速率为C(b/s),因而帧的发送时间位L/C=T(s)。

MAC层

在局域网中,硬件地址又称为物理地址,或MAC地址。
802标准所说的地址严格地讲应当是每一站的名字或标识符。
但鉴于大家都早已习惯了将这种48位的“名字”称为地址,所以本书也采用这种习惯用法,尽管这种说法并不太严格。

IEEE的注册管理机构RA负责向厂家分配地址字段的前三个字节(即高位24位)
地址字段中的后三个字节(即低位24位)由厂家自行指派,称为“扩展标识符”,必须保证生产出的适配器没有重复地址。
一个地址可以生成2的24次方个不同的地址,这种48位地址称为MAC-48,它的通用名称是EUI-48。
MAC地址实际上就是适配器地址或适配器标识符EUI-48

适配器检查MAC地址

适配器从网络中每收到一个MAC帧就首先用硬件检查帧中的MAC地址。
如果是发往本站的帧则收下,然后再进行其他处理。
否则就将此帧丢弃,不再进行其他处理。

“发往本站的帧”包括以下三种帧
单播(unicate)帧(一对一)
广播(broadcast)帧(一对全体)
多播(multicast)帧(一对多)

MAC帧格式

无效的MAC帧

帧的长度不是整数个字节。
用收到的帧检测序列FCS查出有差错
数据字段的长度不在46-1500字节之间。
有效的MAC帧长度位64-1518之间。
对于检查出的无效MAC帧就简单地丢弃。以太网不负责重传丢弃的帧。

帧间最小间隔

帧间最小间隔为9.6微妙,相当于96bit的发送时间。
一个站在检测到总线开始空闲后,还要等9.6微妙才能再次发送数据。
这样做是为了使刚刚收到的数据帧在站的接受缓存来得及清理,做好接受下一帧的准备。

6.4、扩展以太网

在物理层-距离扩展

在物理层-数量扩展

用集线器扩展局域网的优点:
    使原来属于不同碰撞域的局域网上的计算机能够进行垮碰撞域的通信。
    扩大了局域网覆盖的地理范围。
用集线器扩展局域网的缺点:
    碰撞域增大了,但总的冲突量并未提高。
    如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

在数据链路层

在数据链路层扩展局域网是使用网桥。
网桥工作在数据链路层,它根据MAC地址帧的目的地址对收到的帧进行转发。
网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址
然后在确定将该帧转发到哪个接口。

6.5、高速以太网

100BASE-T以太网

速率达到或超过100M/s的以太网称为高速以太网。
在双绞线上传送100M/s基带信号的星型拓扑以太网,任使用IEEE802.3的CSMA/CD协议。
100BASE-T以太网又称快速以太网(Fast Etherent)

100BASE-T特点:
可在全双工方式下工作而无冲突发生。因此不需要使用CSMA/CD协议。
MAC帧格式任然是802.3标准规定。
保持最短帧长不变(64字节),但将一个网段的最大电缆长度减小到100m。
帧间时间间隔从原来的9.6微妙,改为现在的0.96微妙。

Gb以太网

允许在1Gb/s下全双工和半双工两种方式工作。
使用802.3协议规定的帧格式。
在半双工方式下使用CSMA/CD协议,全双工方式不需要使用CSMA/CD协议
与10BASE-T和100BASE-T技术向后兼容