【计算机网络】个人学习笔记——第三章 数据链路层:封装成帧&差错检测&透明传输&CSMA/CD&PPP协议&MAC帧&CRC校验

第三章 数据链路层

1、链路层的共同问题

  • 数据链路层使用的信道

    • 一对一:点对点信道(PPP协议)
    • 一对多:广播信道(CSMA/CD协议)
  • 数据链路层的三个基本问题(封装成帧、透明传输、差错检测)【重点】

    • 封装成帧
      在这里插入图片描述

      帧的封装就是在一段数据的前后添加上首部和尾部,帧就是有着特定首部和尾部的一段数据。

      • 首部和尾部的作用
        首部和尾部包含了控制信息以供系统识别,并以此来确定帧的界限(即进行帧定界)。帧不是无限长度的,每种链路层协议都会规定一个MTU(最大传输单元),帧的数据部分要小于或等于MTU。这个MTU的值一般是1500

      • 帧界定符
        在这里插入图片描述

        当数据是ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。转换成二进制时,两者前四位为零,后四位表示十进制的1和4,即0001和0100

        • 帧开始符SOH(00000001)
        • 帧结束符EOT(00000100)
    • 透明传输

      透明传输不是字面意思,是指传输的时候不会错误的识别到边界而导致部分数据被丢弃,这里的边界就是上面提到的帧定界符(特别是EOT)。
      对于计算机而言,二进制状态下,它无法分辨00000001和00000100是真的用于定界,还是是数据的一部分,就跟我们走路时不知道前面是路还是一面透明玻璃墙一样,玻璃墙实际存在但好像又看不见,这就是“透明”的含义。数据部分出现的帧定界符实际上对数据传输是有阻碍的,但是数据自己不知道,数据看不见链路层妨碍他传输的东西,或者说链路层对于数据而言是透明的。透明传输数据指的就是无论什么样的比特组合都不会被意外丢弃,都能原封不动,不出差错的通过。
      透明传输的解决方案——字符填充法(字节填充法)

      • 字符填充法(字节填充法)
        填充什么呢,填充一个转义字符ESC(00011011,十六进制为1B)。原理:如果数据中出现了SOH和EOT时,在其前面插入转义字符ESC,而当遇到转义字符ESC本身的时候也是一样再补一个转义字符。在接收方的数据链路层要把数据发往网络层前会先删除插入在前面的ESC转义字符。
        在这里插入图片描述
    • 差错检测(重点,会考计算的,CRC校验码)

    比特在传输过程中可能会产生差错,1和0之间可能会产生互换,这就是比特差错。出差错的比特占传输的总比特数的比例称为误码率,误码率和信噪比有很大关系。
    解决方案——CRC循环冗余检验法
    在这里插入图片描述
    v

    在这里插入图片描述

    • 原理:根据生成多项式最高次数给要传输的数据补上相应个数的0,用生成多项式与补0后的数据串进行模二除法(异或运算,同0异1)得到一串FCS帧检验序列(也叫冗余码),接收方拿着接收到的数据再和FCS异或一次,如果余数为0则没有差错,反之出现差错(管你听没听懂,看例题!)
      • 例1:假设有CRC生成多项式G(x)=x4+x3+1,求数据10110011的帧检验序列
        在这里插入图片描述

      • 例2:假设原始数据为1010,生成多项式是G(X) = X^3 + X + 1,求接收方收到的数据
        在这里插入图片描述
        除了比特差错以外,帧在传输过程中还可能出现以下情况

        • 帧丢失:比如发送ABC只收到AC
        • 帧重复:比如发送ABC却收到AABBCC
        • 帧失序:比如发送ABC却收到CBA
          这三张情况并不是比特差错,但确确实实是出现了传输差错,所以我们必须明确的一点是:“没有比特差错”并不等于“没有传输差错”,仅做到无比特差错的传输仍然是不可靠的。CRC能确保不出现比特差错,但并不能确保可靠传输。

