一文搞懂数据链路层

数据链路层

    • 1. 简介
    • 2. MAC
    • 3. 以太网

1. 简介

(1)概念

链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。

数据链路(data link) 除了物理线路(双绞线电缆、同轴电缆、光线等介质)外,还包括通信协议来控制这些数据的传输。

数据链路层的协议定义了通过通信媒介互连设备之间的传输规范。

(2)功能

数据链路层将0、1序列的数据集合为一个叫做“”的块传递给物理层,物理层把二进制0、1序列的帧转换成电压高低、光的强弱,实现传输。

主要实现以下3个功能:

  • 封装成帧
  • 透明传输
  • 差错控制

(3)数据链路分类

数据链路名通信媒介传输速率主要用途
以太网同轴电缆10MbpsLAN
以太网双绞线电缆10Mbps~100GbpsLAN
以太网光纤电缆10Mbps~100GbpsLAN
无线电磁波数个 Mbps~LAN~WAN
ATM双绞线电缆/光纤电缆25Mbps/155Mbps/622MbpsLAN~WAN
FDDI光纤电缆双绞线电缆100Mbps
帧中继双绞线电缆/光纤电缆约64k~1.5MbpsWAN
ISDN双绞线电缆/光纤电缆64k~1.5MbpsWAN

2. MAC

MAC地址(Media Access Control address)是用于标识网络设备的唯一标识符。它是一个由6组十六进制数字(0-9,A-F)组成的48位地址。
在这里插入图片描述

  • 第1位:单播地址(0)/多播地址(1)
  • 第2位:全局地址(0)/本地地址(1)
  • 第3-24位:厂商识别码,由IEEE管理并保证各厂家之间不重复
  • 第25~48位:由厂商管理并保证产品之间不重复

3. 以太网

(1)概念

以太网(Ethernet)是目前应用最普遍的计算机局域网技术,最早由美国 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发形成了基带局域网规范。

后来,IEEE 802.3标准制定了以太网的技术标准,规定了包括物理层的连线、电子信号和介质访问层协议的内容。目前,以太网已取代了令牌环、FDDI和ARCNET等其他局域网技术。

互联网与以太网:互联网指的是通过TCP/IP协议族相将各个局域网连接在一起网络。

在这里插入图片描述
(2)以太网帧

以太网帧由1、0交替组成的前导码(Preamble)表示开始,确保对端网卡能够与其同步。前导码占8个字节,末尾是值为“11”的SFD(StartFrame Delimiter)的域(以太网中最后2比特称为SDF,而IEEE802.3中最后8比特称为SDF),这个域之后就是以太网的帧体。

在这里插入图片描述
以太网帧帧体组成如下:

  • 以太网的首部(14个字节):目标 MAC地址(6个字节)、源MAC地址(6个字节)、上层协议类型(2个字节)
  • 数据(46~1500个字节)
  • 帧检验序列(FCS,FrameCheck Sequence,4个字节)

在通信传输过程中由于噪声干扰,可能会影响发送数据导致乱码位的出现。FCS 中保存着整个帧除以生成多项式的余数在接收端也用同样的方式计算,如果得到FCS 的值相同,就判定所接收的帧没有差错,否则就将将那些受到噪声干扰的错误帧丢弃。

在这里插入图片描述

IEEE802.3 Ethernet与一般的以太网在帧的稍有区别。以太网帧中表示类型的字段,在IEEE802.3以太网中却表示帧的长度。此外,数据部分的前端还有LLC 和 SNAP等字段。

在这里插入图片描述

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

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

相关文章

2024-03-24 成长-周复盘-责任与能力-事情的推进与落地和完成

摘要: 过于一周发生太多事情,林林总总,有些事情为了避免重蹈覆辙,要进行回溯复盘。 主要集中于做事方式,做事方法,更多的是集中于失败的做事方式。 在认知层面,要通过做事的结果,来反向推导做…

详细安装步骤:vue.js 三种方式安装(vue-cli)

Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 三种 Vue.js 的安装方法&…

二进制王国【蓝桥杯算法双周赛】

原题链接:https://www.lanqiao.cn/problems/17035/learning/?contest_id177 #include <bits/stdc.h> using namespace std;bool cmp(const string &x,const string &y) {return xy<yx; }int main() {int n; cin>>n;vector<string> vt(n);for(in…

Dockerfile优化

使用多阶段构建 go应用程序 # Build stage FROM golang:1.16 AS build WORKDIR /app COPY . . RUN go build -o myapp .# Runtime stage FROM alpine:latest WORKDIR /root/ COPY --frombuild /app/myapp . CMD ["./myapp"]Nodejs应用程序 # Build stage FROM nod…

matlab 将矩阵写入文件

目录 一、概述1、算法概述2、主要函数二、将矩阵写入到文本文件三、将矩阵写入电子表格文件四、将矩阵写入指定的工作表和范围五、将数据追加到电子表格六、将矩阵数据追加到文本文件七、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此…

Debezium日常分享系列之:Debezium2.5稳定版本之处理常见问题

Debezium日常分享系列之&#xff1a;Debezium2.5稳定版本之处理常见问题 一、配置和启动错误二、MySQL 不可用三、Kafka Connect stops gracefully四、Kafka Connect 进程崩溃五、Kafka变得不可用六、MySQL 清除 binlog 文件七、Debezium技术总结 下面描述 Debezium 如何处理各…

