【计算机网络】数据链路层(学习笔记)

news2025/1/15 17:18:14

一、数据链路层概述

1、基本概念

1)数据链路层模型

2)数字管道

常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是

3)链路与数据链路

链路是一条点到点的物理线路段,中间没有任何其他的交换结点。(一条链路只是一条通路的一个组成部分)

数据链路除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现最常用的方法是使用适配(即网卡)来实现这些协议的硬件和软件。网卡包括了数据链路层和物理层这两层的功能。

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

数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并且上给网络层

2、三个基本问题

1)封装成帧

封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。

首部和尾部的一个重要作用就是进行帧定界。

用控制字符进行帧定界

2)透明传输

透明传输:用户不用关心如何传输,只关心传输什么

发送端的数据链路层在数据中出现控制字符“SOH〞或“EOT”的前面插入一个转义字
符“ESC"(其十六进制编码是 1B)。

字节填充:接收端的数据链路层在将数据送往网络层之前删除插入的转义字符

3)差错检测

传输过程中可能会产生比特差错。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER,误码率与信噪比有很大的关系。

为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

循环冗余校验(CRC)
1. 特点

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

2. 原理
  1. 收方和发方规定一个相同的生成多项式
  2. 发送方:数据后添加x个冗余位(0)(x = 生成多项式的最高次幂位 or 二进制位串n-1位)
  3. 计算余数(模2运算):够位商1,不够商0,各位相加不进位(异或运算)
  4. 用余数替换冗余位
  5. 接收方:做相同的运算,如果余数位0则接收数据,不为0,丢掉该数据

CRC是一种无比特差错,而不是无传输差错的检测机制

OSI/RM模型的观点:数据链路层要做成无传输差错的!但这种理念目前不被接受!

  1. 接近于1的概率能够检测出数据是否正确:算法性能
  2. 以接近于1的概率实现无比特差错的传输(数据链路角度):说明CRC检测能力强,能够准确的检出是否有错误
  3. 不可靠传输(应用层角度):丢失、重传 --> 需要网络层tcp实现可靠传输

二、点对点信道(PPP协议)

1、PPP协议概述

现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)

用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。

2、PPP协议的要求

1)需要满足的要求
  • 简单
  • 封装成帧
  • 透明性
  • 支持多种网络层协议
  • 支持多种类型链路
  • 差错检测
  • 检测连接状态
  • 最大传送单元MTU:1500字节(最小64字节)
  • 网络层地址协商
  • 数据压缩协商
2)不需要满足的要求
  • 纠错
  • 流量控制
  • 序号
  • 多点线路
  • 半双工或单工链路

3、PPP协议的组成

  1. HDLC(高级数据链路层协议):用于异步串行或同步串行介质
  2. LCP(链路控制协议):建立并维护数据链路连接
  3. NCP(网络控制协议):提供点到点连接上多种网络层协议的支持

4、PPP协议帧格式

  1. 标志宇段F=0x7E(符号"0x"表示后面的字符是十六进制表示,十六进制的
    7E的二进制表示是 01111110)
  2. 地址字段 A只置为0xFF,地址字段实际上并不起作用
  3. 控制字段C通常置为 0x03
  4. PPP是面向字节的,所有的PPP帧的长度都是整数字节

PPP协议帧最大不超1508字节

5、零比特填充法

在发送端,只要发现有5个连续1,则立即填入一个0

接收端对帧中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除

出去开始和结束的0x7E,不会有第二个连续的6个1出现

6、PPP协议的特点

PPP特点:不使用序号和确认机制

  1. 在数据链路层出现差错的概率不大时,使用比较简单的 PPP协议较为合理。
  2. 在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
  3. 帧检验序列FCS 字段可保证无差错接受。

7、PPP协议的工作状态

当用户拨号接入ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

PC向路由器发送一系列的LCP分组(封装成多个PPP帧)。

家用网络控制由LCP管理

这些分组及其响应选择一些PPP参数,进行网络层配置(NCP的配置),NCP给新接入的 PC 机分配一个临时的IP地址,使PC机成为因特网上的一个主机。

通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

三、广播信道

1、局域网的拓扑

2、局域网的特点与优点

特点

