【计算机网络】数据链路层——以太网

在这里插入图片描述

文章目录

  • 前言
  • 什么是以太网
  • 以太网帧格式
    • 6位目的地址和源地址
    • 2位类型
    • 数据长度
    • CRC 校验和
  • 数据在数据链路层是如何转发的

前言

前面我们学习了关于应用层——自定义协议、传输层——UDP、TCP协议、网络层——IP协议,今天我将为大家分享关于数据链路层——以太网方面的知识。

什么是以太网

  • “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等;
  • 例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等;
  • 以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;

以太网是一种计算机局域网技术,它使用带碰撞检测的载波侦听多址访问(CDMA/CD)方法进行介质访问控制。以太网主要指数据传输所经过的物理电缆,而Wi-Fi指无线连接的互联设备的网络。以太网基本上是电缆,是计算机和Internet之间的连接,它是一种有线连接,可以通过USB电缆或以太网电缆直接连接计算机。而Wi-Fi更像是一种网络技术,允许移动设备无线连接到Internet。

以太网的发展很快,从单根长电缆的典型以太网结构开始演变。单根电缆存在的问题,比如找出断裂或者松动位置等连接相关的问题,驱使人们开发出一种不同类型的布线模式。在这种模式中,每个站都有一条专用电线连接到一个中央集线器。

以太网帧格式

在这里插入图片描述

6位目的地址和源地址

目的地址和源地址就是指该数据帧的发送地址是哪里以及要发送到哪里,在这里目的地址和源地址都不是用 IP 地址来描述的,而是用 MAC 地址来描述的。

MAC地址即介质访问控制地址,或称为MAC位址、硬件地址,用来确认网络设备的位置的位址。它是由48位的二进制数字组成的,通常以12位十六进制数表示。这些数字通常由网卡生产厂家写入网卡的EPROM芯片中,芯片中的数据可以通过程序进行擦写。
MAC地址的前6位数字代表“组织唯一标识符”(OUI),后6位数字由制造商自行分配。这种编号方式有助于确保每个网卡都有一个唯一的MAC地址。
在以太网中,MAC地址是用来进行数据传输的标识符。当数据从一个节点发送到另一个节点时,源节点会将数据包发送到目标节点的MAC地址。通过MAC地址,目标节点可以识别发送方是谁,从而接收并处理数据包。

MAC 地址是用 6 个字节来表示的,比 IP 地址能表示的数量更多,现在的 MAC 地址是可以满足人们的需求的。那么既然有了 IP 地址为什么还会有 MAC 地址呢?

在最开始网络开始出现的时候,网络层和数据链路层是各自独立被发明的,所以各自出现了用来表示的地址的 IP 地址和 MAC 地址,虽然这两个都是用来表示地址的,但是它们的使用场景是不同的。并且就目前来说,一个设备具有唯一的 MAC 地址,这是网卡出厂的时候就写死的,一般不能修改。IP 地址是用来表示网路上两个主机的起始地和目的地,而 MAC 地址则表示在这两个地点之间各个节点的地址。

例如:我从武汉到西藏去旅游,需要途径武汉、长沙、重庆、成都、拉萨。在这个过程中,武汉是起始位置,拉萨是目的位置,这两个源地址和目的地址就是用的 IP 地址来描述的,而中间途径的从武汉到长沙的过程中,源IP地址就是武汉,目的 IP 是拉萨,以太网数据帧中的源MAC地址就是武汉,而目的 MAC 地址就是长沙;从长沙到重庆的源 IP 地址是武汉,目的 IP 地址是重庆,而源 MAC 地址就是长沙,目的 MAC 地址是重庆……源 IP 地址和目的 IP 地址从始至终都是同一个,而源 MAC 地址和目的 MAC 地址则是需要根据两个相邻的节点不断变化。

在这里插入图片描述

大家在 Windows 下可以在 cmd 中使用 ipconfig /all 来查看自己设备的 MAC 地址。

在这里插入图片描述

2位类型

2位类型字段,用于标识数据帧的类型。这个字段是用来区分不同的以太网帧类型的,比如以太网帧、IP数据报、ARP请求和应答等。通过这个字段,接收端可以知道接下来要处理的数据是什么类型,从而进行正确的处理。

常见的以太类型有:0x0800,代表IPv4;0x86DD,代表IPv6;0x0806,代表ARP;0x8100,代表IEEE 802.1q;等等。不同的类型字段值可以用来区别不同的帧类型。

