计算机网络个人笔记3 数据链路层

数据链路层是计算机网络的低层,主要使用的信道是点对点信道和广播信道。

一.数据链路层的几个共同问题

  1. 数据链路和帧

  • 链路:从一个节点到相邻节点的一段物理线路,中间没有任何交换节点
  • 数据链路:将实现通信协议的硬件和软件加到链路上,就构成了数据链路;现在最常用的方法是使用网络适配器来实现协议
  • 帧:点对点信道数据链路层的协议数据单元;数据链路层把网络层交换下来的数据构成帧发送到链路上,以及将接收到的帧中的数据取出并上交网络层

   2.点对点的数据链路层通信时主要步骤

  1. 节点A的数据链路层把网络层交下的IP数据报添加首部和尾部封装成帧
  2. 节点A把封装好的帧发送给节点B的数据链路层
  3. 若节点B数据链路层接受的帧无差错,则从帧中提取IP数据报上交给网络层;否者丢弃这个帧

3.三个基本问题

  • 封装成帧

封装成帧就是在数据的前后部分添加首部和尾部,这样构成一个帧。帧的首部和尾部具有帧定界(确定帧的界限)的功能,且还包括许多必要的控制信息。此外,为了提高传输效率,帧的数据部分长度尽可能大于首部和尾部,但每一种链路层的协议规定了其所能传输帧的数据部分的长度上限,及最大传输单元MTU。

 

  • 透明传输

透明传输是让数据按照原样,没有差错的通过数据链路层,但在帧的传输中,帧的首部和尾部具有控制开始和结束的专门的控制字符(SOH帧开始符,EOT帧结束符),但当帧中数据部分的某段8比特的组合与控制字符的比特编码相同,这样就会造成帧的定界错误从而舍去部分数据,而这样传输就不是“透明传输”。为解决此问题,就是在发送端的数据链路层的数据中出现控制字符“SOH”和“EOT”前插入一个转义字符“ESC”,而在接收端的数据链路层中将这个字符去掉后再将其送入到网络层,这种方法叫做字节填充法。

  • 差错检测

现实中的通信链路不是理想的,比特在传输过程中也会出现差错:可能1变为0,0变为1,这叫比特差错。而传输出错的比特占传输比特总数的比率为误码率。为了体感数据传输的可靠性,就必须有检查差错的方法,目前广泛使用的是循环冗余检验。

循环冗余检验:

  1. 设被除数M=101001,除数P=1101,进行运算时在M后面补齐n=P的位数-1个0,得M=101001000
  2. 除法运算时内部加减采用模2运算(加法时不进位,减法也一样,例如:1111+1010=0101)得商为110101,余数为001(作为帧检测序列FCS),将余数补齐到M后得101001001
  3. 再用得到的101001001作为被除数,P作为除数,进行运算(方法同上),如果余数为0,传输过程没差错
  4. 可以用生成多项式来表示除数P,例如P=1101,P(X)=X^{3}+X^{2}+1

二.点对点协议PPP

  1. PPP协议的特点

PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议

  • PPP协议满足应的需求
  1. 简单
  2. 封装成帧
  3. 透明性
  4. 多种网络层协议:在同一条物理链路上支持多种网络协议
  5. 多种类型链路:能在多种类型的链路上运行
  6. 差错检测
  7. 检测连接状态
  8. 最大传送单元:对每一种链路设置最大传输单元MTU(数据链路层的帧可荷载的数据部分的最大长度)的默认值
  9. 网络地址协商
  10. 压缩数据协商
  • PPP协议的组成
  1. 将IP数据报封装到串行链路的方法
  2. 一个用来建立、配置和测试数据链路的链路控制协议LCP
  3.      3.一套网络控制协议

 2.PPP协议的帧格式

F:规定为0x7E,表示开始或结束

A:规定为0xFF,表示地址字段

C:规定为0x03,表示为控制字段

协议:2字节的协议字段,规定为0x0021

FCS:帧检验序列

  • 字节填充

