数据链路层简介_数据链路层的介绍-程序员宅基地

技术标签: 信息安全  理论  网络安全  

1.数据链路层的基本概念

数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

2.数据链路层使用的信道

点对点信道:这种信道使用一对一的点对点通信方式
广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

3.数据链路层的链路状态

点对点链路:连接两个且只连接两个结点的链路。一端只有一个发送方,另一端有一个接收方。如一个PC连接一个服务器;两个地方的电话连接。
多点链路:同一链路上,连接多个结点。从主机到A,从A到B,从C到D,都是链路;从主机到D是电路(circuit)。
在这里插入图片描述

4.链路层协议提供的服务

链路层协议的功能是在一个路径(path)中,经过一个单一链路,进行结点 到 结点的网络层数据报的移动。

5.使用点对点信道的数据链路层
5.1数据链路和帧

链路(link)/物理链路:从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换特点。在进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路。

数据链路(data link)/逻辑链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

帧:数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包,等等。

通常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
在这里插入图片描述
早期的数据通信协议曾叫做通信规程(procedure)。因此在数据链路层,规程和协议是同义语。

点对点信道的数据链路层在进行通信时的主要步骤如下:
在这里插入图片描述
1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧;
2)结点A把封装好的帧发送给结点B的数据链路层;
3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。
数据链路层不必考虑物理层如何实现比特传输的细节。我们甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方,如上图(b)所示。

5.2三个基本问题

封装成帧(framing):就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。

首部和尾部的一个重要的作用就是帧定界,当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符(首部(SOH),尾部(EOT)分别表示帧的开始和结束),当数据在传输中出现差错时,帧定界符的作用更加明显(只收到SOH没收到EOT则判断此数据是不完整的帧,丢弃;收到了SOH和EOT则判断此数据是一个完整的帧,收下)。
在这里插入图片描述
为了提高帧的传输速率应当使帧的数据部分长度尽可能地大于首部和尾部的长度,但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传输单元MTU

在这里插入图片描述

透明传输:当传送的帧是用文本文件组成的帧时,其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放进这样的帧中传输过去,因此这样的传输就是透明传输。

但当数据部分是非ASCII码的文本文件时,如果数据中的某个字节的二进制码恰好和SOH或EOT控制字符一样,则数据链路层会错误地找到帧的边界,只把部分帧收下(误认为是完整的帧),剩余部分丢弃(这部分找不到帧定界控制字符SOH)。
在这里插入图片描述
以上的传输就不是透明传输,需要解决
解决办法:
1)发送端的数据链路层在数据中出现控制字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(其十六进制编码是1B)。
2)字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
在这里插入图片描述
3)如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

差错检测:现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变为1,这就叫做比特差错,它是传输差错中的一种。

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。误码率与信噪比有很大的关系,如果设法提高信噪比,就可以使误码率减小。

在实际的通信链路中&#

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zjdda/article/details/107084519

智能推荐

为什么输入法显示中文打不出中文_搜狗输入法打不出中文怎么回事 搜狗输入法在qq上打不出汉字解决办法...-程序员宅基地

文章浏览阅读979次。搜狗输入法有的时候在电脑上打不出中文的情况你有遇到过吗?想知道如何修复搜狗输入法?不妨来看看本站提供的详细教程吧!搜狗输入法打不出中文怎么回事?第一种:我们可以在搜狗输入法的“设置属性”——输入法修复器——一键修复完成;第二种:打开360卫士“电脑救援”——输入法问题——立即修复;第三种:就干脆直接卸载重新安装打开“软件管家”——软件卸载——软件大全——输入法——一键安装即可。方法一:首先把鼠标移..._搜狗输入法微信qq为啥打不出汉字

php根据两个条件查询数据,利用PHP访问数据库——实现分页功能与多条件查询功能(示例代码)...-程序员宅基地

文章浏览阅读406次。1.实现分页功能代号名称价格require_once "./DBDA.class.php";  //加载数据库访问类的封装文件require_once "page.class.php";  //加载分页类的封装文件$db = new DBDA();$sql = "select count(*) from car";$arr = $db->query($szts);$page = new Pa..._php双条件任意查询

duilib视频教程_Duilib教程-HelloDuilib及DuiDesigner的简单使用-程序员宅基地

文章浏览阅读246次。一、HelloDuilib1.首先理解DUILIB显示的一个基本流程,如下图:在Duilib中,WindowImplBase这个类代表了图中“CWndClass”。所以我们需要做的是:1)生成一个XML。2)生成一个WindowImplBase对象。3)加载XML。4)显示窗口。但是编写的时候,WindowImplBase已经帮我们做了许多工作,我们只需要指定XML路径,它就能够帮助我们自动..._duilib视频教程下载

python反爬虫原理与绕过实战pdf-antispider-程序员宅基地

