计算机网络(数据链路层)

·链路(Link)就是从一个结点到相邻结点的一条物理线路,而中间没有任何其他的交换结点。

·数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。

·数据链路层生传输的数据包称为帧,数据链链路层以帧为单位传输和处理数据。

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

三个重要问题

封装成帧

(1)封装成帧是数据链路层给上层交付的协议数据单元添加帧头和帧尾的操作。(目的是为了在链路上以帧为单元传输数据)

·帧头和帧尾中包含重要的控制信息

·帧头和帧尾的作用之一就是帧定界

·不是所有数据链路层协议的帧都包含有帧定界标志,例如mac帧。对于此情况,以太网的数据链路层封装好MAC帧后,物理层会将帧加上前导码。

透明传输

透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

·面向字节的物理链路使用字符填充的方法实现透明传输(在特殊字节前面添加转义字符)。

·面向比特的物理链路使用比特填充的方法实现透明传输(如下在连续的五个比特1后面添加一个比特0,接收时,删去那个0即可)。

·为提高帧的传输速率,应当使帧的数据部分的长度尽可能长一些,但每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU。

差错检测

·实际的通信链路都不是理想的,比特在传输过程中可能会出现差错,称为比特差错

·在一段时间内,传输错误的比特占所传输毕业总数的比率称为误码率。

·使用差错检测码来检测数据在传输过程中是否出现了比特差错,是数据链路层需要解决问题之一。

检测方法:

(1)奇偶校验

·在待发送的数据后面添加一位奇偶校验位,使整个数据中的“1”为奇数或者偶数。然后整体检查比特0或者1的数量是否符合。

·但是若传输过程中产生两位误码,则是检测不出来的如图。

(2)循环冗余校验

·收发方约定好一个生成多项式G(x)

·发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输。

·接收方通过生成多项式来计算收到的数据是否产生了误码。

可靠传输

可靠传输可在各层都可以实现

·使用差错检测技术,接收方的数据链路层就可以检测出帧在传输过程中是否出现了误码。

·如果数据链路层向上提供的是不可靠服务,则直接丢去。

·如果提供的是可靠服务,那么就需要其他措施来确保接收方主机收到被丢弃的正确副本(接收方正确接收到导发送方发送的东西)。

可靠传输机制的基本原理可以应用到计算机网络体系结构的各层协议中

停止-等待协议SW

发送方发送完一个数组分组后,并不能从立刻将该数据分组从缓存中删除,只有在等待接收方的确认分组ACK或者否认分组NAK,若收到ACK,即可继续发送下一个数据分组。若收到NAK,则继续发之前的那个分组,就能实现发送方发什么,接收方就接收到什么。

为了避免发送过程中,接收方一直收不到数据分组,就不会发送ACK或者NAK,发送方一直处于等待的状态,为解决该问题,可以启动一个超时计时器,超过时间,就重传原来的数据分组,这就叫超时重传

为避免分组重复这种传输错误,必须给每个分组编号。对于停止等待协议,由于每发送一恶搞数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组序号不同就可以了,用一个比特来编号就行了(确认分组ACK也需要编号)。

数据链路层一般不会出现ACK分组迟到的情况,因此数据链路层实现停止-等待协议可以不用给ACK分组编号。

停止等待协议的信道利用率

·当往返时延RTT远大于数据帧发送时延Td时(例如卫星链路),信道利用率非常低。

·若出现重传,则对于传送游泳的数据信息来说,信道利用率还要降低。

·为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即回退N帧协议和选择重传协议SR。

回退-N帧协议GBN

停止等待协议信道利用率很低,因此可以采用流水线传输提高信道利用率。

累计确认:接收方不一定要对收到的分组逐个发送确认,而是可以在收到几个数据分组后,对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收。(即使ACK丢失,发送方也可能不必重传)

·回退N帧协议的接收窗口尺寸Wr只能等于1,因此接收方只能按序接收正确到达的数据分组。

·一个数据分组的误码就会导致其后多个数据分组不能被接收方按序接收而丢弃(尽管他们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,对信道资源大大浪费。

·未来进一步提高性能,可设法只重传出现误码的数据分组。因此接收窗口Wr不应再等于1(而大于1),以便接收发那个先收下失序到达但无误码并且序号落在接收窗口的那些数据分组,等到所缺分组收起后再一并送交上层。这就是选择重传协议。(选择重传协议为了使发送方仅仅重传出现差错的分组,接收方不能进行累积确认,需要逐一确认)

选择重传协议SR

与回退N帧协议GBN不同的是,接收窗口的长度和发送窗口一致,这里拿一个例子说明:

如果发送的是序号为0,1,2,3的数据,其中序号1的数据单元在传输过程中丢失,那么接收方只能接受到0,2,3 。接收方接收后返回给发送方序号为0,2,3的ACK分组,发送方收到后,发送窗口只能从原来的0,1,2,3移动到1,2,3,4,同时标记2,3不可重复发送(不标记的话就会超时发送)这个时候发送方没有接受到序号1的 ACK分组,那么1就会超时重传,同时发送窗口此时包含了新的数据单元4。

点对点协议PPP

PPP协议为点对点链路传输跟踪协议数据提供了一个标准方法,主要由以下三部分构成:

·对各种协议数据包的封装方法(封装成帧)

·链路控制协议LCP(用于建立、配置以及测试数据链路的连接)

·一套网络控制协议NCPs(每个协议支持不同的网络层协议)

帧格式:

PPP帧的透明传输

·面向字节的一步链路使用字节填充法(插入转义字符)

·面向比特的同步链路使用比特传输发(零比特填充)

PPP协议的工作状态:

媒体接入控制

共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)

