当前位置: 首页 > news >正文

计算机网络-数据链路层

基本概念

数据链路和链路

链路:指的是从一个节点到相邻节点的一段物理线路,且中间没有任何其他的交换节点

数据链路:传输数据时,除了一条物理线路,还需要一些必要通信协议来控制这些传输。

数据链路层的三个基本问题:
  • 封装成帧

    • 基本概念

      数据链路层在接收端,将网络层交下来的数据报封装为数据帧,发送到链路上。在接收端,将接收到的数据帧中的数据报取出并且上交给网络层。

      网络层协议数据单元就是 IP数据报, 数据链路封装成的帧,在物理层变成数字信号在链路上传输。

      如上图,不考虑物理层,简单的认为,数据帧通过数据链路通过节点A发送到节点B。

    • 封装

    • 封装成帧,就是在将网络层的IP数据报的前后分别添加首部尾部,这样就构成了一个帧。

    • 不同的数据链路层协议的帧的首部和尾部包含的信息有明确的规定,帧的首部和尾部有帧开始符帧结束符,称为帧定界符。接收端收到物理层传过来的数字信号读取到帧开始字符一直到帧结束字符,就认为接收到了一个完整的帧。在数据传输中出现差错时,帧定界符的作用更加明显。

    • MTU:每一种数据链路层协议都规定了所能够传送的帧的数据部分长度的上限–即最大传输单元MTU(Maximum Transfer Unit),以太网的MTU为1500个字节

  • 透明传输

    帧的开始符为SOH (start of head),是ASCII字符表中的,对应的16进制是0x01,结束符为EOT (End of Transmission),也是ASCII字符表中。当传输二进制数据,很可能在数据部分出现和结束符相同的编码,那么为了避免提前结束,那么就需要用转义字符ECS,来告诉接收端的数据链路层,这里不是真正的结束符号。其他需要转义的字符也是也是如此。

  • 差错控制

    为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用一些差错检测措施。目前比较广泛的是CRC。这部分位于数据帧的尾部:FCS部分。FCSCRC的余数。如果无差错结束,这部分在接收端的数据链路层的数据帧中自动去掉。


以太网

以太网是一种计算机局域网组网技术。

以太网最短帧

为了能够检测到正在发送的帧在总线上是否产生冲突,以太网的帧不能太短,如果太短就有可能检测不到自己发送的帧产生了冲突。经过计算最短的帧是64字节

这就意味着以太网发送数据帧如果前64字节没有检测出冲突,后面发送的数据就一定不会发生冲突。换句话说,如果发生碰撞,就一定在发送前64字节之内。由于一旦检测出冲突就立即终止发送,这时发送的数据一定小于64字节,因此凡是长度小于64字节的帧都是由于冲突而异常终止的无效帧,只要收到了这种无效帧,就应当立即将其终止。

MAC数据帧格式

从网络层来的是 IP 数据报,数据链路层分别在添加上:目标MAC地址,源MAC地址,类型(ip数据报的类型),以及在结尾处添加了差错控制部分fcs。物理层在以太网的MAC数据帧上添加8字节数据。

当数据字段的长度小于46字节时,数据链路层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节,接收端还必须能够将添加的字节去掉。

之所以是46个字节,是因为"目标MAC地址、源MAC地址以及类型分别占6,6,2个字节",64-18=46。

  • 无效帧MAC帧

    • 帧的长度不是整数个字节。
    • 用收到的帧检验序列FCS查出有差错。
    • 收到帧的MAC客户的数据字段的长度不在46-1500字节之间。考虑到MAC帧首部和尾部的长度共有18字节,可以得出有效的MAC帧长度为64-1518字节之间。

    对于检查出的无效MAC帧就简单地丢弃, 以太网不负责重传丢弃的帧。是否重传是上层应用层的任务,比如TCP会重新传输,而UDP不会重新传输。

以太网的信道利率用

利用率是指的发送数据的时间占整个时间的比例。

MAC层的硬件地址 (MAC地址)

MAC地址,也叫硬件地址,一共48位:前24位是厂家 后面24位厂家自己指定

相关文章:

计算机网络-数据链路层

基本概念 数据链路和链路 链路:指的是从一个节点到相邻节点的一段物理线路,且中间没有任何其他的交换节点 数据链路:传输数据时,除了一条物理线路,还需要一些必要通信协议来控制这些传输。 数据链路层的三个基本问…...

农场游戏中的时间管理实例

一、准备工作 在Unity中创建承载日期和时间的文本 二、设置游戏的时间戳 using System.Collections; using System.Collections.Generic; using UnityEngine; //标识这个类可以被序列化 [System.Serializable] public class GameTimestamp {// 游戏时间戳的成员变量public in…...

css 数字平铺布局

效果图 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>活动中心</title><meta name"viewport" content"maximum-scale1.0,minimum-scale1.0,user-scalable0,widthdevice-width,initial-scale1.0…...

【开源】嵌入式Linux(IMX6U)应用层综合项目(2)--智能家居APP

