以太网技术介绍

      随着通信和计算机技术的不断发展,无论是骨干网还是接入网,以太网都已成为应用场景最多,应用范围最广泛的技术之一。对于初次应用以太网的读者,本文主要给出以太网技术的基础知识,并对以太网涉及的部分协议进行简要说明。

1 以太网的发展演进

1.1 以太网发展史

       以太网(Ehernet)黄由施系(Xerox)公司创建,后经Xerox、Intel和DEC公司联合开发的基带局域网规范。1977年,罗伯特·梅特卡夫(RobertMetcalfe)及其合作者获得“具有冲突检测的多点数据通信系统”专利,标志着以太网的诞生,以太网现已发展成为局域网中最常果用的通信协议标准,即电气与电子工程师协会(IEEE)采纳的802.3标准。具体包括标准以太网(10Mbps)、快速以太网(100Mbps)、干兆以太网(1000Mbps)和10G以太网(10Gbps)等。

       速率达到或超过100Mbps的以太网称为高迷以太网,干兆以太网是当前被广泛应用的高速以太网技术,它沿用了经典以太网标准规定的全部技术规范,兼容CSMAVCD协议、以太网帧,全双工、流量控制及IEEE802.3标准中所定义的管理对象等。在继承经典以太网技术优点的同时,千兆以太网又具有诸多新特性,例如,为了适应光纤传输对编码的要求,使用了新的8B/10B编码规则:为了解决距离覆盖问题采用了载波扩展技术:为了提高效率引入了帧突发技术等。由于千宪驻太网具有良好的继承性和许多优秀的新特性,所以它现已成为局域网的主流解决方案,主要应用包括,(1)提供快速以太网交换机间的局部连接:(2)提供高速服务器的连接,消除服务器吞吐量瓶颈:(3)企业级局域网建设。回顾以太网技术的发展,10Mbps的标准以太网淘达了当时支持更高速率(即16Mbps)的令牌环(Token Ring),快速以太网佳得曾经是最快的局域网技术的光纤分布式数据接口(FDDI)成为了历史。高速以太网技术的不断发展,使以太网的市场占有率进一步提高,以太网的工作范围也从局域网逐步扩大到了城域网和广域网,

1.2千兆以太网体系

    千兆以太网主要包括IEEE 802.3z和IEEE 802.3ab两个标准定义的4种规范。如图1所示,IHEE802.3z制定了光纤和短程铜线连接方案1000Base-X(1000Base-SX:多模光纤:1000Base-LX:单模光纤;1000Base-CX:150Ω屏蔽双绞线);IEEE 802.3ab制定了5类双绞线上的较长距离连接方案1000Base-T.

1千兆以太网体系结构

在工业应用中,虽然有些规范还未正式以标准形式对外发布,但已被广泛果用,如1000Base-LH、1000Base-ZX、1000Base-LX10、1000Base-BX10和1000Base-TX。这种工业规范与IEEE 802.3z和IEEE802.3ab两个标准定义的4种规范构成了千兆以太网常用规范,具体介绍如表1所示。

表1 千兆以太网常用规范简介

    根据所采用的传输介质类型,表1中的9种千兆以太网规范可分为两大类:基于光纤的规范和基于双绞线的规范。光纤具有传输速度快、传输容量大、抗电磁干扰性好和保密性强等优点,基于光纤介质的以太网适宣高速、长距离网络传输,是组建较大规模网络的必然选择。光纤的缺点是价格较为昂责,出于降低成本的考虑,基于双绞线的以太网得到了广泛应用,但其在传输中易受干扰、支持带室较低,国此双绞线适用于短距离、一般信号的传输。

2 以太网协议规范介绍