网络为一个单位所拥有,且地理范围和站点数目均有限。

优点

具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。

便于系统的扩展和逐渐地演变,各设备的位置可灵活调螫和政变。

提高了系统的可靠性、可用性和生存性。

3、认识以太网

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

当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。

  1. 同在一个冲突域,会产生数据冲突的问题
  2. 拒收是设备主动行为,会产生安全问题

4、CSMA/CD 载波侦听多点接入/碰撞检测

1)CSMA/CD解释
  1. “多点接入CS”:多点接入的方式连接在一根总线
  2. “载波监听MA“:每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据(电压阈值),如果有,则暂时不要发送数据,以免发生碰撞。
  3. “碰撞检测CD”:计算机边发送数据边检测信道上的信号电压大小。
2)CSMA/CD过程
  1. 适配器获取数据报,创建帧
  2. 发送前:侦听信道CS
    1. 闲:开始传送帧
    2. 忙:一直等到闲再发送
  3. 发送过程中:冲突检测CD
    1. 没有冲突:成功
    2. 检测到冲突:放弃,之后尝试重发
  4. 发送方适配器检测到冲突,放弃、发送一个人为干扰信号(Jam信号),所有听到冲突的适配器也是如此(强化冲突:让所有站点都知道冲突)
  5. 如果放弃,适配器进入二进制指数退避状态
3)CSMA/CD基本问题

单次传播时延:ε

1、边发送边监听,监听0~2ε,超过2ε说明没有发生碰撞

2、碰撞后停止发送,等待一个随机时间(二进制指数退避算法)重发

3、强化冲突:发送一个人为干扰信号(Jam信号:32bit/48bit),让所有站点都知道冲突,耗时τ

4、帧间最小距离:9.6μs,用于清理缓存、处理数据

5、如果前64字节(512bit)不碰撞,那么后续不会再碰撞了。10Mbps以太网的征用期为512bit时间

10 M b p s ∗ 51.2 μ s = 512 b i t = 64 B y t e 10Mbps * 51.2μs = 512bit = 64Byte 10Mbps51.2μs=512bit=64Byte

对于100Mb/s的以太网,争用时间为5.12 μs

4)二进制指数退避算法

2ε:基本退避时间/征用期,10Mbps以太网的征用期为512bit时间

K = m i n [ 重传次数 , 10 ] K=min[重传次数, 10] K=min[重传次数,10]

r : [ 0 , 2 k − 1 ] r:[0,2^{k}-1] r:[0,2k1](随机数)

T w a i t = r ⋅ 2 ε T_{wait}=r·2ε Twait=r2ε

  1. K > = 16 K>=16 K>=16 --> 报告应用层
  2. 再次冲突概率: 1 / K 1/K 1/K
5)补:计网3-25

5、CSMA/CA 载波侦听多路访问/冲突避免

1)CSMA/CA概述

802.11冲突:2+ 站点(AP或者站点)在同一个时刻发送

CSMA:发送前侦听信道,不会和其它节点正在进行的传输发生冲突

802.11没有冲突检测(无法检测冲突:自身信号远远大于其他节点信号)

无法CD,一旦发送一股脑全部发送完毕,不CD

为了避免无CD带来的信道利用率低的问题,事前进行冲突避免

2)CSMA/CA过程
发送方
  1. 如果站点侦测到信道空闲持续DIFS长,则传输整个帧 (no CD)
  2. 如果侦测到信道忙碌,那么 选择一个随机回退值,并在信道空闲时递减该值;如果信道忙碌,回退值不会变化
  3. 到数到0时(只生在信道闲时)发送整个帧如果没有收到ACK, 增加回退值,重复2
接收方

如果帧正确,则在SIFS后发送ACK

3)冲突避免

无法完全避免冲突

两个站点相互隐藏

选择了非常靠近的随机回退值

允许发送方“预约”信道,而不是随机访问该信道:避免长数据帧的冲突

  1. 发送方首先使用CSMA向BS发送一个小的RTS分组 --> RTS可能会冲突(但是由于比较短,浪费信道较少)
  2. BS广播 clear-to-send CTS,作为RTS的响应
  3. CTS能够被所有涉及到的节点听到
    1. 发送方发送数据帧
    2. 其它节点抑制发送