2、PPP点对点协议及其透明传输方法(要会透明传输)

  • PPP协议以及其组成

    • PPP帧的格式
      在这里插入图片描述

    • PPP协议
      互联网用户通常都需要连接到某个ISP(互联网服务提供商)才能接入到互联网,PPP协议就是用户计算机和ISP进行通信时所使用的链路层协议。PPP点对点协议是目前使用最广泛的链路层协议。

    • PPP协议应该满足的要求(了解即可)

      • 简单:不需要纠错,不需要序号,不需要流量控制。简单是首要需求
      • 封装成帧:以特殊的字符作为帧定界符(0x7E)
      • 透明传输(后面重点讲)
      • 多种网络层协议:在同一物理链路上能支持多种网络层协议的运行
      • 多种类型链路:能在多种类型的链路上运行,串行/并行,同步/异步,高速/低速,动态/静态,电学链路/光学链路
      • 差错检测:对接收端收到的帧进行检测并立即丢弃差错的帧
      • 检测连接状态:自动检测链路是否处于正常工作状态
      • 最大传输单元(MTU):数据传输单元规定的是载荷数据的最大长度,并不是帧的最大长度,最大1500
      • 网络层地址协商:能够使通信的两个网络层实体彼此通过协商进而知道对方的网络层地址
      • 数据压缩协商:要提供一种方法协商使用数据压缩算法
    • PPP协议的组成

      • 一个能将IP数据报封装到串行链路的方法,IP数据报在PPP帧中就是其信息部分,这个不分的长度受到最大传输单元MTU的限制
      • 一个用来建立、配置和设置数据链路的链路控制协议LCP
      • 一套网络控制协议NCP,这一套控制协议中的每一个协议都对应支持不同的网络层协议
    • PPP协议实现透明传输的方式(重点)

      • PPP协议能够支持面向字符的异步传输模式,也能够支持面向比特的同步传输模式,这两种传输模式分别使用两种不同的透明传输方法

      • 异步传输(面向字符)——字节填充法
        PPP协议规定其帧定界符为“0x7E”,规定填充符为“0x7D”,填充规则和前面讲到的透明传输方法有些不同,是PPP协议特有的。(“0x”表示后面的数字是16进制写法)
        PPP协议规定:

        • 出现7E,换成7D5E
        • 出现7D,换成7D5D
        • 小于0x20的,是ASCII控制字符,要换成7D+该字符与0x20异或的结果
          • 例如,出现0x03,换成0x7D 0x23
          • 例如,出现0x1E,换成0x7D 0x3E
          • 如果这个实在不知道怎么异或的,就简单相加就好了,20加03就是0x23,20加1E就是0x3E,正常做法的异或过程如下
            在这里插入图片描述
      • 同步传输(面向比特)——零比特填充法
        每5个连续的1前插入一个0


3、局域网与CSMA/CD协议

  • 局域网

    • 局域网的主要特点是:网络为一个单位所有,地理范围和站点(接入的主机数)均有限。
    • 局域网技术采用的是广播信道,具有广播功能,从一个站点就能访问去全网,提高了通信系统的可靠性、可用性和生存性。
    • 与广域网相比,局域网的优势有哪些:
      • 较高数据率
      • 较低的时延和误码率
    • 计算机与外界局域网的连接是通过网络适配器进行的,也就是俗称的网卡。(常考:网络适配器工作在数据链路层)
    • 局域网常用的拓扑结构(以太网目前用的最多的是多级星型拓扑和总线拓扑)
      在这里插入图片描述
  • 以太网(Ethernet)技术及特点

    • 以太网(Ethernet)
      以太网是一种局域网技术/协议,是属于数据链路层的东西,不要和前面提到的因特网搞混了。 现在以太网跟局域网基本上可以画等号了,严格上来说以太网指的是满足EthernetV2协议的局域网,但是不满足这个协议的局域网现在基本没有,所以提到以太网就理解为局域网即可。

    • 以太网的通信特点

      • 是无连接的,即不必先建立连接就可以直接发送数据。适配器发送的数据不需要编号,也不需要发回确认,以太网提供的服务是尽最大努力交付(即不保证可靠传输)

      • 采用曼彻斯特编码(计算题会考)
        在这里插入图片描述

        • 例题:数据率为10mbit/s的以太网在物理线路上的码元传输速率是多少?
          首先明确,数据率=波特率(码元传输速率)x单码元信息承载量,二进制码元信息承载量是1bit,也就是说对于基带信号10mbit/s的数据率就要每秒10m个码元,又由于以太网之间的数据传输是采用曼彻斯特编码的,也就是每个原来的码元要用两次电平来表示,最终编码后经由网络适配器发出去的码元就要乘以2,也就是20m个码元。
          码元是什么,是单位时间内的一个信号波形,也就是一个电平,编码之后电平会发生改变的,所以也就要对应翻倍。如下图,经过曼彻斯特编码以后要两个电平才能表示一个bit,所以所需的码元数量就增加啦。
          在这里插入图片描述
    • 局域网的数据链路层
      在这里插入图片描述

    为了使数据链路层能够更好的适应多种局域网标准,IEEE将局域网的数据链路层划分成两个子层:LLC逻辑链路控制层,MAC媒体接入控制层
    - LLC逻辑链路控制层:负责识别网络协议,然后对它们进行封装。LLC报头告诉数据链路层接收到一个帧时应当对数据包作何处理。另外,LLC子层也负责向上对网络层提供服务:无确认无连接、面向连接、高速传送
    - MAC媒体接入控制层

    • 以太网规定的最小帧间隔:9.6us(相当于96比特时间)
  • CSMA/CD的含义

    • CSMA/CD:载波监听多点接入/碰撞检测协议
    • CS:载波监听,每一个站点在发送数据之前以及发送数据时都要时刻对信道进行监听,检查信道上是否有其他计算机在发送数据
    • MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上(总线型网络)
    • CD:碰撞检测,一边发送数据,一边监听信道,使用CSMA/CD的以太网只能进行半双工通信
  • CSMA/CD的工作原理(要理解)

