<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 以太網(wǎng)流控機制及其基于VSC7323的實(shí)現

以太網(wǎng)流控機制及其基于VSC7323的實(shí)現

作者: 時(shí)間:2008-03-13 來(lái)源:電子產(chǎn)品世界 收藏

  摘要: 本文針對以太網(wǎng)異步的特性,討論了當前業(yè)界使用的避免丟包的方法,并就這些方法中最常用的流控機制做了具體陳述,并基于VSC7323闡述了具體實(shí)現方式。

本文引用地址:http://dyxdggzs.com/article/80009.htm

  關(guān)鍵詞: 以太網(wǎng);丟包;流控;VSC7323

  異步以太網(wǎng)中的丟包問(wèn)題

  目前廣泛應用的以太網(wǎng)仍然基于異步機制,異步指網(wǎng)絡(luò )中的各個(gè)設備處于各自獨立的時(shí)鐘域。

  圖1是一種以太網(wǎng)應用示例。以太網(wǎng)設備1和以太網(wǎng)設備2代表以太網(wǎng)中相互進(jìn)行業(yè)務(wù)傳輸的設備。

圖1 以太網(wǎng)傳輸示例

  示例的傳輸機制如下:設備1 的待發(fā)送數據包存儲在其內部發(fā)送緩存中,并基于本設備的工作時(shí)鐘(OSC1)進(jìn)行發(fā)送。數據包進(jìn)入設備2后,首先經(jīng)過(guò)CDR(時(shí)鐘數據恢復器)的處理,從接收數據中提取出時(shí)鐘,并利用此時(shí)鐘,將數據包存入其接收緩存中。存入接收緩存的數據包經(jīng)過(guò)本設備上層協(xié)議處理或經(jīng)過(guò)網(wǎng)絡(luò )中其他設備的傳輸和處理后,假設這些數據包的數目沒(méi)有發(fā)生變化,并且需要經(jīng)過(guò)設備2傳輸回設備1。

  根據圖1,設備1發(fā)出數據包是基于本地時(shí)鐘OSC1,設備2作為接收方,基于從接收到的數據包中提取出的時(shí)鐘CLK2,采樣接收數據并將其存儲進(jìn)入接收緩存。分析可知,CLK2和OSC1兩時(shí)鐘是同步的。依此同樣可以推知設備2發(fā)往設備1的數據包傳輸流程。由于以太網(wǎng)異步工作的本質(zhì),OSC1和OSC2作為不同設備的本地時(shí)鐘,并不能做到完全同頻(以太網(wǎng)設備的工作時(shí)鐘允許有正負50ppm的頻差),假設OSC1的頻率高于OSC2,則設備2將以比較快的速度在接收口上接收數據包,但只能以較慢的速度在發(fā)送口上轉發(fā)出去。從而在設備2上將存在流量的瓶頸,當設備2 的接收緩存存滿(mǎn)后,會(huì )導致丟包。

  為了更加清晰的表述問(wèn)題,將設備2作為一個(gè)黑盒子,并且考慮極限情況,即輸入速率處于最快情況(即設備1 的工作時(shí)鐘相對標準時(shí)鐘具有+50ppm的頻差),而輸出速率處于最慢情況(即設備2的工作時(shí)鐘相對標準時(shí)鐘具有 -50ppm的頻差)。其工作模式如圖2。

  在圖2中,設備2 的輸入數據速率比輸出數據速率高,那么部分數據包只能丟棄。

