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

基于FPGA的萬兆以太網(wǎng)接口的設計與實現(xiàn)
以太網(wǎng)協(xié)議的模型有哪些
簡談基于FPGA的千兆以太網(wǎng)設計
基于FPGA的萬兆以太網(wǎng)接口設計

一種基于FPGA的以太網(wǎng)高速傳輸平臺
在工業(yè)以太網(wǎng)領(lǐng)域采用FPGA的好處
以太網(wǎng)的拓撲結(jié)構(gòu)_以太網(wǎng)的通信協(xié)議
FPGA如何為以太網(wǎng)和千兆以太網(wǎng)解決低功耗問題

評論