PHY以太网自动协商原理

自协商原理:
           自协商是通过一种叫做快速连接脉冲(Fast Link Pulse)的信号实现的,简称FLP。自协商的双方通过FLP来交换数据。

       在具备自协商能力的端口没有Link的情况下,端口一直发送FLP,在FLP中包含着自己的连接能力信息,包括支持的速率能力、双工能力、流控能力等。这个连接能力是从自协商能力寄存器中得到的(Auto-Negotiation Advertisement Register ,PHY标准寄存器地址4 )。FLP中的编码方式如图。依靠脉冲位置编码携带数据。一个FLP突发包含33个脉冲位置。17个奇数位置脉冲为时钟脉冲,时钟脉冲总是存在的;16个偶数位置脉冲用来表示数据:此位置有脉冲表示1,此位置没有脉冲表示0。这样1个FPL的突发就可以传输16bit的数据。自协商交互数据就这样通过物理线路被传输。

       如果两端都支持自协商,则都会接收到对方的FLP,并且把FLP中的信息解码出来。得到对方的连接能力。并且把对端的自协商能力值记录在自协商对端能力寄存器中(Auto-Negotiation Link Partner Ability Register , PHY标准寄存器地址5 )。同时把状态寄存器(PHY标准寄存器地址1)的自协商完成bit(bit5)置成1。在自协商未完成的情况下,这个bit一直为0。然后各自根据自己和对方的最大连接能力,选择最好的连接方式Link。比如,如果双方都即支持10M也支持100M,则速率按照100M连接;双方都即支持全双工也支持半双工,则按照全双工连接。一定连接建立后,FLP就停止发送。直到链路中断,或者得到自协商Restart命令时,才会再次发送FLP。
并行检测
为了保证在对端不能支持自协商的情况下也能连接,引入了被称为并行检测(Parallel Detection)的机制。在一端打开自协商,另一端关闭自协商的情况下,连接的建立就依靠并行检测功能实现。
并行检测机制是这样的:在具有自协商能力的设备端口上,如果接收不到FLP,则检测是否有10M链路的特征信号或100M链路的特征信号。
       1) 如果设备是10M设备,不支持自协商,则在链路上发送普通连接脉冲(Normal Link Pulse)简称NLP。NLP仅仅表示设备在位,不包含其它的额外信息。
       2) 如果是100M设备,不支持自协商,则在没有数据的情况下,在链路上一直发送4B/5B编码的Idle符号。
并行检测机制如果检测到NLP,则知道对方支持10M速率;如果检测到4B/5B编码的Idle符号,则知道对方支持100M速率。但是对方是否支持全双工、是否支持流控帧这些信息是无法得到的。因此在这种情况下,认为对方只支持半双工,不支持全双工,且不支持流控帧。

       基于以上原理,在对端不打开自协商时,打开自协商的一方只能协商成半双工模式。


       802.3协议规定,通过并行检测建立连接后,PHY的状态寄存器(PHY标准寄存器地址1)的自协商完成bit(bit5)依然要置位成1,尽管链路上并非使用了真正的自协商操作。同时规定在自协商完成bit为1的情况下,本地自协商能力寄存器(PHY标准寄存器地址4)和对端自协商能力寄存器(PHY标准寄存器地址5)是有意义的。所以,要把寄存器5中的数据更新。如果建立的连接为10M,则寄存器5的10M能力bit(bit5)置1,其它bit置0,表示对端只能支持10M半双工;如果建立的连接为100M,则寄存器5的100M能力bit(bit7)置1,其它bit置0,表示对端只能支持100M半双工。


千兆光口自协商:

       千兆光口可以工作在强制和自协商两种模式。802.3规范中千兆光口只支持1000M速率,支持全双工(Full)和半双工(Half)两种双工模式。


千兆光口自协商过程:

1) 两端都设置为自协商模式

        双方互相发送/C/码流,如果连续接收到3个相同的/C/码且接收到的码流和本端工作方式相匹配,则返回给对方一个带有Ack应答的/C/码,对端接收到Ack信息后,认为两者可以互通,设置端口为UP状态

2) 一端设置为自协商,一端设置为强制

       自协商端发送/C/码流,强制端发送/I/码流,强制端无法给对端提供本端的协商信息,也无法给对端返回Ack应答,故自协商端DOWN。但是强制端本身可以识别/C/码,认为对端是与自己相匹配的端口,所以直接设置本端端口为UP状态

3) 两端均设置为强制模式


       双方互相发送/I/码流,一端接收到/I/码流后,认为对端是与自己相匹配的端口,直接设置本端端口为UP状态

注意:

       以太网交换机的两个千兆电口对接时,如果一端配置成强制千兆全双工模式,那么协商结果很可能是千兆全双工模式。这个结果和常识相悖。正常情况下,一端强制一端自协商的话,协商结果应该是半双工模式。
   之所以出现上面的情况,是因为这里的强制模式是假象,实际上端口依然工作在自协商模式,只是取消了千兆全双工以外的能力。这样,两个自协商模式的端口对接,协商出全双工模式也就是意料之中的事了。如果再深入一点点,就会产生一个疑问——为什么交换机要这样设定呢?这要从千兆电口的工作原理说起。
   两个千兆电口对接时,一端要工作在master模式,另一端则工作在slave模式。Slave一端不使用自己的时钟,而是从接收到的信号中恢复时钟,自己发送信号时就使用恢复出来的时钟。这样,可以有效保证双方的同步。但是,谁当master,谁又当slave呢?这就要通过自协商功能做出裁决。正是因为这个原因,IEEE 802.3ab-1999标准规定,自协商功能是1000BASE-T以太网的必选项。

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

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

