以太网通讯协议小结--持续更新中

一、以太网介绍

以太网是一种产生较早,使用相当广泛的局域网技术,局域网就是一个区域的网络互联,可以使办公室也可以是学校等等,大小规模不一。

目前以太网根据速度等级分类大概分为:标准以太网(10Mbit/s),快速以太网(100Mbit/s),千兆以太网(1000Mbit/s),以及更快的万兆以太网(10Gbit/s)。但在平常使用中,快速以太网和千兆以太网已经足够了。

以太网通信是以数据包的形式传输, 其单包数据量达到几十, 甚至成百上千个字节。

以太网接口类型有RJ45接口RJ11接口(电话线接口),SC光纤接口。其中RJ45接口使我们最常用的以太网接口(电脑接口)。

RJ45接口也称为水晶头,由插头和插座组成
在这里插入图片描述
可以看到,RJ45接口和HDMI等接口一样,也是采用差分数据传输,这种传输有抗干扰能力强的特性(这在高速数据传输中很重要)。

RH45接口对应的网线分为4芯网线和8芯网线。
4芯包含两个差分对(Tx+、Tx-\Rx+、Rx-),1、2芯用于发送数据,3、6芯用于接受数据,4、5、7、8线为备用线没有使用(起抗电磁干扰的作用),通常应用于百兆网络传输;8芯包含四个差分对,1、2、3、4芯用于发送数据,5、6、7、8芯用于接受数据,1对3,2对6,3对1,4对7,5对8,6对2,7对4,8对5,通常应用于千兆及以上网络传输。

4芯网线为直通网线时,连接方式如下:
Hub/Switch Host
1 <------------>1
2 <------------>2
3 <------------>3
6 <------------>6

4芯网线为交叉网线时,连接方式如下:
Hub/Switch Hub/Switch
1 <------------>3
2 <------------>6
3 <------------>1
6 <------------>2

这里补充下主机串口的线序(一般也用RJ45接口),它的线序是全反网线,做法就是一端的顺序是1-8,另一端则是8-1 的顺序:
Host Router/Switch
1 <------------>8
2 <------------>7
3 <------------>6
4 <------------>5
5 <------------>4
6 <------------>3
7 <------------>2
8 <------------>1

二、以太网数据包格式
在这里插入图片描述
可以看到,我们一帧能发送的真正的数据内容为:18-1472 Byte;然后将用户数据添加UDP首部,形成UDP层;再加上IP首部,形成IP层;最后加上前导码、SFD(帧起始界定符)、以太网帧头、以及FCS(帧检验序列),构成了MAC层(物理层,包括源MAC地址和目的MAC地址),也就是最终需要在通信线路上传输的数据。

在设计物理层时,只需要计算得到各个首部、前导码、起始界定符、以及校验,就可以得到物理层,然后进行传输。

三、TCP/IP协议簇

TCP( 传输控制协议) /IP(网际协议)协议簇,虽然看上去TCP/IP协议簇只有两个协议,其实TCP/IP协议簇包含了上百种协议,最常用的有TCP、IP、UDP等。其中TCP协议和UDP协议应用最广泛。

1、IP协议

IP协议是TCP/IP协议簇中的核心协议,所有的TCP、 UDP及ICMP数据都以IP数据报格式传输。
从以太网数据包格式中可以看出,IP数据报 包括IP首部和数据段。
在这里插入图片描述
IP数据报内容
在这里插入图片描述
版本:4位版本号,IPv4(0100),IPv6(0110),目前在以太网使用IPv4多,但是在计算机系统中,IPv6也已经流行起来,因为IPv4仅用32个bit来表示地址,IPv4 地址的总数为 4294967296,到现在,已经快用光了;而IPv6使用128bit来表示地址,理论来说根本用不完。

首部长度:4位,表示IP首部一共有多少个32位(4Byte),假设无可选字段(一般来说没有),IP首部有20个Byte,则首部长度为5;最大为15,即60个Byte。

服务类型:8位,普通服务的话,设置为0。可以参考:IP首部中的服务类型(TOS)

总长度:16位,包括IP首部和IP数据部分,以字节为单位。我们利用IP首部长度和IP数据报总长度,就可以计算出IP数据报中数据内容的起始位置和长度。