数据长度

在以太网帧格式中 IP 数据包的最大程度为 1500 字节,这个数据链路层数据报能携带的最大载荷长度也叫做 MTU。 而 IP 数据包的分包和组包大概率是因为 MTU 引起的,而不是触发上限 64 kb引起的。不同数据链路层的 MTU 大小是不一样的,这个跟物理层的介质有关,就类似于你一个路能曾受的最大重量。

MTU 对 IP 协议的影响

由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。

  • 将较大的IP包分成多个小包,并给每个小包打上标签;
  • 每个小包IP协议头的 16位标识(id) 都是相同的;
  • 每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置为1,否则置为0);
  • 到达对端时再将这些小包,会按顺序重组,拼装到一起返回给传输层;
  • 一旦这些小包中任意一个小包丢失,接收端的重组就会失败。但是IP层不会负责重新传输数据;

CRC 校验和

校验和用来校验数据在网络的传输过程中是否出现了错误。以太网中校验和不是在帧头位置,而是位于帧尾

数据在数据链路层是如何转发的

  1. 封装成帧:在数据链路层将网络层协议封装成帧时,会在首部和尾部分别添加SOH以及EOT这两个特殊字符,接收方是根据这两个字符来确定帧首和帧尾的。
  2. 添加校验和:链路层会在数据部分添加校验和,用于检测数据传输过程中的错误。
  3. 透明传输:为了避免对帧的数据产生干扰,可以在数据部分的SOH、EOT字符前添加一转义字符ESC。这样,如果接收时直接接收到SOH、EOT字符还是表示为帧的开始与结束标志,但是如果接收时接收到ESC然后接收到SOH、EOT,就说明这两个字符不是帧的开始与结束标志,是帧数据的一部分。
  4. 差错控制:链路层还具有差错控制功能,能够检测出数据传输过程中的错误并进行纠正。
  5. 解封装和转发:当路由设备收到报文后,会先解封装,发现目的IP不是自己,同时也不是同网段,会查看自己的路由表中是否记录匹配目的IP网段的路由条目,如果存在此路由信息,则将数据包交给对应的接口进行转发。

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

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

相关文章

B-5:网络安全事件响应

B-5:网络安全事件响应 任务环境说明: 服务器场景:Server2216(开放链接) 用户名:root密码:123456 1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交; 通过nmap扫描我们发现开启了22端口,…

C++特殊类的设计

文章目录 设计一个类不能被拷贝请设计一个类,只能在堆上创建对象设计一个类只能在栈上去创建对象设计一个类不能被继承设计一个类,只能创建一个对象(单例模式)饿汉模式懒汉模式 单例模式总结饿汉模式懒汉模式 设计一个类不能被拷贝 拷贝一个类对象可以有…

Kubernetes 概述以及Kubernetes 集群架构与组件

目录 Kubernetes概述 K8S 是什么 为什么要用 K8S K8S 的特性 Kubernetes 集群架构与组件 核心组件 Master 组件 Node 组件 ​编辑 Kubernetes 核心概念 常见的K8S按照部署方式 Kubernetes概述 K8S 是什么 K8S 的全称为 Kubernetes,Kubernetes 是一个可移植、可扩…

面试算法45:二叉树最低层最左边的值

题目 如何在一棵二叉树中找出它最低层最左边节点的值?假设二叉树中最少有一个节点。例如,在如图7.5所示的二叉树中最低层最左边一个节点的值是5。 分析 可以用一个变量bottomLeft来保存每一层最左边的节点的值。在遍历二叉树时,每当遇到新…

【AI数学】三维视觉中的四种坐标系

