吴忠躺衫网络科技有限公司

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

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

3天內不再提示

以太網鏈路層協議封裝格式介紹

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

一、以太網鏈路層協議封裝格式

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

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

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

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

Ethernet II幀是最常見的一種以太網幀格式,也是今天以太網的事實標準,由DEC,Intel和Xerox在1982年公布標準,Ethernet II可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等協議,其比較常見的類型字段為:0X0800(IP幀),0X0806(ARP請求/應答幀),0X8035(PARP請求/應答幀),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發布Netware/86網絡套件時采用的私有以太網幀格式,只支持IPX/SPX一種協議;802.3/802.2 LLC是IEEE 公布的正式802.3標準,它加入了3byte的LLC字段, 其中SAP值用以標志上層應用,每個SAP字段為8bits,其中只有6bit用于標識上層協議,因此所能標識的協議數不超過32種,導致802.3/802.2 LLC的使用有很大局限性;802.3/802.2 SNAP是IEEE為保證在802.2 LLC上支持更多的上層協議同時更好的支持IP協議而發布的標準,在802.3/802.2 LLC基礎上添加了5byte的SNAP字段,從而使其可以標識更多的上層協議類型,OUI字段用于代表不同的組織(一般置為0),在802.3/802.2 SNAP基礎上RFC1042定義了IP報文在802.2網絡中的封裝方法和ARP協議在802.2 SANP中的實現。

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

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

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

二、以太網IP層協議封裝格式

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

IP包封裝格式

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

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

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

總長度:頭部及數據項長度,最大長度為65535bytes。

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

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

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

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

協議:傳輸層的協議類型。


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

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

數據:IP包攜帶的各種傳輸層報文。

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

三、傳輸層協議封裝格式

1.TCP協議

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

TCP包封裝格式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

選項字段:占32比特。可能包括"窗口擴大因子"、"時間戳"等選項。

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

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

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

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

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

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

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

2.UDP協議

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

UDP包封裝格式

源、目標端口號字段:16比特。作用與TCP數據段中的端口號字段相同,用來標識源端和目標端的應用進程。

長度字段:占16比特。標明UDP頭部和UDP數據的總長度字節。

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

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

    關注

    40

    文章

    5460

    瀏覽量

    172724
  • 封裝
    +關注

    關注

    127

    文章

    7992

    瀏覽量

    143402

