0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以太網(wǎng)鏈路層協(xié)議封裝格式介紹

電子工程師 ? 來源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2020-09-26 10:03 ? 次閱讀

一、以太網(wǎng)鏈路層協(xié)議封裝格式

以太網(wǎng)數(shù)據(jù)在網(wǎng)絡(luò)介質(zhì)上傳輸需要遵循一定的機制,其中CSMA/CD介質(zhì)訪問控制機制約定了以太網(wǎng)在傳輸數(shù)據(jù)時,兩幀之間需要等待一個幀間隙時間(IFG或IPG),為以太網(wǎng)接口提供了幀接收之間的恢復時間,該恢復時間最小值為傳輸96bit所花費的時間,對于10M線路,該時間為9.6uS,100M線路為960nS,1G的線路為96nS。同時以太網(wǎng)數(shù)據(jù)幀在傳輸時還需要有7byte的前導字段和1byte的定界符。因此以太網(wǎng)數(shù)據(jù)在傳輸過程中是由以下部分組成的:7byte(前導)+1byte(定界符)+以太網(wǎng)數(shù)據(jù)幀+12byte(IPG)。

在全雙工工作模式下,如果CSMA/CD介質(zhì)訪問控制機制發(fā)現(xiàn)傳輸沖突時,則會放棄當前幀發(fā)送,改為發(fā)送一個48比特的噪聲幀。

其中以太網(wǎng)數(shù)據(jù)幀限制為最小長度為64byte,最大長度為1518byte,其格式為:6byte(目的MAC地址)+6byte(源MAC地址)+2byte(類型字段)+數(shù)據(jù)字段+4byte(FCS校驗字段)。其中幀類型字段標識其后的數(shù)據(jù)類型。

這里值得注意的是區(qū)分Ethernet II幀格式和802.3幀格式的不同,我們有時可能會混用了這兩個術(shù)語。

Ethernet II幀是最常見的一種以太網(wǎng)幀格式,也是今天以太網(wǎng)的事實標準,由DEC,Intel和Xerox在1982年公布標準,Ethernet II可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等協(xié)議,其比較常見的類型字段為:0X0800(IP幀),0X0806(ARP請求/應(yīng)答幀),0X8035(PARP請求/應(yīng)答幀),0X8137(Novell IPX),0X809b(Apple Talk)。RFC 894定義了IP報文在Ethernet II上的封裝格式。

802.3幀將Ethernet II幀頭中的類型字段替換為幀長度字段(取值范圍為0X0000-0X05dc,不包括CRC檢驗碼),因此對于接收到的幀,如果類型字段取值范圍為0X0000-0X05dc,則可以判斷其為802.3幀,而非Ethernet II幀。其中RAW 802.3是1983年Novell發(fā)布Netware/86網(wǎng)絡(luò)套件時采用的私有以太網(wǎng)幀格式,只支持IPX/SPX一種協(xié)議;802.3/802.2 LLC是IEEE 公布的正式802.3標準,它加入了3byte的LLC字段, 其中SAP值用以標志上層應(yīng)用,每個SAP字段為8bits,其中只有6bit用于標識上層協(xié)議,因此所能標識的協(xié)議數(shù)不超過32種,導致802.3/802.2 LLC的使用有很大局限性;802.3/802.2 SNAP是IEEE為保證在802.2 LLC上支持更多的上層協(xié)議同時更好的支持IP協(xié)議而發(fā)布的標準,在802.3/802.2 LLC基礎(chǔ)上添加了5byte的SNAP字段,從而使其可以標識更多的上層協(xié)議類型,OUI字段用于代表不同的組織(一般置為0),在802.3/802.2 SNAP基礎(chǔ)上RFC1042定義了IP報文在802.2網(wǎng)絡(luò)中的封裝方法和ARP協(xié)議在802.2 SANP中的實現(xiàn)。

目前實際環(huán)境中大多數(shù)TCP/IP設(shè)備都使用Ethernet II格式的幀,它采用了RFC 894的實現(xiàn)標準。從上述幀格式中可以看出,Ethernet II格式幀數(shù)據(jù)段的長度限制在46byte-1500byte之間,當數(shù)據(jù)段長度小于46個字節(jié)時,加填充字段(PAD)補足。Ethernet II和802.3對數(shù)據(jù)幀的長度限制,其最大值分別是1500和1492字節(jié),這一特性稱作最大傳輸單元(MTU)。