采用小的预约分组,可以完全避免数据帧的冲突

四、以太网MAC层

1、MAC层概述

IEEE 802委员会把局域网的数据链路层拆分为两个子层

  1. 逻辑链路控制LLC
  2. 媒体接入控制MAC

2、MAC地址

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

MAC地址(48bit) = IEEE指定前缀(24bit)+ 设备序号(24bit)

MAC地址全球唯一。但是可以伪造,并不安全

win修改本机mac地址

3、MAC帧格式

以太网v2格式

当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数宇节的填充字段,以保证以太网的MAC 帧长不小于64字节。

MAC帧长度为64~1518字节

最大传输单元MTU长度为46~1500字节

4、无效的MAC帧

1、帧的长度不是整数个字节

2、用收到的帧检验序列FCS查出有差错

3、数据字段的长度不在46~1500字节之间

4、有效的MAC帧长度为64~1518字节之间

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

五、扩展以太网

1、集线器

1)集线器概述

集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已大大提高了

使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD协议,并共享逻辑上的总线。

2)集线器优缺点
优点

使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的
通信。

扩大了局域网覆盖的地理范围。

缺点

碰撞域增大了,但总的吞吐量并未提高。

如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

2、网桥

1)网桥概述

网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发

网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC 地址,然后再确定将该帧转发到哪一个接口

2)网桥优缺点
优点

过滤通信量。

扩大了物理范围。

提高了可靠性。

可互连不同物理层、不同MAC 子层和不同速率(如10Mb/s和100Mb/s以太网)的局域网。

缺点

存储转发增加了时延。

在MAC 子层并没有流量控制功能。

具有不同MAC 子层的网段桥接在一起时时延更大。

网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。

3)透明网桥

透明网桥是即插即用设备。"透明"是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的。

3、交换机

以太网交换机实质上就是一个多接口的网桥,通常都有十几个或更多的接口,和工作在物理层的转发器、集线器有很大的差别。以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据

以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。因此,如果连接在以太网交换机上的两台主机,同时向另一台主机发送帧,那么当这台主机的接口繁忙时,发送帧的这两台主机的接口会把收到的帧暂存一下,以后再发送出去。

以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1057862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue中如何进行滚动加载与无限滚动

Vue中的滚动加载与无限滚动 滚动加载(Infinite Scroll)是现代Web应用程序中常见的用户体验功能之一。它允许在用户滚动到页面底部时自动加载更多内容,通常用于分页显示大量数据。Vue.js作为一种流行的前端框架,提供了实现滚动加载…

备忘录:Docker基础操作与常用命令

文章目录 Docker基础操作1.1 Docker在线安装1.1.1 安装基础软件包1.1.2 安装docker主程序1.1.2.1 设置国内源1.1.2.2 安装docker 1.2 Docker离线安装1.2.1 下载离线安装包1.2.2 安装docker依赖包以及docker 1.3 设置自启动并启动dokcer1.4 安装docker-compose1.4.1 命令行下载文…

ADB的概念、使用场景、工作原理

文章目录 一、adb概念:Android Debug Bridge,一个可以控制安卓设备的通用命令行工具二、adb的使用场景:操作手机设备、app 自动化测试1.传输文件2.兼容性测试(手机墙)3.云测平台4.测试框架底层封装:APP自动…

柠檬水找零【贪心1】

由于是贪心算法的第一道题,所以先介绍一下贪心算法。 贪心策略:一种解决问题的策略,局部最优->全局最优。(贪婪鼠目寸光) 1、把解决问题的过程分为若干步 2、解决每一步时,都选择当前看起来最优的解法。…

tcp滑动窗口原理

18.1 滑动窗口 我们再来看这个比喻: 网络仅仅是保证了整个网络的连通性,我们我们基于整个网络去传输,那么是不是我想发送多少数据就发送多少数据呢?如果是这样的话,是不是就会像我们的从一个池塘抽水去灌到另外一个…

【Java】微服务——微服务介绍和Eureka注册中心

目录 1.微服务介绍2.服务拆分和远程调用2.1.提供者与消费者 3.Eureka注册中心3.1.Eureka的结构和作用3.2.Eureka的结构3.3.搭建Eureka服务3.3.1.引入eureka依赖3.3.2.编写配置文件 3.4.服务注册及拉1)引入依赖2)配置文件3)启动多个user-servi…