原文標題:今日分享:以太網協議封裝格式

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ICMPv6協議介紹#車載以太網 #ipv6 #科普

    車載以太網
    北匯信息POLELINK
    發布于 :2024年12月04日 11:00:05

    以太網和TCP/IP的關系解析

    在現代計算機網絡中,以太網和TCP/IP協議棧是構建網絡通信的基礎。以太網定義了局域(LAN)中的數據鏈路層和物理層的技術標準,而TCP/
    的頭像 發表于 11-08 09:21 ?993次閱讀

    以太網協議的種類和特點

    以太網是一種局域(Local Area Network, LAN)技術,它定義了一組用于在局域中傳輸數據的規則和標準。以太網協議的種類和
    的頭像 發表于 11-08 09:10 ?1667次閱讀

    以太網格式和功能詳解

    以太網幀(Ethernet Frame)是以太網(Ethernet)協議用于在局域(LAN)中傳輸數據的基本單位。理解以太網幀的結構和傳輸
    的頭像 發表于 10-08 10:03 ?2305次閱讀

    以太網幀結構是怎樣的

    以太網幀(Ethernet Frame)是以太網(Ethernet)協議用于在局域(LAN)中傳輸數據的基本單位。理解以太網幀的結構對于掌
    的頭像 發表于 10-08 10:00 ?1394次閱讀

    以太網端口的類型和特性

    以太網端口,即以太網接口,是網絡中用于連接設備并進行數據交換的端口。它基于IEEE 802.3標準,并使用以太網協議進行數據傳輸。以太網端口
    的頭像 發表于 08-07 15:27 ?1849次閱讀

    什么是工業以太網?有何特點?

    用,如高溫、高濕、高振動等。 以下是關于工業以太網的詳細介紹: 一、工業以太網的定義 工業以太網是一種基于以太網技術的網絡通信
    的頭像 發表于 06-11 10:34 ?3309次閱讀

    工業以太網和普通以太網區別在哪

    工業以太網和普通以太網是兩種不同的以太網技術,它們在設計、性能、應用和可靠性等方面存在顯著差異。本文將詳細介紹這兩種以太網技術的區別。 設計
    的頭像 發表于 06-11 10:30 ?2954次閱讀

    工業以太網的主要協議及其特點

    設備之間的互聯和信息交換,極大地推動了工業自動化的發展。本文將詳細介紹工業以太網的相關協議及其特點,以便讀者能夠更深入地了解這一領域。
    的頭像 發表于 06-06 11:42 ?1006次閱讀

    車載以太網硬件接口VN5620設備展示與介紹#車載以太網

    車載以太網
    北匯信息POLELINK
    發布于 :2024年05月31日 10:27:03

    車載以太網接口VN5650使用場景介紹#車載以太網

    以太網
    北匯信息POLELINK
    發布于 :2024年05月11日 17:58:05

    PLC以太網開放式通信概述

    以太網開放式通信概述:   1、以太網開放式通信,即就是通信協議是由用戶自由定義的;   2、以太網開放式通信是基于TCP、UDP運輸層的一種軟件通信
    發表于 04-16 12:06 ?1180次閱讀
    PLC<b class='flag-5'>以太網</b>開放式通信概述

    FPGA學習-以太網的原理介紹

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

    工業以太網的基本原理及優勢

    的應用前景。 一、工業以太網的基本原理 工業以太網基于標準的以太網技術,通過物理層、數據鏈路層和網絡層的協議規范,實現設備間的數據傳輸和通信
    的頭像 發表于 03-25 14:40 ?808次閱讀

    以太網怎么連接 以太網組網結構分析

    以太網的組網結構涉及多個層面和組件。首先,從網絡結構的角度來看,以太網分為物理層、數據鏈路層和高層用戶層。其中,物理層采用特定的通信媒體,如50Ω基帶同軸電纜,實現數據的傳輸。數據鏈路層
    的頭像 發表于 03-08 17:19 ?3716次閱讀
    <b class='flag-5'>以太網</b>怎么連接 <b class='flag-5'>以太網</b>組網結構分析
    单机百家乐破解方法| 百家乐官网赌博走势图| 真钱棋牌导航网| 皇冠投注網| 从江县| 宜阳县| 百家乐官网怎么注册| 江阴市| 现场百家乐官网百家乐官网| 百家乐官网不能视频| 真人百家乐官网作假视频| 百家乐官网六合彩| 闲和庄百家乐官网娱乐网| 互联网百家乐官网的玩法技巧和规则 | 平注打百家乐官网的方法| 网上的百家乐官网怎么才能赚钱| 赌场百家乐官网图片| 风水24山代表什么意思| 澳门百家乐娱乐城怎么样| 娱乐城百家乐官网怎么样| 真人百家乐官网大转轮| 筹码百家乐官网的玩法技巧和规则| 百家乐榄梯打法| 属鼠做生意办公桌摆貔貅好不好| 百家乐娱乐城官方网| 安卓水果机游戏| 明珠| 赌博百家乐官网判断决策| 网上的百家乐官网怎么才能赢| 百家乐视频游戏平台| 老虎百家乐的玩法技巧和规则| 大发888大家赢娱乐| 皇冠网遮天小说| 百家乐官网桌蓝盾在线| 百家乐官网怎样玩的| 阴宅24山水口吉凶断| 帝王百家乐的玩法技巧和规则 | sz新全讯网网址2290| 模拟百家乐官网的玩法技巧和规则 | 百家乐用什么平台| 网上百家乐赌|