标识:16位,通常每发一份报文,就加1。

标志:3位,用来表示分片还是不分片,第一位(最高位)保留,第二位(1-不分片,0-允许分片),第三位为1即表示后面“还有分片”的数据报。为0表示这已是若干数据报片中的最后一个。

叶偏移:13位,在接收方进行数据报重组时用来标识分片的顺序。

生存时间:8位,防止丢失的数据包在无休止的传播,一般被设置为64或者128。IPv6 地址有两个生存期:首选生存期和有效生存期,而首选的生存期总是小于等于有效的生存期。具体可以参考官方文档。

协议:8位,表示此数据报所携带上层数据使用的协议类型,TCP为6, UDP为17。可以参考:IP协议号 IP首部中有8位协议号,用于指明IP的上层协议

首部校验和:这部分需要自己计算,用来校验IP数据报头部是否被破坏、篡改和丢失等,不校验数据。

源MAC地址,目的MAC地址:就是发送和接收IP地址。

可选字段:是数据报中的一个可变长度的可选信息,选项字段以32bit为界,不足时插入值为0的填充字节,保证IP首部始终是32bit的整数倍。

2、UDP协议

在以太网数据包中,我们可以看到,TCP协议(IP层)比UDP层复杂,更为可靠,但是UDP运用场景也非常多。
那为什么不所有传输都用更可靠的TCP协议呢,这就像卖手机,不可能都上最好的配置,毕竟有人不需要这么好的配置,我只需要打电话,一个骁龙835就够了,如果你叫我多花2000块,买一个865,那我没必要。所以这就是需求不同,所以UDP也常用。

TCP与UDP的区别:TCP为可靠传输协议,而UDP为不可靠传输协议;TCP协议可以保证数据的完整和有序,而UDP不能保证;UDP由于不需要连接,故传输速度比TCP快,且占用资源比TCP少;

应用场景:TCP适用于对数据完整性要求很高的场合,比如文件传输;而UDP适用于对数据完整性要求不高的场合,比如说视频直播,毕竟直播的时候少传输几个像素点,影响也不大,而且视频直播要求数据传输很快。而文件数据要是少一个byte或者更多,可能会造成很大的问题。

UDP格式数据

在这里插入图片描述

四、以太网电路

一般一个嵌入式终端系统的以太网部分如下图
在这里插入图片描述
主要有MAC控制器、PHY芯片、网络变压器和RJ45接头组成,有的系统会有DMA控制。一般的系统中CPU和MAC以及DMA控制器都是集成在一块芯片上的,为了节省空间简化设计,很多时候网口的变压器和RJ45的接头集成在一起。

1、MAC

MAC即Media Access Control,即媒体访问控制子层协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。该层协议是以太网MAC由IEEE-802.3以太网标准定义,最新的MAC同时支持10Mbps和100Mbps两种。

2、PHY

PHY是物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY。包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。

PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说都是数据),把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码为模拟信号送出去。收数据时的流程反之。

3、示例图片

在这里插入图片描述
在这里插入图片描述
网卡部件
①RJ-45接口
②Transformer(隔离变压器)
③PHY芯片
④MAC芯片
⑤EEPROM
⑥BOOTROM插槽
⑦WOL接头
⑧晶振
⑨电压转换芯片
⑩LED指示灯

4、网络变压器

网络变压器作用是:

耦合差分信号,抗干扰能力更强
变压器隔离网线端不同设备的不同电平,隔离直流信号
网络变压器一般是由差模线圈,变压器以及中心抽头组成。如下示意:
在这里插入图片描述
其中初级中心抽头的接法需要根据PHY芯片来决定,电流驱动的就要接电源,电压驱动直接接个电容到地即可,是具体还要参看芯片的datasheet和参考设计了。 还需要注意的是有的变压器中间抽头是独立的有的是收发合并在一起的,设计的时候需要注意,为了防止初版硬件设计错误,可以兼容设计,如下所示:

在这里插入图片描述
变压器次级中心抽头使用Bob Smith电路来抑制共模噪音,利用75Ω和电容接地吸收共模能量,如上图原理图所示。

5、Bob Smith电路的作用

(1)浪涌防护

(2)降低EMC测试辐射