圖 IEEE802.2/802.3(RFC1042)和Ethernet II(RFC894)的封裝格式

在TCP/IP協(xié)議族中,鏈路層主要有三個目的:(1)為IP模塊發(fā)送和接收IP數(shù)據(jù)報;(2)為ARP模塊發(fā)送ARP請求和接收ARP應(yīng)答;(3)為RARP發(fā)送RARP請求和接收RARP應(yīng)答。

二、以太網(wǎng)IP層協(xié)議封裝格式

在TCP/IP協(xié)議族中基于鏈路層以上的協(xié)議主要有三種:IP協(xié)議、ARP協(xié)議和RARP協(xié)議,其中在IP數(shù)據(jù)報中又額外封裝了ICMP協(xié)議和IGMP協(xié)議。IP層協(xié)議也就是通常的網(wǎng)絡(luò)層協(xié)議,它提供點到點的服務(wù)(不同于傳輸層TCP/UDP協(xié)議提供端到端的服務(wù))。

IP包封裝格式

版本號:IP包的版本,當前一般為IPv4,即0100。

首部長度:IP包頭長度(Internet Header Length,IHL),是一個4bit字段,是頭部占32比特的數(shù)字,包括可選項。普通IP數(shù)據(jù)報(沒有任何選項),該字段的值是5,即160比特=20字節(jié)。此字段最大值為60字節(jié),表示頭部報文中沒有發(fā)送可選部分數(shù)據(jù)。

服務(wù)類型(TOS):其中前3比特為優(yōu)先權(quán)子字段(Precedence,現(xiàn)已被忽略)。第8比特保留未用。第4至第7比特分別代表延遲、吞吐量、可靠性和花費。當它們?nèi)≈禐?時分別代表要求最小時延、最大吞吐量、最高可靠性和最小費用。這4比特的服務(wù)類型中只能置其中1比特為1??梢匀珵?,若全為0則表示一般服務(wù)。服務(wù)類型字段聲明了數(shù)據(jù)報被網(wǎng)絡(luò)系統(tǒng)傳輸時可以被怎樣處理。例如:TELNET協(xié)議可能要求有最小的延遲,F(xiàn)TP協(xié)議(數(shù)據(jù))可能要求有最大吞吐量,SNMP協(xié)議可能要求有最高可靠性,NNTP(Network News Transfer Protocol,網(wǎng)絡(luò)新聞傳輸協(xié)議)可能要求最小費用,而ICMP協(xié)議可能無特殊要求(4比特全為0)。實際上,大部分主機會忽略這個字段,但一些動態(tài)路由協(xié)議如OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根據(jù)這些字段的值進行路由決策。

總長度:頭部及數(shù)據(jù)項長度,最大長度為65535bytes。

標識:當IP包較大需要進行分段時,用于標識該段所屬的分組。通常每發(fā)一份報文,它的值會加1。

標志:構(gòu)成為[0][D][M],其中D為1表示不分段,M為0表示為最后分段,為1表示非最后分段。

片偏移:即分段偏移。如果一份數(shù)據(jù)報要求分段的話,此字段指明該段偏移距原始數(shù)據(jù)報開始的位置。

生存時間(TTL):表示一個IP數(shù)據(jù)流的生命周期,由發(fā)送數(shù)據(jù)的源主機設(shè)置,通常為32、64、128等。每次IP數(shù)據(jù)包經(jīng)過一個路由器的時候TTL就減一,當減到0時,這個數(shù)據(jù)包就消亡了。

協(xié)議:傳輸層的協(xié)議類型。


首部校驗和:根據(jù)IP頭部計算得到的校驗和碼。計算方法是:對頭部中每個16比特進行二進制反碼求和。(和ICMP、IGMP、TCP、UDP不同,IP不對頭部后的數(shù)據(jù)進行校驗)。

選項:占32比特。用來定義一些任選項:如記錄路徑、時間戳等。這些選項很少被使用,同時并不是所有主機和路由器都支持這些選項??蛇x項字段的長度必須是32比特的整數(shù)倍,如果不足,必須填充0以達到此長度要求。

數(shù)據(jù):IP包攜帶的各種傳輸層報文。

IP報文頭部實例:45 00 00 30 52 52 40 00 80 06 2c 23 c0 a8 01 01 d8 03 e2 15