目录 1.简介 1.1功能介绍 1.2技术栈介绍 1.3演示视频 1.4硬件介绍 2.软件设计 2.1智能家居UI设计 2.2.main函数 3.结尾&#xff08;附网盘链接&#xff09; 1.简介 此文章并不是教程&#xff0c;只能当作笔者的学习分享&#xff0c;只会做一些简单的介绍&#xff0c;其…...

CUDA常见编译器配置问题一览

CUDA常见编译器配置问题一览 关注TechLead&#xff0c;复旦博士&#xff0c;分享云服务领域全维度开发技术。拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;复旦机器人智能实验室成员&#xff0c;国家级大学生赛事评审专家&#xff0c;发表多篇SCI核心期刊…...

【Android】系统级应用升级后的安装位置

系统级应用的安装位置一般在codePath/system 下面&#xff0c; 如果手动的去进行adb install覆盖安装&#xff0c;通过dumpsys package可以发现是安装在/data/app/里&#xff0c; 如果是通过标准的系统升级方式呢&#xff1f; 这里我们来通过升级查看一下&#xff0c; 升级…...

uniapp 使用renderjs通信

一、 server层向renderjs传值&#xff0c;并初始化renderjs prop&#xff1a;可以随便定义 renderTaskDetail&#xff1a;是传往renderjs的数据 change:prop&#xff1a;prop和必须上面prop字段一样 renderScript.initAmap&#xff1a;【 renderScript】需要renderjs 中scr…...

PostgreSQL 15

一、安装前的准备 1、版本信息 操作系统CentOS 7.9.2009PostgreSQL 版本PostgreSQL 15-15.7 2、下载安装包 RPM Chart - PostgreSQL YUM Repositoryhttps://yum.postgresql.org/rpmchart/进入官网&#xff0c;找到相应版本 点击框选内容 依次进入下载页面&#xff0c;下载相…...

给本地设备搭建一个云端语音助手

概述 本语音助手实现了从关键词唤醒 (KWS) 到语音识别 (ASR) 再到自然语言理解 (NLU) 的完整流程。该系统可以通过监听用户的音频输入,检测指定的关键词,并将用户的语音转换为文本,最后与预设的命令进行匹配,执行相应的操作(具体实现请参考main.py),为你的设备配置远程…...

yolov5车辆类型识别TXT数据集

YOLOV5训练车辆类型识别TXT数据集&#xff0c; 一共1400张图片&#xff0c;共分7个类別&#xff0c; 分别为Bus&#xff0c;Car&#xff0c;SportsCar&#xff0c;MicroBus&#xff0c;Truck&#xff0c;SUV&#xff0c;Jeep是TXT格式的数据集&#xff0c;用LabelImg工具进行标…...

day22(mysql数据库主从搭建)

上午&#xff1a; 1、为mysql添加开机启动chkconfig 2、编辑配置文件my.cnf 3、修改环境变量 4、mysql角色授权 角色不生效 在配置文件中不添加activate_all_roles_on_loginon glibc安装&#xff0c;my.cnf在项目目录之下 rpm安装&#xff0c;my.cnf文件在/etc/my.cnf 5、自…...

返璞归真:通过简化用例来简化用户界面01

Larry Constantine 著harvey 译 我们常被问及精简那些最简化、抽象和通用窗体用例的重要性。到底有多重要呢&#xff1f;在以用户为 中心的设计中&#xff0c;简化那些重要窗体的用例是获得成功的关键。它能够为开发者设计优秀的用户界面 助一臂之力。通过消除不必要的或技术驱…...

书生大模型学习笔记2 - Python

Python实现wordcount 请实现一个wordcount函数&#xff0c;统计英文字符串中每个单词出现的次数。返回一个字典&#xff0c;key为单词&#xff0c;value为对应单词出现的次数。 解题思路&#xff1a;首先把字母转小写>然后把单词取出来去除标点>循环单词列表>key已存…...

JavaScript三级联动jQuery写法

HTML结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>三级联动</title><!-- <style…...

无人机挂载抓捕网

一、技术原理与机制 无人机挂载抓捕网装置的技术原理是通过无人机平台的飞行能力和灵活性&#xff0c;结合特制的抓捕网装置&#xff0c;实现对目标的快速、准确抓捕。抓捕网装置在接收到指令后&#xff0c;通过特定机制快速展开并包围目标&#xff0c;从而实现抓捕任务。 二…...

174.地下城游戏——LeetCode

题目 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻…...

登录相关功能的优化【JWT令牌+拦截器+跨域】

登录相关功能的优化 登录后显示当前登录用户el-dropdown: Element - The worlds most popular Vue UI framework <el-dropdown style"float: right; height: 60px; line-height: 60px"><span class"el-dropdown-link" style"color: white;…...

向日葵没有显示器会卡住

前言 有一台机器【ubuntu20】&#xff0c;用于远程开发&#xff0c;使用向日葵时候&#xff0c;如果不接显示器是会卡住的。。。 显示屏是有限的&#xff0c;所以现在解决一下这个问题。 卡在登录界面 双击启动 由于Ubuntu默认显示管理器是gdm&#xff0c;而向日葵使用的是l…...

