為什麼又有乙太網協議,又有802協議,那麼網路到底用哪種協議,另外乙太網幀和802幀都用在什麼地方?
找到了這一段
根據rfc894的說明,乙太網封裝IP數據包的最大長度是1500位元組,也就是說乙太網最大幀長應該是乙太網首部加上1500,再加上7位元組的前導同步碼和1位元組的幀開始定界符,具體就是:7位元組前導同步碼 + 1位元組幀開始定界符 + 6位元組的目的MAC + 6位元組的源MAC + 2位元組的幀類型 + 1500 + 4位元組的FCS。按照上述,最大幀應該是1526位元組,但是實際上我們抓包得到的最大幀是1514位元組,為什麼不是1526位元組呢?
原因是當數據幀到達網卡時,在物理層上網卡要先去掉前導同步碼和幀開始定界符,然後對幀進行CRC檢驗,如果幀校驗和出錯,就丟棄此幀。如果校驗和正確,就判斷幀的目的硬體地址是否符合自己的接收條件(目的地址是自己的物理硬體地址、廣播地址、可接收的多播硬體地址等),如果符合,就將幀交給「設備驅動程序」做進一步處理。這時我們抓包的軟體才能抓到數據,因此,抓包軟體抓到的是去掉前導同步碼、幀開始分界符、FCS之外的數據,其最大值是6 + 6 + 2 + 1500 = 1514。 乙太網規定,乙太網幀數據域部分最小為46位元組,也就是乙太網幀最小是 6 + 6 + 2 + 46 + 4 = 64。除去4個位元組的FCS,因此,抓包時就是60位元組。當數據欄位的長度小於46位元組時,MAC子層就會在數據欄位的後面填充以滿足數據幀長不小於64 位元組。由於填充數據是由MAC子層負責,也就是設備驅動程序。不同的抓包程序和設備驅動程序所處的優先層次可能不同,抓包程序的優先順序可能比設備驅動程序更高,也就是說,我們的抓包程序可能在設備驅動程序還沒有填充不到64位元組幀的時候,已經捕獲了數據。因此不同的抓包工具抓到的數據幀的大小可能不同。(比如,wireshark抓到的可能沒有填充數據段,而sniffer抓到的就有填充數據段),(不過 根據我的觀察wireshark不同的版本抓獲的最小數據包的大小好像有60位元組也有54位元組的情況.....)
記得82年有一個3Com公司聯合Intel、DEC、Xerox等幾家公司弄了一個乙太網協議標準,命名Ethernet 2,目前已經成為事實上的業界標準。
同年IEEE也為乙太網、令牌匯流排、令牌環分別制定了標準:802.3、802.4、802.5
IEEE構思是這樣的:以上的三個標準對應數據鏈路層的MAC (Media Access Control),用於處理物理層的訪問;然後再創建一個數據鏈路層的LLC(Logical Link Control),用於上層協議的復用,這個協議是802.2。
三種結構分別如下:
802.3 + 802.2
802.4 + 802.2
802.5 + 802.2
乙太網對應的802.3,一共14 byte,6 byte 源MAC,6 byte 目的MAC,2 byte 長度。
而802.2 長度為8 byte,其中最有用的為SNAP擴展欄位 Protocol ID,類似Ethernet 2 里的Ether-type,用於上層協議的復用。
仔細對照803.2 + 802.2 與 Ethernet 2 會發現,前者比後者多了8 個 Byte,而實現的功能卻類似,所以支持後者的網卡慢慢成為主流。
網卡為了兼容兩種協議,是這麼來實現的:網卡只發送Ethernet 2 格式幀,可以接收兩種格式的幀,怎麼分辨兩種格式呢?就是判斷 length/ethertype &> 1500 則為 Ethernet 2,否則為802.3。
關於乙太網幀尾部的FCS,發送的時候由硬體計算並添加,接收的時候由硬體校驗並去除。
至於Preamble + SFD,只是用於幀同步,所以不會當成幀來處理。
Wireshark 等抓包軟體只是通過介面調用告訴網卡,把接收緩衝區的數據全部複製一份給抓包軟體,而接收緩衝區的數據不會有FCS的,因為已經被硬體去除。
Ethernet現在用的協議就是802.3,其他802.4之類的基本都被淘汰掉了。
占坑,其實問題很有價值,前兩個都沒看懂題主意思。
樓上有些人回答錯誤!!
目前網路中在用的基本上是Ethernet2,不是802.3!!
現在一些寫書的很不負責任。誤導大眾!
我以我一個網路規劃設計師(國家證書)和ccnp(思科認證)的名譽擔保我的回答是正確的!據我抓包觀察,網卡發的IP包是乙太網幀,交換機發的一些幀是802.3幀
可以查一下為什麼叫以太,當年英特爾施樂這些公司推出這種產品之後,802才跟上急忙推出了.3,然而無用了
wifi測試員一枚,乙太網協議是針對有線網路推出的,802.11是問對無線網推出的,建議你看看802.11無線網路權威指南
計算機網路記得是TCP/IP協議,先佔坑,回去翻翻書,再詳細補充。
推薦閱讀:
※廣東時代互聯工作是一番怎樣體驗?
※要資源有資源,要團隊有團隊,做一個怎樣的項目比較好?
※互聯網行業旅遊類編輯應該怎樣進行職業規劃?
※印度在崛起,如何利用印度的發展階段賺錢?
※在中字頭國企建築施工單位工作,想要轉行干程序員?