以太網(wǎng)是一種計算機(jī)局域網(wǎng)技術(shù)。IEEE組織的IEEE 802.3標(biāo)準(zhǔn)制定了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn),它規(guī)定了包括物理層的連線、電子信號和介質(zhì)訪問層協(xié)議的內(nèi)容。以太網(wǎng)的協(xié)議層是建立在OSI模型的基礎(chǔ)上的,OSI模型,即開放式通信 系統(tǒng)互聯(lián)參考模型(Open System Interconnection),是國際標(biāo)準(zhǔn)化組織(ISO)提出的一個試圖使各種計算機(jī)在世界范圍內(nèi)互連為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架,簡稱OSI。主要包括七層,具體如下:
(1)、物理層 Physical Layer
(2)、數(shù)據(jù)鏈路層 Data Link Layer
(3)、網(wǎng)絡(luò)層 Network Layer
(4)、傳輸層 Transport Layer
(5)、會話層 Session Layer
(6)、表示層 Presentation Layer
(7)、應(yīng)用層 Application Layer
因?yàn)槲沂亲?a href="http://m.xsypw.cn/soft/data/30-91/" target="_blank">FPGA的,因此只關(guān)注了物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層;更上層協(xié)議沒有做過多了解。
1,以太網(wǎng)物理層,
物理層為OSI中的第一層,主要包括PCS,PMA,PMD,
PCS:物理編碼子層,完成完成對傳輸?shù)腗AC協(xié)議數(shù)據(jù)的編、譯碼;以便物理介質(zhì)傳輸;
PMA:物理介質(zhì)連接子層,生成線路的傳輸信號;接收線路信號完成時鐘恢復(fù);
PMD:物理介質(zhì)相關(guān)子層,定義不同傳輸介質(zhì)的接口標(biāo)準(zhǔn),提供物理連接。
物理層與鏈路層接口:主要包括:MII、RMII接口、GMII接口、RGMII接口、SGMII接口、 XGMII接口。
MII:支持10兆和100兆的操作,一個接口由14根線組成,它的支持還是比較靈活的,但是有一個缺點(diǎn)是因?yàn)樗粋€端口用的信號線太多,如果一個8端口的交換機(jī)要用到112根線,16端口就要用到224根線,到32端口的話就要用到448根線,一般按照這個接口做交換機(jī),是不太現(xiàn)實(shí)的,所以現(xiàn)代的交換機(jī)的制作都會用到其它的一些從MII簡化出來的標(biāo)準(zhǔn),比如RMII、SMII、GMII等。
RMII:簡化的MII接口,在數(shù)據(jù)的收發(fā)上它比MII接口少了一倍的信號線,所以它一般要求是50兆的總線時鐘。RMII一般用在多端口的交換機(jī),它不是每個端口安排收、發(fā)兩個時鐘,而是所有的數(shù)據(jù)端口公用一個時鐘用于所有端口的收發(fā),這里就節(jié)省了不少的端口數(shù)目。RMII的一個端口要求7個數(shù)據(jù)線,比MII少了一倍,所以交換機(jī)能夠接入多一倍數(shù)據(jù)的端口。和MII一樣,RMII支持10兆和100兆的總線接口速度。
SMII:由思科提出的一種媒體接口,它有比RMII更少的信號線數(shù)目,S表示串行的意思。因?yàn)樗挥靡桓盘柧€傳送發(fā)送數(shù)據(jù),一根信號線傳輸接受數(shù)據(jù),所以在時鐘上為了滿足100的需求,它的時鐘頻率很高,達(dá)到了125兆,為什么用125兆,是因?yàn)閿?shù)據(jù)線里面會傳送一些控制信息。SMII一個端口僅用4根信號線完成100信號的傳輸,比起RMII差不多又少了一倍的信號線。SMII在工業(yè)界的支持力度是很高的。同理,所有端口的數(shù)據(jù)收發(fā)都公用同一個外部的125M時鐘。
XGMII:是10Gb的物理層接口,接口時鐘為156.25Mhz。
GMII :是千兆網(wǎng)的MII接口,這個也有相應(yīng)的RGMII接口,表示簡化了的GMII接口;GMII是8bit并行同步收發(fā)接口,采用8位接口數(shù)據(jù),工作時鐘125MHz,因此傳輸速率可達(dá)1000Mbps。同時兼容MII所規(guī)定的10/100 Mbps工作方式。
發(fā)送接口信號:
◇ GTXCLK——吉比特TX..信號的時鐘信號(125MHz)
◇ TXCLK——10/100M信號時鐘
◇ TXD[7..0]——被發(fā)送數(shù)據(jù)
◇ TXEN——發(fā)送器使能信號
◇ TXER——發(fā)送器錯誤(用于破壞一個數(shù)據(jù)包)
接收接口信號:
◇ RXCLK——接收時鐘信號(從收到的數(shù)據(jù)中提取,因此與GTXCLK無關(guān)聯(lián))
◇ RXD[7..0]——接收數(shù)據(jù)
◇ RXDV——接收數(shù)據(jù)有效指示
◇ RXER——接收數(shù)據(jù)出錯指示
◇ COL——沖突檢測(僅用于半雙工狀態(tài))
注:在千兆速率下,向PHY提供GTXCLK信號,TXD、TXEN、TXER信號與此時鐘信號同步。否則,在10/100M速率下,PHY提供 TXCLK時鐘信號,其它信號與此信號同步。其工作頻率為25MHz(100M網(wǎng)絡(luò))或2.5MHz(10M網(wǎng)絡(luò))。
2,以太網(wǎng)數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層為OSI中的第二層,主要將從物理層拿到的數(shù)據(jù)幀解析后拿到IP數(shù)據(jù)報傳遞給網(wǎng)絡(luò)層;或把網(wǎng)絡(luò)層拿到的IP數(shù)據(jù)報,增加前導(dǎo)碼,MAC地址,幀類型校驗(yàn)后組成新的數(shù)據(jù)幀傳遞給物理層;具體協(xié)議數(shù)據(jù)幀如下:
數(shù)據(jù)幀中的數(shù)據(jù)為IP數(shù)據(jù)報;
數(shù)據(jù)幀前會有8個字節(jié)的前導(dǎo)碼,然后和上述的數(shù)據(jù)幀一塊構(gòu)成一個完成對MAC層數(shù)據(jù)報。
注意:
幀間最小間隔 :幀間最小間隔為 9.6 us (10Mbps) ,相當(dāng)于96 bit 的發(fā)送時間(等待12個時鐘之后)。一個站在檢測到總線開始空閑后,還要等待 9.6 us (10Mbps)才能再次發(fā)送數(shù)據(jù)。這樣做是為了使剛剛收到數(shù)據(jù)幀的站的接收緩存來得及清理,做好接收下一幀的準(zhǔn)備。
最大幀長度:為了保證信道使用的相對公平性,讓更多的站能搶占到信道,規(guī)定了最大幀長度;超過了最大幀長度就需要分多次完成;以太網(wǎng)規(guī)定了數(shù)據(jù)幀中傳送數(shù)據(jù)的最大長度為1500字節(jié)。
最短有效幀長:如果發(fā)生沖突,就一定是在發(fā)送的前 64 字節(jié)之內(nèi)。由于一檢測到?jīng)_突就立即中止發(fā)送,這時已經(jīng)發(fā)送出去的數(shù)據(jù)一定小于 64 字節(jié)。以太網(wǎng)規(guī)定了最短有效幀長為 64 字節(jié),凡長度小于 64 字節(jié)的幀都是由于沖突而異常中止的無效幀。
3,以太網(wǎng)網(wǎng)絡(luò)層
網(wǎng)絡(luò)層是OSI中的第三層;位于傳輸層和數(shù)據(jù)鏈路層之間;實(shí)現(xiàn)將傳輸層數(shù)據(jù)報打包為IP數(shù)據(jù)報,或解析IP數(shù)據(jù)報。
IP數(shù)據(jù)報如下:(藍(lán)色部分為IP數(shù)據(jù)報首部來;黃色部分為UDP/TCP數(shù)據(jù)報,也是IP數(shù)據(jù)報的報文)
首部介紹:
版本:占 4 位,指 IP 協(xié)議的版本,通信雙方使用的IP協(xié)議的版本必須一致,目前的 IP 協(xié)議版本號為 4 (即 IPv4)
首部長度:占4位,可表示的最大數(shù)值是15個單位(一個單位為 4 字節(jié)),因此IP 的首部長度的最大值是 60 字節(jié)。最常用的是20字節(jié)(0101)
區(qū)分服務(wù):占 8 位,一般不使用
總長度:占 16 位,指首部和數(shù)據(jù)之和的長度,單位為字節(jié),因此數(shù)據(jù)報的最大長度為 65535 字節(jié),總長度必須不超過最大傳送單元MTU
標(biāo)識:占 16 位,它是一個計數(shù)器,用來產(chǎn)生數(shù)據(jù)報的標(biāo)識,在分片時被使用,用于數(shù)據(jù)的重組條件
標(biāo)志:占 3 位,目前只有前兩位有意義,標(biāo)志字段的最低位是 MF(More Fragment),MF=1 表示后面“還有分片”。MF=0 表示最后一個分片;標(biāo)志字段中間的一位是 DF (Don’t Fragment),只有當(dāng) DF=0 時才允許分片
片偏移:占13位,指較長的分組在分片后某片在原分組中的相對位置.片偏移以 8 個字節(jié)為偏移單位
生存時間:占 8 位,記為 TTL (Time To Live) 數(shù)據(jù)報在網(wǎng)絡(luò)中可通過的路由器數(shù)的最大值,TTL 字段是由發(fā)送端初始設(shè)置一個 8 bit 字段.推薦的初始值由分配數(shù)字 RFC 指定,當(dāng)前值為 64.發(fā)送ICMP 回顯應(yīng)答時經(jīng)常把 TTL 設(shè)為最大值 255
協(xié)議:占 8 位,指出此數(shù)據(jù)報攜帶的數(shù)據(jù)使用何種協(xié)議以便目的主機(jī)的 IP 層將數(shù)據(jù)部分上交給哪個處理過程, 1 表示為 ICMP 協(xié)議, 2 表示為 IGMP 協(xié)議, 6 表示為 TCP 協(xié)議, 17 表示為UDP 協(xié)議
首部檢驗(yàn)和:占 16 位,只檢驗(yàn)數(shù)據(jù)報的首部不檢驗(yàn)數(shù)據(jù)部分.這里不采用 CRC 檢驗(yàn)碼而采用簡單的計算方法
源地址和目的地址:都各占 4 字節(jié),分別記錄源地址和目的地址
可選字段和填充字段 : 很少使用,新協(xié)議中已經(jīng)取消IPv6
4,以太網(wǎng)傳輸層
傳輸層是OSI中的第四層;主要完成UDP/TCP的裝配然后傳輸給網(wǎng)絡(luò)層;
UDP:不可靠傳輸;但能保證實(shí)時性;多用于視頻通話或會議等;
TCP:可靠傳輸;建立在連接的基礎(chǔ)之上;保證數(shù)據(jù)完整性;多用于郵件,信息等;
UDP數(shù)據(jù)報:
TCP數(shù)據(jù)報:
帶陰影的幾個字段需要重點(diǎn)說明一下:
1) 序號:Seq(Sequence Number)序號占32位,用來標(biāo)識從計算機(jī)A發(fā)送到計算機(jī)B的數(shù)據(jù)包的序號,計算機(jī)發(fā)送數(shù)據(jù)時對此進(jìn)行標(biāo)記。
2) 確認(rèn)號:Ack(Acknowledge Number)確認(rèn)號占32位,客戶端和服務(wù)器端都可以發(fā)送,Ack = Seq + 1。
3) 標(biāo)志位:每個標(biāo)志位占用1Bit,共有6個,分別為 URG、ACK、PSH、RST、SYN、FIN,具體含義如下:
URG:緊急指針(urgent pointer)有效。
ACK:確認(rèn)序號有效。
PSH:接收方應(yīng)該盡快將這個報文交給應(yīng)用層。
RST:重置連接。
SYN:建立一個新連接。
FIN:斷開一個連接。
審核編輯 :李倩
-
FPGA
+關(guān)注
關(guān)注
1631文章
21806瀏覽量
606598 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5466瀏覽量
172876 -
計算機(jī)
+關(guān)注
關(guān)注
19文章
7552瀏覽量
88770
原文標(biāo)題:基于FPGA的以太網(wǎng)協(xié)議介紹
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
基于Xilinx FPGA的千兆以太網(wǎng)控制器的開發(fā)
![基于Xilinx <b class='flag-5'>FPGA</b>的千兆<b class='flag-5'>以太網(wǎng)</b>控制器的開發(fā)](https://file1.elecfans.com//web2/M00/A6/7E/wKgZomUMPhWAQnaoAABPXlBCgSk482.jpg)
基于FPGA的萬兆以太網(wǎng)接口的設(shè)計與實(shí)現(xiàn)
以太網(wǎng)協(xié)議的模型有哪些
簡談基于FPGA的千兆以太網(wǎng)設(shè)計
基于FPGA的萬兆以太網(wǎng)接口設(shè)計
![基于<b class='flag-5'>FPGA</b>的萬兆<b class='flag-5'>以太網(wǎng)</b>接口設(shè)計](https://file.elecfans.com/web2/M00/49/0A/pYYBAGKhtDWAHKu2AAASxEcaRzc099.jpg)
一種基于FPGA的以太網(wǎng)高速傳輸平臺
基于FPGA的萬兆以太網(wǎng)接口的設(shè)計與實(shí)現(xiàn)
在工業(yè)以太網(wǎng)領(lǐng)域采用FPGA的好處
以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)_以太網(wǎng)的通信協(xié)議
FPGA如何為以太網(wǎng)和千兆以太網(wǎng)解決低功耗問題
![<b class='flag-5'>FPGA</b>如何為<b class='flag-5'>以太網(wǎng)</b>和千兆<b class='flag-5'>以太網(wǎng)</b>解決低功耗問題](https://file.elecfans.com/web2/M00/41/E3/poYBAGJ2NDyAT9kdAACr5dLtFh4455.png)
評論