计算机网络复习-链路层/以太网

博客是在notion上编辑然后转成Markdown发到博客园的,notion上可能会有对这篇博客的持续更新,这是我的这篇notion笔记的源地址,感谢观看。

链路层

概述

链路层,这个节点到下个节点的服务。

可能提供的服务:成帧、链路接入、可靠交付、流量控制、差错检测、差错纠正,半双工全双工。

链路层在网卡(网络接口卡,又称网络适配器)实现,其功能是由硬件+软件实现的。

差错纠正

  • 奇偶校验

    一段信息中附加一个bit,使得这段信息的bit位为1的数量是奇数(偶数),就成为奇(偶)校验。
    对于偶数个差错,奇偶校验就不能检测出来了,因此可靠性不高。
    除了一维的,还有二维的奇偶校验,可以纠正单个bit的差错。

  • 检验和校验

    校验和是将数据按固定bit数划分,然后逐个全部相加,相加时最高位进位要被回卷(如101+100 = 010,最高位的进位加到结果中),然后结果取反码,就是校验和。接收方将所有的固定位相加,包括检验和一起,如果没有差错,显然得到的结果为全1。

  • 循环冗余检测CRC

    应用的最广泛的差错检测技术,又称多项式编码。CRC的数学公式是

    \[D·2^r xor R = nG \]

    D表示被发送的数据,R是一个CRC比特,r表示R的位数,xor是按位异或。收发双发约定一个r+1比特模式,称为生成多项式G。
    R是附加到D的用于检验的信息,关键是计算R,可以通过D·2^r对G进行模2运算得到。
    G是由标准设定的,不同的协议中选不同位数的G。

    每个CRC标准都能检测小于r+1个比特的突发错误,也能检测任何多个奇数比特的差错。

多路访问协议

广播链路中,协调多个节点对一个共享链路的访问。就是要避免一个人发言的时候其他人要安静。

三类:

  • 信道划分协议

    即多路复用,时分多路复用TDM和频分多路复用FDM在此应用。但是效率太低很少应用。还有一种码分多址CDMA技术,合适的编码可以使得所有节点同时传输而不受影响,在军用系统和民用蜂窝电话中有广泛应用。

  • 随机接入协议

    这种协议,所有的节点都认为它是唯一在使用信道的节点,全力输出。但是实际可能产生碰撞,节点检测到碰撞后等待一个随机延时重发分组。介绍两种最常见的随机接入协议:

    1. 时隙ALOHA

      假设:所有帧都是L比特,每个时隙刚好能发一帧。所有节点都是同步的,时间被分块。发生碰撞后该时隙内所有节点获知碰撞事件。
      发生碰撞后,发送失败的节点在之后的时隙以p的概率重发帧,每个节点什么时候重发是独立的。


      但这种模式,效率很低。计算得最大效率为0.37,当多个节点传输帧时,有37%时隙成功发送,37%时隙空闲未被使用,26%发生碰撞。

    2. ALOHA

      纯aloha不需要节点同步,从上层收到帧后立刻发出,发送碰撞后,等待一个帧传输时间后以概率p传输。省了节点同步的麻烦,但是效率更低,只有时隙aloha的一半。

    3. CSMA

      CSMA称为载波侦听多路访问协议。节点一直监听信道有没有发生冲突,由于信号传输需要一定时间,所以人有可能产生冲突。

      如下图,B先发送,C过一会也发送,C很快就发现冲突,B过一会也发现冲突。

      CSMA又分为不带碰撞检测的CSMA和带碰撞检测的CSMA/CD(collision detection).上图是普通CSMA,发生碰撞后仍在发送数据。

  • 轮流协议

    使得链路利用率更高,减少冲突。

    1. 轮询协议:某个节点作为主节点,由主节点通知其他节点传输
    2. 令牌传递协议:通过依次传递的令牌进行轮流传输

    第二代局域网技术(已过时)就采用令牌传递协议。

链路层编址

链路层还有一个Mac地址,如链路层一样,Mac地址是网卡的地址。世界上的网卡都有唯一的地址。Mac地址又称LAN地址或物理地址。长度为6字节,48位。通常用每16位的16进制表示,中间用-隔开。

Mac地址,为什么还需要mac地址,ip地址相当于邮政编码,搬家后是会变的,mac地址相当于身份证号,永远唯一不变。

有了IP 地址,为什么还要用 MAC 地址?