媒体接入控制主要分为静态划分信道和动态划分信道。对于静态的,预先分配好信道,非常不灵活,通常在物理层使用,不在数据链路层使用。

随着技术发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交互式局域网在有线领域已完全取代了共享式局域网,但由于无线信道广播天性,无线局域网仍然使用的是共享媒体技术。

静态划分信道

信道复用

·复用是通信技术中的一个概念。复用就是通过一条物理线路同时传输多路用户的信号。

·网络中传输媒体的容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

信道复用主要有:频分复用FDM,时分复用TDM,波分复用WDM,码分复用CDM

频分复用FDM的所有用户同时占用不同的频带资源并行通信

时分复用TDM的用户在不同时间占用相同的频带宽度

波分复用WDM

码分复用

(1)分配给每个站的码片序列必须各不相同。

(2)分配给每个站的码片序列必须相互正交。

动态接入控制

总线局域网使用协议CSMA/CD

载波监听多址接入/碰撞检测 CSMA/CD(Carrier Sense Multiple Access/Cpllision Detection)

争用期

最小帧长

·以太网规定最小帧长为64字节,即512比特(512比特时间就为争用期)

     如果发送的数据非常少,必须加入一些填充字节,使帧长不小于64字节。

·以太网的最小帧长确保主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞。

     如果在争用期没有检测到碰撞,后续发送的数据就一定不会碰撞。

     如果在争用期内检测到碰撞,就立即终止发送,这时已经发送出去的数据一定小于64字节,因此但凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧

最大帧长

截断二进制指数退避算法

信道利用率

帧发送流程

帧接收流程

无线局域网使用协议CSMA/CA

载波监听多址接入/碰撞避免 CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance)

·由于无线信道的传输条件特殊, 其信号强度的动态范围非常大, 无线网卡上接收到的信号强度往往会小于发送信号的强度,可能相差百万倍,如果要在无线网卡上实现碰撞检测飞机对硬件的要求非常高。

· 即使能够在硬件上局域网的碰撞检测功能, 但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义不大。

·802.11无线局域网 使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能, 而不再实现碰撞检测功能。

·由于不可能避免所有的碰撞,而且无线信道误码率较高,802.11标准还使用数据链路层确认机制(停止等待机制)

·802.11的MAC层标准定义了两种不同的媒体接入控制方式

      分布式协调功能DCF(Distributed Cooordination Function)。在DCF方式下,没有控制中心站点,每个站点使用CSMA/CA协议通过争用信道来争取发送权,这是802.11定义的默认方式。

      点协调功能PCF(Point Coordination Function)。PCF 方式使用集中控制的控制算法,是802.11定义的可选方式, 在实际中较少使用。

帧间间隔IFS

·802.11 标准规定所有的站点必须在持续检测到信道空间一段时间后, 才能发送中,这段时间称为中间间隔IFS。

· 帧间间隔的长短取决于该站点要发送的帧的类型

     高优先级帧需要等待的时间较短,因此可以获得优先发送权

     低优先帧需要等待的时间较长,若某个站的低优先级帧没来得及发送, 而其他站的高优先级帧已发送到信道上,则信道变为忙态,低优先级帧就只能在推迟发送了,这样就减少了碰撞的机会。

·常用的两种帧间间隔:

      短帧间间隔SIFS,是最短的帧间间隔,用来分隔开属于一次对话的各帧,一个站点应当能够在这段时间内从发送切换到接收方式。使用SIFS的帧类型有ACK帧、由过长的 MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。 

     DCF帧间间隔DIFS,它比短帧帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。

  CSMA/CA协议的工作原理 

·当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。

·以下情况必须使用退避算法:

     在发送数据帧之前检测到信道处于忙碌状态时;

     在每一次重传一个数据帧时;

     在每一次成功发送后要连续发送下一个帧时(避免一个站点长时间占用信道 )

CSMA/CA退避算法

例如:

CSMA/CA协议的信道预约和虚拟载波监听

为了尽可能减少碰撞的频率和降低碰撞的影响,802.11标准允许要发送的数据的站点对信道进行预约。

数据帧也能携带通信所需要持续的时间,这称为802.11的虚拟载波监听机制。

由于利用虚拟载波监听机制,站点主要监听到RTS帧,CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要震撼恶搞监听到信道上的信号,因此虚拟载波监听机制能够减少隐蔽站带来的碰撞问题。