剑指offer——JZ24 反转链表 解题思路与具体代码

一、题目描述与要求 反转链表_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围: …

Mongodb7启动报错排除解决方案

一: 报错信息: [rootwww log]# journalctl -xe -- Unit mongodb.service has begun starting up. /usr/local/mongodb/mongdb7/bin/mongod --help for more information 10月 03 13:47:39 www.yhchange.com systemd[1]: mongodb.service: control process exited, …

10.03

代码 #include <iostream>using namespace std; class cz { private:int num1; //实部int num2; //虚部 public:cz(){}cz(int a,int b):num1(a),num2(b){}cz(const cz &other):num1(other.num1),num2(other.num2){}~cz(){}const cz operator(const cz &othe…

2023年中国BaaS行业发展概况及未来发展趋势分析:未来多链支持和发展将是BaaS平台发展重点方向[图]

BaaS是指将区块链框架嵌入云计算平台&#xff0c;利用云服务基础设施的部署和管理优势&#xff0c;为开发者提供便捷、高性能的区块链生态环境和生态配套服务&#xff0c;支持开发者的业务拓展及运营支持的区块链开放平台。通常情况下&#xff0c;一套完整的 BaaS 解决方案包括…

文件管理:极速复制粘贴,畅享无限次文件管理!

亲爱的用户&#xff0c;您是否经常需要将文件夹里的所有文件进行无限次复制粘贴&#xff0c;但又觉得这个过程繁琐而耗时&#xff1f;现在&#xff0c;我们为您推出一款极速文件管理工具&#xff0c;让您可以轻松实现无限次的文件复制粘贴&#xff0c;让文件管理更加高效畅快&a…

正则验证用户名和跨域postmessage

正则验证用户名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </hea…

剑指offer——JZ6 从尾到头打印链表 解题思路与具体代码

一、题目描述与要求 从尾到头打印链表_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入一个链表的头节点&#xff0c;按链表从尾到头的顺序返回每个节点的值&#xff08;用数组返回&#xff09;。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 < 链表长度 < …

最新SparkAI创作系统V2.6.2/ChatGPT网站系统H5源码+微信公众号版+AI绘画系统源码/支持GPT联网提问/支持Prompt应用

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图…

2023年中国电动汽车充换电站行业现状分析:随车配建私人充电桩增量持续上升[图]

充电站指为电动汽车提供充电服务的专用场所&#xff0c;由多台集中布置的充电设备以及相关的供电设备、监控设备﹑配套设施等组成。可将充电站规模分为3类&#xff1a;大型充电站、中型充电站和小型充电站。换电站指为电动汽车提供电池更换服务的场所。按换电模式分类&#xff…

掌机小霸王,开源俄罗斯方块小游戏

俄罗斯方块试玩gi PC或手机 点开即玩: https://chvin.github.io/react-tetris/?lanzh-cn 也可以扫码开玩: 实现了数据的持久化 游戏进度的数据可以持久存储到本地浏览器, 即使刷新网页也无需重新开始游戏 小结: 俄罗斯方块属于超级经典的游戏, 感兴趣可以玩一下, 找回一点童…

【算法练习Day10】有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 有效的括号删除字符串中的所…

树莓派4B与STM32串口通信

目录 2上篇文章的补充 2.1 树莓派通信设置 3树莓派与STM32通信 3.1接线准备 3.2代码 3.2.1 STM32代码&#xff1a; 3.2.2树莓派代码&#xff1a; 2上篇文章的补充 2.1 树莓派通信设置 在上篇文章的基础上&#xff0c;进一步的设置 终端输入&#xff1a;sudo minicom …

【Golang】接口 IO操作

文章目录 1、接口1-1、为什么要有接口1-2、接口的定义1-3、接口的实现条件1-4、类型与接口的关系1-5、空接口 2、IO操作2-1、Reader2-2、Writer2-3、bufio2-4、ioutil工具包2-5、实现一个cat命令 1、接口 1-1、为什么要有接口 在Go语言中接口&#xff08;interface&#xff0…