圖2 簡(jiǎn)化的設備2工作模式

  解決丟包的方案

  對于示例中的設備2,由于接收數據包的速度快于其發(fā)送數據包的速率,數據包將在緩存中堆積,一定時(shí)間后將發(fā)生溢出并造成數據包丟失。為避免丟包,一般有四種解決方法:

  ·降低設備1的發(fā)包速率,即增加所發(fā)送的數據包之間的IDLE碼的數目,由于設備2只需緩存有效數據包而無(wú)需存儲IDLE碼,但對于設備1而言,IDLE碼需要占據其發(fā)送時(shí)隙,由此可以補償設備1和設備2之間的頻差。

  ·設備2把自身的接收緩存的狀態(tài)告知設備1,設備1一旦接到設備2的緩存將滿(mǎn)告警信息,將主動(dòng)暫停發(fā)包一段時(shí)間,從而避免設備2的緩存溢出。這種緩存告警信息稱(chēng)為流控信息,而相關(guān)的一套機制稱(chēng)為流控機制。

  ·采用同步以太網(wǎng)機制。圖1中,對于設備2,如果利用從接收數據中提取的時(shí)鐘CLK2代替OSC2作為本設備的系統時(shí)鐘,則能實(shí)現設備2對設備1的同步。除此以外,目前通過(guò)數據包傳送同步信息的方法也在討論中(參考電氣電子工程師協(xié)會(huì )提出的標準IEEE1588)。

  ·在設備2的發(fā)送側通過(guò)減小IPG(幀間距)來(lái)加快其發(fā)送有效數據包的速度,從而使得發(fā)送速度能跟上接收速度。

  對以上四種方法,雖然都可以避免數據包的丟失,但方法1的實(shí)現會(huì )導致系統性能的降低;方法3需要更改以太網(wǎng)設備的硬件設計或添加相關(guān)的協(xié)議層軟件,成本較高。方法4雖然可以解決問(wèn)題,但目前以太網(wǎng)設備廠(chǎng)商眾多,單純的依靠更改IPG并不能從根本上解決問(wèn)題。下文重點(diǎn)描述方法2即流控機制的實(shí)現。

  流控機制和具體實(shí)現

  在以太網(wǎng)中,作為一種解決丟包的方法,流控機制的本質(zhì)是使通信設備能實(shí)時(shí)的了解對端設備對通信流量的要求,根據對端設備的要求來(lái)決定本設備是繼續發(fā)送還是暫停發(fā)送數據包。這要求以太網(wǎng)通信設備必須根據自己的緩存的狀況,實(shí)時(shí)將緩存的空或滿(mǎn)信息發(fā)送給對端。這種緩存的空滿(mǎn)信息就稱(chēng)為流控信息。

  全雙工模式

  對于全雙工通訊設備,流控信息通過(guò)發(fā)送Pause幀來(lái)實(shí)現傳輸。Pause幀是一種符合IEEE802.3標準的以太網(wǎng)幀,其屬于MAC控制幀的一種,MAC控制幀的格式如圖3所示。

圖3 MAC控制幀格式

  目的MAC地址域,6字節,要求為01-80- C2-00-00-01;源MAC地址域,6字節,為本設備MAC地址;以太網(wǎng)幀長(cháng)度或類(lèi)型域,要求為88-08,用于標明本幀的類(lèi)型為MAC控制幀;MAC控制操作碼,2字節。Pause幀僅是MAC控制幀的一種,對于Pause幀,其在MAC控制幀中的操作碼為00-01;MAC控制參數域,包含用于MAC控制相關(guān)的參數。對于Pause幀,此處應填入要求對端設備暫停發(fā)送的時(shí)間長(cháng)度,由兩個(gè)字節(16位)來(lái)表示該長(cháng)度,每單位長(cháng)度為物理層芯片發(fā)送512位數據的時(shí)間。所以發(fā)送一次Pause幀,要求對端設備暫停發(fā)送的時(shí)間長(cháng)度最長(cháng)為:65535×512 / 以太網(wǎng)傳輸速率;保留域。

  需要注意,Pause幀不能用于要求對端設備暫停發(fā)送其自己的MAC控制幀。

  以VITESSE公司的以太網(wǎng)接口芯片VSC7323為例。該芯片作為數據鏈路層芯片可支持10個(gè)千兆以太網(wǎng)接口。

  每個(gè)以太網(wǎng)口對應一個(gè)接收緩存。 對每個(gè)接收緩存設置了兩個(gè)水位線(xiàn):高水位線(xiàn)HIGH_WM和低水位線(xiàn)LOW_WM,如圖4所示。

  在圖4中,縱軸代表接收緩存的占用量,橫軸代表時(shí)間。如果占用量達到了HIGH_WM,則接收設備將向發(fā)送設備發(fā)出Pause幀,發(fā)送設備接收到有效Pause幀后,將立即暫停發(fā)送,使接收設備有充足的時(shí)間處理接收緩存中的數據。當接收緩存的占用量逐步降低達到LOW_WM時(shí),表明接收緩存目前可以有充足的容量來(lái)接收數據包,從而接收設備將停止發(fā)送Pause幀,使得發(fā)送設備能繼續傳送數據。

