网络2——数据链路层

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

数据链路层协议有许多种,但有三个基本问题是共同的。这三个问题是:封装成帧,透明传输,差错检测。下面分别讨论一下。

封装成帧:封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。  

透明传输:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。


差错检测:循环冗余校验码(CRC) :数据链路层应用最普遍最有效的检错码

基本原理: 已知一个被传输数据块DATA, k位长,已知除数P , n+1位长, 发送方要产生一个n位长的检错码FCS.把检错码FCS加到数据DATA后面,组成一个包含有k+n的发送帧T,使T能被已知数P整除.发送帧T.当接收器把接收到的帧T’除以P,若能整除,则认为T’无差错。
模二运算: 法则1:加法不进位,减法不借位;加减法等价于逐位异或运算:
                    1011                    1011
                  - 0101          XOR  0101
                    1110                    1110
        法则2:比特序列乘以2的k次幂,就是将比特序列左移k个位置,其后逐位填零
举例:已知:被传输数据块DATA,包含有k位;P是发送方和接受方均已知的除数,它的第一位和最后一位必须是1,共n+1位,计算DATA的CRC码:
1.将DATA乘以2的n次幂,即将DATA左移n位添零得到DATA0;(除数P是n+1位)
2.用DATA0除以P,采用模二运算,得到的n位余数R就是DATA的CRC码
3.传送的最终数据DATAT= DATA0+ R,它必被P整除
收到 DATA T =DATA0 + R ’: 如果DATAT’采用模二运算仍然能够被P整除,则认为没有发生传输差错

CRC的生成多项式描述方法:将除数P看成是只有0和1两个系数的一个多项式的系数序列。n位除数P对应一个n-1次多项式。对应关系如:已知除数P为“1010001”,则生成多项式G(x)描述为6次多项式:x6+x4+1

PPP协议:
组成:PPP 协议有三个组成部分
一个将 IP 数据报封装到串行链路的方法。
链路控制协议 LCP (Link Control Protocol)。
网络控制协议 NCP (Network Control Protocol)   
PPP协议的帧格式:

PPP 有一个 2 个字节的协议字段:
当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。
若为 0xC021, 则信息字段是 PPP 链路控制数据。 (lcp协议的数据,也是从这里发送。但是在ethereal中抓不到。因为抓的是在这层上面的包)
若为 0x8021,则表示这是网络控制数据。  (ncp的数据)
PPP的透明传输问题:当 PPP 用在异步传输时,就使用一种特殊的字符填充法。

在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除,


2、使用广播信道的数据链路层

局域网:

802.1 –局域网概述、体系结构、网络管理等
802.2 - 逻辑链路控制LLC子层
802.3 - CSMA/CD(以太网)介质访问控制标准和物理层规范
              Ethernet 成为IEEE 802.3 标准(1985)
              IEEE 802.3u Fast Ethernet 标准(1995)
              IEEE 802.3z Gigabit Ethernet 标准(1998)

LLC层的主要作用:保证站点之间数据传输的正确性,
MAC层的主要作用:解决多个站点对共享信道的访问问题
CSMA/CD协议:载波监听多点接入/碰撞检测  
实现:
先听后发:载波侦听技术
边发边听:碰撞检测技术
冲突停止:发送人为干扰信号
延迟重发:截断二进制指数退避算法

冲突窗口:在一个局域网中,A、B两结点是距离最远的两点,相距D,信号传播速度V,A在发送数据后最多在W时间后可以检测出所有可能的冲突:W=2D/V,W被称为冲突窗口(争用期);A、B两结点是距离最远的两点,A在冲突窗口内可以检测到所有可能的冲突,那么其它点当然可以在冲突窗口内检测到。 局域网中的所有结点在冲突窗口W时间内可以检测到所有可能的冲突,若在冲突窗口内没有检测到冲突, 则可以确认自己竞争到了总线的使用权,不再会与其他站点发生冲突
所以:对于 10 Mb/s 以太网,取 51.2 微秒(512bit / 10Mb/s=51.2微秒) 为争用期的长度。在争用期内可发送512 bit,即 64 字节
(512bit / 8)。10 Mb/s以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
  
如果发生冲突,就一定是在发送的前 64 字节之内。由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。10 Mb/s以太网规定了最短有效帧长为 64 字节, 凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。

如果发送节点检测到冲突,则停止发送数据,并发出一个4字节或6字节的阻塞信号来加强冲突,增加编码违例的位数,使其他站点快速检测到。然后等待随机长的时间后再重新侦听信道.

MAC帧的格式:最常用的 MAC 帧是以太网 V2 的格式。

目的地址,源地址各占6个字节,类型占2个字节,标识上层是什么协议(方便把收到的mac帧的数据交给上层协议),然后是46-1500字节之间大小的数据(46是这么来的,以64为冲突窗口的大小可以知道,一个正常帧的大小应该大于等于64字节,然后64-6-6-2-4=46字节)。最后四个字节的fcs是叫 帧检验序列。

需要指出的是,以太网v2的mac帧格式中,其首部并没有一个帧长度(或数据长度)的字段。那么mac子层有怎样知道从接受到的以太网帧中取出多少字节的数据交付给上一层呢?这个46-1500之间的大小到底是多少呢?这点有曼彻斯特编码可以知道,发送码元的时候会有电平的跳变。发送完一个帧后,我们就不发送了,这样我们从结束位置往前数4个就能确定字段的结束位置了。

当需要发送的数据量小于46个字节时,mac子层会在数据字段的后面加入一个整数字节的填充字段,保证 以太网帧长度不小于64字节。但是又一个问题出现了,我们把接受到的信息剥去首部和尾部的信息后交个ip层,那么ip层怎么识别的填充字段呢?哈哈,原来,ip层首部有一个总长度字段,比如我们ip层的总长度字段值为42,那么mac子层把46字节的数据交个上层的时候,ip就知道了后4个字节时填充的字节,丢弃即可。

最前面的8个字节时用来同步时钟用的,不是很重要,了解即可。


交换机:

    (1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;不断学习的一个过程。

 (2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
 (3) 如表中有与这目的MAC地址对应的端口,把数据包 直接复制到这端口上
 (4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
   不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。

原理

  从二层交换机的工作原理可以推知以下三点:

  (1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换机就可以实现线速交换;
  (2) 学习端口连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:一为BUFFER RAM,一为MAC表项数值),地址表大小影响交换机的接入容量;
  (3) 还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。由于各个厂家采用ASIC不同,直接影响产品性能。
  以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型时注意比较


广播风暴的原理:

















你可能感兴趣的:(ccnp网络基础)