计算机网络【CN】Ch3 数据链路层

embedded/2024/9/22 14:45:21/

目录

数据链路层的功能

【※】VLAN

三种划分VLAN的方法:

【※】MAC帧格式

 【※】三种可靠传输机制

​编辑 【※】介质访问控制

信道划分介质访问控制

随机介质访问控制

CSMA

CSMA/CD【有线】

CSMA/CA【无线】

信道利用率技巧

循环冗余校验CRC 

以太网[802.3]

以太网地址记忆技巧

 10Base-T

PPP

​编辑

三种网络相关地址 

数据链路层设备

 


数据链路层的功能

  • 网络层提供服务(有连接一定有确认)
    • 无确认的无连接服务【适用于实时通信或误码率较低的通信信道 - 以太网】
    • 有确认的无连接服务【适用于误码率较高的通信信道 - 无线通信】
    • 有确认的有连接服务【适用于对可靠性,实时性要求较高的场合】
  • 封装成帧【组帧:定义数据格式】
  • 差错控制
    • 位错:帧中某些位出现了差错
    • 帧错:
      • 丢失【定时器超时重传】
      • 重复、失序【编号机制】
  • 可靠传输【数据链路层在物理层提供的不可靠的物理连接上实现结点到结点的可靠性传输
  • 流量控制
    • OSI体系数据链路层有流量控制的能力,TCP/IP流量控制转移到了传输层

VLAN

  • 虚拟局域网是建立在局域网交换技术基础上的
  • 以太网交换机可以方便地实现VLAN,VLAN不仅可以隔离冲突域,而且可以隔离广播域
  • 虚拟局域网可以将局域网上的结点划分成若干个「逻辑工作组/广播域/子网」,那么一个逻辑工作组就是一个虚拟网络
  • 逻辑工作组的结点组成不受物理位置的限制

  • 交换机上生成的各VLAN互不相通,若想实现通信,需要借助:
    • 路由器
    • 三层交换机

  • VLAN是在以太网交换机上实现的一种分割广播域的技术,而不是一种新型的局域网。
  • 802.1Q帧对以太网V2的MAC帧格式进行了扩展:在源地址字段和类型字段之间插入了4字节的VLAN标签字段,则802.1Q帧的最大长度为1518B+4B=1522B。
  • 在同一个交换机上可以划分不同的VLAN。
  • 不同VLAN中的站点之间不能直接通信,要实现它们之间的通信,需要使用三层交换机或路由器。
  • 属于同一VLAN的多个站点,可以连接在不同的交换机上。只要将相关的交换机接口划分到同一VLAN即可。

三种划分VLAN的方法:

基于端口:

将交换机的若干端口划为一个逻辑组

基于MAC地址:

按MAC地址将一些主机划分为一个逻辑子网,当主机的物理位置从一个交换机移动到另一个交换机时,仍属于原来的子网

基于IP地址:

根据网络地址或协议划分VLAN,这样VLAN就可以跨越路由器进行扩展,将多个局域网的主机连接在一起

MAC帧格式

  • 前同步码:8B【不属于MAC帧】
  • MAC地址长度【目的地址和源地址】:6B
  • 首部和尾部之和:18B
  • 数据长度【IP数据报的长度】:46-1500B
    • 46B:由于CSMA/CD算法,以太网最小帧长64B,【64B-18B=46B
    • 1500B:规定的最大数据长度
  • 填充:当数据部分处于0B~46B时,需要填充。
  • 帧长:64B-1518B

 三种可靠传输机制

 介质访问控制

信道划分介质访问控制

  • FDM
  • TDM
  • WDM
  • CDM【掌握eg即可】
    • 进行内积:值为1,则结果为1
    • 值为-1,则结果为0
    • 值为0,则表示没有发送数据

随机介质访问控制

CSMA

 

1-坚持CSMA

非坚持CSMA

p-坚持CSMA

空闲时

立即发送数据

立即发送数据

以概率P发送数据,以概率1-p推迟到下一个时隙

忙碌时

继续坚持侦听

放弃侦听,等待一个随机的时间再侦听

继续坚持侦听

CSMA/CD【有线】

  • 总线型、半双工【所以才需要冲突检测】
  • 最小帧长 = 总线传输速率*总线传播时延*2
  • 截断二进制指数退避算法:
    • 基本退避时间:2𝜏【争用时间片】
    • 𝑘=min重传次数,𝑘=min重传次数,
    • [0,1,2,,3…2𝑘−1]中随机选取一个作为r
    • 重传需时:2𝑟𝜏
    • PS:重传16次都不能成功时,抛弃该帧

CSMA/CA【无线】

  • 无线局域网802.11a/b/g/n
  • 不能搬用CSMA/CD的原因:
    • 接收信号的强度远小于发送信号的强度
    • 隐蔽站问题
  • CSMA/CA算法流程:预约信道;ACK帧;RTS/CTS帧
    • 发送数据前,先检测信道是否空闲。
    • 空闲则发出RTS (request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
    • 接收端收到RTS后,将响应CTS (clear to send)。
    • 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
    • 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK。【即采用了确认重传ARQ方案,接收到对方的确认才能发送下一个帧】
    • 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止16次(采用二进制指数退避算法来确定随机的推迟时间)。
  • 为了尽量避免碰撞, 802.11 规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space, IFS)。 帧间间隔的长短取决于该站要发送的帧的类型。802.11 使用了下列三种IFS:
    • SIFS (短IFS): 最短的IFS, 用来分隔属于一次对话的各帧,使用SIFS的帧类型有ACK帧、CTS帧、分片后的数据帧,以及所有回答AP探询的帧等。
    • PIFS (点协调IFS): 中等长度的IFS, 在PCF操作中使用。
    • DIFS (分布式协调IFS):最长的IFS, 用于异步帧竞争访问的时延。

