OSI模型—链路层

数据链路层基本概念及基本问题

image

  • 链路:一条点到点的物理线路段,中间没有任何其他的交换结点,通俗的将,就是一根线,其中不经过任何东西,这样的就是链路,一条链路只是一条通路的一个组成部分。
  • 数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。通俗讲,就是经过了一些交换机呀,什么的,最终到达目的地,所有路段就是数据链路,而数据链路中就包含了多段链路。
  • 适配器:也就是网卡,就是用来实现数据链路上一些协议。
  • 帧:数据链路层上传送的就是帧
三个基本问题

封装成帧、透明传输、差错控制

  • 封装成帧
    数据链路层就是在ip数据报的前面后末尾加了一个首部和尾部来代表ip数据包的开始和结束,首部和尾部都市由8位二进制数表示的,可以一样也可以不一样。

image

  • 透明传输
    在ip数据包中如果有一个跟帧尾部一样的8位二进制数,则会提前结束接受数据包,这样数据就被破坏了。
    image

解决办法:通过在特殊字符前面增加一个转义字符 ESC,就可以解决上面所遇到的问题,在接收端,将数据包中所有ESC的字符删除,遇到两个ESC的,就删除第一个,这样一开始传输的时候有ESC转义字符,接受完就没了,所以说的是透明传输。
image

  • 差错检测
    问题:传输过程中可能会产生比特差错:1 可能会变成0而0也可能变成1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。为了检测传送的帧中ip数据包是否完整,是否没有被损坏,所以需要差错检测。
    image
可靠传输

在有些情况下,我们需要数据链路层向上的网络层提供“可靠传输”的服务,就是发送端发送什么,在对应的接收端就收到什么,前面的CRC只能检测出位数的差错,不能正确的检测出更精准的错误。

  • 停止等待协议:停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组
  • 超时重传:解决上面如果数据分组或确认分组丢失时,发送方将会一直等待接收方的确认分组的问题,设置一个超时计时器如果到了超时计时器所设置的重传时间,而发送方仍收不到接收方的任何确认分组,则会重传原来的分组。
  • 重复分组:如果只使用超时重传来解决,不用发送确认分组,那么会出现重复分组的问题,就是当接收方收到分组后,发回确认分组时,确认分组丢失,那么会触发超时重传,则接收方会收到两个重复的分组,这里需要注意的是,是确认分组丢失。第一次发送的分组已经正确接收了。
  • 回退N步协议:其实跟停止等待协议差不多,只是使用的是流水线传输方式,发送方不间断的发送分组,每次发送的分组大小有限制,如果不限制,可能会使接收方或网络来不及处理这些分组,导致分组的丢失,所以每次发送的分组大小可能是5,6或者更多。这种限制就是回退N步协议。回退N步协议利用发送窗口来限制发送方连续发送分组的个数。要是发送窗口为1就是我们上面所讨论的停止等待协议。
  • 选择重传协议:也就是改进回退N布协议,方式都是一样,在接受方必须逐一确认,但是出现错误,只需要重传出现错误的那一个分组,不用全部重传,这里的全部,指的是在出现错误的分组之后的所有分组,前提是在同一个发送窗口中。
两种情况下的数据链路层
点对点协议PPP

概述:现在全世界使用的最多的数据链路层协议就是点对点协议PPP(Point to Point Protocol),我们大多数用户使用的拨号电话线接入因特网时,一般使用的就是PPP协议
image
PPP协议的特点:

  • 简单:接收方每接收一个帧,就进行CRC检验,检验正确,就收下,否则就丢弃,它是不可靠传输
  • 封装成帧
  • 多种网络层协议:数据链路层的上一层就是网络层,所以它同时支持多种网络层协议的运行
  • 多种类型链路:比如,串行的、并行的,(串行:一个比特一个比特发送,只需要一条线路,并行:一次性传输n个比特,所以需要n条线路,所以叫并行)同步的、异步的(同步:以稳定的比特流的形式传输
  • 异步:以字节为独立的传输单位,字节跟字节之间的时间间隔不确定,但字节中的每个比特仍是同步的),低速或高速、电或光,等不同类型的链路都能支持
  • 差错检测:就是用CRC来检验
  • 透明传输
  • 检测连接状态:检测点跟点之间的连接状态,也就是在PC机和ISP之间的线路。
  • 最大传送单位:PPP协议帧有最大的传送单元,发送的分组不能超过这个最大长度
  • 网络层地址协商:使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址,通俗的讲,就是在分配IP地址时,就现需要这个协商才能解决