2.1 IEEE 802.3以太网模型

       IEEE802.3协议标准中,数据链路层由低到高分为MAC(Media Acee Contral:煤体访问控制)子层、MAC Control(MAC控制)子层和LLC(逻辑链路控制)子层。如图2所示为IEEE802.3协议标准规定的以太网模型,图中的灰色部分表明以太网MAC完成OSI参考模型中数据链路层的功能,并且可以独立连接任意类型的物理层设备。 MAC单独作为一个子层。完成封装(成帧、地址标示、差错检测》和媒体接入(冲突检测和延时过程)等功能:MAC Centrol子层为可选项,LIC子层通过给数据包加上目的地址服务找入点和源地址服务接入点来保证数据包可以在不同类型的网络中传输。

图2  IEEE和02.3以太网模型

      物理层的结构随着传输速市的不同有一定的差异,千兆以太网的传输介质可分为基于双绞线的1000Basc-T和基于光纤的1000Base-X两类,对应的协议分别为IEEE 802.3ab和IEEE802.3z等,以太网标准规定了以太网MAC的功能和物理接口等,读者如果要进一步了解以太网模型,可以参考IEEE802.3协议说明书(以太网规范的最新版本为1EEE5ud 802.3-2012)。

2.2 以太网帧格式

       以太网数据封装为标准帧之后再进行传输,如图3所示为标准以太网帧格式,包括帧头标记(前导码和帧起始定界符)、目的MAC地址、源MAC地址、长度/类型域、数据域,填充域和帧校验城等字段。帧格式字段的发送顺序为由左至右,帧内字节发送顺序从低位字节开始。

图3  标准以太帧格式

       标准以太网帧长度范围为64-1518字节(帧长度包括目的MAC地址、源MAC地址、长度/类型域、数据域,填充域和帧校验域),这是因为当以太网帧长度小于64字节时,会造成双方通信的数据发生冲突,导致数据传输失败:当遇到数据字段小于46字节时,可通过加入填充字段来保证帧长不小于64字节:通常的应用情况下,最大的以太网帧长度为1518字节(TEEE802.3标准规定的数据字段最大长度为1500字节,再加上18字节的帧头和帧尾部分)。在实际应用中,以太网存在一种非IEEE标准的帧,称为巨帧(Jumbo Frame)。这是网络厂商为了提商网络的吞吐率和工作效率而提出的帧格式。现已得到广泛的使用和设备支持;巨帧长度由通信设备厂商规定,一般大于9000字节。

      出于限制网络广播和划分网段等的考虑,产生了虚拟局域网(Virtual Local Area Network,VLAN)技术,通过加上明确的VLAN标识可以实现在同一物理网络上进行网段划分,保证数据帧可以发送到特定的网段。VLAN以太网帧格式如图4所示,VLAN帧在标准以太网帧的基础上增加了0X8100(协议标志》和2字节的VLAN标记:VLAN标记包括TCI(控制信息)、Priority(优先级)、CFI(规范标识位)和VLANID信息。基于VLAN的数据帧可以将同一局域网的设备在逻辑上划分为多个网段(每个网段都有一个标记》,从而实现VLAN划分。对于相同的物理网络,携带VLAN标记的以太网帧只在特定的VLAN域内进行交换和转发,解决了传统以太网数据交换产生冲突域的问题避免了“广播风暴”引起的性能恶化。

图4 VLAN以太网顿格式

2.3  千兆以太网协议简介

      千兆以太网是一个定义在MAC层和物理层上的技术,千兆以太网与10/100Mbos以太网协议结构对比如图5所示,从图中可以看出于兆以太网协议与10/100Mbps以太网协议只在物理层有区别,协调子层(Reconciliation Sublayer,RS)实现指令转换,将GMII或MI的通路数据和相关控制信号映射到MAC接口。MII(介质独立楼口)/GMII(千兆介质独立接口)是物理层芯片与上层协议芯片之间的接口;MDI(介质相关接口)是物理层芯片与物理介质之间的接口;PCS、PMA和PMD分别表示实现物理层协议的各子层。在实际应用中,这些物理子层的具体操作将由物理层芯片实现,用户只需要对 MI/GMII和MDI接口进行设计即可。

图5以太网协议结构对比

1)PCS/PMA/PMD分层规范

物理层器件(PHY)负责为链路层实体之间的比特传输提供物理连接所青的电气,机械和光电转换等,数据以正向顺序进行传输,即从MAC层依次到PCS、PMA和PMD子层,反之为接收过程。PCS、PMA和PMD子层的主要功能如下,

■ 物理编码子层(Physical Code Subplayer:PCS);对GMII新发送的数据进行编、译码,便于在物理介质上传输,自动协商,使得网络设备能将线路两端调节到最高的传输能力,即线路两端保持都能支持最快的速度。

■ 物理介质连楼子层(Physical Medium Attachmenm,PMA);生成线路的传输信号;接收线路上的信号:时钟恢复,从接收到的数据流中恢复出参考时钟。

■ 物理介质相关子层(Physical Medium Dependent,PMD):定义不同传输介质的接口标准,提供物理连接。

2)MII接口规范

以太网物理接口主要有:介质独立接口(Media Independent Interface,MII)、干兆介质独立接口(Gigabit Media Independent Interface,GMII)、简化的千兆介质独立接口(Reduced Gigabit Media Independent Interface,RGMII)、串行千兆介质独立接口(Serial-GMII,SGMI和1000BASE-X。其中,MII、GMII和RGMII为并行,SGMII和1000BASE-X为串行,各接口的工作速率如下。

■ MII:工作速率为10/100Mbes,

■ GMII:工作速率为10/100/1000Mbps

■ RGMII:工作速率为10/100/1000Mbps。

■ SGMI/1000BASE-XPCS/PMA:工作速率为10/100/1000Mbps,或1000Mb/s专用(光纤传输最普遍采用的接口)。

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

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

相关文章

收音机套件焊接和装调的总结

很早之前买了一个小收音机,今天翻出来焊接上。 还好,质量挺好的,电路板没有氧化。 一。静态电流 pcb上面留有ABCD四个测电流的位置。方便调试。 焊接后,V1电流偏大,如果电流过大,会导致R2的压降过大&am…

datepicker 时间快捷键、禁用日期

一、封装方法 /*** 默认开始和结束时间* type {string[]}*/ import dayjs from dayjs export const defaultTime [00:00:00, 23:59:59] /*** 设置日期组件 快捷方式* type {({onClick(*): void, text: string}|{onClick(*): void, text: string}|{onClick(*): void, text: s…

JavaWeb后端基础知识(1)包括(SpringBoot,HTTP,Web 服务器,请求,响应,分层解耦)

JavaWeb后端基础知识(1) 包括(SpringBoot,HTTP,Web 服务器,请求,响应,分层解耦) 目录 JavaWeb后端基础知识(1) 一.SpringBoot 1.SpringBogtWe…

verilog基础语法之表达式

verilog基础语法之表达式 1、操作数2、操作符3、示例 在Verilog中,表达式是由操作数和操作符组成的组合,包括:算术操作符、关系操作符、等价操作符、逻辑操作符、按位操作符、归约操作符、移位操作符、拼接操作符和条件操作符,它们…

学习java第六十六天

Spring 中的 bean 的作用域有哪些? singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。 prototype : 每次请求都会创建一个新的 bean 实例。 request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。 sessio…

GT2505HS-VTBD 三菱触摸屏手持式5.7寸型

GT2505HS-VTBD 三菱触摸屏手持式5.7寸型 GT2505HS-VTBD参数,GT2505HS-VTBD用户手册,GT2505HS-VTBD使用手册GT2505HS-VTBD参数说明:手持式5.7吋型,VGA 640*480,TFT彩色液晶屏,65536色,内存32MB,DC24V,内置以太网接口。 GT2505HS-VT…

agiletc部署

数据库创建及运行 启动命令 cd /AgileTC/case-server&& nohup mvn spring-boot:run &查看是否启动成功 http://192.168.101.:8094/case/caseList/1需要安装java javac等 一、安装java 1 安装java11 sudo yum install java-11-openjdk-devel -y2 切换到java11 …

【零基础】system generator①设置卡解析

1.在matlab中我们输入的是双精度浮点型数据,经过gateway后变成定点型。十六位十四个小数位,整个数据有十六位,其中十四位给了小数 2.fixed-point定点型;signed有符号;2’s comp补码 3.量化误差 truncate,舍…

同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本(两个详细方法)

目录 一.使用nvm的方法: 1.卸载nodejs 2.前往官网下载nvm 3.安装nvm 4.查看安装是否完成 5.配置路径和淘宝镜像 6.查看和安装各个版本的nodejs 7.nvm的常用命令 二.不使用nvm,安装多个版本: 1.安装不同版本的nodejs 2.解压到你想放…

Ubuntu 22.04 下,VS Code 配置 C++ 编译及 CMake

一、VS Code 安装以及 C 编译环境配置 1. 在 Ubuntu 中安装 VS Code 笔者直接在 Ubuntu Software 中心安装 VS Code。也可以从VS Code官网下载 deb,解压 dpkg -i 安装。 2. VS Code 中配置 g/gcc 1) 安装 C/C 扩展 (CtrlShiftX) 2&#x…

差速机器人模型LQR 控制仿真(c++ opencv显示)

1 差速机器人状态方程构建 1.1差速机器人运动学模型 1.2模型线性化 1.3模型离散化 2离散LQR迭代计算 注意1:P值的初值为Q。见链接中的: 注意2:Q, R参数调节 注意3:LQR一般只做横向控制,不做纵向控制。LQR输出的速度…

辅助阅读代码

辅助代码工具: 1、sourcetrail 2、valgrind , qcachegrind sourcetrail,可以生成类图,以及类之间,函数之间的调用关系 1、安装 2、使用该工具需要使用cmake 编译一次 cmake -DCMAKE_EXPORT_COMPILE_COMMANDSON 其他…

手机同步与数据安全:让手机和电脑完美结合!

在当今这个高度信息化的社会,手机和电脑不仅为我们提供了丰富的信息资源,让我们能够随时随地获取所需的信息,还为我们的生活带来了极大的便利。无论是工作、学习还是娱乐,手机和电脑都发挥着至关重要的作用。 然而,随…

XMLHttpRequest与Axios详解

XMLHttpRequest发送请求 在JavaScript中,使用XMLHttpRequest()发送多个参数通常涉及到设置HTTP请求的Content-Type头部,并且将参数作为请求体的一部分发送。以下是一个示例,展示了如何发送包含多个参数的POST请求: var xhr new X…

Paddle 实现DCGAN

传统GAN 传统的GAN可以看我的这篇文章:Paddle 基于ANN(全连接神经网络)的GAN(生成对抗网络)实现-CSDN博客 DCGAN DCGAN是适用于图像生成的GAN,它的特点是: 只采用卷积层和转置卷积层&#x…

nvm切换node版本命令

nvm切换node版本命令 使用 nvm 切换 Node.js 版本的命令如下&#xff1a;12 查看 nvm 支持安装的 Node 版本。进入命令行界面&#xff0c;输入 nvm list available&#xff0c;这会显示可以安装的 Node.js 版本。安装指定版本的 Node.js。输入 nvm install <版本号>&…

优先队列——大小堆—— priority_queue

本人博客主页 本篇博客相关博客 二叉树--讲解 文章目录 目录 文章目录 前言 一、priority_queue是什么&#xff1f; 二、priority_queue的使用 1、相关函数 2、代码使用 3、堆的插入删除 三、模拟实现 1、大框架 2、仿函数 3、向下调整 4、向下调整 总结 前言 在我们学习二叉…

免费SSL证书怎么签发

大家都知道SSL证书好&#xff0c;作用大&#xff0c;安全性高&#xff0c;能加权重&#xff0c;等保必须的参考值。但是如何选择合适且正确的证书也是至关重要的&#xff0c;网站更适合单域名证书、多域名证书、泛域名证书、还是多域名通配符证书。 首先大家要清楚&#xff0c…

网站访问提示不安全怎么办??

当网站访问时提示“不安全”&#xff0c;这通常与网站的SSL证书有关&#xff0c;或者是网站本身存在一些安全风险。以下是一些解决步骤和建议&#xff1a; 1、检查URL前缀&#xff1a;首先&#xff0c;检查URL是否以https://开头。如果仍然是http://&#xff0c;则网站没有使用…

python 新特性

文章目录 formatted字符串字面值formatted字符串支持 字符串新方法变量类型标注二进制表示中数字为1的数量统计字典的三个方法新增mapping属性函数zip()新增strict参数dataclass字典合并match 语法 formatted字符串字面值 formatted字符串是带有’f’字符前缀的字符串&#xf…