发送数据前先监听信道是否空闲,若空闲则立即发送数据,否则进行等待一段时间直到信道中的信息传输结束后再发送。若上一段信息发送结束后,同时有两个或两个以上的结点都要发送数据,那么就判定为冲突,若判定为冲突则立即停止发送数据,等待一段随机时间再重新尝试。
一句话:先听后发,边发边听,冲突急停,随机时间后重发

  • CSMA/CD解决碰撞/冲突的措施

    • 随机退避(截断二进制指数退避/动态退避):退避一段随机时间停止发送数据,而不是在碰撞后立即重传,碰撞后立即重传只会导致接连的碰撞
    • 重传:不是无限制的重传,重传到达16次就会丢弃数据并向上报错
  • 截断二进制指数退避算法(要会算随机数取值范围)

    • 争用期2T:首先确定基本退避时间,也就是争用期——2倍单程端到端传播时延,记作2T
    • 重传次数K:确定参数K,当重传次数小于10时,K=重传次数;当重传次数大于10时,K永远为10.。但重传次数不是无止境的,如果达到16,则数据包会被丢弃。
    • 取退避随机数R:从整数集合[0,2^K-1]中选取一个随机数R
    • 确定重传时间:退避重传时间就是Rx2T
    • 例题:在以太网的二进制指数退避算法中,碰撞11次后随机数R的选择范围是多少?
      当碰撞次数11>10时,K=10,随机数R取值范围是[0,2^10-1]也就是[0,1023]
  • 冲突域和广播域

    • 冲突域:指的是共享同一物理信道的设备范围,在此范围一定时间内只能有一台主机发送数据。如果两个主机同时发送数据,则会发生冲突/碰撞。
    • 广播域:指的是如果一台主机发送了一个广播信号,那么能收到这个广播数据的设备范围成为一个广播域。
    • 隔离的概念:冲突域和广播域都是能够被隔离的,隔离指的是采用某些手段加以管理,使网络具有更好的性能,更高效,更可靠。
      • 隔离冲突域:指的是支持多个主机同时通信,例如交换机,交换机(工作在链路层)的每一个接口就是一个独立的冲突域,彼此互不干扰,可以同时通信,提高了通信效率。反观集线器(工作在物理层),集线器是拓展冲突域的,连接到集线器上的设备相当于使用了同一条物理线路,同时只能有一台设备能够发送数据。
      • 隔离广播域:隔离广播域可以使信息只被某些设备所接收到而不是网内的全部主机,提高网络的安全性。
      • 不同设备的隔离效果归纳
        在这里插入图片描述

4、数据链路层的重要设备与组件(要记住哦)

  • 网络适配器

就是前面提到的网卡,计算机要接入局域网都要通过网卡

  • 网桥

网桥采用的是透明转发,即不对帧的源地址和目的地址进行修改或处理,上面写什么就是什么,按照上面写的MAC地址转发出去就算完成了网桥的任务。
另外的,网桥的职责就只是联通两个子网而已,功能职责简单,接口也很少,一般一进一出。
网桥中有一张记录MAC地址对应关系的表,在刚接入网桥的时候,表是空白的,但随着数据的交换,在运行一段时间以后基本上网桥就掌握了两个子网主机和MAC地址的对应关系了,这个过程叫做自学习。网桥的这张MAC表是一对多的。
在这里插入图片描述

  • 交换机