代码随想录阅读笔记-栈与队列【删除字符串中的所有相邻重复项】

题目 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例&#xff1a; 输入&am…

了解交互设计:定义、解析及案例演示!

交互设计作为现代设计领域的一个重要分支&#xff0c;对用户体验和产品的成功至关重要。然而&#xff0c;许多人并不了解交互设计的定义和实践方法。本文将深入分析交互设计的概念和重要性&#xff0c;分享精彩的案例&#xff0c;推荐有用的交互设计工具&#xff0c;帮助您创造…

解析SpringBoot自动装配原理前置知识:解析条件注释的原理

什么是自动装配&#xff1f; Spring提供了向Bean中自动注入依赖的这个功能&#xff0c;这个过程就是自动装配。 SpringBoot的自动装配原理基于大量的条件注解ConditionalOnXXX&#xff0c;因此要先来了解一下条件注解相关的源码。 以ConditionalOnClass为例 首先来查看Conditi…

02-MySQL数据库的基本使用与密码设置

一、服务端口 3306端口和33060端口&#xff0c;是我们启动数据库后开启的监听端口&#xff1b; 3306端口&#xff1a;是我们MySQL服务的监听端口&#xff0c;用来连接数据库使用&#xff1b; 33060端口&#xff1a;MySQL-shell服务的端口&#xff0c;MySQL-shell是MySQL架构集群…

Web前端-JS

JavaScript&#xff0c;简称js&#xff1a;负责网页的行为&#xff08;交互效果&#xff09;。是一门跨平台&#xff0c;面向对象的脚本语言&#xff08;编写出来的语言不需要编译&#xff0c;通过浏览器的解释就可以运行&#xff09; JS引入方式 1.内嵌样式 这样打开页面就会…

关系型数据库mysql(2)SQL语句

目录 一.SQL语句简介 1.1SQL语言 1.2SQL语句分类 1.3SQL分类 1.4SQL 语言规范 二.数据库基本操作 2.1查看数据库中的库信息 2.2查看数据库中的表信息 数据库内查看 数据库外查看 2.3显示数据库的结构&#xff08;字段&#xff09; ​编辑 2.4 字段属性 2.5常见的数…

关于Vue项目组件全局注册的一些建议

关于Vue项目组件全局注册的一些建议 在日常的工作中&#xff0c;我们项目中会有些公用的组件&#xff0c;可能有的同学提倡将这些组件全局注册&#xff0c;我个人的建议尽量避免全局注册&#xff0c;当然仁者见仁&#xff0c;智者见智 每个人都有自己想法和思路&#xff0c;下…

解决方案:如何安装neo4j软件

文章目录 一、安装JDK二、安装neo4j 一、安装JDK 第一步先安装JDK&#xff0c;因为neo4j环境需要JDK&#xff0c;过程比较多&#xff0c;截图如下&#xff1a; 安装JDK网址 https://www.oracle.com/java/technologies/downloads winR&#xff0c;输入cmd&#xff0c;再输入j…

Linux V4L2 应用编程

V4L2&#xff1a;Video4Linux2&#xff0c;是 Linux 内核中的一个框架&#xff0c;提供了一套用于视频设备驱动程序开发的 API。它是一个开放的、通用的、模块化的视频设备驱动程序框架&#xff0c;允许 Linux 操作系统和应用程序与各种视频设备&#xff08;如摄像头、视频采集…

外推蜘蛛池的优势及优势?

源码介绍&#xff1a; 适用使用范围: 外推蜘蛛池、站群 演示地址&#xff1a;以截图为准 运行环境&#xff1a;php 其余注释&#xff1a;什么是蜘蛛池&#xff1f; 蜘蛛池是一个利用大平台权重来获取百度收录和排名的程序。 程序员通常称其为“蜘蛛池”。 这是一个可以快速…

【机器学习300问】41、如果数据集中有少量带有标签,到底是选择异常检测还是有监督学习呢?

一、背景问题 有时候会遇到这样一种情况&#xff0c;构建异常检测系统的时候也使用了少量带标签的数据&#xff0c;既然使用了带标签的数据&#xff0c;那么就和监督学习有点类似&#xff0c;那为什么不用监督学习呢&#xff1f; 二、异常检测任务的特殊性 在构建异常检测系统…

Spring-声明式事务实例(有详细注释)

前提知识 Spring-IOC容器注解方式使用https://blog.csdn.net/m0_61160520/article/details/136784799?spm1001.2014.3001.5501切点表达式https://blog.csdn.net/m0_61160520/article/details/136782885?spm1001.2014.3001.5501 案例 1.创建项目 2.导入依赖 <dependen…

react native 总结

react app.js 相当与vue app.vue import React from react; import ./App.css; import ReactRoute from ./router import {HashRouter as Router,Link} from react-router-dom class App extends React.Component {constructor(props){super(props)}render(){return ( <…

记使用sjson的一次小事故

1. 前言 之前在设计一个兼容函数的时候&#xff0c;使用了sjson动态设入参数&#xff0c;从而实现一些参数的兼容。大致的逻辑如下所示&#xff1a; // 有一堆不规则的json数据 {"a":"aaa","b":"bbb","any_key1":{"k…