首页 > 技术文章 > 计算机网络:数据链路层

mots 2021-03-09 22:49 原文

数据链路层主要的功能

对网络层
为IP模块发送和接受IP数据报
为ARP模块发送ARP请求和接受ARP应答。
为RARP模块发送和接受RARP应答

对物理层
把封装的贞发送到物理层

把网络层传递下来的IP数据报添加首部和尾部封装成贞,把封装好的贞传递给目标结点的数据链路层,如果目标结点接受到的贞没有差错就上交给他的上层网络层。

封装成贞:在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。如果传输的是ASCII码一般采用SOH和EOT来当开始和结束

透明传输(某一个实际存在的事物就像是不存在一样):当如果传输的数据是非ACSII码(二进制代码的计算机程序或者图像)会出现某个字节的二进制代码恰好和SOH和EOT这种控制字符一样的情况,解决方法就是在SOH和EOT

差错检验:如果比特在传输过程中0变成了1,1变成0,出现这种情况就是比特差错。循环冗余检验就是检查错误的一种方式。

错码率:传输错误的比特的总数占总数的比率称为误码率。

所以:凡是接收端数据链路层接受的贞,我们都可以以非常接近于1的概率认为这些贞在传输过程中没有任何差错。(但其实还会有贞丢失,贞重复,贞失序的状态)

点对点协议PPP

用户使用拨号电话线接入互联网时,用户计算机和ISP进行通信时所使用的数据链路层协议就是PPP协议

PPP协议有三个组成部分

  1. 一个将IP数据报封装到串行链路的方法(向下)
  2. 链路控制协议LCP:建立、配置和测试数据链路连接的协议
  3. 一套网络控制协议:其中每一个协议支持不同的网络层协议(向上)

PPP协议的贞格式

首部的第一个字段和尾部的第二个字段0X7E为启始和终止字段

首部的第二个字段A指定为0XFF 第三个字段F规定为0X03(没有什么意义的字段)

第四个字段是两个字节的协议字段,当为0X0021时,PPP贞的信息字段就是IP数据报。如果为0XC021的时候信息字段就是PPP链路控制协议LCP

信息字段的长度是可变的不能超过1500字节。

尾部的第一个字段时使用CRC校验的贞检验序列FCS

实现透明传输

当PPP使用异步传输时,把转移字符定义为0X7D并使用透明传输,方法如下:

1.把信息字段每一个0X7E转换为0X7D和0X5E
2.若信息字段出现了0X7D就把他转变为0X7D 和0X5D
3.如果信息字段出现了控制字符(数值小于0X20的字符)例如出现0X03就把他转化为0X7D 0X23
4. 接收方采取相反的转换

当PPP使用同步传输时(使数据段的0 1 1 1 1 1 1 0透明化)

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

PPP协议的工作方式(用户从尝试获取IP到不再使用此IP的过程)

1.当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
2.PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)
3.这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机
4.通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接(PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容)

使用广播信道的数据链路层(局域网)

局域网的拓扑结构有:星型结构,环型结构,总线网(后面两个都不常用了)

IEEE 802 委员会就将局域网的数据链路层拆成两个子层:逻辑链路控制 LLC子层(不管采用何种协议的局域网,对 LLC 子层来说都是透明的),媒体(就是物理层的一些东西)接入控制 MAC子层

但现在很多生产的适配器(网卡)就只有MAC协议而没有LLC协议

适配器的重要功能
1.进行串行/并行转换。
2.对数据进行缓存。
3.在计算机的操作系统安装设备驱动程序。
4.实现以太网协议

CSMA/CD 协议

最初的以太网是将许多计算机都连接到一根总线上.

为了通信的简便,以太网采取了两种重要的措施:

1.不必先建立连接就可以直接发送数据。对发送的数据帧不进行编号,也不要求对方发回确认(这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的)
2.以太网提供的服务是不可靠的交付,即尽最大努力的交付。当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送(以太网发送的数据都采用曼彻斯特编码,准确但是频带宽度比之前宽了一倍)

CSMA/CD 的含义:载波监听多点接入 / 碰撞检测

多点接入:表示许多计算机以多点接入的方式连接在一根总线上

载波监听:是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。

碰撞检测:就是计算机边发送数据边检测信道上的信号电压大小。(当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大)一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。

使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行半双工通信(我发送你就不可以发送)

CSMA/CD协议的执行过程
1.准备发送:但在发送之前,必须先检测信道
2.检查信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在 96 比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
3.检查碰撞:在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:发送成功或者失败,如果失败立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待 r 倍 512 比特时间后,返回到检查信道,如果传送16次仍然没有成功就停止传送向上报错

MAC层的硬件地址

在局域网中,硬件地址又称为物理地址,或 MAC 地址

互联网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-00-5E

因此 TCP/IP 协议使用的以太网地址块的范围是从 00-00-5E-00-00-00 到 00-00-5E-FF-FF-FF

IEEE规定地址字段第一个字节的最后一位为I/G位,如果该位为1则表示组地址(可以进行多播),如果该位为0就是单播地址

如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址” 所以MAC地址是用来描述计算机的某个接口的标识符

以混杂方式 (promiscuous mode) 工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来

MAC贞协议


类型字段用来描述上一层使用的是什么协议

无效的MAC贞(对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧)

数据字段的长度与长度字段的值不一致;
帧的长度不是整数个字节;
用收到的帧检验序列 FCS 查出有差错;
数据字段的长度不在 46 ~ 1500 字节之间。
有效的 MAC 帧长度为 64 ~ 1518 字节之间。

推荐阅读