以太網(wǎng)數(shù)據(jù)幀的結(jié)構(gòu)分析

網(wǎng)絡(luò)中傳輸數(shù)據(jù)時(shí)需要定義并遵循一些標(biāo)準(zhǔn),以太網(wǎng)是根據(jù)IEEE 802.3標(biāo)準(zhǔn)來管理和控制數(shù)據(jù)幀的。了解IEEE802.3標(biāo)準(zhǔn)時(shí)充分理解以太網(wǎng)中鏈路層通信的基礎(chǔ)。
學(xué)習(xí)目標(biāo):
- 理解分層模型的作用
- 掌握以太網(wǎng)中數(shù)據(jù)幀的結(jié)構(gòu)
- 掌握MAC地址的作用
- 掌握以太網(wǎng)中數(shù)據(jù)幀轉(zhuǎn)發(fā)的過程
20世紀(jì)60年代以來,計(jì)算機(jī)網(wǎng)絡(luò)得到了飛速發(fā)展。各大廠商和標(biāo)準(zhǔn)組織為了在數(shù)據(jù)通信網(wǎng)絡(luò)領(lǐng)域占據(jù)主導(dǎo)地位,紛紛推出了各自的網(wǎng)絡(luò)架構(gòu)體系和標(biāo)準(zhǔn),如IBM公司的SNA協(xié)議,Novell公司的IPX/SPX協(xié)議,以及廣泛流行的OSI參考模型和TCP/IP協(xié)議。同時(shí),各大廠商根據(jù)這些協(xié)議生產(chǎn)出了不同的硬件和軟件。標(biāo)準(zhǔn)組織和廠商的共同努力促進(jìn)了網(wǎng)絡(luò)技術(shù)的快速發(fā)展和網(wǎng)絡(luò)設(shè)備種類的迅速增長。
網(wǎng)絡(luò)通信中,“協(xié)議”和“標(biāo)準(zhǔn)”這兩個(gè)詞匯常??梢曰煊?。同時(shí),協(xié)議或標(biāo)準(zhǔn)本身又常常具有層次的特點(diǎn)。一般地,關(guān)注于邏輯數(shù)據(jù)關(guān)系的協(xié)議通常被稱為上層協(xié)議,而關(guān)注于物理數(shù)據(jù)流的協(xié)議通常被稱為低層協(xié)議。IEEE 802就是一套用來管理物理數(shù)據(jù)流在局域網(wǎng)中傳輸?shù)臉?biāo)準(zhǔn), 包括在局域網(wǎng)中傳輸物理數(shù)據(jù)的802.3以太網(wǎng)標(biāo)準(zhǔn)。還有一些用來管理物理數(shù)據(jù)流在使用串行介質(zhì)的廣域網(wǎng)中傳輸?shù)臉?biāo)準(zhǔn),如幀中繼FR( Frame Relay),高級數(shù)據(jù)鏈路控制HDLC(High-Level Data Link Control),異步傳輸模式ATM(Asynchronous Transfer Mode)。
國際標(biāo)準(zhǔn)化組織ISO于1984年提出了OSI RM(Open System Interconnection Reference Model,開放系統(tǒng)互連參考模型)。OSI 參考模型很快成為了計(jì)算機(jī)網(wǎng)絡(luò)通信的基礎(chǔ)模型。
OSI參考模型具有以下優(yōu)點(diǎn):簡化了相關(guān)的網(wǎng)絡(luò)操作;提供了不同廠商之間的兼容性;促進(jìn)了標(biāo)準(zhǔn)化工作;結(jié)構(gòu)上進(jìn)行了分層;易于學(xué)習(xí)和操作。
OSI參考模型各個(gè)層次的基本功能如下:
物理層: 在設(shè)備之間傳輸比特流,規(guī)定了電平、速度和電纜針腳。
數(shù)據(jù)鏈路層:將比特組合成字節(jié),再將字節(jié)組合成幀,使用鏈路層地址 (以太網(wǎng)使用MAC地址)來訪問介質(zhì),并進(jìn)行差錯(cuò)檢測。
網(wǎng)絡(luò)層:提供邏輯地址,供路由器確定路徑。
傳輸層:提供面向連接或非面向連接的數(shù)據(jù)傳遞以及進(jìn)行重傳前的差錯(cuò)檢測。
會(huì)話層:負(fù)責(zé)建立、管理和終止表示層實(shí)體之間的通信會(huì)話。該層的通信由不同設(shè)備中的應(yīng)用程序之間的服務(wù)請求和響應(yīng)組成。
表示層:提供各種用于應(yīng)用層數(shù)據(jù)的編碼和轉(zhuǎn)換功能,確保一個(gè)系統(tǒng)的應(yīng)用層發(fā)送的數(shù)據(jù)能被另一個(gè)系統(tǒng)的應(yīng)用層識(shí)別。
應(yīng)用層:OSI參考模型中最靠近用戶的一層,為應(yīng)用程序提供網(wǎng)絡(luò)服務(wù) 。
舉個(gè)例子就是使用QQ的過程中,QQ的界面顯示就是應(yīng)用層
所關(guān)注的,接下來在,表示層就是把你的聊天內(nèi)容表示成計(jì)算機(jī)能夠讀懂的數(shù)據(jù),在會(huì)話層所對應(yīng)的就是你會(huì)同時(shí)和好幾個(gè)人聊天,就會(huì)有好幾個(gè)聊天窗,他們分別對應(yīng)著不同的會(huì)話。這三層總體來講是個(gè)軟件層面的層次。
傳輸層提供了一個(gè)端到端的連接,以端口號來區(qū)分連接。
網(wǎng)絡(luò)層提供了IP地址,提供IP尋址和路由。
數(shù)據(jù)鏈路層提供了網(wǎng)絡(luò)和物理層進(jìn)行通訊。
把OSI的上三層合并成一個(gè)應(yīng)用層,把最后的兩層也合并為網(wǎng)絡(luò)接口層。
TCP/IP模型同樣采用了分層結(jié)構(gòu),層不層相對獨(dú)立但是相互之間也具備非常密切的協(xié)作關(guān)系。
TCP/IP模型將網(wǎng)絡(luò)分為四層。TCP/IP模型不關(guān)注底層物理介質(zhì),主要關(guān)注終端之間的邏輯數(shù)據(jù)流轉(zhuǎn)發(fā)。TCP/IP模型的核心是網(wǎng)絡(luò)層和傳輸層 :網(wǎng)絡(luò)層解決網(wǎng)絡(luò)之間的邏輯轉(zhuǎn)發(fā)問題,傳輸層保證源端到目的端之間的可靠傳輸。最上層的應(yīng)用層通過各種協(xié)議向終端用戶提供業(yè)務(wù)應(yīng)用。
應(yīng)用數(shù)據(jù)需要經(jīng)過TCP/IP每一層處理之后才能通過網(wǎng)絡(luò)傳輸?shù)侥康亩? 每一層上都使用該層的協(xié)議數(shù)據(jù)單元PDU(Protocol Data Unit)彼此交換信息。不同層的PDU中包含有丌同的信息,因此PDU在不同層被賦予了不同的名稱。如上層數(shù)據(jù)在傳輸層添加TCP報(bào)頭后得到的PDU被稱為 Segment(數(shù)據(jù)段 );數(shù)據(jù)段被傳遞給網(wǎng)絡(luò)層,網(wǎng)絡(luò)層添加IP報(bào)頭得到的PDU被稱為Packet(數(shù)據(jù)包);數(shù)據(jù)包被傳遞到數(shù)據(jù)鏈路層,封裝數(shù)據(jù)鏈路層報(bào)頭得到的PDU被稱為Frame(數(shù)據(jù)幀);最后,幀被轉(zhuǎn)換為比特,通過網(wǎng)絡(luò)介質(zhì)傳輸。這種協(xié)議棧逐層向下傳遞數(shù)據(jù),并添加報(bào)頭和報(bào)尾的過程稱為封裝。
數(shù)據(jù)包在以太網(wǎng)物理介質(zhì)上傳播之前必須封裝頭部和尾部信息。封裝后的數(shù)據(jù)包稱為稱為數(shù)據(jù)幀,數(shù)據(jù)幀中封裝的信息決定了數(shù)據(jù)如何傳輸。 以太網(wǎng)上傳輸?shù)臄?shù)據(jù)幀有兩種格式,選擇哪種格式由TCP/IP協(xié)議簇中的網(wǎng)絡(luò)層決定。
以太網(wǎng)上使用兩種標(biāo)準(zhǔn)幀格式。第一種是Ethernet II,第二種是IEEE 802.3 格式。這兩種格式的主要區(qū)別在于,Ethernet II格式中包含一個(gè)Type字 段,標(biāo)識(shí)以太幀處理完成之后將被發(fā)送到哪個(gè)上層協(xié)議進(jìn)行處理。IEEE 802.3格式中,同樣的位置是長度字段。
不同的Type字段值可以用來區(qū)別這兩種幀的類型,當(dāng)Type字段值小于等于1500(或者十六進(jìn)制的0x05DC)時(shí),幀使用的是IEEE 802.3格式 。當(dāng)Type字段值大于等于1536 (或者十六進(jìn)制的0x0600)時(shí),幀使用 的是Ethernet II格式。以太網(wǎng)中大多數(shù)的數(shù)據(jù)幀使用的是Ethernet II格式 。
以太幀中還包括源和目的MAC地址,分別代表發(fā)送者的MAC和接收者 的MAC,此外還有幀校驗(yàn)序列字段,用于檢驗(yàn)傳輸過程中幀的完整性。
Ethernet_II的幀中各字段說明如下:
- 1. DMAC(Destination MAC)是目的MAC地址。DMAC字段長度為6個(gè)字節(jié),標(biāo)識(shí)幀的接收者。
- 2. SMAC(Source MAC)是源MAC地址。SMAC字段長度為6個(gè)字節(jié) ,標(biāo)識(shí)幀的發(fā)送者。
- 3. 類型字段(Type)用于標(biāo)識(shí)數(shù)據(jù)字段中包含的高層協(xié)議,該字段長度為2個(gè)字節(jié)。類型字段取值為0x0800的幀代表IP協(xié)議幀;類型字 段取值為0806的幀代表ARP協(xié)議幀。
- 4. 數(shù)據(jù)字段(Data)是網(wǎng)絡(luò)層數(shù)據(jù),最小長度必須為46字節(jié)以保證幀長至少為64字節(jié),數(shù)據(jù)字段的最大長度為1500字節(jié)。
- 5. 循環(huán)冗余校驗(yàn)字段(FCS)提供了一種錯(cuò)誤檢測機(jī)制。該字段長度為4個(gè)字節(jié)。
以太網(wǎng)在二層鏈路上通過MAC地址來唯一標(biāo)識(shí)網(wǎng)絡(luò)設(shè)備,并且實(shí)現(xiàn)局域網(wǎng)上網(wǎng)絡(luò)設(shè)備之間的通信。MAC地址也叫物理地址,大多數(shù)網(wǎng)卡廠商把MAC地址燒入了網(wǎng)卡的ROM中。發(fā)送端使用接收端的MAC地址作為目的地址。以太幀封裝完成后會(huì)通過物理層轉(zhuǎn)換成比特流在物理介質(zhì)上傳輸。
如同每一個(gè)人都有一個(gè)名字一樣,每一臺(tái)網(wǎng)絡(luò)設(shè)備都用物理地址來標(biāo)識(shí)自己,這個(gè)地址就是MAC地址。網(wǎng)絡(luò)設(shè)備的MAC地址是全球唯一的。 MAC地址長度為48比特,通常用十六迚制表示。MAC地址包含兩部分 :前24比特是組織唯一標(biāo)識(shí)符(OUI,Organizationally Unique Identifier),由IEEE統(tǒng)一分配給設(shè)備制造商。例如,華為的網(wǎng)絡(luò)產(chǎn)品的MAC地址前24比特是0x00e0fc。后24位序列號是廠商分配給每個(gè)產(chǎn)品 的唯一數(shù)值,由各個(gè)廠商自行分配(這里所說的產(chǎn)品可以是網(wǎng)卡或者其他需要MAC地址的設(shè)備)。
局域網(wǎng)上的幀可以通過三種方式發(fā)送。第一種是單播,指從單一的源端發(fā)送到單一的目的端。每個(gè)主機(jī)接口由一個(gè)MAC地址唯一標(biāo)識(shí),MAC地址的OUI中,第一字節(jié)第8個(gè)比特表示地址類型。對于主機(jī)MAC地址 ,這個(gè)比特固定為0,表示目的MAC地址為此MAC地址的幀都是發(fā)送到某個(gè)唯一的目的端。在沖突域中,所有主機(jī)都能收到源主機(jī)發(fā)送的單播幀,但是其他主機(jī)發(fā)現(xiàn)目的地址不本地MAC地址丌一致后會(huì)丟棄收到的幀,只有真正的目的主機(jī)才會(huì)接收并處理收到的幀。
第二種發(fā)送方式是廣播,表示幀從單一的源發(fā)送到共享以太網(wǎng)上的所有主機(jī)。廣播幀的目的MAC地址為十六進(jìn)制的FF:FF:FF:FF:FF:FF,所有收到該廣播幀的主機(jī)都要接收并處理這個(gè)幀。
廣播方式會(huì)產(chǎn)生大量流量,導(dǎo)致帶寬利用率降低,迚而影響整個(gè)網(wǎng)絡(luò)的性能。
當(dāng)需要網(wǎng)絡(luò)中的所有主機(jī)都能接收到相同的信息并進(jìn)行處理的情況下, 通常會(huì)使用廣播方式。
第三種發(fā)送方式為組播,組播比廣播更加高效。組播轉(zhuǎn)發(fā)可以理解為選擇性的廣播,主機(jī)偵聽特定組播地址,接收并處理目的MAC地址為該組播MAC地址的幀。
組播MAC地址和單播MAC地址是通過第一字節(jié)中的第8個(gè)比特區(qū)分的。 組播MAC地址的第8個(gè)比特為1,而單播MAC地址的第8個(gè)比特為0。
當(dāng)需要網(wǎng)絡(luò)上的一組主機(jī)(而不是全部主機(jī))接收相同信息,并且其他主機(jī)不受影響的情況下通常會(huì)使用組播方式。
幀從主機(jī)的物理接口發(fā)送出來后,通過傳輸介質(zhì)傳輸?shù)侥康亩?。共享網(wǎng)絡(luò)中,這個(gè)幀可能到達(dá)多個(gè)主機(jī)。主機(jī)檢查幀頭中的目的MAC地址,如果目的MAC地址不是本機(jī)MAC地址,也不是本機(jī)偵聽的組播或廣播MAC地址,則主機(jī)會(huì)丟棄收到的幀。
如果目的MAC地址是本機(jī)MAC地址,則接收該幀,檢查幀校驗(yàn)序列( FCS)字段,并與本機(jī)計(jì)算的值對比來確定幀在傳輸過程中是否保持了完整性。如果幀的FCS值與本機(jī)計(jì)算的值不同,主機(jī)會(huì)認(rèn)為幀已被破壞 ,并會(huì)丟棄該幀。如果該幀通過了FCS校驗(yàn),則主機(jī)會(huì)根據(jù)幀頭部中的Type字段來確定將幀發(fā)送給上層哪個(gè)協(xié)議處理。本例中,Type字段的值為0x0800,表明該幀需要發(fā)送到IP協(xié)議上處理。在發(fā)送給IP協(xié)議之前 ,幀的頭部和尾部會(huì)被剝掉。
總結(jié):
網(wǎng)絡(luò)設(shè)備如何確定以太網(wǎng)數(shù)據(jù)幀的上層協(xié)議?
答:以太網(wǎng)幀中包含一個(gè)type字段,表示幀中數(shù)據(jù)應(yīng)該發(fā)送到上層哪個(gè)協(xié)議處理。比如,IP協(xié)議對應(yīng)的Type值為0x0800,ARP協(xié)議對應(yīng)的Type值為0x0806。
終端設(shè)備接收到數(shù)據(jù)幀時(shí),會(huì)如何處理?
答:主機(jī)檢查幀頭中的目的MAC地址,如果目的MAC地址不是本機(jī)MAC 地址,也不是本機(jī)偵聽的組播或廣播MAC地址,則主機(jī)會(huì)丟棄收到的幀。如果目的MAC地址是本機(jī)MAC地址,則接收該幀,檢查幀校驗(yàn)序列(FCS)字段,并與本機(jī)計(jì)算的值對比來確定幀在傳輸過程中是否保持了完整性。如果檢查通過,就會(huì)剝離幀頭和幀尾,然后根據(jù)幀頭中的Type字段來決定把數(shù)據(jù)發(fā)送到哪個(gè)上層協(xié)議進(jìn)行后續(xù)處理。
以上所述是小編給大家介紹的以太網(wǎng)數(shù)據(jù)幀的結(jié)構(gòu)分析,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
三大網(wǎng)絡(luò)管理協(xié)議:SNMP、NETCONF、RESTCONF介紹
本文將詳細(xì)介紹三種主要的協(xié)議:SNMP(Simple Network Management Protocol)、NETCONF(Network Configuration Protocol)和RESTCONF,需要的朋友可以參考下2024-02-13- 常見的網(wǎng)絡(luò)協(xié)議有:TCP/IP協(xié)議、UDP協(xié)議、HTTP協(xié)議、FTP協(xié)議等,本文就詳細(xì)的介紹一下常見的網(wǎng)絡(luò)協(xié)議,通過這些具體的協(xié)議更深刻的認(rèn)識(shí)整體網(wǎng)絡(luò)的傳輸流程及相關(guān)網(wǎng)絡(luò)原理,2023-05-30
- 本文主要介紹了L2TP和PPTP的區(qū)別,主要的前區(qū)別在于用途不同、使用要求不同,下面就來介紹一下L2TP和PPTP的聯(lián)系與區(qū)別,感興趣的可以了解一下2023-05-30
自組織網(wǎng)絡(luò)Ad Hoc之OLSR 協(xié)議詳解
這篇文章主要介紹了自組織網(wǎng)絡(luò)Ad Hoc之OLSR 協(xié)議詳解,需要的朋友可以參考下2023-05-08自組織網(wǎng)絡(luò)Ad Hoc之AODV協(xié)議詳解
這篇文章主要介紹了自組織網(wǎng)絡(luò)Ad Hoc之AODV協(xié)議詳解,需要的朋友可以參考下2023-05-08自組織網(wǎng)絡(luò)Ad Hoc 網(wǎng)絡(luò)基礎(chǔ)知識(shí)
自組織網(wǎng)絡(luò)(Ad Hoc)是一種移動(dòng)通信和計(jì)算機(jī)網(wǎng)絡(luò)相結(jié)合的網(wǎng)絡(luò),是移動(dòng)計(jì)算機(jī)網(wǎng)絡(luò)的一種,用戶終端可以在網(wǎng)絡(luò)內(nèi)隨意移動(dòng)而保持通信2023-05-08- 瀏覽器輸入一個(gè)URL回車后,會(huì)發(fā)生什么呢?這里就為大家分享一下,需要的朋友可以參考下2022-10-19
- 本篇主要是對網(wǎng)絡(luò)協(xié)議進(jìn)行一個(gè)歸納總結(jié),方便后續(xù)查閱及復(fù)習(xí),當(dāng)然如有新的認(rèn)知或新的理解,也會(huì)持續(xù)更新2022-10-19
- 今日回顧網(wǎng)絡(luò)知識(shí)時(shí),發(fā)現(xiàn)自己專門整理過一篇關(guān)于日常生活中常見的網(wǎng)絡(luò)協(xié)議知識(shí)以及作用的梳理,特發(fā)此一貼,也當(dāng)給自己鞏固網(wǎng)絡(luò)知識(shí)了,如有錯(cuò)誤,望各大佬指正2022-10-19
- HTTP即超文本傳輸協(xié)議,是一種實(shí)現(xiàn)客戶端和服務(wù)器之間通信的響應(yīng)協(xié)議,它是用作客戶端和服務(wù)器之間的請求,需要的朋友可以參考下2022-10-19