如上圖所示,ethernet ii格式的乙太網幀有五個部分組成,d.mac、s.mac、type、data和fcs。
(1)d.mac是目的mac位址,表示該幀的接收者。目的mac位址可以是單播mac、組播mac或者廣播mac。
(2)s.mac是源mac位址,表示該幀的傳送者。源mac位址只能是乙個單播mac位址。
(3)type即型別,表示載荷資料的型別,如果該字段的值是0x0800表示載荷資料是ipv4資料,如果該字段值是0x0806表示載荷資料是arp資料,如果該字段值是0x86dd表示載荷資料是ipv6資料等等。
(4)data是載荷資料,最短46位元組,最長為1500位元組,是該幀的有效載荷。
(5)fcs是幀檢驗序列,是由迴圈冗餘演算法(crc)演算法生成的。資料在傳輸過程中可能會因為外界的電磁干擾從而使資料產生差錯,所以需要採用各種檢驗差錯的措施,而最廣泛使用的就是迴圈冗餘檢驗(crc)。當網絡卡接收到乙個以太幀,首先要校驗幀尾的fcs是否正確。如果正確,快取到接收佇列,通知上層模組前來取走;如果不正確,丟棄處理,錯誤計數+1。
ieee802.3格式的乙太網幀中,目的mac位址、源mac位址、型別、載荷和fcs的功能和作用與ethernet ii格式是一樣的。不一樣的就是length、llc和snap了。
(1)length長度,指後續資料的位元組長度,從llc頭開始但不包括fsc檢驗序列的長度。
(2)llc3個位元組中包括了d.sap、s.sap和control欄位。
dsap 目的服務訪問字段,指明幀的目的上層協議型別,如ip幀值設為0x06
asap 源服務訪問字段,指明幀的源上層協議型別
control控制,型別1 表明是無連線的、不可靠的llc資料,控制欄位用0x03指明;型別2 表明是面向連線可靠的llc會話
(3)snap中含有org code和type兩個字段。ieee 802.3擴充套件產生snap來相容乙太網網頭部協議,在ieee 802.2 llc 頭部後插入了snap頭部。為了標識snap幀,dsap和ssap在llc頭都被設定成snap定義的值0xaa,所有snap的封裝沒有使用可靠的llc服務,所以llc的控制設定成0x03。
org code機構**,指明私有協議的機構**。對ip和 arp,該字段被將設定為0x000000,如思科的**是0x00000c
type和ethernet ii上的型別意義相同,ip 0x0800 ,arp 0x0806
mac位址是在ieee 802標準中定義並規範的,凡是符合ieee 802標準的網絡卡都必須擁有乙個mac位址。每乙個網絡卡都有乙個唯一用來標識自己的號碼,就如同人的身份證號碼一樣,這個標記網絡卡的號碼就是mac位址,長度48bit。
網絡卡製造商在生產網絡卡之前,需要向ieee申請註冊獲取前24bit的組織唯一識別符號,這24bit稱為oui(organizationally unique identifie),後24bit由廠商自己分配。分配好之後將mac位址燒寫進網絡卡中,並且不能被更改。
mac位址分為三種,單播mac位址、組播mac位址和廣播mac位址。
單播mac位址是指第乙個位元組的最低位是0的mac位址,標識了一塊特定的網絡卡
組播mac位址是指第乙個位元組的最低位是1的mac位址,標識了一組網絡卡
廣播mac位址是指每個位元都是1的mac位址,是組播位址的乙個特例,標識了所有網絡卡
組播和廣播mac位址前三個位元組不是oui,只有單播的前三個位元組才是oui,並且第乙個位元組的最低位一定是0。
mtu(maximum transmission unit)最大傳輸單元。用來通知對方所能接受資料服務單元的最大尺寸,說明傳送方能夠接受的有效載荷大小。一般網路中裝置的mtu值是1500,這是由ethernet ii格式的幀載荷資料大小決定的,其值是46-1500。
如果網路中計算機的設定mtu值為2000,而路由器的mtu值為1500。計算機傳送3000位元組的資料報,會根據計算機的mtu值分成2000和500的幀,路由器接收到2000的幀時又會分成1500、500和500的幀,如果計算機mtu是1500,經過路由器就只有兩個1500的幀了,所以計算機增大mtu值時,同樣的資料給路由器增加了壓力。
實際情況計算機的mtu值會比1500小一點,一般是1472左右。比如使用ppoe撥號的路由器,ppp over ethernet協議會占用8位元組的空間,一幀的大小就變成1492位元組了。udp資料報需要減去ip包頭20位元組和udp包頭8位元組,就是1472位元組了。
需要注意的是如果ip包df標誌位為1,也就是不允許分包,那麼路由器直接就把這個包丟棄了,所以mtu值太大可能導致資料無法傳送了。
乙太網的基礎學習
preamble sfd 每個乙太網幀傳送時都以八個位元組的前導碼開始,preamble是1和0交替的7個位元組資料,該部分的作用是通知接收方有資料幀到來,使其與輸入的始終保持同步。sfd 是乙個位元組10101011,最後使用11,來通知接收方下一欄位就是目的主機的位址了,實際上前導碼都是在物理層...
網路基礎 乙太網資料封裝
在資料鏈路層,乙太網負責乙太網編址,這通常稱為硬體編址或 mac 編址。乙太網還負責把來自網路層的分組封裝成幀。乙太網編址使用固化在每個乙太網網絡卡 nic 中的 mac media access control,介質訪問控制 位址。mac 硬體 位址長 48 位,採用十六進製制格式。oui org...
網路基礎 乙太網幀結構
網路通訊協議 osi七層模型 tcp ip四層模型 3.1 模型 3.2 資料封裝 幀格式mac位址 單播 組播和廣播 資料幀的傳送和接收 網路中傳輸資料時需要定義並遵循一些標準,不同的協議棧用於定義和管理不同網路的資料 規則 物理層 傳輸單位 位元流。裝置 hub,中繼器 資料鏈路層 傳輸單位 資...