圖4  流控水位線(xiàn)示意圖

  多長(cháng)時(shí)間發(fā)送一次Pause幀?如果發(fā)送頻率太高,將占用寶貴的帶寬資源,反之,則達不到流控的目的。

  工作于全雙工模式時(shí),VSC7323芯片支持兩種流控機制:標準流控和XON/XOFF機制。

  標準流控機制。芯片內部,每個(gè)以太網(wǎng)口都擁有一個(gè)獨立的接收緩存。每個(gè)接收緩存對應一組寄存器,用戶(hù)可以根據需要配置HIGH_WM,LOW_WM,PAUSE_VALUE等參數。其中PAUSE_VALUE的意義請參考前文對于MAC控制參數的描述。其數值代表發(fā)出一個(gè)Pause幀后,發(fā)送設備需要等待PAUSE_VALUE個(gè)時(shí)間單位才能繼續發(fā)送(通過(guò)對PAUSE_VALUE的值進(jìn)行遞減計數到0來(lái)實(shí)現),而對于接收設備而言,只要本接收緩存的占用量高于HIGH_WM,則將每隔1/2的PAUSE_VALUE個(gè)單位時(shí)間發(fā)出一個(gè)Pause幀,直到緩存占用量小于LOW_WM為止。PAUSE_VALUE的值將通過(guò)Pause幀的MAC控制參數域發(fā)送給對端設備。

  XON/XOFF機制與標準機制類(lèi)似,不同點(diǎn)在于發(fā)送方不需要等到PAUSE VALUE倒計數為0才能繼續發(fā)送,只需要接收方發(fā)來(lái)一個(gè)PAUSE VALUE等于0的Pause幀,則發(fā)送方可立即發(fā)送。相對而言,XON/XFF比標準機制更加靈活且有助于提高性能。

  基于VSC7323,首先要配置其工作于全雙工模式,并使能流控能力。由于VSC7323的接收緩存的總空間為3Mbits,通過(guò)寄存器,可以把這些空間對10個(gè)以太網(wǎng)口進(jìn)行平均分配,也可以根據QoS(服務(wù)質(zhì)量)的要求,對質(zhì)量要求高的口分配更多的緩存。對每個(gè)口分配完成后,再進(jìn)行HIGH_WM,LOW_WM,PAUSE_VALUE參數的配置即可實(shí)現流控機制。

  半雙工模式

  對于半雙工通訊設備,通過(guò)Back Pressure(反壓)來(lái)實(shí)現流控。對于工作在半雙工模式下的設備,流控信息可以通過(guò)發(fā)送collision(沖突信號)來(lái)實(shí)現。根據CSMA/CD(載波監聽(tīng)多路訪(fǎng)問(wèn)/沖突檢測)工作方式,在半雙工模式下,任何以太網(wǎng)設備在發(fā)送數據之前必須對通信線(xiàn)路進(jìn)行監測,以確保本設備發(fā)送的數據不會(huì )和別的設備發(fā)送的數據發(fā)生沖突。如果存在沖突,則需要等待一段隨機的時(shí)間后才能繼續發(fā)送。Back Pressure正是利用了半雙工的這種特性,當接收設備的緩存占用量超出閾值時(shí),其將主動(dòng)發(fā)出類(lèi)似沖突的信號給對端設備,對端設備檢測到?jīng)_突,將會(huì )取消本次發(fā)送,等待一段隨機的時(shí)間后再重發(fā)。

  對于VSC7323,需要注意,當其工作于半雙工模式時(shí),不能支持千兆速率,即只能工作于10/100 Mbps 模式。在流控配置上,HIGH_WM和LOW_WM的配置方式與全雙工模式相同。與全雙工模式不同的是,由于半雙工模式下設備只能通過(guò)產(chǎn)生collision來(lái)要求對端設備暫停發(fā)送,PAUSE_VALUE的信息不可能傳輸給對端,所以半雙工模式下,無(wú)需配置PAUSE_VALUE。只要接收緩存的占用量高于HIGH_WM,設備將持續制造collision,使得對端設備無(wú)法有效發(fā)送數據,直到接收緩存的占用量低于LOW_WM,設備才停止制造collision,使對端設備能繼續發(fā)送數據。

  就本質(zhì)而言,全雙工的Pause幀方式和半雙工的Back Pressure方式,都是通過(guò)一種通信雙方都能夠識別的信息,在接收設備緩存占用量超出閾值時(shí),使發(fā)送設備暫停發(fā)送,從而避免由于接收設備的緩存溢出造成丟包。

  流控機制已經(jīng)作為標準定義在IEEE 802.3規范中,目前絕大多數以太網(wǎng)設備都能支持該機制。

  參考文獻:

  1. Marvell, “Tutorial on Clock PPM Effects”

  2. IEEE802.3-2005 Annex 31B, “MAC Control PAUSE operation”

  3. Vitesse, “VSC7323 Datasheet”

  4. IEEE802.3-2005 Section 1

網(wǎng)線(xiàn)測試儀相關(guān)文章:網(wǎng)線(xiàn)測試儀原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>