三、傳輸層協(xié)議封裝格式

1.TCP協(xié)議

TCP是一種可靠的、面向連接的字節(jié)流服務(wù)。源主機在傳送數(shù)據(jù)前需要先和目標主機建立連接。然后,在此連接上,被編號的數(shù)據(jù)段按序收發(fā)。同時,要求對每個數(shù)據(jù)段進行確認,保證了可靠性。如果在指定的時間內(nèi)沒有收到目標主機對所發(fā)數(shù)據(jù)段的確認,源主機將再次發(fā)送該數(shù)據(jù)段。

TCP包封裝格式

源、目標端口號字段:占16比特。TCP協(xié)議通過使用"端口"來標識源端和目標端的應(yīng)用進程。端口號可以使用0到65535之間的任何數(shù)字。在收到服務(wù)請求時,操作系統(tǒng)動態(tài)地為客戶端的應(yīng)用程序分配端口號。在服務(wù)器端,每種服務(wù)在"眾所周知的端口"(Well-Know Port)為用戶提供服務(wù)。

順序號字段:占32比特。用來標識從TCP源端向TCP目標端發(fā)送的數(shù)據(jù)字節(jié)流,它表示在這個報文段中的第一個數(shù)據(jù)字節(jié)。

確認號字段:占32比特。只有ACK標志為1時,確認號字段才有效。它包含目標端所期望收到源端的下一個數(shù)據(jù)字節(jié)。

數(shù)據(jù)偏移量:實際上是TCP首部長度,用來標識數(shù)據(jù)段的起始位置。給出頭部占32比特的數(shù)目。沒有任何選項字段的TCP頭部長度為20字節(jié);最多可以有60字節(jié)的TCP頭部。

控制標識(U、A、P、R、S、F)::TCP協(xié)議中的六個重要的標志。是兩個計算機數(shù)據(jù)交流的信息標志。接收和發(fā)送斷根據(jù)這些標志來確定信息流的種類。

URG:(Urgent Pointer field significant)緊急指針。用到的時候值為1,用來處理避免TCP數(shù)據(jù)流中斷。

ACK:(Acknowledgment fieldsignificant)置1時表示確認號(AcknowledgmentNumber)為合法,為0的時候表示數(shù)據(jù)段不包含確認信息,確認號被忽略。

PSH:(Push Function),PUSH標志的數(shù)據(jù),置1時請求的數(shù)據(jù)段在接收方得到后就可直接送到應(yīng)用程序,而不必等到緩沖區(qū)滿時才傳送。

RST:(Reset the connection)用于復位因某種原因引起出現(xiàn)的錯誤連接,也用來拒絕非法數(shù)據(jù)和請求。如果接收到RST位時候,通常發(fā)生了某些錯誤。

SYN:(Synchronize sequence numbers)用來建立連接,在連接請求中,SYN=1,ACK=0,連接響應(yīng)時,SYN=1,ACK=1。即,SYN和ACK來區(qū)分Connection Request和Connection Accepted。

FIN:(No more data from sender)用來釋放連接,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了。

滑動窗口:控制報文流量,用來告訴對方目前接收端緩沖器大小。當為0時標識緩沖器已滿,需要停止發(fā)包,單位為byte。

TCP校驗和字段:占16比特。對整個TCP報文段,即TCP頭部和TCP數(shù)據(jù)進行校驗和計算,并由目標端進行驗證。

緊急指針字段:占16比特。它是一個偏移量,和序號字段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號。

選項字段:占32比特??赡馨?窗口擴大因子"、"時間戳"等選項。

TCP協(xié)議頭部實例:0d 28 00 15 50 5f a9 06 00 00 00 00 70 02 40 00 c0 29 00 00

TCP建立連接的三次握手過程