MAC地址、IP地址以及ARP协议

·MAC地址是以太网的MAC子层所使用的地址(数据链路层);

·IP地址是TCP/IP体系结构网际层所使用的地址(网际层);

·ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备锁分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址(网际层);

MAC地址

·当多个主机连接到同一信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;

·在每个主机发送的帧中必须携带白哦是发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;

     MAC地址一般被固化在网卡的电可擦可编程只读器EEPROM中因此MAC地址也称为硬件地址

      MAC地址有时也被称为物理地址

·一般情况下用户主机会包含两个网络适配器:有限局域网络适配器(有线网卡)和无线局域网络适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。交换机和路由器往往有更多的网络接口,所有会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络各设备的唯一标识。

IEEE 802 局域网的MAC地址格式

MAC地址的发送顺序

字节发送顺序:第一字节-第六字节

字节内的比特发送顺序:b0-b7

单播MAC地址举例

广播MAC地址举例

多播地址的举例(多播是1对多,广播是1对所有)

判断是否为多播地址的方法:将MAC地址的第一个字节写成8个比特,若该为16进制数不能贝尔整除2,即为多播地址。

IP地址

IP地址属于网络层

网络编号:标识因特网上数以百万计的网络。

主机编号:标识同一网络上不同主机(或路由器各接口)。

同一网络上的各主机和路由器各接口的IP地址的网路号部分应该相同,主机号部分应不相同。

MAC地址不具备区分不同网络的功能。

·如果只是一个单独的网络,不接入因特网,可以只使用MAC地址。如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。

从网络体系结构看IP地址和MAC地址的区别

数据包转发过程中IP地址与MAC地址的变化情况:
数据包转发过程中源IP地址和目的IP地址保持不变;

数据包转发过程中源MAC地址和目的MAC地址逐个链路改变;

ARP协议

每个主机都有ARP高速缓存表

ARP高速缓存表中都有其类型,类型分为静态和动态两种:

动态是指自动获取到的,生命周期为两分钟

静态是手工设置,不同操作系统下的生命周期不同,例如系统重启后不存在或系统重启后依然有效。

ARP协议只能在一段链路或者一个网络上使用,不能跨网络使用

数据链路层的互联设备

集线器与交换机的区别

·使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;

·集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测。

·集线器一般都有少量的容错能力和网络管理工程。(若网络中某个网卡出现了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能狗正常工作)

(1)使用集线器HUB在物理层扩展以太网

(2)以太网交换机在数据链路层扩展以太网

集线器与交换机的区别:

单波帧时:

集线器会传输给总线上每个设备,各主机的网卡根据MAC地址决定是否接受该帧

交换机会跟据目的帧的地址和自身的帧交换表直接传给目的主机。

广播帧:

广播帧会传播到总线上的其他各主机,各主机网卡检测MAC地址接收(各主机都属于同一个广播域,没有什么区别)。

网络中多台主机同时给另一台追发送单波帧的情况

集线器会产生碰撞,碰撞的帧传到各主机。

交换接收多个帧时,会将他们缓存起来,然后逐个转发给各个主机。

用集线器扩展以太网和交换机扩展以太网的情况:

单波帧

广播帧:都属于同一个广播域无区别。  

综合来说使用集线器扩展以太网,不仅扩展了广播域,也扩展了碰撞域。使用交换机 只扩展广播域,不会扩展碰撞域。

以太网交换机自学习和转发帧的流程

·以太网交换机工作在数据链路层(也包括物理层)

·以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。

·以太网交换即即插即用,刚上电启动时内部的帧交换表时空的。随着网络主机间通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。

自学习和转发帧的流程:

丢弃帧的情况

帧交换表中的每条记录都有自己的有效时间,到期自动删除(因为MAC地址与交换机对应接口的对应关系并不是永久性的)。

以太网交换机生成树协议STP

以太网交换机使用生成树协议(Spaning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。

无论交换机之间采用怎样的环路的网络,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须时树型的。

最终生成的树形逻辑拓扑要确保联通整个网络

当首次连接交换机或网络物理拓扑发生变化时,交换机都将进行生成树的重新计算。

虚拟局域网

分割广播域的方法

(1)使用路由器可以隔离广播域(路由器工作在网络层),成本高

(2)虚拟局域网技术VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。

虚拟局域网VLAN的实现机制

虚拟局域网是在交换机上实现的,需要交换机具有以下两个功能:

(1)处理带有VLAN标记的帧。IEEE 802.1Q帧(Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记

(2)交换机的端口类型

交换机各端口的缺省VLAN ID

·在思科交换机上称为Native VLAN,即本征VLAN。

·在华为交换机上称为Port VLAN ID,即端口VLAN ID,简称PVID。

交换机的端口类型主要有以下三种

·Access

·Trunk

互联的的Trunk端口的PVID值不等,可能会造成转发错误。例如

·Hybrid

与Trunk不同的是,Hybrid会查看帧的VID是否在端口的“去标签列表中”,若有,则去标签再转发,若没有,则直接转发。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值