主要原因:保持各层独立,链路层可能用于其他协议,而不是仅仅在互联网。

  • ARP地址解析协议

    帧发出时,还需要知道它的目的Mac地址,通过ARP协议获得。

    ARP是在一个子网内的协议,只能查询一个子网内的Mac地址,这也很容易理解,链路层就是节点到节点的服务,不会跨越网络。

    每个节点都有一个ARP表,记录ip-mac对应关系,每条记录一个TTL(通常是20分钟)就会被删除。当ARP表中没有记录时,发送方通过局域网内广播ARP分组,子网中的路由器或主机都收到并对比ip地址,正确的节点直接返回给广播的节点,源节点更新子集的ARP表,这样就获得了Mac地址。

以太网

以太网是一种局域网技术,现在的局域网普遍采用以太网,其他技术如令牌环、FDDI、ATM逐渐被淘汰。

  • 以太网帧

    data部分是封装来自网络层的数据。可封装数据最大1500字节,超了就要分段,最小46字节,小了就会填充到46字节。
    Preamble是8字节的前同步码,用于唤醒接受网卡(适配器),并实现时钟同步。接着是目的和源Mac地址。还有2字节的Type类型字段,以太网可以复用多种上层(网络层)协议,可以是ip层也可是其他的协议,类型字段用来标记上层协议类型,以便接收端多路分解。最后有4字节的CRC校验码。

    • 曼彻斯特编码

      又叫同步码,每一个时钟周期都会产生一次跳变,可以用来同步时钟。以太网就采用这种编码方式。

  • CSMA/CD

    以太网的多路访问协议采用CSMA/CD避免冲突的载波监听协议。当有信号时不会传输,产生冲突后立刻停止传输。

    监听是通过适配器侦听线路上的电压实现的。

    传输过程是这样的:

    1. 适配器从网络层获得一个数据,封装成帧,并放入适配器缓存区;
    2. 监听信道,在在96bit时间内一直空闲,则认为信道闲,开始发送帧
    3. 发送时也监听,一旦检测到其他适配器的信号能量,停止发送,并发送一个48bit的阻塞信号;(为什么要发48bit阻塞信号?因为可能从发送到检测到冲突的时间很短,才发送了几个bit信号,这样信号很弱,其他的适配器不能检测到)
    4. 发送完阻塞信号后,进入一个指数后退。假设传输的帧是第n次碰撞,则从{0,1,2,...,2^m-1}中选一个值为K,其中m=min(n,10),然后等待K*512个bit时间后再重复第2步。没多一次碰撞,等待的时间将可能呈指数上升,所以称为指数后退算法。
  • 以太网技术

    以太网是由Metcalfe发明的,早期以太网是总线拓扑结构。如下图:

    然后是基于集线器的星型拓扑结构:

    上面两种都是需要MAC协议,因为信号都是广播的。而以太网发展到现在,成了基于交换机的星型拓扑,交换机会将信号发送到它应该去的接口,而不是广播了,CSMA在以太网失去了地位。

    技术不断进步,很多东西都在改变,以太网中唯一不变的就是它的帧格式了。

交换机

交换机对节点是透明的。

交换机维护一个交换机表,是目的Mac地址和输出端口的对应,当某个端口传来帧,查表就知道往哪个端口输出。如果表中没有记录,则广播该帧。表中的记录有生存时间(术语叫老化期)。
交换机是自学习的,初始时交换表为空,没收到一个端口传来的帧,就能获取到源Mac地址,这样就能在表中添加一项。所以交换机不需要管理员干预,是即插即用的设备。

  • 特点

    1. 消除了碰撞
      交换机和节点之间是双工的,且交换机不会再同一链路上同时传输多个帧,保证了没有碰撞。
    2. 连接异质链路
      交换机将链路进行了隔离,所以可以连接异质的链路。
    3. 拓扑结构限定为一颗生成树
      为了防止形成交换回路,防止广播帧的循环,采用生成树的拓扑结构。即不会成环,如果实际物理连接成环,在传输时某些链路会被阻塞,以断开环。(这个又叫STP生成树协议)
  • 对比路由器

    工作层次不同:链路层;网络层。
    转发依据的地址不同;Mac地址;ip地址。
    功能不同:交换机一般用于小的网络,组建局域网;路由器用于局域网之间的互连。

PPP点对点协议

同上述的以太网协议一样,PPP协议也是一种链路层协议,不过节点和节点之间通过一段“直接”的物理链路相连。直接之所以引号,是因为PPP从链路层的角度看,将节点两端的连接看成简单的一根线路连接,而实际可能中间经过了不同的链路,甚至有交换机。所以这是一种抽象,PPP对底层实现是视而不见的。

  • 帧结构

    由于是物理直连,不牵涉交换,所以地址其实是不必要的,PPP协议中也是设为全1,此外控制字段也是固定的值。协议规范觉得以后可能会用到,并没有将这两个字段删除,但是允许传输时省略它们以节省资源。

posted @ 2020-10-29 11:19  Glaci  阅读(513)  评论(0编辑  收藏  举报