可以参考链接: 网口浪涌防护电路-Bob Smith电路

五、以太网设计布局布线

1、优先绘制Rx±、Tx±差分对,尽量保持差分对平行、等长、短距,避免过孔、交叉。由于管脚分布、过孔、以及走线空间等因素存在使得差分线长易不匹配,时序会发生偏移,还会引入共模干扰,降低信号质量。所以,相应的要对差分对不匹配的情况作出补偿,使其线长匹配,长度差通常控制在5mil以内,补偿原则是哪里出现长度差补偿哪里;

2、当速度要求高时需对Rx±、Tx±差分对进行阻抗控制,通常阻抗控制在100Ω±10%;

3、差分信号端接电阻(49.9Ω,有的PHY层芯片可能没有)必须靠近PHY层芯片的Rx±、Tx±管脚放置,这样能更好的消除通信电缆中的信号反射;

4、差分线对上的滤波电容必须对称放置,否则差模可能转成共模,带来共模噪声,且其走线时不能有stub ,这样才能对高频噪声有良好的抑制能力。
在这里插入图片描述
5、RJ45未集成变压器的布局布线
在这里插入图片描述
上图是变压器没有集成在网口连接器的电路PCB布局、布线参考,需要注意以下几点

a)RJ45和变压器之间的距离尽可能的短,晶振远离接口、PCB边缘和其他的高频设备、走线或磁性元件周围,PHY层芯片和变压器之间的距离尽可能短,但有时为了顾全整体布局,这一点可能比较难满足,但他们之间的距离最大约10~12cm,器件布局的原则是通常按照信号流向放置,切不可绕来绕去;

b)PHY层芯片的电源滤波按照要芯片要求设计,通常每个电源端都需放置一个退耦电容,他们可以为信号提供一个低阻抗通路,减小电源和地平面间的谐振,为了让电容起到去耦和旁路的作用,故要保证退耦和旁路电容由电容、走线、过孔、焊盘组成的环路面积尽量小,保证引线电感尽量小;

c)网口变压器PHY层芯片侧中心抽头对地的滤波电容要尽量靠近变压器管脚,保证引线最短,分布电感最小;

d)网口变压器接口侧的共模电阻和高压电容靠近中心抽头放置,走线短而粗(≥15mil);

e)变压器的两边需要割地:即RJ45连接座和变压器的次级线圈用单独的隔离地,隔离区域100mil以上,且在这个隔离区域下没有电源和地层存在。这样做分割处理,就是为了达到初、次级的隔离,控制源端的干扰通过参考平面耦合到次级;

f)指示灯的电源线和驱动信号线相邻走线,尽量减小环路面积。指示灯和差分线要进行必要的隔离,两者要保证足够的距离,如有空间可用GND隔开;

g)用于连接GND和PGND的电阻及电容需放置地分割区域。

6、RJ45集成变压器的布局布线

变压器集成在连接器的以太网电路的PCB布局、布线较不集成的相对简单很多,下图 3是采用一体化连接器的网口电路的PCB布局、布线参考图:

在这里插入图片描述

六、参考链接
1、以太网芯片MAC和PHY的关系
2、网口设计时布局布线
3、以太网(Ethernet)学习(一):协议
4、以太网PHY自学笔记

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

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

相关文章

数据结构——利用堆进行对数组的排序

今天文章的内容是关于我们如何利用堆的特性对我们的数组进行排序&#xff0c;还有就是我们的TopK的问题&#xff0c;这次我们放在的是文件种&#xff0c;我们放入一亿个数字&#xff0c;然后我们取出一亿个数字中最大的十个数&#xff0c;利用上章堆的问题进行解决。 首先就是我…

HTML+CSS+JS网页设计

文章目录 作品介绍一、代码演示1.登录、注册&#xff0c;获取当前时间2.轮播图3.家乡简介4.热门景点5.特色美食6.页尾 二、效果图总结 作品介绍 HTML页面主要由&#xff1a;登录、注册跳转页面&#xff0c;轮播图&#xff0c;家乡简介&#xff0c;热门景点&#xff0c;特色美食…

OpenCV入门11——图像的分割与修复

