• 3 数据链路层


    3.1 数据链路的作用

    数据链路层的协议定义了通过通信媒介互联的设备之间传输的规范。通信媒介包含双绞线电缆、同轴电缆、光纤、电波以及红外线等介质。此外,各个设备之间有时也会通过交换机、网桥、中继器等中转数据。

    数据链路层将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。

     3.1.1 MAC地址

    MAC 地址是链路层地址,长度为 6 字节(48 比特位),用于唯一标识网络适配器(网卡)。

    一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

    3.1.2 共享介质型网络

    从通信介质的使用方法来看,网络可分为共享介质型和非共享介质型。

    共享介质型网络指由多个设备共享一个通信介质的一种网络。在这种方式下,设备之间使用同一个在载波信道进行发送和接收。为此基本采用半双工通信。

    共享介质网络中有两种介质访问控制方式:争用方式和令牌传递方式。

    争用方式:

    争用方式是指争夺获取数据传输的权利,也叫CSMA(载波监听多路访问)。这种方式通常令网络中的各个站采用先到先得的方式占用信道发送数据,如果多个站同时发送帧,则会产生冲突现象。

    在一部分以太网中,采用了改良CSMA的另一种方式----CSMA/CD方式。

    CSMA/CD 表示载波监听多点接入 / 碰撞检测。

    • 多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。
    • 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
    • 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

    记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

    当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。

     

    令牌传递方式:

    令牌传递方式是沿着令牌环发送一种叫做“令牌”的特殊报文,是控制传输的一种方式。只有获得令牌的站才能发送数据。这种方式有两个优点:一是不会有冲突,二十每个站都有雨通过平等循环获得令牌的机会。缺点是,一个站没有收到令牌前不能发送数据帧,因此在网络不太拥挤的情况下数据链路的利用率也达不到100%。

    3.1.3 非共享介质网络

    非共享介质网络是指不共享介质,是对介质采用专用的一种传输控制方式。在这种方式下,网络中的每个站直连交换机,有交换机负责转发数据帧。此方式向下,发送端与接收端并不共享通信介质,因此很多情况下采用全双工通信。

    在这种一对一连接全双工通信的方式下不会发生冲突,因此不需要CSMA/CD机制就可以实现更高效的通信。

    3.1.4 根据MAC地址转发

    以太网交换机就是持有多个端口的网桥。它们根据数据链路层中每个帧的目标MAC地址,决定从哪个网络接口发送数据。这时所参考的、用以记录发送接口的表就叫做转发表。

    交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。

    正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。

    下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧。主机 B 向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 3 的映射。

    3.1.5 局域网

    局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

    主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。

    可以按照网络拓扑结构对局域网进行分类:

    3.1.6 虚拟局域网(VLAN)

    虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。

    例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。

    使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。

    3.2 以太网

    以太网是一种星型拓扑结构局域网。

    早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。

    目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发。

    以太网帧格式:

    • 类型 :标记上层使用的协议;
    • 数据 :长度在 46-1500 之间,如果太小则需要填充;
    • FCS :帧检验序列,使用的是 CRC 检验方法;
    以太网帧本体的前端是以太网的首部,总共占据14个字节。分别是6个字节的目标MAC地址,6个字节的源MAC地址以及2个字节的上层协议类型。在目标MAC地址中存放了目标工作站的物理地址。源-
    紧随帧头后面的是数据,一个数据帧所能容纳的的最大数据范围是46-1500个字节。帧尾是一个叫做FCS(Frame Check Sequence,帧检验序列)的4个字节。

     3.3 PPP协议

    PPP(Point-to-Point Protocol)是指点对点,即1对1连接计算机的额协议。PPP相当于OSI参考模型第二层的数据链路层。PPP不像以太网和FDDI。后两者不仅与OSI参考模型的数据链路层有关,还与第1层的物理层有关。具体来讲,以太网使用同轴电缆或双绞线电缆,他可以决定其中的0、1该被解释为何种电子信号。与之相比,PPP属于纯粹的数据链路层,与物理层没有任何关系。即仅有PPP无法实现通信,还要有物理层的支持。

    互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。

    PPP 的帧格式:

    • F 字段为帧的定界符,1个字节8位
    • A 和 C 字段暂时没有意义,分别占据一个字节
    • FCS 字段是使用 CRC 的检验序列,占据4个字节
    • 信息部分的长度不超过 1500字节
    4 其他数据链路
    4.1 ATM
    ATM(Asynchronous Transfer Mode)是以一个叫做信元(5字节首部加48字节数据)的单位进行传输的数据链路,由于其线路占用时间短和能够高效传输大容量数据等特点主要用于广域网络的连接。
    ATM是面向连接的一种数据链路。因此在进行通信传输之前一定设置通信线路。
    4.2 POS
    POS(Packet over SDH/SONET)是一种在SDH(SONET)上进行包通信的一种协议。SDH(SONET)是在光纤上传输数字信号的物理层规范。
    4.3 FDDI
    FDDI(Fiber Distributed Data Interface)叫做分布式光纤数据接口。FFDI采用令牌环的访问方式,令牌环访问方式在网络拥堵的情况下极容易导致网络收敛。
    4.4 Token Ring
    令牌环网(Token Ring)源自IBM开发的令牌环LAN技术,可以实现4Mbps或16Mbps传输速率。
     
  • 相关阅读:
    Oracle Core 学习笔记二 Transactions 和 Consistency 说明
    Oracle AUTO_SPACE_ADVISOR_JOB 说明
    Windows 下 ftp 上传文件 脚本
    Oracle 11g 中 Direct path reads 特性 说明
    Linux 使用 wget 下载 Oracle 软件说明
    Oracle 10g read by other session 等待 说明
    Oracle 11g RAC INS06006 Passwordless SSH connectivity not set up between the following node(s) 解决方法
    SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
    Oracle RAC root.sh 报错 Timed out waiting for the CRS stack to start 解决方法
    Oracle RESETLOGS 和 NORESETLOGS 区别说明
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10201133.html
Copyright © 2020-2023  润新知