【机器学习西瓜书学习笔记——聚类】

机器学习西瓜书学习笔记【第九章】 第九章 聚类9.1 聚类任务9.2 性能度量两类指标 9.3距离计算基本性质属性有序属性无序属性 混合距离加权距离 9.4 原型聚类K-MEANS聚类算法步骤优势劣势 学习向量量化高斯混合聚类步骤难点例子EM思想的体现小结 9.5 密度聚类9.6 层次聚类 第九…...

MATLAB(8)深度变化模型

一、前言 在MATLAB中模拟深度变化模型通常依赖于具体的应用场景&#xff0c;比如海洋深度、地下水深度、地形高度变化等。由于“深度变化”可以涉及多种物理过程和数学模型&#xff0c;我将提供一个简化的示例&#xff0c;该示例模拟了一个基于时间变化的深度变化模型&#xff…...

5分钟搞定抖音无水印下载:douyin-downloader终极指南

5分钟搞定抖音无水印下载&#xff1a;douyin-downloader终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...

FlowState Lab 模型架构可视化与核心模块解读

FlowState Lab 模型架构可视化与核心模块解读 1. 模型整体架构概览 FlowState Lab是一个专门针对复杂波动模式捕捉设计的深度学习模型。通过创新的架构设计&#xff0c;它在金融时间序列预测、物理系统模拟等领域展现出卓越性能。让我们先来看看它的整体架构图&#xff1a; 这…...

Wan2.1效果展示:从萌宠到科幻,AI视频生成作品集

Wan2.1效果展示&#xff1a;从萌宠到科幻&#xff0c;AI视频生成作品集 1. 开篇&#xff1a;AI视频生成的新纪元 想象一下&#xff0c;你只需要输入一段文字描述&#xff0c;就能立刻获得一段高质量的视频内容。这不再是科幻电影中的场景&#xff0c;而是阿里巴巴开源的Wan2.…...

Pixel Aurora Engine 与MySQL联动:构建带审核的图像素材管理库

Pixel Aurora Engine与MySQL联动&#xff1a;构建带审核的图像素材管理库 1. 业务场景与痛点分析 电商设计团队每天需要制作大量商品展示图&#xff0c;传统设计流程面临三大挑战&#xff1a; 人力成本高&#xff1a;每张主图需要设计师2-3小时制作风格不统一&#xff1a;不…...

Windows Defender终极移除指南:高效释放系统资源的13项完整方案

Windows Defender终极移除指南&#xff1a;高效释放系统资源的13项完整方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mi…...

YOLO-v8.3零基础教程:跟着文档一步步,轻松玩转计算机视觉

YOLO-v8.3零基础教程&#xff1a;跟着文档一步步&#xff0c;轻松玩转计算机视觉 1. 认识YOLO-v8.3 1.1 什么是YOLO&#xff1f; YOLO&#xff08;You Only Look Once&#xff09;是一种革命性的计算机视觉算法&#xff0c;它能在单次前向传播中同时完成目标检测和分类任务。…...

别再死记硬背了!用Python代码复现Photoshop 27种混合模式(附完整源码)

用Python代码实现Photoshop混合模式的终极指南 在数字图像处理领域&#xff0c;Photoshop的混合模式就像魔术师的调色板&#xff0c;能够创造出令人惊叹的视觉效果。但你是否想过这些看似神秘的混合效果背后&#xff0c;其实是一系列精确的数学公式在起作用&#xff1f;本文将带…...

cv_resnet101_face-detection_cvpr22papermogface 算法解析:深入理解卷积神经网络(CNN)在其中的作用

cv_resnet101_face-detection_cvpr22papermogface 算法解析&#xff1a;深入理解卷积神经网络&#xff08;CNN&#xff09;在其中的作用 最近在整理一些经典的人脸检测模型时&#xff0c;又仔细看了看这个来自CVPR 2022的MogFace。它基于ResNet101这个大家伙&#xff0c;效果确…...

Llama-3.2-3B多语言能力实测:西班牙语/法语/日语问答效果展示

Llama-3.2-3B多语言能力实测&#xff1a;西班牙语/法语/日语问答效果展示 最近&#xff0c;Meta开源了Llama 3.2系列模型&#xff0c;其中包含1B和3B两个尺寸。作为Llama 3.1的升级版&#xff0c;3.2版本特别强调了多语言能力。官方宣称它在多语言对话、检索和摘要任务上表现优…...

告别手动标注!用μSAM和napari插件5分钟搞定显微图像分割(附保姆级配置流程)

告别手动标注&#xff01;用μSAM和napari插件5分钟搞定显微图像分割&#xff08;附保姆级配置流程&#xff09; 在生物医学研究领域&#xff0c;显微图像分析一直是数据处理的瓶颈环节。传统的手动标注方式不仅耗时费力&#xff0c;还容易引入人为误差——研究人员常常需要花费…...