以太网基础学习(一)——以太网概述

一、以太网概述

        以太网(Ethernet)指的是由 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发的基带局域网规范,通用的以太网标准于1980年9月30日出台,是当今现有局域网采用的最通用的通信协议标准(是局域网的一种)。

        以太网是一种计算机局域网技术。以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET。以太网实现了网络上无线电系统多个节点发送信息的想法,每个节点必须获取电缆或者信道的才能传送信息,有时也叫作以太(Ether)。 每一个节点有全球唯一的48位地址也就是制造商分配给网卡的MAC地址,以保证以太网上所有节点能互相鉴别。由于以太网十分普遍,许多制造商把以太网卡直接集成进计算机主板。

        以太网协议采用星形拓扑或线性总线,这是 IEEE 802.3 标准的基础。在 OSI 网络结构中,该协议同时工作于物理层和数据链路层,即前两层。以太网将数据连接层分为两个不同的层:逻辑链路控制层和媒体访问控制 (MAC) 层。

        网络系统中的数据连接层主要负责将数据包从一个节点传输到另一个节点。以太网采用一种称为 CSMA/CD(载波侦听多路访问/冲突检测)的访问机制,使每台计算机能够在通过网络传输数据之前侦听连接。        

        以太网还使用两个组件传输数据:数据包和帧。该帧包含发送的数据有效负载以及以下内容:

  • 发件人和收件人的 MAC 和物理地址
  • 用于识别传输故障的纠错数据
  • 有关虚拟 LAN (VLAN) 标记以及服务质量 (QoS)的信息

        每个帧都封装在包含许多数据字节的数据包中,以建立连接并识别帧的开始点。

二、以太网物理帧格式

常用的以太网MAC帧格式有两种标准 :

  • DIX Ethernet V2 标准
  • IEEE 的 802.3 标准

最常用的 MAC 帧是以太网 V2 的格式。

         这里我们着重介绍 Ethernet V2 标准的MAC帧格式(这里我们暂时不考虑VLAN的情况):

1、前导码

        图中的黄色部分,简单说就是用来同步用的,这里不是我们考虑的重点。

2、MAC帧

(1)目的地址

        IPv4下共占据6个Byte,即48个bit,目的MAC地址,该字段确定帧的接收者。

(2)源地址

        IPv4下共占据6个Byte,即48个bit,源MAC地址,该字段标识帧的发送者。

(3)类型

        协议类型,长度为2个Byte,用来标识数据字段内的高层协议,我们举两个最最常用的例子:

  • 0x0800:IP报文
  • 0x0806:ARP报文

(4)数据

        数据字段,其长度在46~1500字节(46字节是这样得出的:最小长度64字节减去18字节的首部和尾部就得出数据字段的最小长度)。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。

(5)FCS

        最后一个字段是4个Byte的帧检验序列FCS(使用CRC检验)

三、帧间最小间隔

        帧间最小间隔为 9.6 us,相当于 96 bit 的发送时间。一个站在检测到总线开始空闲后,还要等待 9.6 us 才能再次发送数据。以太网不需要使用帧结束定界符,也不需要使用字节填充或比特填充技术来保证透明传输。帧间间隔用于接收方检测一个帧的结束,同时也使得所有其它站点都能有机会平等竞争信道并发送数据。

四、CSMA/CD

        带冲突检测的载波侦听多路访问(CSMA/CD)技术规定了多台计算机共享一个通道的方法。这项技术最早出现在1960年代由夏威夷大学开发的AHLOAnet,它使用无线电波为载体。这个方法要比令牌环网或者主控制网简单。当某台计算机要发送信息时,在以下行动与状态之间进行转换:

  1. 开始- 如果线路空闲,则启动传输,否则跳转到第4步。

  2. 发送- 如果检测到冲突,继续发送数据直到达到最小回报时间(min echo receive interval)以确保所有其他转发器和终端检测到冲突,而后跳转到第4步。

  3. 成功传输- 向更高层的网络协议报告发送成功,退出传输模式。

  4. 线路繁忙- 持续等待直到线路空闲。

  5. 线路空闲- 在尚未达到最大尝试次数之前,每隔一段随机时间转到第1步重新尝试。

  6. 超过最大尝试传输次数- 向更高层的网络协议报告发送失败,退出传输模式。

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

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

相关文章

数据结构与算法之堆: Leetcode 347. 前K个高频元素 (Typescript版)

前K个高频元素 https://leetcode.cn/problems/top-k-frequent-elements/ 描述 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2 输入: num…

【oncmdmsg 鼠标】2023/8/19 上午9:50:14

