IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 第三章---数据链路层 -> 正文阅读

[网络协议]第三章---数据链路层

第三章—数据链路层

我们的目标是星辰大海,而非人间烟尘

image

数据链路层概述

调用物理层提供的不可靠的、透明的比特传输服务,为网络层的数据传输提供一条无差异的、可靠的数据链路。

计算机局域网绝大多数功能属于数据链路。

数据链路层使用的信道有点对点信道广播信道两种类型。

数据链路层的简单模型

image

image

image

image

image

image

image

image

数据链路层解读

  • 物理链路

    链路是指一条无源的、节点到其相邻节点的物理线路段,中间没有任何其他的交换节点。通信路径是通信实体之间的物理线路,由链路和交换设备构成。

    1、一条链路只是一条通信路径的一个组成部分;
    2、两个主机之间的通信路径由许多的链路串接而成

  • 数据链路

    数据链路(data link) :除了物理线路外,还必须有通信协议来控制这些数据的传输。

    实现这些协议的硬件和软件加到链路上,就构成了数据链路。

    通过复用,一条物理链路上可以有多条数据链路;一条通信路径上也可以有多条数据链路。

  • 数据链路层的必要性

    因此物理层仅实现了数据传输没有实现有效无差错通信!
    要实现真正的通信,还需要做大量的协调工作,如链路管理、流量控制、差错控制等,这些功能由数据链路层来完成。

    数据链路层的主要功能是在不可靠的物理链路上实现可靠的数据传输,向网络层提供无差异的、可靠的数据传输通路。

数据链路层的主要功能

1、链路管理
2、封装成帧(帧同步)
3、差错检测
4、将数据和控制信息区分开
5、透明传输
6、寻址
7、流量控制

链路管理

1、为确保接收方处于接收状态,数据的发送方与数据的接收方在数据交换之前,通过交换必要的信息,确定链路的状态。
2、这些状态分为:链路建立、链路维持和链路释放。
3、完成这些状态的转换的功能,称为链路的管理。

帧的概要描述

帧是数据链路层数据传输的单位;

image

帧包含网络层需要传输的数据和传输网络层数据所需的控制信息

封装成帧

在一段数据的前后分别添加首部和尾部,就构成了一个帧。
首部和尾部的一个重要作用就是进行帧定界。
MTU (Maximum Transfer Unit) :帧的数据部分的长度上限。

image

控制字符进行帧定界的方法

image

文头SOH(Start Of Header): 二进制 00000001
文尾EOT(End Of Transmission):二进制 00000100

以帧为单位便于差错检测和处理。

透明传输

将数据正确传输到接收方,称为透明传输;

  1. 当传送的帧是文本文件时,数据部分不会出现像SOH、EOT这样的控制字符,因此是透明传输;

  2. 当数据部分是非ASCⅡ码的文本文件时,如果数据中的某个字节的二进制代码恰好和SOH、EOT这种控制字符一样:

image

发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”
字节填充字符填充——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现数据当中,那么应在转义字符前面再插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

image

解决方法:
发送端的数据链路层在数据中出现控制字符“SOH”、“EOT”之前插入转义字符“ESC”(escape):00011011。
接收端的数据链路层先删除这些转义字符,然后再将数据送往网络层。

差错检测控制

差错控制目的:

  1. 及时发现错误
  2. 及时处理

差错编码技术分为两大类:

(1)前向纠错:接收方能检验错误并能纠正错误;
(2)差错检测:只检测错误,不做纠正。

差错控制的具体方法有:

垂直冗余校验(VRC)、水平冗余校验(LRC)、水平垂直冗余校验(TRC)和循环冗余校验(CRC)。

crc的特点:

检错能力极强、开销很小、易于实现

CRC校验常用场合

奇偶校验对一个字符校验一次,适合异步通讯,

一个数据块(frame)校验一次,适合同步通讯

串行同步通信中,在所有链路层或网络接口层协议中,几乎都可以使用这种校验方法。

在串行同步通信中,在所有链路层或网络接口层协议中,几乎都可以使用这种校验方法。

CRC码的生成

CRC码生成和校验基本分为三步:
第一步:在数据单元(k位)的末尾加上r个0。r是一个比预定除数的比特位数(r+1)少1的数。
第二步:采用二进制除法将新的加长的数据单元(k+r位)除以除数。
第三步:求CRC循环冗余校验码
将被除数+余数发送出去
如果余数位数小于r,最左的缺省位数为0。
如果余数为0,则r=0。

说明:
1、发送方和接收方必须有一个共同的多项式P(x);
2、除数比余数多1位。
3、余数既为冗余码,又称帧检验序列FCS

例子:

image

image

多项式P(X)的选择

1、为保证检测错误的概率足够大,必须正确选择P(X);
2、它的最高位和最低位必须是1;

—CRC可以做到无差错接受

将数据和控制信息区分开

1、在数据链路层将控制信息数据组成在一个数据帧中;
2、在数据的接收端,还需要将它们分开;
3、帧包括
(1)帧起始、结束标志
(2)接收站标志
(3)控制字段(流控制、差错控制)
(4)帧校验序列
(5)数据部分

寻址

1、地址作为控制信息,存在帧中;
2、主机的寻址流程
(1)发送主机将源地址和目的地址放入帧中;
(2)收到帧的主机将帧中的目的地址与自己的地址比较;
(3)不同,抛弃;相同,进一步处理。
3、寻址的方式
(1)单播 (2)组播 (3)广播

链路层功能之 流量控制

1、发送方和接收方处理数据的速度必须匹配;
2、当出现不匹配时,数据传输失败;
3、通过接收方控制发送方发送数据的速度,保证数据传输的成功是计算机网络中常用的流量控制方式;
4、接收方使用反馈机制,向发送方应答,报告自己当前的接收情况和能力。接收能力由接收设备的处理速度、接收缓冲的容量等影响)
5、常用的流量控制方法有(课本p189-p192):
(1)停止等待协议(Stop-and-Wait) ;——( P189 5.4)
(2)滑动窗口协议(Sliding Window )——(P197-203 5.6-5.7)

详细知识查看ppt和教材

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 11:17:36  更:2021-10-22 11:17:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:51:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码