交换机采用的是存储转发(存储转发式交换机)或者快速转发(直通式交换机)策略,通常会对数据帧进行处理和缓存。
以太网交换机其实可以看做是网桥的PLUS版本,他拥有更多的接口,更健全的功能,网桥有的交换机基本上都有。交换机中也有一张MAC地址交换表,但是这张表是一对一的,而网桥中的是一对多的。
在这里插入图片描述

  • 以太网交换机的工作原理是什么,什么是以太网交换机的自学习功能,交换机通过什么来转发数据帧
    • 以太网交换机是工作在数据链路层的设备,用于局域网的构建,能够隔离冲突域。在交换机收到一个数据帧以后,会在帧交换表中查询目的MAC地址对应的接口好,然后通过该接口转发这个帧。
    • 以太网交换机是一种即插即用的设备,具有自学习功能,出厂状态下帧转发表是空白的,随着网络中各主机的通信,以太网交换机会基于自学习算法建立起一张帧交换表。最后借助这张帧转发表来转发数据帧。
      在这里插入图片描述

5、以太网的MAC层——MAC帧 (重点)

  • 以太网MAC地址

    • MAC地址又称为硬件地址/物理地址,用来在以太网中唯一标识一台主机/设备,物理地址不会随着你所处的位置改变而改变,你可以理解为MAC地址是跟你的设备绑定的,只要你设备的网卡不换,MAC地址不管你在哪都还是那一个。关于IP地址和MAC地址的关系在下一章网络层就会提到,这里简单讲一下这两者的关系:IP地址告诉我们一个主机/设备在哪,而路由器告诉我们怎么去到目的地,MAC地址告诉我们具体是哪个主机/设备。
    • MAC地址的格式:MAC地址由6字节16进制数组成,前三位由IEEE的注册管理机构(RA)分配,用于标识设备的生产厂家,后三位由厂家自行指派,用于区分同一厂家生产的不同设备。
  • 依照目的地址划分的三种帧

    • 单播帧(一对一):收到的帧MAC地址与本地MAC地址相同
    • 多播帧(一对多):发送给局域网中部分主机的帧
    • 广播帧(一对全):发送给局域网中全部主机的帧
  • 以太网的MAC帧

    • MAC帧的格式:MAC帧通常由五个字段组成
      • 6字节的目的地址
      • 6字节的源地址
      • 2字节的类型字段(用来标明上一层使用的是什么协议,也就是标识网络层的协议,便于把MAC帧交到对应的协议手上)
      • 数据字段(存放的是上面网络层封装下来的IP数据报):长度为46字节~1500字节,46是最短帧长64减去其他字段的来的,1500是由MTU最大数据传输单元决定的。另外,数据部分不足46的会进行字节的填充,确保最终长度最短有64。
      • 4字节的FCS帧检验序列(使用CRC校验方法)
    • 帧的最短长度:64字节
    • 无效MAC帧
      • 帧的长度不是整数字节
      • FCS检测查出有差错
      • MAC有效长度不在64~1500之间
        对于无效MAC帧,以太网选择直接丢弃,不负责重传丢弃的帧,以太网提供的服务是尽最大可能交付,不是可靠传输。
    • 以太网的透明传输
      • MAC帧在出MAC子层往下走到物理层之前,要在MAC帧前插入8个字节,其中7字节是前同步码,1字节是帧开始定界符。
      • 以太网上传送数据的时候是以帧为单位传输的,帧与帧之间还要求必须有一定距离,所以只要识别到帧开始定界符,后续到达的比特流都是属于这个帧的,因此不需要帧结束定界符,也不需要字节插入来保证透明传输

6、拓展的以太网&其他重要的网络

  • 以太网的拓展

    • 在物理层拓展以太网
      在这里插入图片描述
      在这里插入图片描述

    在物理层拓展的以太网也是一个拓展冲突域的过程,他只是单纯的把几个机子的线连到一块,把几个小网络不做隔离的完全揉到一起,一般借助的就是物理线路来实现的。

    • 在数据链路层拓展以太网
      拓展以太网的最常用方法还是在数据链路层借助以太网交换机实现的。
  • 虚拟局域网VLAN(要了解)

    • 首先要明确的是,局域网是采用广播信道的,也就是整个网络就是一个大的广播域,这上面充斥着很多广播帧。当局域网中主机数量特别多的时候,网中的广播帧也随之大量增多,这会严重影响到网络性能,也有可能会出现广播风暴而导致网络瘫痪的风险。
    • 我们将一个大的局域网划分成多个小的局域网,比如一个公司组建了一个大的局域网,每个部门有他们的小局域网连接到公司上,每个局域网就是一个较小的广播域。
    • 虚拟局域网是一种用户服务,并不是一种新型的局域网
    • 如何划分虚拟局域网?——借助4字节的VLAN标签
      在这里插入图片描述
  • 高速以太网

在这里插入图片描述

  • 48
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值