文章浏览阅读2.1k次。antispider 为书籍《Python3 反爬虫原理与绕过实战》配套代码详细目录和封面预览本书共 10 章,除第 1 章环境安装配置外和第 3 章爬虫与反爬虫之外,其他章节涉及的 Python 代码均记录在 antispider 中。包括:第 2 章 WEB网站的构成和页面渲染第 4 章 信息校验型反爬虫第 5 章 动态渲染反爬虫第 6 章 文本混淆反爬虫第 7 章 特征识别反爬虫第 8 章 ..._python3反爬虫原理与绕过实战pdf

t3提示服务器sa修改,登陆提示可能是刚修改过SQL Server的超级用户(SA)的口令...-程序员宅基地

文章浏览阅读3.4k次。安装软件后,登录系统管理提示: SQL Server口令此提示可能由于有时sa口令遗忘或失效,也可能是环境问题所致。首先:要分析是否设置了sa口令,或者录入的sa口令是否正确,可通过命令提示符验证sa口令。〖操作步骤〗1. 在正在连接到的计算机中打开命令提示符窗口。开始—运行—输入cmd—确定2. 在命令提示符处键入以下命令:osql -U sa注意:(1)‘U’字符一定为大写(2)这样可以通过 ..._t3 sql server口令 由于sql server的超级用户口令修改过

c语言打印乱码_C语言打印字符乱码和char *字符循环赋值时“段错误 (核心已转储)”...-程序员宅基地

文章浏览阅读520次。C语言打印字符乱码和char *字符循环赋值时“段错误 (核心已转储)”C语言打印字符乱码和char *字符循环赋值时“段错误 (核心已转储)”问题解决。1.打印字符乱码#include #include char *SYM="";void change(){char tmp[10]="SYM";printf("%d\n",tmp);SYM=tmp;}int main(int argc, char..._c for 循环中char* 乱码

随便推点

matlab gui优化,matlabgui优化程序-程序员宅基地

文章浏览阅读326次。的优化工具箱提供了各种优化函数,这些优化 函数可以通过在命令行输入相应的函数名加以调用;此外 为了使用方便,MATLAB 还提供了图形界面的优化工具 (GUI Optimization ......MATLAB优化工具箱 5.1 工具箱概述 5.1.1 工具箱的功能 5.1.2 工具箱的新特色 5.1.3 工具箱的结构 5.2 工具箱函数 5.3 GUI优化工具 5.3.1 GUI......矩阵..._matlab中2022b的gui优化

工控机安装linux步骤,工控机驱动安装步骤及流程说明-程序员宅基地

文章浏览阅读1.4k次。工控机调试安装流程说明:一、 手动安装Windows XP操作系统。二、 安装主板驱动和显卡驱动。三、 安装Office2003。(根据提示进行安装)四、 安装733和724板卡驱动。五、 安装磨砂卡驱动。六、 安装打印机驱动。(根据提示进行安装)七、 安装搅拌站程序,并对软件进行调试设置。(根据提示进行安装)一、Windows XP操作系统的安装:1、 开机时常按Del键,进入CMOS环境。2、..._工控机安装linux系统

CCF201412-4 最优灌溉(80分)-程序员宅基地

文章浏览阅读52次。试题编号:201412-4试题名称:最优灌溉时间限制:1.0s内存限制:256.0MB问题描述:问题描述  雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉。  为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利用部分麦田...

计算机导论第二周总结_开始的时候将输入符号串 从左到右依此填在纸带的第 号格子上, 其他格子保持空白(-程序员宅基地

文章浏览阅读172次。计算机导论课后总结第二周一、本周上课内容:图灵机、二、课上基础知识概念总结:第一章内容1) 图灵机i.不是真实的机器,是一种理论模型。可以视为现代数学计算机的数学模型。ii.图灵机有一个可以向左右两端无限伸展的纸带。有一个能在纸带上左右移动的读写头HEAD。还有一个控制器,存有控制规则和一个状态寄存器。2) 计算机科学的定义:i.研究计算机及其周围各种现象和规律的科学即处理信息的学..._开始的时候将输入符号串 从左到右依此填在纸带的第 号格子上, 其他格子保持空白(

myeclipse 2017 ci 10 破解包+教程(亲测已成功)_crack.bat 和 tlu文件-程序员宅基地

文章浏览阅读2.7k次。版权声明:如转载请表明出处 https://blog.csdn.net/weixin_42247720/article/details/81585837 准备工作:下载破解包:myeclipse 2017 ci 10 破解包:链接:https://pan.bai..._crack.bat 和 tlu文件

C语言实现五子棋游戏(具体说明+具体步骤)_c语言五子棋代码-程序员宅基地

文章浏览阅读1.9w次,点赞42次,收藏321次。C语言五子棋目录一、运行效果二、基本流程三、基本步骤四、完整代码+注释一、运行效果二、基本流程三、基本步骤四、完整代码+注释_c语言五子棋代码