文章目录 图像分割的基本概念实战-分水岭法(一)实战-分水岭法(二)GrabCut基本原理实战-GrabCut主体程序的实现实战-GrabCut鼠标事件的处理实战-调用GrabCut实现图像分割meanshift图像分割视频前后景分离其它对视频前后影分离的方法图像修复 图像分割是计算机视觉中的一个重要领…

羊大师:不同时段喝羊奶,效果会有何不同?

羊大师&#xff1a;不同时段喝羊奶&#xff0c;效果会有何不同&#xff1f; 羊奶是一种营养丰富、口感香浓的健康饮品&#xff0c;被广大消费者所喜爱。然而&#xff0c;你是否知道&#xff0c;不同的喝奶时间对身体的影响也是不同的呢&#xff1f;在不同时段喝羊奶&#xff0…

ECShop 2.x/3.x SQL注入/远程代码执行漏洞

漏洞描述 ECShop是一个B2C独立商店系统&#xff0c;供企业和个人快速建立个性化的在线商店。本系统是一个基于PHP语言和MYSQL数据库架构的跨平台开源程序。 在 2017 年及之前的版本中&#xff0c;存在一个 SQL 注入漏洞&#xff0c;该漏洞可能会注入有效负载并最终导致代码执…

【JavaEE初阶】 博客系统项目--前端页面设计实现

文章目录 &#x1f332;主要内容&#x1f38d;预期效果&#x1f6a9;博客列表页效果&#x1f6a9;博客详情页&#x1f6a9;博客登录页&#x1f6a9;博客编辑页 &#x1f340;实现博客列表页&#x1f6a9;实现导航栏&#x1f388;页面主体部分 &#x1f384;实现博客详情页&…

新闻研究导刊杂志社新闻研究导刊杂志新闻研究导刊编辑部2023年第21期目录

新闻研究导刊杂志社新闻研究导刊杂志新闻研究导刊编辑部2023年第21期目录 研究论文 视频新闻的短视频化趋势与受众接受度分析 郭晓楷; 1-4 新媒体时代铸牢中华民族共同体意识的理论逻辑与实践路径研究 衷振华; 5-7 区域形象名片化构建背景下的新媒体传播策略研究 宋…

MySQL死锁,死锁产生的4个必要条件,死锁案例, 如何避免死锁

文章目录 MySQL死锁了怎么办&#xff08;死锁的产生及解决方案&#xff09;&#xff1f;1、 死锁与产生死锁的四个必要条件1.1 什么是死锁1.2 死锁产生的4个必要条件 2、死锁案例2.1 表锁死锁2.2 行锁死锁2.3 共享锁转换为排他锁 3、死锁排查4、 如何避免死锁5、死锁的排查6、 …

在线教育行业内卷突围,持续激活平台用户体验是关键

在线教育并不等同于K12教育。 众所周知&#xff0c;越来越卷的考试制度&#xff0c;已经被家长、学生们的谩骂和吐槽淹没了好几层。各种减负、杜绝课后补课等条例纷纷出台&#xff0c;不断的挤压着K12教育企业的生存空间。 于是乎&#xff0c;大家都认为&#xff0c;在线教育…

语义SLAM论文、代码和数据集汇总

文章目录 2023Large-scale Autonomous Flight with Real-time Semantic SLAM under Dense Forest Canopy 2023 Large-scale Autonomous Flight with Real-time Semantic SLAM under Dense Forest Canopy 摘要&#xff1a;语义地图使用一组语义上有意义的对象来表示环境。这种…

UCP通信

一&#xff0c;概括 二 &#xff0c;常用方法 三&#xff0c;实现步骤&#xff08;一发一收&#xff09; 四&#xff0c;案例&#xff08;一发一收&#xff09; &#xff08;1&#xff09;&#xff1a;客户端 &#xff08;2&#xff09;&#xff1a;服务端 &#xff08;3&…

C语言键盘输入字符串小写转大写输出及scanf的小问题解决

1.博主在学习C语言时&#xff0c;也没太关注C语言的一些细节问题&#xff0c;导致后面有人问问题的时候一时没回答出来&#xff0c;也就是所谓的基础不牢地动山摇&#xff0c;比如这一次有同学问的scanf键盘输入的小问题&#xff0c;折腾了一阵子还是想出来问题所在。 2.废话不…