TCP會話通過三次握手來初始化。三次握手的目標是使數(shù)據(jù)段的發(fā)送和接收同步。同時也向其他主機表明其一次可接收的數(shù)據(jù)量(窗口大?。?,并建立邏輯連接。這三次握手的過程可以簡述如下:

1、源主機發(fā)送一個同步標志位(SYN)置1的TCP數(shù)據(jù)段。此段中同時標明初始序號(Initial Sequence Number,ISN)。ISN是一個隨時間變化的隨機值。

2、目標主機發(fā)回確認數(shù)據(jù)段,此段中的同步標志位(SYN)同樣被置1,且確認標志位(ACK)也置1,同時在確認序號字段表明目標主機期待收到源主機下一個數(shù)據(jù)段的序號(即表明前一個數(shù)據(jù)段已收到并且沒有錯誤)。此外,此段中還包含目標主機的段初始序號。

3、源主機再回送一個數(shù)據(jù)段,同樣帶有遞增的發(fā)送序號和確認序號。

至此為止,TCP會話的三次握手完成。接下來,源主機和目標主機可以互相收發(fā)數(shù)據(jù)。

2.UDP協(xié)議

UDP是一種不可靠的、無連接的數(shù)據(jù)報服務(wù)。源主機在傳送數(shù)據(jù)前不需要和目標主機建立連接。數(shù)據(jù)被冠以源、目標端口號等UDP報頭字段后直接發(fā)往目的主機。這時,每個數(shù)據(jù)段的可靠性依靠上層協(xié)議來保證。在傳送數(shù)據(jù)較少、較小的情況下,UDP比TCP更加高效。

UDP包封裝格式

源、目標端口號字段:16比特。作用與TCP數(shù)據(jù)段中的端口號字段相同,用來標識源端和目標端的應(yīng)用進程。

長度字段:占16比特。標明UDP頭部和UDP數(shù)據(jù)的總長度字節(jié)。

校驗和字段:占16比特。用來對UDP頭部和UDP數(shù)據(jù)進行校驗。和TCP不同的是,對UDP來說,此字段是可選項,而TCP數(shù)據(jù)段中的校驗和字段是必須有的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5323

    瀏覽量

    170528
  • 封裝
    +關(guān)注

    關(guān)注

    126

    文章

    7657

    瀏覽量

    142475

原文標題:今日分享:以太網(wǎng)協(xié)議封裝格式

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    以太網(wǎng)格式和功能詳解

    以太網(wǎng)幀(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解以太網(wǎng)幀的結(jié)構(gòu)和傳輸
    的頭像 發(fā)表于 10-08 10:03 ?419次閱讀

    以太網(wǎng)幀結(jié)構(gòu)是怎樣的

    以太網(wǎng)幀(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解以太網(wǎng)幀的結(jié)構(gòu)對于掌
    的頭像 發(fā)表于 10-08 10:00 ?319次閱讀

    什么是工業(yè)以太網(wǎng)?有何特點?

    用,如高溫、高濕、高振動等。 以下是關(guān)于工業(yè)以太網(wǎng)的詳細介紹: 一、工業(yè)以太網(wǎng)的定義 工業(yè)以太網(wǎng)是一種基于以太網(wǎng)技術(shù)的網(wǎng)絡(luò)通信
    的頭像 發(fā)表于 06-11 10:34 ?1810次閱讀

    工業(yè)以太網(wǎng)和普通以太網(wǎng)區(qū)別在哪

    工業(yè)以太網(wǎng)和普通以太網(wǎng)是兩種不同的以太網(wǎng)技術(shù),它們在設(shè)計、性能、應(yīng)用和可靠性等方面存在顯著差異。本文將詳細介紹這兩種以太網(wǎng)技術(shù)的區(qū)別。 設(shè)計
    的頭像 發(fā)表于 06-11 10:30 ?1929次閱讀

    工業(yè)以太網(wǎng)的主要協(xié)議及其特點

    設(shè)備之間的互聯(lián)和信息交換,極大地推動了工業(yè)自動化的發(fā)展。本文將詳細介紹工業(yè)以太網(wǎng)的相關(guān)協(xié)議及其特點,以便讀者能夠更深入地了解這一領(lǐng)域。
    的頭像 發(fā)表于 06-06 11:42 ?686次閱讀

    車載以太網(wǎng)硬件接口VN5620設(shè)備展示與介紹#車載以太網(wǎng)

    車載以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月31日 10:27:03

    車載以太網(wǎng)接口VN5650使用場景介紹#車載以太網(wǎng)

    以太網(wǎng)
    北匯信息POLELINK
    發(fā)布于 :2024年05月11日 17:58:05

    FPGA學習-以太網(wǎng)的原理介紹

    以太網(wǎng)鏈路上的數(shù)據(jù)包稱作以太網(wǎng)幀。以太網(wǎng)幀起始部分由前導碼和幀開始符組成。后面緊跟著一個以太網(wǎng)報頭,以MAC地址說明目的地址和源地址。
    的頭像 發(fā)表于 04-02 16:26 ?1476次閱讀
    FPGA學習-<b class='flag-5'>以太網(wǎng)</b>的原理<b class='flag-5'>介紹</b>

    工業(yè)以太網(wǎng)的基本原理及優(yōu)勢

    的應(yīng)用前景。 一、工業(yè)以太網(wǎng)的基本原理 工業(yè)以太網(wǎng)基于標準的以太網(wǎng)技術(shù),通過物理層、數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層的協(xié)議規(guī)范,實現(xiàn)設(shè)備間的數(shù)據(jù)傳輸和通信
    的頭像 發(fā)表于 03-25 14:40 ?560次閱讀

    以太網(wǎng)怎么連接 以太網(wǎng)組網(wǎng)結(jié)構(gòu)分析

    以太網(wǎng)的組網(wǎng)結(jié)構(gòu)涉及多個層面和組件。首先,從網(wǎng)絡(luò)結(jié)構(gòu)的角度來看,以太網(wǎng)分為物理層、數(shù)據(jù)鏈路層和高層用戶層。其中,物理層采用特定的通信媒體,如50Ω基帶同軸電纜,實現(xiàn)數(shù)據(jù)的傳輸。數(shù)據(jù)鏈路層
    的頭像 發(fā)表于 03-08 17:19 ?2807次閱讀
    <b class='flag-5'>以太網(wǎng)</b>怎么連接 <b class='flag-5'>以太網(wǎng)</b>組網(wǎng)結(jié)構(gòu)分析

    基于以太網(wǎng)的EtherCAT協(xié)議技術(shù)

    EtherCAT主站需要使用實時操作系統(tǒng) + 標準的以太網(wǎng)芯片 + EtherCAT協(xié)議棧,從站則需要使用專門的通信芯片(ESC)來保證通信的高速和穩(wěn)定。
    發(fā)表于 01-24 17:25 ?892次閱讀
    基于<b class='flag-5'>以太網(wǎng)</b>的EtherCAT<b class='flag-5'>協(xié)議</b>技術(shù)

    科普科普以太網(wǎng)的定義、種類以及晶振在以太網(wǎng)上的應(yīng)用

    科普科普以太網(wǎng)的定義、種類以及晶振在以太網(wǎng)上的應(yīng)用? 以太網(wǎng)是一種用于局域網(wǎng)通信的傳輸技術(shù),它是一種在計算機網(wǎng)絡(luò)中常用的傳輸協(xié)議,用于將數(shù)據(jù)包從一個節(jié)點傳輸?shù)搅硪粋€節(jié)點。本文將詳細
    的頭像 發(fā)表于 01-24 16:11 ?895次閱讀

    超越傳統(tǒng)以太網(wǎng),揭秘UEC工作組的最新進展!

    以太網(wǎng)聯(lián)盟致力于從物理層、鏈路層、傳輸層、軟件層改進以太網(wǎng)技術(shù),在兼容當前以太網(wǎng)生態(tài)的前提下,提升以太網(wǎng)的轉(zhuǎn)發(fā)性能,致力于改進
    發(fā)表于 12-12 15:05 ?4335次閱讀
    超越傳統(tǒng)<b class='flag-5'>以太網(wǎng)</b>,揭秘UEC工作組的最新進展!

    千兆以太網(wǎng)發(fā)展現(xiàn)狀 千兆以太網(wǎng)技術(shù)優(yōu)勢

    以太網(wǎng)其實是我們?nèi)粘I钪卸紩玫降模热绱蠹倚^(qū)里的千兆以太網(wǎng)等。為增進大家對以太網(wǎng)的了解,本文講對千兆以太網(wǎng)的發(fā)展現(xiàn)狀、千兆以太網(wǎng)技術(shù)優(yōu)
    的頭像 發(fā)表于 12-08 16:40 ?929次閱讀

    工業(yè)以太網(wǎng)有何優(yōu)勢?工業(yè)以太網(wǎng)物理層介紹

    現(xiàn)代生活中,工業(yè)以太網(wǎng)發(fā)揮的作用愈來愈重要。為增進大家對工業(yè)以太網(wǎng)的認識,本文將基于 3 方面介紹工業(yè)以太網(wǎng):1.何為工業(yè)以太網(wǎng)物理層,2.
    的頭像 發(fā)表于 11-09 15:15 ?608次閱讀