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.pswp.cn/news/253074.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253074.shtml
英文地址,請注明出處:http://en.pswp.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…