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