三维视觉中,需要掌握四种坐标系:世界坐标系、相机视角坐标系、NDC坐标系、屏幕坐标系。 世界坐标系(World coordinate system) 物体或者场景在真实世界中的位置。 相机视角坐标系(Camera view coordinate system&…

springboot的spring.jackson.date-format失效解决

看起来数据库的格式非常完美,但是数据库字段look_date 是 datetime类型,java里没有datetime类型,这样一来如果你不在后端做处理,那么模型属性Date来接收一定会出问题.我通过实验证明最后拿到的是一个时间戳. 第一 解决时间格式问题 1.可以通过application.propertis配置文件中…

Linux 环境下 安装 Elasticsearch 7.13.2

Linux 环境下 安装 Elasticsearch 7.13.2 前言镜像下载(国内镜像地址)解压安装包修改配置文件用 Es 自带Jdk 运行配置 Es 可被远程访问然后启动接着启动本地测试一下能不能连 Es 前言 借公司的 centos 7 服务器,搭建一个 Es,正好熟…

基于图神经网络的联邦学习跨企业推荐

Federated Learning-Based Cross-Enterprise Recommendation With Graph Neural Networks 论文试图解决什么问题 该论文试图解决跨企业推荐系统中存在的数据共享和用户隐私保护的问题。在许多小型和中型企业中,由于资源有限,无法提供足够的数据来进行大…

HarmonyOS开发:开源一个刷新加载组件

前言 系统Api中提供了下拉刷新组件Refresh,使用起来也是非常的好用,但是风格和日常的开发,有着巨大的出入,效果如下: 显然上面的效果是很难满足我们实际的需求的,奈何也没有提供的属性可以更改,…

JVM虚拟机:通过一个例子解释JVM中栈结构的使用

代码 代码解析 main方法执行,创建栈帧并压栈。 int d8,d为局部变量,是基础类型,它位于虚拟机栈的局部变量表中 然后创建了一个TestDemo的对象,这个对象在堆中,并且这个对象的成员变量(day&am…

京东API获得JD商品详情 item_get-获得JD商品详情

item_get-获得JD商品详情 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)获取key和secret接入secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_sear…

mysql之基础语句

数据库的列类型 int:整型 用于定义整数类型的数据 float:单精度浮点4字节32位 准确表示到小数点后六位 double:双精度浮点8字节64位 char:固定长度的字符类 用于定义字符类型数据&…

深入理解计算机系统CS213学习笔记

Lecture 01 1. 计算机表示数字 int 整数运算可能会出现错误,超过32位时会出现溢出。 float 浮点数不适用结合律,因为浮点数表示的精度有限。 根其原因,是用有限的位数表示无限的数字空间。 2.利用分层的存储系统,使程序运行更…

从用户角度出发,如何优化大数据可视化体验|北京蓝蓝UI设计公司

作者:蓝蓝设计-鹤鹤 大数据已经成为人们探索世界的新工具。但是,对于普通用户而言,大数据往往比较抽象和难以理解,因此,大数据可视化作为一种非常有效的工具工具被广泛应用。然而,在实际应用中&#xff0c…

【java学习—十一】泛型(1)

文章目录 1. 为什么要有泛型Generic2. 泛型怎么用2.1. 泛型类2.2. 泛型接口2.3. 泛型方法 3. 泛型通配符3.1. 通配符3.2. 有限制的通配符 1. 为什么要有泛型Generic 泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过…

前端react入门day02-React中的事件绑定与组件

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 React中的事件绑定 React 基础事件绑定 使用事件对象参数 传递自定义参数 同时传递事件对象和自定义参…

nvm安装步骤

注意事项 不要安装任何版本的node.js,有的话卸载干净!注意:要卸载干净了! 安装步骤: nvm下载 点击exe文件安装 安装目录选择:D:\NVM 下一步创建nodejs文件放在D:\NVM 下,然后一直next到最后 …

亿咖通·天穹Pro行泊一体智能驾驶计算平台正式量产

全球出行科技公司亿咖通科技宣布,旗下首款智能驾驶计算平台——亿咖通•天穹Pro行泊一体智能驾驶计算平台(以下简称“该平台”)已向车企正式量产交付。作为亿咖通科技在智能驾驶领域的全新突破,亿咖通•天穹Pro智能驾驶计算平台以…

柯桥专升本学校,自考本科文凭的价值如何?

自考本科文凭的价值如何? 自考本科学历是通过独立学习和考试获得的一种本科学历。对于自考本科学历的价值,很多人感到困惑,那么究竟自考本科学历有多大的价值呢? 首先,在就业市场上,自考本科学历具有一定的竞争力。随…

WPF RelativeSource属性-目标对象类型易错

上一篇转载了RelativeSource的三种用法,其中第二种用法较常见,这里记录一下项目中曾经发生错误的地方,以防自己哪天忘记了,又犯了同样错误—WPF RelativeSource属性-CSDN博客 先回顾一下: 控件关联其父级容器的属性—…