当PPP使用异步传输时,信息部分出现和标志字段一样的比特组合时,把转义字符定义为0x7D,并使用字节填充

  1. 当信息部分出现0x7E时,将其转变为2字节序列(0x7D,0x5E)
  2. 当信息部分出现0x7D时,将其转变为2字节序列(0x7D,0x5D)
  3. 当信息部分出现ASCII码的控制字符时(数值小于0x20),要在其前面加入一个0x7D字节
  • 零比特填充

PPP协议用于SONET/SDH链路时,使用同步传输,具体实现方式是:在发送端,先扫描信息部分,当发现又连续的5个1时就在后面加一个0;例如:011111110可变为0111110110,而在接收端就会将插入的0删除

三.使用广播信道的数据链路层

  1. 局域网的数据链路层

        局域网的特点及优点

  • 网络为一个单位所拥有,且地理范围和站点数目有限
  • 具有和广播功能,从一个站点可以访问全网;局域网上的主机可以共享连接在局域网上的硬件和各种软件资源
  • 便于系统的扩展和逐渐演变,各设备位置可灵活调整
  • 提高系统可靠性,可用性,生存性。

局域网的网络拓扑分类

共享信道的两种方式

  • 静态划分信道:利用时分复用,码分复用等方式,划分方法代价较高
  • 动态媒体接入控制:又称多点接入,特点为信道并非在用户通信时划分给用户,其又可划分为两种方式;1.随机接入:所有用户可随机发送信息,如果两个用户同时发送信息,就会在共享媒体上发生碰撞,是用户都发送失败,需要解决碰撞的协议;2.受控接入:用户发送信息要受一定的控制

2.  CSMA/CD协议

早期的以太网是将许多计算机连接在一根总线上的,特点是一台计算机发送数据时,其他的计算机也会检测到该数据,但为了实现总线一对一通信,可使计算机适配器有一个与其他适配器不同的地址,在发送数据时在帧的首部添加上接收地址。为了使通信简便,以太网采取了两种措施:

  • 采用较为灵活的无连接方式,即不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不求对方确认,因此,以太网提供服务是尽最大努力交付。对于有差错帧是否要重传就有高层决定。当总线上有一台计算机发送数据时,总线的传输资源就会被占用,因此同一时间只能有一台计算机发送数据,否则就会产生干扰,使发送的是数据被破坏。因此就需要CSMA/CD协议来解决冲突问题,即载波监听多点接入/碰撞检测。
  • 以太网发送数据使用的是曼切斯特码。

CSMA/CD协议的要点在帧

多点接入:说明这是总线类型的网络,多台计算机连接到一条总线

载波监听:边发送边监听,无论是在发送数据钱还是在发送数据中,每个站点都必须不停检测信道

碰撞检测:适配器边发送数据边检测信道上的电压变化情况,当多个站同时发送数据到总线上,总线的电压会增大

但是在发送信息前已检测信道为空闲时,还可能发生碰撞;这是由于电磁波在总线上传输速率有限,这导致监听信号还未传递到发送站,发送站就将数据发送到总线上,这导致了碰撞。

为了解决这个问题,发送数据的站为了尽早检测到碰撞,那么,发送站要经多少时间才能检测到碰撞?已知数据从一端传输到另一端的时间为T,而发送站检测到碰撞的最大时间是2T(由于任意两站的距离不等,T取最坏的情况,即总线两端的传播时延),即数据往返一次所需要的时间,而这又叫争用期,发送数据端在发送数据后经过2T的时间还未检测到碰撞,这就说明碰撞未发生。

 

在执行CSMA/CD协议时,一个站不可能通知进行发送和接收,因此使用半双工通信。

退避算法

在发送站检测到碰撞后,要通过多久才能重新传数据呢?以太网采用截断二进制指数退避算法来计算检测到碰撞后多久才能重传数据。具体做法是:

  • 基本退避时间为争用期2T,从离散的整数集合[0,1,....(2^{k}-1)]取一个随机数,记为r,重传推后时间为r*2T;k=min[重传次数,10](重传次数<10,k=重传次数;重传次数>10,k=10);
  • 当重传次数=16时任然不成功,那么就丢弃该帧,并向高层汇报。

强化碰撞

当数据发送站发现碰撞时,除了立即停止发送数据外,还会发送32比特或48比特的人为干扰信息,以便其他所有用户都知道已经发生碰撞。