相关文章

canvas--初级

摘要: canvas:默认宽高为300*150,需用canvas的API定义其宽高绘画路径以beginPath()开始,以closePath()结束常用方法fill()、stroke()、rect()、arc()、text()、lineTo()、moveTo()以下为代码: var cdocument.getElementById("mycanvas&q…

扑克牌翻牌问题(递归)

扑克牌翻牌问题 题目描述: 有52张牌,使它们全部正面朝上,从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;接着从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面…

以太网自动协商原理

自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式。 自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受…

Python学习-文件的调用-读取

1.文件的打开 open(filename[,mode[,buffering]]) #这个一定要记得关文件。close.() filename,要以路径的形式展示,比如在"c:\"中,则要这样写: rc:\filename 如果不用路径展示,那就用filename.其会在执行文件所在的文件夹进行搜索…

javascript . 05 json的组成、for...in 遍历对象、简单数据类型与复杂数据类型的传值与传址、内置对象...

对象字面量 JSON var obj { aaa :999};   var json{"aaa":999,“bbb”:888}; ”kay“:value 对象字面2⃣️定义方法和json很像,只有一点不同,json的key 必须加“”   ; 对象,数…

nohup命令

nohup命令 起因 ssh到机器上,然后执行某个程序,再登录发现程序早就不运行了。 原因 ssh过去之后,执行的大部分命令(守护进程不会断开),都是ssh进程的子进程,ssh断开,命令自然会中断 …

mac与phy如何实现网络自适应

这两天修改网卡驱动以实现10/100/1000M自适应,因此研究了下phy芯片和emac驱动如何兼容10/100/1000M网络环境,记录在此。 网络中设备端数据链路层由mac芯片和phy芯片组成,phy芯片根据外部网络环境完成自动协商以及配置,驱动中根据p…

asp.net(mvc) 框架

1、NFine mvcef 2、Grove orm架构 3、NHibernate orm 4、NBear 5、petshop 6、Membership 7、Brnshop 网上商城 8、cms快速开发:http://www.open-open.com/news/view/a90f1 9、c#开源框架:http://www.cnblogs.com/gaoyuchuanIT/articles/5612268.html 来…

LVM逻辑卷详解及创建

我们先来看一下这张图片:PV: 底层的一个硬盘设备,可以是一个分区,也可能是一个RAID。我们可以把这个块设备创建成一个物理卷格式,即一个PV。VG: 将一个或多个PV提供的存储空间在一个更低的单位上划分成一个个独立的存储单元&#…

python文件操作总结

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目…

Fread 和fwrite的参数不同,返回值不同

函数fwrite 功能C语言函数,向文件写入一个数据块 。size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);注意:这个函数以二进制形式对文件进行操作,不局限于文本文件返回值:返回实际写入的数据块数目&…

课程简介及算法分析

先学课程 -概率论 运行时间(running time) - 输入(eg 已经排序) - 输入规模(6和6*10^9) 各种各样的分析: - 最坏情况分析(worst case)usually T(n) max time when inp…

利用shell脚本添加环境变量

在shell脚本设置了环境变量,如export LIBRARY_PATH./lib/,执行了此脚本后, 在执行生成的可执行文件,提示错误 error while loading shared libraries: libww.so: cannot open shared object file: No such file or directory 但是如果把expor…

2017 ACM-ICPC西安网赛B-Coin

B-Coin Bob has a not even coin, every time he tosses the coin, the probability that the coins front face up is \frac{q}{p}(\frac{q}{p} \le \frac{1}{2})​p​​q​​(​p​​q​​≤​2​​1​​). The question is, when Bob tosses the coin kktimes, whats the pr…

Java第四次作业

Dog dognew Dog("哈士奇","黑白",2);System.out.println(dog);}}class Dog {private String name;private String color;private int age;public String getName(){return name;}public String getColor(){return color;}public int getAge(){return age;}…

ITU-RBT.656视频标准接口

601是SDTV的数据结构 656是SDTV的interface 709是HDTV的数据结构 1120是HDTV的interface ITU-R BT.601是演播室数字电视编码参数标准,而ITU-R BT.656 则是ITU-R BT.601附件A中的数字接口标准, 用于主要数字视频设备(包括芯片)之间采用27Mhzs并口或243Mb…

C语言博客作业03--函数

1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了函数,其实,函数于之前学习的三大控制结构是密不可分的,而函数又有其特殊的地方,例如:函数的声明、函数的调用等等。我们之前编写…

Shell记录-Shell命令(其他)

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 .命令格式 top [参数]Shell2.命令功能 显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、…

Insta360:从软到硬,一年做出360°全景相机,中间填了多少坑?

摘要刘靖康在大学就开始创业。在大二的时候他曾经去腾讯实习,然后又去了“超级课程表”这个团队实习半年,2013 年 9 月回到南京创业,一开始的产品叫“名校直播”,是一款围绕院校名师讲座所做的视频直播产品。 不久前,一…

No.10 awk、变量、运算符、if多分支

awk、变量、运算符、if多分支 awk语法 ~ awk -F: {print $3,$4} /etc/passwd //-F指定:分隔符 默认以空格作为分隔符 ~ awk -F: {print &0,NF} //$0打印全部,NF有几段内容 ~ awk -F: {print $NF} /etc/passwd //$NF打印最后一段内容 ~ awk -F: {print NR} /etc/passwd…