• 计算机网络学习笔记(三):数据链路层(待更新)


    目录

    3.1 基本概念

    3.1.1 数据链路和帧

     3.1.2 三个基本问题

    3.2 类型1:使用点对点信道的数据链路层(路由器)

    3.2.1 点对点协议 PPP:特点

    3.2.2 点对点协议 PPP:帧格式

    3.2.3 点对点协议 PPP:工作状态

    3.2.4 实战:抓包分析PPP协议的工作过程

    3.3 类型2:使用广播信道的数据链路层(交换机/集线器)

    3.3.1 局域网

    3.3.2 广播信道的局域网(总线网、星形网)

    3.3.3 以太网的标准

    3.3.4 CSMA/CD协议:基本原理

    3.3.4.1 碰撞检测:以太网最短帧

    3.3.4.2 碰撞检测:冲突解决方法(退避算法)

     3.3.5 CSMA/CD协议:帧格式

    3.3.6 以太网的信道利用率

    3.4 扩展以太网

    3.4.1 集线器(Hub):一层网络设备

    3.4.1.1 以太网的扩展1:数量上的扩展

    3.4.1.2 以太网的扩展2:距离上的扩展

    3.4.2 网桥(Bridge):二层网络设备

    3.4.3 交换机(Switch):数据链路层(多接口网桥)

    3.4.5 生成树协议


    3.1 基本概念

    3.1.1 数据链路和帧

    • 链路/物理链路:一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
      • 一条链路只是一条通路的一个组成部分。
    • 数据链路/逻辑链路:物理链路 + 通信协议(控制数据的传输)
      • 现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
      • 一般的适配器都包括了数据链路层和物理层这两层的功能。
    • :一般情况下,在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。

    • 1:早期的数据通信协议叫做通信规程(procedure)。因此,在数据链路层,规程协议是同义语。
    • 2:数据链路层不必考虑物理层如何实现比特传输的细节,甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方。

     3.1.2 三个基本问题

            数据链路层的协议有多种,但有三个基本问题是共同的,分别如下:

    • 封装成帧:在一段数据(IP数据报)的前后分别添加帧首部帧尾部
      • MTU(Maximum Transmission Unit):数据链路层中的最大传输单元(网络层传输给数据链路层的IP数据报的最大长度)
        • MTU越大,帧中包含的有效数据越多,单次传输的数据量越多,传输次数越少,网络开销越小(优点)
        • MTU越大,占据链路的时间越长,网络延迟就会变大;而且如果一大段数据里面有一个 bit 出错了,这一大段就会整个重传,重传的代价是很大的(缺点)
        • 发送的数据过大分片操作(每个片都需要添加上IP首部)
        • 发送的数据过小填充操作,在实际数据内容后面添加填充数据,使得数据包总长度达到最小长度要求(填充数据可以是任意无意义的字节,例如全0或全1的数据)
        • MTU的默认值是1500字节
      • 帧首部、帧尾部:帧定界(确定帧的界限),并包含重要的控制信息
        • 控制字符SOH(Start of Header):放在帧首部,标识帧开始(二进制00000001)
        • 控制字符EOT(End of Transmission):放在帧尾部,标识帧结束(二进制00000100)

    • 透明传输
      • 问题引入帧的数据部分可能包含与帧首部/帧尾部控制字符编码相同的比特组合,数据链路层会错误地认为其是帧的边界。

    • 解决方案:字节填充(byte stuffing) 或 字符填充(character stuffing)
      • 发送端的数据链路层:在帧的数据部分出现的“SOH”或“EOT”字符前面插入一个转义字符ESC(二进制00011011
      • 接收端的数据链路层:在将数据送往网络层之前,删除插入的转义字符
      • :如果原始数据中包含转义字符ESC,则应在转义字符前面再插入一个转义字符ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

    • 透明:指某一个实际存在的事物看起来却好像不存在一样
      • “在数据链路层透明传送数据”表示无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层。
    • :不同数据链路层协议实现透明传输的方式不同,使用的转义字符也各不相同,但是都必须实现透明传输。
    • 差错控制
      • 问题引入:在传输过程中可能会产生比特差错,使得1可能会变成0,而0也可能变成1。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
        • BER(Bit Error Rate, 误码率):在一段时间内,传输错误的比特占所传输比特总数的比率(误码率与信噪比有很大的关系)

    • 解决方案:循环冗余检验CRC(广泛使用)  →  类比“寄书”
    • 发送端:假定数据划分为组(每组k位),在每组后面添加供差错检测用的n位冗余码
    • 接收端:对收到的每一帧进行同样的CRC检验
      • 余数R=0:判定帧没有差错  →  接受
      • 余数R≠0:判定帧有差错  →  丢弃

    • 冗余码的计算:假设原始数据为M,添加冗余码的位数为n位,除数为P(每种协议都必须事先定义好,且发送方和接收方都悉知)
      • Step1:用二进制的模2运算进行2^{n} M 的运算(相当于M后面添加n0
      • Step2:将Step1得到的(k + n)位数 除以 (n+1)位的除数P,得出商Qn位余数R
      • Step3:将余数R作为冗余码拼接在数据M后面,一起发送出去。
      • 除数的位数 要比 冗余码的位数 多1位

    • CRC VS. FCS
      • CRC(Cyclic Redundancy Check, 循环冗余检验):一种常用的检错方法
      • FCS(Frame Check Sequence, 帧校验序列):添加在数据后面的冗余码
      • FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法。
    • 无差错接受 VS. 无差错传输/可靠传输 VS. 无比特差错
      • 无差错接受:凡是接收端数据链路层接受的帧(即不包括丢弃的帧),我们都能以接近于1的概率认为这些帧在传输过程中没有产生差错(有差错的帧就丢弃而不接受)。对于CRC差错检测算法,只要经过严格的挑选,并使用位数足够多的除数P,那么出现检测不到的差错的概率就很小很小。但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
      • 无差错传输/可靠传输:所有发送的数据都能被无差错接受(即发送什么就收到什么)
      • 无比特差错
      • 1:仅用循环冗余检验CRC差错检测技术,只能做到无差错接受,不能实现“无差错传输”或“可靠传输”。若要做到“无差错传输”,就必须再加上确认和重传机制
      • 2:本章介绍的数据链路层协议都是不可靠传输的协议。
    •  小结(重要!!!):当传输数据为ASCII 码打印字符组成的文本文件时,传输数据不可能含有控制字符(SOH/EOT/ESC等),此时无需考虑透明传输;当传输数据为图片或程序时,传输数据就可能含有控制字符(SOH/EOT/ESC等),此时需要考虑透明传输。

    3.2 类型1:使用点对点信道的数据链路层(路由器

            对于点对点的链路,目前使用的数据链路层协议有:

    • PPP(Point-to-Point Protocol, 点对点协议):1994年成为互联网的正式标准(使用最广泛)
    • HDLC(High-level Data Link Control, 高级数据链路控制)

    3.2.1 点对点协议 PPP:特点

    • PPP 协议应满足的需求
      • 简单:首要要求
      • 封装成帧:必须规定特殊的字符作为帧定界符
      • 透明传输:必须保证数据传输的透明性
      • 差错检测:接收端能够对收到的帧进行检测,并立即丢弃有差错的帧
      • 最大传送单元:必须对每一种类型的点对点链路设置最大传送单元  MTU的标准默认值,促进各种实现之间的互操作性
      • 多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议
      • 多种类型链路:能够在多种类型的链路上运行(不同接口)
      • 检测连接状态:能够及时自动检测出链路是否处于正常工作状态
      • 网络层地址协商:必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址
      • 数据压缩协商:必须提供一种方法来协商使用数据压缩算法
    • PPP 协议不需要的功能
      • 纠错
      • 流量控制
      • 序号
      • 多点线路
      • 半双工或单工链路

    3.2.2 点对点协议 PPP:帧格式

    封装成帧

    PPP 帧的首部和尾部分别为4个字段和2个字段:

    • 标志字段F(Flag):0x7E
      • 作用:帧定界符,标识帧的开始和结束位置
      • 0x:表示后面的字符是用十六进制表示
    • 地址字段A(Address):0xFF(全1)  →  固定值(保留字段)
      • 作用:无实际作用(形同虚设)
      • :PPP协议不需要目标MAC地址
    • 控制字段C(Control):0x03  à  固定值(保留字段)
    • 协议字段
      • 作用:标识IP数据报的内容类型
      • 0xC021:信息字段是PPP链路控制数据(LCP报文)
      • 0xC023:信息字段是鉴别数据(PAP报文)
      • 0xC223:信息字段是鉴别数据(CHAP报文)
      • 0x8021:信息字段是网络控制数据(IPCP报文)
      • 0x0021:信息字段就是IP报文
    • :PPP是面向字节的,所有PPP帧的长度都是整数字节

    透明传输

    问题引入:当帧的数据部分包含与帧首部/帧尾部编码相同的比特组合时(即数据部分出现0x7E),如何解决?

    • PPP用在同步传输链路
      • PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
      • 同步传输
        • 前同步码:同步发送端和接收端的时钟,规定单位比特所占时间
      • 透明传输的实现零比特填充(硬件实现)(同HDLC)
        • 发送端:只要发现有5个连续1,则在后面插入1个0(即便数据含有0x7E,插入0后,接收端就不会将其视为帧定界符,从而正常接收)
        • 接收端:只要发现有5个连续1,则删除后面的1个0

    • PPP用在异步传输
      • 异步传输:逐个字节地传送,且每个字节的前面添加低电平的起始位 以及 后面添加高电平的停止位
      • 透明传输的实现字符填充字节填充
        • 当信息字段中出现字节0x7E,则转变成为2字节序列(0x7D, 0x5E)
        • 当信息字段中出现字节0x7D, 则转变成为2字节序列(0x7D, 0x5D)
        • 当信息字段中出现ASCII码控制字符(即数值小于0x20的字符),则在该字符前面要插入一个0x7D字节,同时将该字符的编码加以改变。

            PPP 协议不使用序号和确认机制,有如下几点原因:

    • 在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理。
    • 在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
    • 帧检验序列FCS字段可保证无差错接受。

    3.2.3 点对点协议 PPP:工作状态

         家庭用户的电脑通过网线连接光猫(调制解调器),再通过电话线连接Internet,建立PPP拨号的过程:

    • 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
    • PC机向路由器发送一系列的LCP分组(封装成多个 PPP 帧)。
    • 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机。
    • 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。
    • 可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

    PPP 协议的3个工作步骤:

    • 阶段1LCP协商阶段(链路建立阶段)
      • 全称:Link Control Protocol 链路控制协议
      • 作用:协商端口参数,如下所示
        • MRU:最大接收单元
        • 认证协议:采用何种身份验证方式(PAP认证?CHAP认证)
        • 魔术字:随机数(请求和确认的魔术字需要一致,指明某一确认报文是针对哪一请求报文的回复)

    • 阶段2身份认证阶段(两种方式)
      • 方式1:PAP认证
        • 全称:Password Authentication Protocol 密码认证协议
        • 特点:密码在网络中以明文形式传输

    • 方式2:CHAP认证
      • 全称:Challenge Handshake Authentication Protocol  质询握手认证协议
      • 特点加密认证
      • 原理:首先,由服务器端给客户端发送挑战challenge(携带随机数),客户端根据challenge 对口令进行加密,算法是md5(password,challenge,ppp_id)。然后,客户端将加密结果MD5发送给服务器端,服务器端从数据库中取出口令password2,同样进行加密处理md5(password2,challenge,ppp_id)。最后,比较加密的结果是否相同。如果相同,则认证通过,向客户端发送认可消息。

    • :若在LCP协商阶段,双方都不要求身份认证,则不需要经过阶段2(即直接从阶段1跳到阶段3)
    • 阶段3IPCP协商阶段(网络层协商阶段)(两种方式)
      • 全称:Network Control Protocol 网络控制协议
        • :NCP为统称,具体到TCP/IP中的IPCP,N指的是IP
      • 作用:协商网络参数
      • 方式1:静态IP地址(两端地址不冲突,且在同一个网段内)

    • 方式2:动态IP地址(IP地址自动配置)
      • 当计算机拨号上网时,营运商会给计算机自动分配一个IP地址

    3.2.4 实战:抓包分析PPP协议的工作过程

    阶段1:

     阶段2:

    阶段3:

    3.3 类型2:使用广播信道的数据链路层(交换机/集线器)

    3.3.1 局域网

    • 局域网的特点
      • 网络为一个学校、单位、企业所拥有
      • 地理范围站点数目均有限
    • 局域网的优点
      • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
      • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
      • 提高了系统的可靠性、可用性和残存性。
    • 局域网的实现(拓扑结构)局域网的拓扑结构有哪些 • Worktile社区
      • 实现1总线网(所有设备都连接到同轴电缆上)
        • 原理:将网络中的所有设备通过相应的硬件接口直接连接到公共总线上,结点之间按广播方式通信,一个结点发出的信息,总线上的其它结点均可“收听”到。
        • 优点
          • 结构简单,可扩充性好
          • 当需要增加节点时,只需要在总线上增加一个分支接口便可与分支节点相连,当总线负载不允许时还可以扩充总线
          • 使用的电缆少,且安装容易
          • 使用的设备相对简单,可靠性高
        • 缺点:维护难,分支节点故障查找难

    • 实现2星形网(所有设备都连接到集线器上)

    • 实现3:环形网

    • 媒体共享技术
      • 静态划分信道
        • 频分复用
        • 时分复用
        • 波分复用
        • 码分复用
      • 动态媒体接入控制(多点接入)
        • 随机接入
        • 受控接入,如多点线路探询 (polling),或轮询。

    3.3.2 广播信道的局域网(总线网、星形网)

    • 总线型拓扑结构:使用同轴电缆组建的局域网(早期)  à  广播信道
      • 问题引入:若两端不添加匹配电阻,则信号无法反射,即无法通信;若两端添加匹配电阻,则电阻会吸收能量。(无法克服的弊端)
      • 解决方案:引入“集线器”(见下)

    • 星型拓扑结构:使用集线器组建的局域网(2000年以前)  à  广播信道
      • 问题引入:若多个设备在共享的广播信道上同时发送数据,则会造成彼此干扰,导致发送失败。
      • 解决方案:引入CSMA/CD机制通信(见“3.3.4节”)

    3.3.3 以太网的标准

    • 以太网(Ethernet)是一种计算机局域网组网技术。IEEE制定的IEEE 802.3标准给出了以太网的技术标准,即以太网的介质访问控制协议(CSMA/CD)及物理层技术规范(包括物理层的连线、电信号和介质访问层协议的内容)。
    • 在IEEE 802.3标准中,为不同的传输介质制定了不同的物理层标准
      • 前面的数字:传输速度(单位是“Mb/s”)
      • Base:基带信号(数字信号)
      • 最后的数字:单段网线长度(单位是“100m”)

    3.3.4 CSMA/CD协议:基本原理

    • CSMA/CDCarrier Sense Multiple Access with Collision Detection 载波监听多点接入(多路访问)/碰撞检测(冲突检测(带冲突检测的载波侦听多点接入技术)
      • 多点接入:许多计算机以多点接入的方式连接在一根总线上
      • 载波监听:在发送数据之前,计算机先检测总线上是否有其他计算机在发送数据。如果有,则暂时不要发送数据,以免发生碰撞。
        • 总线上并没有什么“载波”。因此,“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
        • :即便通过“载波监听”技术检测出总线上没有信号,但是开始发送数据后也有可能和迎面而来的信号在链路上发生碰撞。因此,需要引入“碰撞检测”技术。

    • 碰撞检测(冲突检测):计算机一边发送数据一边检测信道上的信号电压大小
      • 工作原理:当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加)。在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
      • 工作过程:当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。一旦发现总线上出现了碰撞,就要立即停止发送,以免继续浪费网络资源,然后等待一段随机时间再次发送

    • :A最长需要2倍单程传播时延的时间,才能检测到与B的发送产生了冲突

    • 1:CSMA/CD就是广播信道使用的数据链路层协议,凡是使用CSMA/CD协议的网络就是以太网
    • 2:使用CSMA/CD协议的以太网不可能进行全双工通信只能进行半双工通信(双向交替通信)
    • 3:由于点到点链路不用冲突检测,因此没必要使用CSMA/CD协议。

    3.3.4.1 碰撞检测:以太网最短帧

    • 问题引入在数据发送期间,计算机A没有收到碰撞信号,60比特的数据全部成功发送完毕。但是,在数据传输期间,计算机A的信号和计算机B的信号在链路C处发生了碰撞。此时,当碰撞信号返回到A时,A无法判断该碰撞信号是哪一台计算机导致的,即A无法得知自己发送的帧是否发生了碰撞。因此,为了确保能够检测到发送的帧在总线上是否产生冲突,以太网的帧不能太短(否则就有可能检测不到自己发送的帧产生了冲突)。

    • 以太网最短帧带宽 * 2倍单程传播时延
      • 示例:以太网设计最大端到端长度为5km(实际上的以太网覆盖范围远远没有这么大),单程传播时延为大约为25.6μs ,往返传播时延为51.2μs ,10M标准以太网最小帧为:

    • 分析:如果以太网发送数据帧的前64字节没有检测出冲突,则后面发送的数据就一定不会发生冲突。换句话说,如果发生碰撞,就一定在发送前64字节之内。由于一旦检测出冲突就立即终止发送,这时发送的数据一定小于64字节,因此凡是长度小于64字节的帧都是由于冲突而异常终止的无效帧,只要收到了这种无效帧,就应当立即将其终止。
    • :以太网的带宽越大,所需的最短帧就越大

    3.3.4.2 碰撞检测:冲突解决方法(退避算法)

            计算机要想知道发送的帧在链路上是否发生碰撞,必须等待 (争用期)。以太网使用截断二进制指数退避(truncated binary exponential backoff)算法来解决碰撞问题。

    • 确定基本退避时间:争用期2τ 。以太网把争用期定为51.2μs 。对于10Mb/s以太网,在争用期内可发送512bit,即64字节。也可以说争用期是512比特时间。1比特时间就是发送1比特所需的时间。所以这种时间单位与数据率密切相关。
    • 确定随机等待时间r ∙2τr 倍的争用期)
      • 重传的次数越多,随机数r 的可选择范围就越多,发生碰撞的概率就越低
      • r :从离散的整数集合[0,1,⋯,2^k-1] 中随机选取
      • k
        • 当重传次数不超过10时,参数k 等于重传次数
        • 当重传次数超过10时,参数k 一直等于10(不再增大)

    k=Min[重传次数,10]

    • 注:当重传达16次仍不能成功时(表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。

     3.3.5 CSMA/CD协议:帧格式

            常用的以太网MAC帧格式有如下2种标准:

    • Ethernet V2标准(以太网V2标准):使用最多
    • IEEE802.3标准

            Ethernet V2标准的帧比较简单,由五个字段组成:

    • 前两个字段:目标MAC地址(6个字节)、源MAC地址(6个字节)
    • 第三个字段:类型字段(2个字节)
      • 作用:标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。
      • 0x0800:上层使用的是IP数据报
      • 0x8137:该帧是由Novell IPX发过来的。
    • 第四个字段:数据字段(46~1500字节)
      • 最大传输单元:1500字节
      • 最小传输单元:46字节
        • 最小传输单元  =  64字节(以太网最短帧) - 6字节(目标MAC地址) - 6字节(源MAC地址) - 2字节(类型字段) - 4字节(FCS)
        • 填充操作:当数据字段的长度小于46字节时
          • 发送端的数据链路层:在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节
          • 接收端的数据链路层:根据网络层首部得知IP数据报的长度,从而将填充字节去掉

    • 最后一个字段:帧校验序列FCS(使用CRC检验)(4个字节)

            IEEE802.3标准规定,凡是出现下列情况之一,即视为无效的MAC

    • 情况1:帧的长度不是整数个字节
    • 情况2:使用CRC对收到的帧进行检验,查出有差错
    • 情况3:收到的帧的总长度不在64~1518字节之间   或 数据字段的长度不在46~1500字节之间
    • :对于无效的MAC帧,简单地丢弃,以太网不负责重传丢弃的帧。

    3.3.6 以太网的信道利用率

    • 利用率的定义发送数据的时间整个时间的比例
      • 争用期n∙2τ
      • 发送该帧所需时间T_0(发送端发送第1个比特到最后1个比特所需时间)
      • 该帧传播时延τ (最后1个比特从发送端传输到接收端所需时间)
    • 利用率的计算
      • 有冲突时,信道利用率为:
        • 若想提高信道利用率,则发送时间T0 不能太短。以太网上的计算机争取到一次发送数据的机会不容易,一旦逮到时间发送数据,如果发送时间过短,信道利用率自然就很低。
        • 若想提高信道利用率,则n 最好等于0。换言之,以太网上的各个计算机发送数据不会产生碰撞(这显然已经不是CSMA/CD,而需要一种特殊的调度方法),并且能够非常有效的利用网络的传输资源,即总线一旦空闲就有一个站立即发送数据。

    • 无冲突时,信道利用率为:极限信道利用率(理想情况)
      • 若要想提高极限信道利用率,则公式中的τT0 要尽可能小(即τ 要尽可能小T0 要尽可能大)。
      • ττ以太网网线的长度有关(τ 值要小,以太网网线的长度就不能太长)
      • T0 :带宽一定的情况下,T0帧的长度有关(T0 值要大,以太网的帧不能太短)

    3.4 扩展以太网

    3.4.1 集线器(Hub):一层网络设备

            传统以太网最初是使用粗同轴电缆后来演进到使用比较便宜的细同轴电缆最后发展为使用更便宜和更灵活的双绞线

    • 同轴电缆组网:一旦总线上的某处断开,则所有计算机都不能相互通信(缺少成对的匹配电阻)
    • 集线器组网:1990年IEEE制定出星形以太网10BASE-T的标准802.3i。
      • 数字含义
        • 10:10Mb/s的数据率
        • BASE:连接线上的信号是基带信号
        • T:双绞线
      • 特点1:10BASE-T以太网的通信距离稍短,每个站到集线器的距离不超过100m。
      • 特点2:集线器组网为广播信道(与“同轴电缆组网”类似)
      • 特点3:集线器组成的网络是一个独立的冲突域
      • 特点4:与网线一样,集线器属于一层网络设备(工作在物理层),不具有存储和转发的功能

    • 具有三个接口的集线器:发送数据和接收数据使用不同的物理线

    3.4.1.1 以太网的扩展1:数量上的扩展

    • 实现:使用一个集线器将多个集线器连接起来,从而形成一个更大的以太网(当然也是一个更大的冲突域)。这不仅可以扩展以太网中计算机的数量,还可以扩展以太网的覆盖范围。
    • 示例:使用主干集线器连接教室中集线器,形成一个大的以太网,计算机之间的最大距离可以达到400米。

    3.4.1.2 以太网的扩展2:距离上的扩展

            要是两个集线器的距离超过100米,还可以使用光纤将两个集线器连接起来。集线器之间通过光纤连接,可以将相距几千米的集线器连接起来,需要通过光电转换器,实现光信号和电信号的相互转换。

    3.4.2 网桥(Bridge):二层网络设备

    • 问题引入:使用集线器进行以太网的扩展,会导致冲突域变大。如何降低冲突、优化以太网?

    • 解决方案:引入“网桥”
    • 网桥组网
      • 特点1:网桥组成的网络 一个接口是一个冲突域(将一个大的冲突域划分为多个小的冲突域,冲突域的数量增加,冲突减少)
      • 特点2:网桥属于二层网络设备(工作在数据链路层),具有存储和转发的功能(基于MAC地址转发帧)
      • 特点3:网桥增加了时延(集线器没有时延)
        • 网桥接口收到数据时,需要对数据进行CRC检验
        • 网桥转发数据时,需要查找MAC地址表
        • 网桥接口发送数据时,需要进行CSMA/CD才能将帧发送出去
      • 工作原理
        • 同端通信:当计算机A给计算机B发送数据时,由于集线器1的存在,计算机B、计算机C和网桥E0接口都能接收到信息。但是,由于网桥的存在,其根据MAC地址表查找目标MAC地址的所属接口,发现目标MAC地址MB属于接口E0。因此,网桥不对数据进行转发,即数据不会从接口E1发送出去,计算机D、E和F都不会接收到信息。(同理,计算机D给计算机E发送数据)

    • 异端通信:当计算机A给计算机D发送数据时,由于集线器1的存在,计算机B、计算机C和网桥E0接口都能接收到信息。进一步地,由于网桥的存在,其根据MAC地址表查找目标MAC地址的所属接口,发现目标MAC地址MD属于接口E1。因此,网桥对数据进行转发,即数据从接口E1发送出去,计算机D、E和F都会接收到信息。

            使用网桥优化以太网,对于网络中的计算机是没有感觉的,也就是以太网中的计算机是不知道网络中有网桥存在,也不需要网络管理员配置网桥的MAC地址表,因此我们称网桥是透明桥接。 

    • 网桥MAC地址表的自动构造:网桥接入以太网时,MAC地址表是空的。网桥会在计算机通信过程中,自动构建MAC地址表,这称为“自学习”。
      • 自学习:网桥接口收到一个帧,就要检查MAC地址表中与收到的帧源MAC地址有无匹配的项目
        • 有匹配MAC地址:更新原有的项目
        • 没有匹配MAC地址:在MAC地址表中添加该接口和该帧的源MAC地址对应关系,以及进入接口的时间
      • 转发帧:网桥接口收到一个帧,就要检查MAC地址表中与收到的帧目标MAC地址 有无匹配的项目
        • 有匹配MAC地址:将该帧转发到对应的端口
        • 没有匹配MAC地址:将该帧转发到全部端口(接收端口除外)
      • 注:MAC地址表并不是永恒不变的,比如A、B在某一时间内不通信,则会删除A以及B的MAC地址和接口对应关系

    3.4.3 交换机(Switch):数据链路层(多接口网桥)

            随着技术的发展,网桥接口增多,网桥的接口就直接连接计算机了,网桥就发展成现在的交换机。

    • 交换机组网:与“集线器组网”进行对比
      • 端口独享带宽:交换机的每个端口独享带宽
        • 10M交换机:每个端口带宽是10M → 24口10M交换机:交换机的总体交换能力是240M
        • 10M集线器:每个端口带宽是2.5M,集线器的总体交换能力是10M(与端口数量无关)
      • 安全:使用交换机组建的网络比集线器安全
        • 计算机A计算机B发送的帧,以及计算机D计算机C发送的帧,交换机根据MAC地址表只转发到目标端口,计算机E根本收不到其他计算机的通信的数字信号(即便安装了抓包工具也没用)。
      • 全双工通信:交换机接口和计算机直接相连,计算机和交换机之间的链路可以使用全双工通信。
      • 全双工不再使用CSMA/CD协议:交换机接口和计算机直接相连接,使用全双工通信,数据链路层就不需要使用CSMA/CD协议,但我们还是称交换机组建的网络是以太网,是因为帧格式和以太网一样。
      • 接口可以工作在不同的速率:每个端口都具有存储和转发的功能(有缓存队列)
      • 广播帧会转发到全部端口:交换机组成的网络是一个广播域

    • :交换机是市场名称,其前身是网桥,可视为多端口网桥。

    3.4.5 生成树协议

    • 问题引入1:一般情况下,组网拓扑如下图所示,但是存在一定的缺陷(单点故障会导致网络中断)。
      • 缺陷1:一旦汇聚层交换机出现故障,不同教室的计算机之间将无法通信,并且所有的计算机都将无法访问Internet上网。(本节重点研究)
      • 缺点2:一旦路由器出现故障,则所有的计算机都将无法访问Internet上网。(本节不研究)

    • 解决方案1:设计“高可用/健壮性”的网络拓扑结构(添加汇聚层交换机、路由器)à 避免单点故障导致网络中断

    • 问题引入2:如何设计网络,既能实现网络的高可用又不会造成广播风暴
      • 广播风暴:交换机组网是一个广播域,当某台计算机发送广播包(目标MAC地址为全1)时,广播数据会在环中来回转圈(大环、小环、正向、逆向),导致交换机的灯狂闪,计算机正常上网的流量都没有机会转发。
      • 交换机的MAC地址表快速翻转(消耗交换机的性能)

    解决方案2:生成树协议(Spanning Tree Protocol, STP)

    • 目的:防止交换机冗余链路产生的环路,确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴大量占用交换机的资源。(在提高网络可靠性的同时,又避免环路带来的问题)
    • Step1:选举“根网桥/根交换机”、“非根交换机”
      • 对象:所有的交换机
      • 依据:网桥ID(BID)最小者当选
        • 优先级:网络管理员可以自行配置网桥的优先级
        • 基本MAC地址:交换机除了每个端口的MAC地址外,还有一个基本MAC地址(即VLAN1的MAC地址)

    • Step2:选举“根端口”(Root Port, RP)
      • 对象:每一个非根交换机(有且仅有1个)
      • 依据
        • BPRU接受端口到根交换机的路径成本最小(路径成本与链路带宽有关,本例中使用“1Gbit/s”和“100Mbit/s”两种链路带宽)→ 可选举出交换机B、交换机C的根端口
        • 对端的网桥ID最小  →  可选举出交换机D的根端口
        • 对端的端口ID最小  →  可选举出交换机E的根端口

    • Step3:选举“指定端口”(Designated Port, DP)、阻塞“备用端口/剩余端口”(Alternative Port, AP)
      • 对象:每一个网段(有且仅有1个) → 一条网线就是一个网段
      • 依据
        • 根交换机的所有端口都是指定端口
        • 根端口的对端端口一定是指定端口
        • BPDU转发端口到根交换机的路径成本最小
        • 本端的网桥ID最小

    • 小结:形成生成树的过程,就是对交换机及其端口进行分类的过程
      • 交换机:根交换机、非根交换机
      • 端口:根端口、指定端口、备用端口

    练习题

  • 相关阅读:
    推进数据要素化,数据云为何是“加速器”?
    开源许可证概述:GNU, BSD, Apache, MPL, 和 MIT
    记录一下Kubernetes的快速入门
    Golang操作RabbitMQ详细教程
    uniapp封装http请求
    学习笔记-接口测试(postman、jmeter)
    GBase8s 汉字转拼音函数
    2015年408真题复盘
    下沉市场投资热度提升 7天酒店打造酒店投资“极致性价比”
    携号转网查询易语言代码
  • 原文地址:https://blog.csdn.net/weixin_39549734/article/details/133913056