PPP协议的组成

  • 数据链路层协可以用于异步串行或同步串行介质,通俗讲也就是可以适应多种性质的链路,有这种介质存在
  • 使用LCP(链路控制协议)建立并维护数据链路连接,也就是上面讲的一些维护链路连接、检测连接状态等功能,就是用它来实现的
  • 网络控制协议(NCP)允许点到点连接上使用多种网络层协议,也就是因为跟网络层连接在一起,所以需要支持上一层的多种协议,这样才能完成一系列的功能,比如,网络层地址协商
    image
    PPP协议帧格式
    image

PPP协议帧传输时的透明传输问题

  • 字节填充:使用的是字节传输,也就是异步,所有的PPP帧的长度都是整数字节,所以会出现IP数据包中有字节跟开始结束标志字节相同的问题
  • 解决:标志字段 F = 0x7E
  • IP数据包中出现0x7E字节:转变为0x7D、0x5E
  • IP数据包中出现0x7D:0x7D、0x5D
  • IP数据包中出现ASCII码的控制字符,则在该控制字符前面加0x7D
  • 零比特填充方法:使用的是比特流传输(一连串的比特连续传送),也就是同步,PPP协议就采用零比特填充方法来实现透明传输

PPP协议的工作状态
链路静止、链路建立、鉴别、网络层协议、链路打开、链路终止
image

具体细节:六步。正好验证了PPP协议的三部分组成
  • 链路静止到链路建立:用户拨号接通ISP拨号服务器后,就创建了PC机到ISP服务器的物理连接,这里面的细节就归咎于物理层的功劳了,创建了一条怎么样的信道,通过什么传送数据,都是物理层需要做的事情。
  • 链路建立到鉴别:建立了物理连接后,PPP中LCP(链路控制协议)就需要做事了,LCP协商一些配置选项(链路上的最大帧长,所使用的鉴别协议,或者不使用PPP帧中的地址和控制字段),如何跟ISP协商这些呢,就是通过发送LCP的配置请求帧,而ISP也可以发送几种响应,配置确认帧:所有选项都接受配置否认帧:所有选项都理解但不能接受配置拒绝帧:有的选项无法识别或不能接受,需要协商。通过一系列的协商后,此过程就结束了,就到了鉴别状态,如果协商失败,就直接回到链路静止状态。
  • 鉴别到网络层协议:这里到达网络层协议之间做的事情就是鉴别身份。只允许传送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组。若使用口令鉴别协议PAP(Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。系统可运行用户重试若干次。如果需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议CHAP(Challenge-Handshake Authentication Protocol)。若鉴别身份失败,则转到链路终止状态(Link Dead)。若鉴别成功,则进入网络层协议状态(Network-Layer Protocol)。
  • 网络层协议到链路打开:前面已经经过了PPP协议的前两层,接下来就是NCP(网络控制协议)做事的时候了,这一阶段就是给PC机分配一个IP地址和对链路层进行网络层协议的设置,让链路层能支持网络层的工作
  • 链路打开到链路终止:进行传输数据,如果传输完成,就发送终止请求分组,收到终止确认分组后,就到了终止状态
  • 链路终止到链路静止:当物理层没有载波时,就到静止状态
PPP协议为什么不适用序号和确认机制?
  • 在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理。
  • 在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
  • 帧检验序列 FCS 字段可保证无差错接受。
广播信道的数据链路层

以太网和局域网的区别

  • 以太网是通信协议标准,该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法,比如有CSMA/CD协议。
  • 局域网:在较小范围内组件的网络,通过交换器什么的连接各个PC机,比如一个实验室,一栋楼,一个校园内,这都是局域网,拿网线将两台计算机连在一起,这也能算是局域网
  • 以太网是一种局域网,而局域网却不一定是以太网,大多数局域网就是采用了以太网的这个标准,所以很多人就将局域网默认为以太网,这种说法是有点偏差的。
  • 在局域网中,就采用的是广播信道,广播信道就是一台PC机发送数据给另一台PC机,在同一个局域网中的计算机都能接收到该数据,这就像广播一样,所以这种就叫做广播信道。
局域网的常用拓扑结构

image

CSMA/CD:半双工通信
  • 多址接入:一种多址接入协议,许多站点以多址接入的方式链接在一根总线上,其实就是局域网中总线网这种形式。
  • 载波监听:发送前监听,就是在发送数据前监听总线中是否有数据在传播,如果有就不发送。就是用电子技术检测总线上有没有其他计算机发送的数据信号。
  • 碰撞检测:边发送边监听,在发送数据的中途也会监听总线中是否会有其它数据,当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。 所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”,检测到碰撞后,在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值