计算机网络-数据链路层

上一篇博客中我们学习了计算机网络中的物理层,如果还没有看的可以先去学习了解一下哎,有助于我们这次学习的开始。传送门: 计算机网络-物理层
接下来正式开始讲解 - 数据链路层

基本概念

数据链路层是实现设备之间通信非常重要的一层;
其所使用的信道分为两种:

  • 点对点信道
  • 广播信道

在这里插入图片描述

链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他交换结点。一条链路只是一条通路的一个组成部分。
数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。数据链路还可以分为物理链路和逻辑链路。

  • 物理链路就是上述所说的链路。
  • 逻辑链路就是上述所说的数据链路,是物理链路加上必要的通信协议。

现在最常用的方法就是使用适配器(网卡)来实现这些协议的硬件和软件。市面上一般的适配器都包括了数据链路层和物理层。

数据链路层以帧为单位传输和处理数据。

数据链路层的协议有很多种,有三个基本问题是共同的~

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

封装成帧

在数据的头部和尾部加上标记(加上帧头和帧尾),确定帧的范围。

在这里插入图片描述
当数据是有可打印的ASCII码组成的文本文件时,帧的定界可以用特殊的帧定界符(SOHEOT)分别控制帧的开始和结束~

透明传输

是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。无论发送什么样比特组合的数据,这些数据都会没有差池的通过整个数据链路层。

通过上述的封装成帧的操作,就有人思考到一个问题,如果在封装的时候发现数据中某个节点部分恰好和SOH \ EOT一样,那么数据链路层不就会错误地找到帧的边界吗?别急当然有解决办法~

在这里插入图片描述

解决方法:字符填充/字节填充。

  1. 发送端的数据链路层在数据中出现控制字符SOHEOT的前面插入一个转义字符 ESC(十六制编码为1B)。
  2. 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
  3. 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

在这里插入图片描述

差错控制

在传输过程中可能会出现比特差错,1变成0,0变成1

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率。误码率与信噪比有很大的关系。为了保证数据传输的可靠性,必须采用差错检测措施。数据链路层广泛使用了 循环冗余检验CRC / 帧检查序列FCS 检错技术。

  1. 收发双方约定好一个生成多项式G(x).
  2. 发送方基于待发送的数据生成多项式计算出差错检测码(冗余码),将其添加到带传输数据的后面一起传输。
  3. 接收方通过生成多项式来计算收到的数据是否产生了误码。

点对点PPP协议

点对点协议PPP是目前使用最广泛的点对点数据链路层协议。

PPP协议应满足:

  • 简单
  • 封装成帧
  • 透明性
  • 多种网络层协议
  • 多种类型链路
  • 差错检测

不需要的功能:

  • 纠错
  • 流量控制
  • 序号
  • 多点线路
  • 半双工或单工链路

PPP协议有三个组成部分:

  • 对各种协议数据报的封装方法(封装成帧);
  • 链路控制协议LCP:用于建立,配置以及测试数据链路的连接;
  • 网络控制协议NCP:其中每一个协议支持不同的网络层协议;

帧格式

PPP帧首部和尾部分别为4个字段和2个字段。PPP是面向字节的,所有的帧长度都是整数字节。

首部

标志字段 F = 0x7E (符号0x,表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。

首部中的地址字段A规定为0xFF(即11111111)。

首部中的控制字段C规定为0x03(即00000011)。

撒旦
尾部

尾部中的第一个字段(2个字节)是使用CRC的帧检验序列FCS。

透明性

当PPP用在异步传输时,就会使用一种特殊的字符填充法

  • 把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。

  • 若信息字段中出现一个0x7D的字节,则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。

  • 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。

ad

当PPP用在同步传输链路(SONET / SDH)时,协议规定采用硬件来完成零比特填充

  • 在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。

  • 只要发现有5个连续的1,则立即填入一个0。

  • 接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。

埃松

PPP协议为什么不使用序号和确认机制

  1. 在数据链路层出现差错的概率不大
  2. 在因特网环境下,PPP的信息字段放入的数据时IP数据报,数据链路层的可靠传输并不能保证网络层也可靠传输。
  3. 帧检查序列FCS字段可以保证无差错接受。

传媒体接入控制

局域网的数据链路层

  • 网络为一个单位所拥有;
  • 地理范围和站点数有限;
  • 具有广播功能,从一个站点可以广泛的访问全网,局域网上的主机可以共享连接局域网上的各种硬件和软件资源;

共享信道要着重考虑的一个问题就是如何协调多个发送和接受站点对一个共享传输媒体的占用,如果多个设备同时发送数据,则会彼此形成干扰,导致发送失败。
媒体接入控制分为静态划分信道和动态接入控制。具体如下:
在

以太网

DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约;
IEEE 802.3 是第一个IEEE的以太网标准;

这两种只有很细微的差别,所有可以将802.3局域网称为以太网

适配器

网络接口板又称为通信适配器网络接口卡(NIC)网卡

适配器重要作用:

  • 进行串行/并行转换;
  • 对数据进行缓存;
  • 实现以太网协议

计算机通过适配器和局域网进行通信
描述

CSMA/CD协议

最初的以太网是将许多计算机都连接到一根总线上,易于实现广播通信,为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中,当且仅当数据帧中的目的地址与适配器地址一致时,才能接收到这个数据帧,若同时有多台计算机或多个站点同时发送时,会发生碰撞冲突导致发送失败~


为了通信方便:

  • 采用无连接方式;
    1) 不需建立连接就可以直接发送数据;
    2) 对发送的数据帧不需要进行编号,也不需要对方发回确认;
    3) 差错的纠正由更高层来决定;
  • 发送的数据都使用曼彻斯特编码;

在这里插入图片描述
缺点:它所占的频带宽度比原始的基带信号增加了一倍;

载波侦听(Carrier Sense):

网络上各个工作站在发送数据前,都要确认总线上有没有数据传输。

若有数据传输(称总线为忙),则不发送数据;

若无数据传输(称总线为空),立即发送准备好的数据。

多路访问(Multiple Access):

网络上所有工作站收发数据,共同使用同一条总线,且发送数据是广播式。

冲突检测(Collision Detection):

指发送结点在发出信息帧的同时,还必须监听媒体,判断是否发生冲突(同一时刻,有无其他结点也在发送信息帧)

CSMA中,由于信道传播时延的存在,即使总线上两个站点没有监听到载波信号而发送帧时,仍可能会发生冲突。由于CSMA算法没有冲突检测功能,即使冲突已发生,仍然将已破坏的帧发送完,使数据的有效传输率降低。

CSMA/CD是一种CSMA的改进方案。使发送站点传输过程中仍继续监听媒体,以检测是否存在冲突。如果发生冲突,信道上可以检测到超过发送站点本身发送的载波信号的幅度,由此判断出冲突的存在。一旦检测到冲突,就立即停止发送,并向总线上发一串阻塞信号,用以通知总线上其他各有关站点。

ARP协议

集线器与交换机

交换机自学习和转发帧

生成树协议STP

虚拟局域网VLAN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值