CSMA/CD协议要点

3.使用集线器的星形拓扑

集线器的特点

  • 使用集线器的以太网从物理上虽然是个星形拓扑网络,但是从逻辑上还是一个总网,各站共享逻辑上的总线,使用的还是CSMA/CD协议,同时最多支持一个站发送数据
  • 集线器有许多接口,类似一个多端口转发器
  • 集线器工作在物理层,端口只是转发比特,不进行碰撞检测
  • 集线器采用芯片进行自适应串音回波抵消,使端口发出去的较强的信号不会干扰端口接收到的较弱信号
  • 堆叠式集线器采用4~8个集线器堆叠起来使用,集线器还具有少量容错能力和网络管理功能

4.以太网信道利用率

以下是信道被占用时信道的情况

    由图可知,要使信道利用率提高就要减小争用期的t和T0的比,以太网中定义了参数a=t/T0,所以当数据率一定时,以太网的链接长度受限同时帧长不能太短。在理想化的状态下,极限信道利用率Smax=T0/T0+t=1/1+a;也就是说,当参数a远小于1才能得到更高的极限信道利用率。

四.扩展的以太网

  1. 在物理层扩展以太网

使用多个集线器可以拓展连接成一个覆盖范围更大的星形以太网,好处是:使不同系的以太网跨系通信;扩大以太网覆盖的地理范围。

缺点是:将多个碰撞域合为一个碰撞域,但最大吞吐量还是一个碰撞域的吞吐量,当某系两站通信时,数据会通过所有集线器转发,导致其他系的内部不能通信;不同系使用的技术不同,就不肯用集线器将他们互联起来

2.在数据链路层扩展以太网

扩展以太网的常用方法是在数据链路层进行。最初人们使用网桥,网桥对收到的帧根据其MAC帧的目的地址进行过滤和转发。

以太网交换机的特点

实质上是一个多端口的网桥,每个接口采用全双工的工作方式。以太网交换机具有并行性,即同时联通多个接口,使多对主机能同时通信。相互通信的主机都独占传输媒体,无碰撞的数据传输,即每个端口和连接到主机构成一个碰撞域。以太网交换机还能在端口繁忙时把到来的帧进行缓存。以太网交换机是一种即插即用的设备,内部的帧交换表通过自学习算法建立起来的,其实交换表就是内容可寻址存储器。

以太网交换机的自学习功能

最初交换机的交换表是空的,当端口a发送信息给端口b时,先查找交换表有无b的地址,并记录下端口a的源地址,交换机再向除a端口外的其他端口广播这个帧,这可保证b端口收到这个帧,而其它端口收到后由于地址不匹配将丢弃此帧。当b端口向a端口发送帧时,通过查表得端口a的地址并将b的地址写入交换表。考虑到交换机端口可能跟换主机,需要及时跟该表中项目,为此交换表中写入一个项目是记录下其写入时间,并设置超过一定时间就会自动删除,保证交换机符合当前网络情况。为了增加网络的可靠性,在使用交换机组网时,往往会增加一些冗余的链路,这就可能导致自学习是会兜圈子,为此制定了一个生成树协议,要点是从逻辑上切断某些链路,使主机到其他主机的路径是无环树状结构。

3.虚拟局域网

当以太网计算机太多时,会带来两个缺点,其一,一个以太网是一个广播域。以太网上经常会出现许多广播帧,大量以太网广播帧在网上传输会浪费大量网络资源。其二,一个单位会有许多部门,有些部门是需要保密,多个部门共享一个局域网对信息安全不利。以太网交换机可以灵活的建立虚拟局域网,将一个较大的局域网分割为较小的局域网,每个局域网就是一个较小的广播域。在IEEE802.3ac标准中对虚拟局域网的解释是:虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同需求。每一个VLAN的帧都具有一个明确的标识符,指明发送的这个帧的计算机属于哪个VLAN。虚拟局域网只是局域网给用户提供的一种服务,而并不是一种新型局域网。虚拟局域网协议允许在以太网的帧格式中插入一个4字节点标识符,称为VLAN标签,用来指明发送该帧的计算机属于哪一个虚拟局域网。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值