2023/8/19 上午9:50:14 oncmdmsg 鼠标 2023/8/19 上午9:50:22 抱歉,您提到的 “oncmdmsg” 和 “鼠标” 是什么?请提供更多上下文信息,我将尽力帮助您。 2023/8/19 上午9:51:43 OnCmdMsg 2023/8/19 上午9:52:21 “OnCmdMsg” 是一个在 MFC (Microsoft Foundation Cla…

(C++版)ROS2 bind函数解读

在ros2的发布者节点里面有这么一句话:估计没有学过C的人不太理解,这里我就发发好心帮忙解读一下timer_ this->create_wall_timer(500ms, std::bind(&MinimalPublisher::timer_callback, this)); timer_ this->create_wall_timer(500ms, std…

url请求头信息

Accept Accept:请求报头域,用于指定客户端可接受哪些类型的信息。 Accept-Language Accept-Language:指定客户端可接受的语言类型。 Accept-Encoding Accept-Encoding:指定客户端可接受的内容编码。 Host Host:…

自动驾驶中的感知模型:实现安全与智能驾驶的关键

自动驾驶中的感知模型:实现安全与智能驾驶的关键 文章目录 引言感知模型的作用感知模型的技术安全与挑战结论 2023星火培训【专项营】Apollo开发者社区布道师倾力打造,包含PnC、新感知等的全新专项课程上线了。理论与实践相结合,全新的PnC培训…

unplugin-vue-components和unplugin-auto-import插件

unplugin-auto-import:自动按需引入 vue\vue-router\pinia 等的 api unplugin-vue-components:自动按需引入 第三方的组件库组件 和 我们自定义的组件 使用此类插件,不需要手动编写import {xxx} from vue这样的代码了,提升开发效…

Linux驱动设备号分配与自动创建设备节点

Linux 驱动设备号 对于 Linux 系统,为了识别和管理设备,每个设备便使用一个唯一的编号来标记设备,每个注册到内核的设备都需要一个编号,这个编号就是设备号,为了细分设备号分为主设备号和次设备号。 由于 Linux 的设…

【Java-LangChain:使用 ChatGPT API 搭建系统-6】处理输入-链式 Prompt Chaining Prompts

第六章,处理输入-链式 Prompt Chaining Prompts 在本章中,我们将学习如何通过将复杂任务拆分为一系列简单的子任务来链接多个 Prompt。 您可能会想,为什么要将任务拆分为多个 Prompt,而不是像我们在上一个视频中学习的那样&…

嵌入式数据库sqlite3基本命令操作基础(05)

前言 数据在实际工作中应用非常广泛,数据库的产品也比较多,oracle、DB2、SQL2000、mySQL;基于嵌入式linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDB。 本文主要讲解数据库SQLite,通过这个开源的小型的嵌入式数据…

基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度(matlab代码)

目录 1 主要内容 系统结构图 P2G-CCS 耦合模型 其他算例对比 2 部分代码 3 下载链接 1 主要内容 该程序复现《基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度》模型,以碳交易和碳封存成本、燃煤机组启停和煤耗成本、弃风成本、购气成本之和为目标…

CANoe.Diva生成测试用例

Diva目录 一、CANoe.Diva打开CDD文件二、导入CDD文件三、ECU Information四、时间参数设置五、选择是否测试功能寻址六、勾选需要测试服务项七、生成测试用例 一、CANoe.Diva打开CDD文件 CANoe.Diva可以通过导入cdd或odx文件,自动生成全面的测试用例。再在CANoe中导…

简单查找重复文本文件

声明这是最初 我的提问给个文本分类清单input查找文件夹下 .py .txt .excel .word 一模一样的文本不是找文件名 找相同格式下的文件文本是否一样 文件单独复制到文件夹下两个文件全部复制到文件夹下 print 打印相同文本文件的名字 比如查找到了3.py与4.5.是.py文件中的文本文件…

二分查找模版

对于一个递增序列我们要找大于等于target的数&#xff0c;返回结果的下标时 比如 序列 5 7 7 8 8 10 初始化左右指针l0 rn-1 猜测区间 [l,r] 闭区间&#xff0c;mid(lr)/2 防溢出就写成 midl(r-l)/2 如果有nums[mid]<target 那么[l,mid]这个区间的数就都小于target 更新 lmi…

5.Vectors Transformation Rules

在上节&#xff0c;有个问题&#xff1a;向量分量的转换方式 与 新旧基底的转换方式相反 用例子来感受一下&#xff0c; 空间中一向量V&#xff0c;即该空间的一个基底&#xff1a;e1、e2 v e1 e2 现把基底 e1 、 e2 放大两倍。变成 基向量放大了两倍&#xff0c; 但对于…

Javascript 事件的动态绑定

动态绑定事件&#xff0c;是指在代码执行过程中&#xff0c;通过Javascript代码来绑定事件。这种技术可以大大增强网页的交互性和用户体验。上一期介绍的是通过事件监听器 EventListener 去实现元素颜色的变化。这一期将通过动态绑定方法去实现&#xff0c;对象.事件 匿名函数…

【广州华锐互动】鱼类授精繁殖VR虚拟仿真实训系统

随着科技的不断发展&#xff0c;虚拟现实技术在各个领域的应用越来越广泛。在养殖业中&#xff0c;VR技术可以帮助养殖户进行家鱼授精实操演练&#xff0c;提高养殖效率和繁殖成功率。本文将介绍利用VR开展家鱼授精实操演练的方法和应用。 首先&#xff0c;我们需要了解家鱼授精…

mysql双主+双从集群连接模式

架构图&#xff1a; 详细内容参考&#xff1a; 结果展示&#xff1a; 178.119.30.14(主) 178.119.30.15(主) 178.119.30.16(从) 178.119.30.17(从)

Java中的instanceof

Java中的instanceof运算符是一种非常有用的工具&#xff0c;它可以帮助我们在运行时动态地确定对象的类型。通过使用instanceof&#xff0c;我们可以轻松地检查一个对象是否是指定类型&#xff08;或其子类&#xff09;的实例。本文将详细介绍instanceof运算符的使用方法、特点…

【C++】基础入门

万字复习C基础入门语法&#xff0c;适合学过C的朋友用来复习查阅&#xff0c;可能不太适合0基础的朋友。 一.c初识 (1) 第一个c程序 最简单的格式&#xff1a; // 导入头文件 #include<iostream> // 简化对命名空间std下函数和对象的使用 using namespace std; // …

STM32驱动步进电机

前言 &#xff08;1&#xff09;本章介绍用stm32驱动42步进电机&#xff0c;将介绍需要准备的硬件器材、所需芯片资源以及怎么编程及源代码等等。 &#xff08;2&#xff09;实验效果&#xff1a;按下按键&#xff0c;步进电机顺时针或逆时针旋转90度。 &#xff08;3&#xff…