關注、星標公眾在tcp/ip世界中,乙太網ip資料報的封裝是在rfc894中定義的,ieee802網路的ip資料報封裝是在rfc1042中定義的。最常使用的封裝格式是rfc 894定義的格式。下圖顯示了兩種不同形式的封裝格式。
從上圖看到,兩種幀格式都採用48bit(6位元組)的目的位址和源位址。
接下來的2個位元組在兩種幀格式中互不相同。
在802標準定義的幀格式中,長度欄位是指它後續資料的位元組長度,但不包括crc檢驗碼。
乙太網的型別字段定義了後續資料的型別。而在802標準定義的幀格式中,型別欄位則由後續的子網接入協議的首部給出。
幸運的是,802定義的有效長度值與乙太網的有效型別值無一相同,這樣,就可以對兩種幀格式進行區分。
長度/型別有兩個意義,小於1518,代表後面欄位的長度(也就是ieee802.2/802.3(rfc1042)),大於1518,代表不同的型別(乙太網的封裝格式(rfc894))
0800 指ip資料型別
0806 指arp協議,通過ip位址獲得對應的mac位址,稱為位址解析協議
8035 指rarp協議,通過mac位址來獲得對應的ip位址,稱為逆向位址解析協議
在乙太網幀格式中,型別字段之後就是資料。而在802幀格式中,後面是3位元組的802.2llc,它是由目的服務訪問點(destinationservice access point,dsap)、源服務訪問點(sourceservice access point,ssap)和ctrl欄位組成,dsap和ssap預設值是0xaa,ctrl預設是3。再接下來的2個位元組型別欄位和乙太網幀格式一樣。
802.3標準定義的幀和乙太網的幀都有最小長度要求。802.3規定資料部分必須至少為38位元組,而對於乙太網,則要求最少要有46位元組。為了保證這一點,必須在不足的空間插入填充(pad)位元組。
下面只講最常用的乙太網的封裝格式(rfc894)
mac位址解析
第1個位元組
b0:0表示單播,1表示組播
b1:0表示被某個組織使用,1表示個人使用
例子:02-00-00-00-00-01:本地分配
上文說到,乙太網和802.3對資料幀的長度都有乙個限制,其最大值分別是1500和1492位元組。鏈路層的這個特性稱作mtu,最大傳輸單元。不同型別的網路大多數都有乙個上限。如果ip層有乙個資料報要傳,而且資料的長度比鏈路層的mtu還大,那麼ip層就需要進行分片,把資料報分成若干片,這樣每一片都小於mtu,ip分片的問題會在講解ip協議的時候講解。下圖列出了一些典型的mtu值。
我們將用netstat命令列印出網路介面的mtu。
- i引數將列印出介面資訊,- n引數則列印出ip位址,而不是主機名字。
這個命令列印出每個介面的mtu、輸入分組數、輸入錯誤、輸出分組數、輸出錯誤、衝突以及當前的輸出佇列長度。
iic詳解
☛stm32 spi詳解
☛stm32 gpio詳解
☛stm32 延時函
數的四種方法
☛
設計一款相容st207和gd207的開發板
乙太網資料幀(802 3)最大與最小長度
乙太網 ieee 802.3 幀格式 1 前導碼 7位元組0x55,一串1 0間隔,用於訊號同步 2 幀起始定界符 1位元組0xd5 10101011 表示一幀開始 3 da 目的mac 6位元組 4 sa 源mac 6位元組 5 型別 長度 2位元組,0 1500保留為長度域值,1536 6553...
乙太網幀格式
一 ethernet位址 為了標識乙太網上的每台主機,需要給每台主機上的網路介面卡 網路介面卡 分配乙個唯一的通訊位址,即ethernet位址或稱為網絡卡的實體地址 mac位址。ieee負責為網路介面卡製造廠商分配ethernet位址塊,各廠商為自己生產的每塊網路介面卡分配乙個唯一的ethernet...
乙太網幀格式
乙太網幀格式,即在乙太網幀頭 幀尾中用於實現乙太網功能的域。圖2 ieee802.3以太幀頭 欄位字段長度 位元組 目的前導碼 preamble 7同步 幀開始符 sfd 1標明下乙個位元組為目的mac欄位 目的mac位址 6指明幀的接受者 源mac位址 6指明幀的傳送者 長度 length 2幀的...