信道利用率技巧

假设

  • 发送窗口n个帧
  • k是帧序号的比特数

重传协议

停止等待

后退n帧

选择重传

𝑛1

𝑛=2^𝑘−1

传输周期

定义

从第一个帧出发,至收到对方的ACK帧的总时间

传输周期

发送一个数据帧的时间𝑇𝐷+𝑅𝑇𝑇+发送𝐴𝐶𝐾帧的时间𝑇𝐴

题目条件

  • 捎带传输:ACK帧长度 = 数据帧,即:𝑇𝐴=𝑇𝐷
  • 忽略确认帧长:𝑇𝐴=0

做题流程

  • 确定重传协议,即,确定 n 的大小
  • 确定ACK帧是否可以忽略
  • 计算信道利用率(比例)
    • 分子是计算n个数据帧,分母是计算一个数据帧
  • 计算传输速率(b/s)

循环冗余校验CRC 

循环冗余校验CRC

  • CRC有很好的检错能力(漏检率非常低)
  • 可以检测出所有的单比特错误
  • 带r个校验位的多项式编码可以检测到所有长度小于等于r的突发性错入
  • 计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
  • CRC具有纠错能力,但数据链路层只使用了他的检错功能,检测到帧出错直接丢弃
  • 生成多项式是发送方和接收方预先商定好的

CRC计算举例

以太网[802.3]

无连接不可靠

使用的曼彻斯特编码,数据传输速率只有调制速率(码元传输速率)的1/2(在一个时钟周期内电平变化了两次,而只传输了一位比特)

非10吉比特(只在全双工上工作)的以太网都可以采用CSMA\CD(半双工\全双工)

规定最短帧长为64B(规定最短帧长的目的在于使得处于以太网两端的主机可以检测到所发送的帧是否遭遇了碰撞)

对于100Mb/s的以太网,其争用期为 (8b × 64) ÷ 100Mb/s = 5.12μs(考生应当熟记该值),这包括以太网端到端的信号传播往返时延RTT和Hub所产生的时延。

传统以太网采用广播的方式发送信息,采用CSMA/CD协议,同一时间只允许一台主机发送信息, 否则各主机之间就会形成冲突, 因此主机间的通信方式是半双工

以太网的传输介质
 

以太网地址记忆技巧

有线以太网802.3

  • 地址1:目的MAC地址
  • 地址2:源MAC地址
  • 与直通式交换机结合记忆
    • 直通式交换机只检查目的MAC地址6B
    • 为了减少时延,目的MAC地址在前,源MAC在后

无线以太网802.11

无线以太网前两个地址对应有线以太网的地址第三个地址填AAPBMAC地址中剩下的那个

 10Base-T

PPP

三种网络相关地址 

数据链路层设备

网桥

  • 网桥可互连不同的物理层、不同的 MAC 子层及不同速率的以太网

交换机

  • 交换机的每个端口结点所占用的带宽不会因为端口结点数目的增加而减少, 且整个交换机的总带宽会随着端口结点的增加而增加
  • 端口往往工作在全双工方式
  • 两种交换模式:
    • 直通式6B
    • 存储转发式
  • 学习

 


http://www.ppmy.cn/embedded/9790.html

相关文章

javaWeb项目-网吧网咖管理系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、JAVA简介 JavaSc…

cuda算子模板移植到自研芯片

在将CUDA算子模板移植到自研芯片的过程中,可能涉及以下几个关键步骤和相应的工具/技术: 源代码解析与分析: 工具:源代码解析器、静态代码分析工具(如Clang Static Analyzer、LLVM前端等)作用:解析CUDA C/C++源代码,识别出算子的具体实现逻辑、数据访问模式、并行化策略…

一篇文章带您了解面向对象(java)

1.简单理解面向过程编程和面向对象编程 面向过程编程:开发一个一个的方法,有数据需要处理,我们就可以调用方法来处理。 package com.web.quictstart;public class demo1 {public static void main(String[] args) {totalScore("张三&q…

fastgpt、dify功能分析比较

目录 前言 一、dify、fastgpt是什么? 二、同场pk 1.大模型接入 2.chat(最简应用) 3.发布应用 4.知识库 5.workflow 6.其他 三、一些point记录 总结 前言 现在都开始AI应用开发,何谓AI应用,起码要和AI大模型…

❤️新版Linux零基础快速入门到精通——第三部分❤️

❤️新版Linux零基础快速入门到精通——第三部分❤️ 非科班的我!Ta!还是来了~~~3. Linux权限管控3.1 认知root用户3.1.1 Switch User——su3.1.2 sudo命令3.1.3 为普通用户配置sudo认证 3.2 用户和用户组3.2.1 用户、用户组3.2.2 用户组管理3.2.3 用户管…

移植speexdsp到OpenHarmony标准系统①

Speexdsp 提到Speexdsp不得不先提到开源语音编解码器Speex 如下是ACM Surveys中收录的标题为《Survey on Application-Layer Mechanisms for Speech Quality Adaptation in VoIP》综述中的一张图表。 它总结了一些常用的可变比特率编解码器,并且做了性能方面的比较…

python爬虫开发能力需要哪些

Python爬虫开发能力需要以下几个方面的知识和技能: Python基础:你需要熟悉Python的语法和编程基础,包括变量、数据类型、控制结构、函数、模块等。此外,了解Python面向对象编程的概念和实践也是很有帮助的。网络编程:…

Selenium(一):八大元素定位

元素定位八大方法 1、find_element_by_id 通过id定位 find_element(By.ID,"kw") #建议使用2、find_element_by_name 通过标签名定位 find_element(By.NAME,"wd") #建议使用3、find_element_link_text 通过链接文本定位 find_element(By.LINK_TEXT,&q…