日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Network 之五 TCP/IP 协议族、工作流程、常用协议格式

發布時間:2024/10/14 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Network 之五 TCP/IP 协议族、工作流程、常用协议格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??最近工作需要搞網絡相關的內容,由于之前對網絡了解比較少,因此開始重點學習一下網絡相關的各種知識。博文中的有些內容來自于在學習過程中對于一些互聯網上我認為的重點知識的記錄,如果侵權請聯系刪除!

??在之前的博文 Network 之一 國際標準組織介紹、互聯網/因特網、以太網概念區分、協議標準 中,曾經學習了互聯通信的參考模型:OSI 參考模型和 TCP/IP 參考模型,以及相關的標準。但是受制于篇幅,沒有詳細介紹各種規約的細節,這篇博文就重點學習協議的細節。

協議戰爭

??在 20 世紀 70 年代到 90 年代之間,計算機科學領域發生了一場名為 “協議戰爭”(Protocol Wars) 的長期爭論。當時,工程師、組織和國家在哪種通信協議能產生最好、最強大的計算機網絡的問題上出現了兩極分化。這場辯論在 80 年代末和 90 年代初的 Internet - OSI 標準之戰中達到了頂峰,最終在 90 年代中期由 Internet 獲勝。

Internet 標準最終形成了互聯網協議套件,由于互聯網協議套件是從 TCP/IP 協議一步步發展來的,因此也被稱為 TCP/IP 協議族。

??在互聯網發展的這個階段中,最先出現的是一些專有網絡標準及協議。例如,最早的高級研究計劃局網絡(ARPANET) 中的 Network Control Program (NCP) ,歐洲郵政、電報和電話服務(PTT)于 1976 年開發了 X.25 標準。OSI 在 20 世紀 80 年代后期開發了其網絡標準,完整的互聯網協議套件在1989 年開發完成。

??隨著完整的互聯網協議套件的開發,以及與電信和計算機行業的合作,將 TCP/IP 軟件整合到各種操作系統中,為廣泛采用 TCP/IP 作為綜合協議套件奠定了基礎。雖然 OSI 在 20 世紀 80 年代后期開發了其網絡標準,但 TCP/IP 在眾多供應商網絡上被廣泛應用,并最終稱為了互聯網的核心組件。很多協議基本都直接消失或者間接投靠了 TCP/IP 協議。

TCP/IP 協議族

??TCP/IP 協議族,也稱為互聯網協議套件(Internet Protocol Suite,IPS)是一組實現支持因特網和大多數商業網絡運行的協議棧的網絡傳輸協議。這個名稱來源于其中兩個最重要的協議:傳輸控制協議(TCP)和因特網協議(IP),它們也是最先定義的兩個協議。

??由于在網絡通訊協議普遍采用分層的結構,當多個層次的協議共同工作時,類似計算機科學中的堆棧,因此又稱為 TCP/IP 協議棧(TCP/IP Protocol Stack),也被簡稱為 TCP/IP 協議。

??目前,TCP/IP 協議族的相關標準由 IEFT 負責指定,所有這些協議都在相應的 RFC 文檔中討論及標準化。其中有個問題我們需要知道,TCP/IP 協議棧的眾多協議并沒有嚴格的按照分層的理念來進行設計,它更多的是處于實用的目的。盡管在很多文獻中將 TCP/IP 協議棧中的各種協議劃分到各層,但沒有對應的標準來說明這一點,IEFT 也不負責處理分層的相關標準。

TCP/IP 數據流

??在 TCP/IP 協議工作流程中(TCP/IP 數據流過程),應用層數據通過協議棧發送到網絡上時,每一層協議都會添加一個自己的頭部,這個過程稱為封裝(Encapsulation)。

??數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部,最后將應用層數據交給應用程序處理。上圖僅僅是兩臺計算機在同一網段的簡單情況,如果兩臺計算機在不同網段,則還需要經過一個或多個路由器(也可能是廣域網節點交換機)。

??每個協議層都有自己的名稱來標識數據單元。TCP 將數據單元稱為(Segment),UDP 將數據單元稱為數據報,IP 將數據單元稱為數據包(Packet),數據鏈路層和物理層或網絡接口層將其稱為(Frame)。

以太網幀

??以太網(Ethernet)是一種計算機局域網技術。IEEE 制定的 IEEE 802.3 標準定義了以太網的技術標準,它規定了包括物理層的連線、電子信號和介質訪問控制的內容。以太網是目前應用最普遍的局域網技術,取代了其他局域網標準如令牌環、FDDI 和 ARCNET。各種以太網類型參見博文 Network 之三 Ethernet(以太網)物理介質(10Base、100Base-T、100Base-TX等)介紹。

??IEEE 802 的相關標準主要規定了以太網數據鏈路層和物理層,且將數據鏈路層又分為了介質訪問控制 (MAC) 層 和邏輯鏈路控制 (LLC) 層 這兩層。其中,前者負責控制網絡中的設備如何獲得對介質的訪問權限和傳輸數據的權限,后者負責識別和封裝網絡層協議,并控制錯誤檢查和幀同步。

??以太網的雛型是施樂以太網(Xerox Ethernet),在 1982 年,Xerox 與 DEC 及 Intel 組成 DIX 聯盟,并共同發表了 Ethernet Version 2(EV2)的規格,并將它投入商場市場,且被普遍使用。后來,DIX 將其遞交到了 IEEE 802 工作組,1983 IEEE 802 工作組發布 IEEE 802.3 以太網標準,開始負責制定后續以太網標準。

??以太網幀有多種類型,Ethernet Version 2 和 IEEE 802.3 是目前最常見的以太網幀(Ethernet II 格式相對使用廣泛),其他如子網接入協議(SNAP)幀、Novell raw 802.3 幀等我們基本接觸不到。Ethernet Version 2(EV2)幀格式與 IEEE 802.3 幀格式有些不一樣,但是,一般認為他們是兼容的,并且可以同時出現在以太網鏈路上。

Ethernet Version 2

??1982 年,DIX 聯盟發表了 Ethernet Version 2(EV2)。以太幀起始部分由前同步碼和幀開始定界符組成,后面緊跟著一個以太網報頭,以 MAC 地址說明目的地址和源地址。以太幀的中部是該幀負載的包含其他協議報頭的數據包。以太幀由一個 32 位冗余校驗碼結尾,用于檢驗數據傳輸是否出現損壞。

  • 前導碼:同于幀同步
  • 目的 MAC:指定要將數據幀發送到哪個適配器,標識幀的接收者
  • 源 MAC:消息源自哪個適配器,標識幀的發送者
  • 類型:用于標識數據字段種包含的高層協議。由 IEEE 注冊機構分配,下圖是一些常見協議分配情況
  • 數據:網絡層數據。如果不足 46 字節時,會填充到最小長度。最大值也叫最大傳輸單元(MTU)。
  • FCS:循環冗余校驗碼。

??Ethernet Version 2 幀格式是目前使用最多的以太網幀,以太網幀的整體大小必須在 64~1518 字節之間(不包含前導碼)。有些系統支持更大的幀,最大可以支持 9000 字節。

  • MAC 地址的前三個字節由 IEEE 分配給適配器的供應商,并且特定于供應商。
  • 使用 Wireshark 抓包是抓不到前導碼和校驗和的,因為數據到達抓包驅動層時,前導碼和校驗和已經被過濾掉了
  • IEEE 802.3 幀

    ??IEEE 802.3 幀是在 Ethernet Version 2 幀基礎上制定出來的。在 IEEE 802.3 初期,IEEE 802.3 幀與 Ethernet Version 2 幀并不相同, IEEE 802.3 對其進行了擴展。然而隨著 Ethernet Version 2 的流行,后續的 IEEE 802.3 標準也在不斷改變,下面是最新的 IEEE 802.3-2018 標準中給出的幀格式:

    • 前導碼: IEEE 802.3 對原來 Ethernet Version 2 幀的前導碼進行了擴展
      • 前同步碼:7 字節固定數字 0xAA
      • 幀界定符:1 字節固定數字 0xAB
    • 目的 MAC:指定要將數據幀發送到哪個適配器,標識幀的接收者
    • 源 MAC:消息源自哪個適配器,標識幀的發送者
    • 長度/類型:IEEE 802 規定所有以太網類型的值都要大于十六進制 0x05DC,由于以太網中的最大幀大小為 1518 字節,因此以太網類型和長度之間沒有重疊的意義。如果源地址后面的字段大于 0x05DC,則該幀為 Ethernet Version 2,否則為 IEEE 802.3。這里的類型就是 Ethernet Version 2 中的類型,由 IEEE 注冊機構分配。
    • 數據:上層協議數據或者填充到最小 46 字節
    • FCS:循環冗余校驗碼

    IEEE 802.3 規定發送幀的時候,每個字節的低位在前高位在后

    ??從上面的幀格式可以看出,最新的 IEEE 802.3 幀與 Ethernet Version 2 基本是一致的。但是早期的 IEEE 802.3 幀格式分為 IEEE 802.3/802.2 LLC 和 IEEE 802.3/802.2 SNAP 這兩種,但實際并沒有流行開來。大部分 TCP/IP 協議棧也沒有實現 IEEE 802.2 所定義的 LLC 層,而且部分標準已經不再維護及更新了(IEEE 相應的工作組已經解散)。

    IEEE 802.3/802.2 LLC

    ??這是 IEEE 802.3 發布初期定義的 802.3 以太幀,它由 Ethernet V2 發展而來。它將 Ethernet V2 幀頭的協議類型字段替換為幀長度字段(取值為 0x0000 ~ 0x05DC),并加入 802.2 LLC 頭用以標志上層協議。

    • DSAP Destination Service Access Point,目標服務接入點
    • SSAP Source Service Access Point 來源服務接入點
    • Control 控制字段,8 或16bits。為了便于區分,有三種 LLC PDU 控制字段,分別叫做 U,I,S 幀。
      • U(Unnumbered)幀,8 位的控制字段,特別用于無連接的應用
      • I(Information)幀,16 位的控制和幀編號字段,用于面向連接的應用
      • S(Supervisory)幀,16 位的控制字段,用于在 LLC 層中進行管理監督。

    在這三種格式中,只有 U 幀在廣泛使用。用第一個字節的最后兩位來區分這三種 PDU 幀格式。

    IEEE 802.3/802.2 SNAP

    這是 IEEE 為保證在 802.2 LLC 上支持更多的上層協議同時更好的支持 IP 協議而發布的標準。

    Novell raw 802.3

    ??這是 1983 年 Novell 發布其劃時代的 Netware/86 網絡套件時采用的私有以太網幀格式,該格式以當時尚未正式發布的802.3標準為基礎;但是當兩年以后 IEEE 正式發布 802.3 標準時,IEEE 在 802.3 幀頭中又加入了 802.2 LLC(Logical Link Control)頭,這使得Novell 的 RAW 802.3 格式跟正式的 IEEE 802.3 標準互不兼容。

    IP

    ??網際協議(Internet Protocol,IP),又稱互聯網協議,是用于分組交換數據網絡的協議。IP 是 TCP/IP 協議族中網絡層的最主要協議之一,任務是根據源主機和目的主機的地址來傳送數據。

    ??IP 是一種無連接協議,它以盡力而為的交付模式運行,因為它不保證交付,也不保證正確的順序或避免重復交付。這些方面(包括數據完整性)由上層傳輸協議(如傳輸控制協議 (TCP))解決。

    ??IP 的第一個主要版本是互聯網協議版本 4(IPv4),它的繼任者是互聯網協議版本 6(IPv6)。IPv4 使用地址解析協議(ARP)將 IP 地址解析成相應的數據鏈路地址(MAC 地址),而 IPv6 則采用鄰居發現協議(NDP)。目前仍然是廣泛使用的是 IPv4。

    • 版本: 標識正在使用的 IP 版本。當前版本為 4,此版本稱為 IPv4。

    • 頭長度(IHL): Internet Header Length (IHL)指示 IP 頭的長度,單位是 4 字節。這個字段的最小值是 5,最大十進制值是 15。

    • 服務類型/DS Field: 在 RFC 791 中被定義為服務類型,實際上并未使用。1998 年被 IETF 在 RFC 2474 中重定義為 Differentiated Services Field(DS Field)。

      • IP 優先級:用于標識數據包在網絡中收到的服務級別。
      • DSCP: 差分服務代碼點 (Differentiated Services Code Point,DSCP)用于標識數據包在網絡中接收的服務級別。
      • ECN:顯式擁塞通知(Explicit Congestion Notification,ECN)在 RFC 3168 中定義,允許在不丟棄報文的同時通知對方網絡擁塞的發生。

        ECN 是一種可選的功能,僅當兩端都支持并希望使用,且底層網絡支持時才被使用。

    • 總長度: IP 頭+ 數據的長度。因此該字段的最小值是 20(20 字節頭 + 0 字節數據),最大為 65535 字節。

    • 標識符: 用來唯一地標識一個報文的分片。因為分片不一定按序到達,所以在重組時需要知道分片所屬的報文。

    • 標志: 用于控制和識別分片。下面是它們可能的配置

      • Bit 0: 保留的,必須設置為零
      • Bit 1: 禁止分片(Don’t Fragment,DF),當 DF = 0 時才允許分片
      • Bit 2: 更多分片(More Fragment,MF),MF = 1 代表后面還有分片,MF = 0 代表已經是最后一個分片。
    • 片段偏移量: 指明了每個分片相對于原始報文開頭的偏移量,以 8 字節作單位。

    • 生存時間(TTL): 避免報文在互聯網中永遠存在。以秒為單位,小于一秒的時間均向上取整到一秒。實際使用中,TTL 最初設置為一個數字,并由通過的每個路由器遞減,當 TTL 達到 0 時,數據包將被丟棄。

    • 協議: 在分層協議模型中,用于指示該報文的數據區使用的協議。IANA 維護著一份協議列表(最初由 RFC 790 定義),詳細參見 IP協議號列表

    • 頭校驗和: 只對首部查錯,不包括數據部分。具體方法參見 RFC 1071。在計算時,先將校驗和字段置為 0,計算之后填實際值,下面是 Wireshark 的一個示例:

      ??TCP 報文中經常出現校驗和錯誤(其他報文貌似好一些),關于為何 Wireshark 抓取的 TCP 報文為何出現大量校驗和錯誤,參見 Wireshark 官網解釋。

    • 源 IP 地址: IPv4 地址,指出報文的發送端。

    • 目標 IP 地址: IPv4 地址,指出報文的接收端。

    • 選項和填充: 以 4 字節為單位,從1 到 40個字節不等,一般不用。如果選項值不是 4 的倍數,則填充 0 以確保 4 字節對齊。如果 IHL 大于 5,那么選項字段必然存在并必須被考慮。

    • 數據: 數據字段不是首部的一部分,因此并不被包含在首部檢驗和中。數據的格式在協議首部字段中被指明,并可以是任意的傳輸層協議

    TCP/UDP

    ??TCP 和 UDP 是 TCP/IP 協議中最具有代表性的傳輸層協議。其中,TCP 協議全稱是傳輸控制協議(Transmission Control Protocol)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由 IETF 的 RFC 793 定義;UDP 協議全稱是用戶數據報協議(User Datagram Protocol)是一種無連接的協議,由 IETF 的 RFC 768 定義。下面是兩個的簡單對比:

    類型TCPUDP
    服務類型TCP 是一種面向連接的協議。連接定向是指通信設備在傳輸數據之前要建立連接,在傳輸數據之后要關閉連接。UDP 是面向數據報的協議。它沒有打開連接、維護連接和終止連接的開銷。UDP 對于廣播和組播類型的網絡傳輸十分有效。
    可靠性可靠的,因為 TCP 保證將數據的傳輸到目標路由器。不可靠,因為 UDP 無法保證將數據傳送到目的地。
    錯誤檢查機制提供了廣泛的錯誤檢查機制。因為它提供了流控制和數據確認。UDP 只有使用校驗和的基本錯誤檢查機制。
    確認有確認無確認
    時序數據的排序是 TCP 的一個特性。數據包按順序到達接收器。在 UDP 中沒有數據排序。如果需要順序,則必須由應用層管理。
    速度比 UDP 慢比 TCP 更快、更簡單、更高效
    重發可以重傳丟失的數據包不能重發
    報頭長度20 - 60 字節的可變長度頭8 字節的固定長度頭
    量級重量級輕量級
    握手技術使用 SYN、ACK、SYN-ACK 等握手方式沒有握手
    廣播不支持支持
    協議用于 HTTP、HTTPs、FTP、SMTP 和 Telnet用于 DNS、DHCP、TFTP、SNMP、RIP、VoIP等協議
    流類型字節流消息流
    開銷低但高于 UDP非常低

    TCP

    • 源端口號: 標識發送端口

    • 目的端口號: 標識接收端口

    • 序列號: 主要有兩個作用

      • 如果 SYN 位被置 1,則此為最初的序列號。實際的第一個數據字節的序列號和相應的 ACK 中確認的序列號是這個序列號加上 1。
      • 如果 SYN 位被清 0,那么這是當前會話的這個段的第一個數據字節的累積序列號。
    • 確認號: 如果設置了 ACK 標志,那么該字段的值就是 ACK 發送方期望的下一個序列號。

    • 數據偏移: 以 4 字節為單位計算出的數據段開始地址的偏移量。TCP 頭的最小大小為 20 個字節,最大大小為 60 個字節,因此該值最小值為 5,最大值為 15。當該值大于 5 時,就需要在 選項 字段中添加內容。

    • 保留: 留將來使用,必須置 0

    • 標志符

      • NS: 顯式擁塞通知(Explicit Congestion Notification,ECN)是對 TCP 的擴展,定義于 RFC 3540(2003)。ECN 允許擁塞控制的端對端通知而避免丟包。ECN 為一項可選功能,如果底層網絡設施支持,則可能被啟用 ECN 的兩個端點使用。
      • CWR: Congestion Window Reduced,定義于 RFC 3168(2001)。
      • ECE: ECN-Echo 有兩種意思,取決于 SYN 標志的值,定義于 RFC 3168(2001)。
      • URG: 為 1 表示高優先級數據包,緊急指針字段有效。
      • ACK: 為 1 表示確認號字段有效
      • PSH: 為 1 表示是帶有 PUSH 標志的數據,指示接收方應該盡快將這個報文段交給應用層而不用等待緩沖區裝滿。
      • RST: 為 1 表示出現嚴重差錯??赡苄枰匦聞摻?TCP 連接。還可以用于拒絕非法的報文段和拒絕連接請求。
      • SYN: 為 1 表示這是連接請求或是連接接受請求,用于創建連接和使順序號同步
      • FIN: 為 1 表示發送方沒有數據要傳輸了,要求釋放連接。
    • 窗口大小: 接收窗口的大小,它指定了這個段的發送者目前愿意接收的窗口大小單位(默認是以字節為單位)的數量。

    • 校驗和: TCP 頭 + 數據 + IP 偽報頭計算的校驗和。IP 偽報頭由源 IP 地址、目的 IP 地址、TCP 協議的協議號組成。完整的計算內容如下所示:

      IP 偽報頭僅用于計算校驗和,不傳輸。偽頭中的 TCP 長度(字節為單位)不含偽頭本身。 下面在來看個實例:

      關于為何 Wireshark 抓取的 TCP 報文為何出現大量校驗和錯誤,參見 Wireshark 官網解釋。

    • 緊急指針: 如果設置了 URG 標志,那么該字段是表示最后一個緊急數據字節的序號的偏移量,否則,該字段固定為 0。

    • 選項: 以 4 字節為單位,最多 40 個字節。該字段的長度和數據偏移字段的值相關。該部分又由三個字段組成:

      • Option-Kind: 固定占 1 字節,表示選項的類型,該字段是必須的。根據 Option-Kind 值,后面兩個字段內容可變。Option-Kind 的分配由 IANA 維護。
      • Option-Length: 如果存在該字段,則固定占 1 字節,表示該選項的總長度(Option-Kind + Option-Length + Option-Data)。
      • Option-Data: 包含與該選項相關的數據(如果有數據的話),長度根據 Option-Kind 不同而變化。

      注意,這里其實是個列表,可以包含上面多個 Option-Kind + Option-Length + Option-Data 的組合。 如下圖是 Wireshark 抓取一個報文示例:

    • 填充: 如果 TCP 頭長度不是 32 對齊的,則需要在頭尾部用 0 進行填充。

    UDP

    • 源端口號: 標識發送者使用的端口號,如果(IPv4 和 IPv6 中)不使用,則應為零。
    • 目標端口號: 標識接收者使用的端口號,并且是必需的。
    • 報文長度: 指定 UDP 標頭和 UDP 數據的長度(以字節為單位)。最小長度為 8 個字節,即頭的長度。字段大小將 UDP 數據報的理論限制設置為 65535 字節(8 字節標頭 + 65527 字節數據)。但是,底層 IPv4 協議對數據長度的實際限制為 65507 字節(65535 字節 ? 8 字節 UDP 標頭 ? 20 字節 IP 標頭)。
    • 校驗和: 這里的校驗和是 UDP 頭 + 數據 + IP 偽報頭 計算的校驗和。該字段在 IPv4 中是可選的,在 IPv6 中是必需的。如果未使用,該字段將全為零。用于計算校驗和的方法在 RFC 768 中定義,而 RFC 1071 給出了一個更高效的計算方法。要計算的整個內容如下圖所示:
      IP 偽報頭僅用于計算校驗和,不傳輸。偽頭中的 UDP 長度(字節為單位)不含偽頭本身。 下面在看個示例:

    ARP

    ??地址解析協議 (ARP) 用于發現與給定的互聯網層地址(通常是 IPv4 地址)關聯的鏈路層地址(如 MAC 地址)。于 1982 年由 RFC 826 定義。IPv4 使用地址解析協議(ARP)將 IP 地址解析成相應的數據鏈路地址(MAC 地址),而 IPv6 則采用鄰居發現協議(NDP)。

    • 協議地址: 就是 IP 地址。
    • 目標硬件地址:在不知道目標硬件地址時,通常這里全部填寫 00,Ethernet II 幀中 MAC 為全 FF。

    ??在每臺安裝有 TCP/IP 協議的電腦或路由器里都有一個 ARP 緩存表,表里的 IP 地址與 MAC 地址是一對應的。當首次不知道目標硬件地址時,就需要發送 ARP 廣播(Ethernet II 幀中 MAC 為全 FF),所有設備都會收到有 ARP 廣播,但是只有符合條件(協議地址一致的)的設備就會進行應答:

    ??地址解析協議是一種請求-響應協議。ARP 請求是廣播的,ARP 回復是單播,且它在單個網絡的邊界內進行通信,從不跨互聯節點進行路由。下面是 Wireshark 抓取的 ARP 請求-響應幀:

    ICMP

    ??互聯網控制消息協議(Internet Control Message Protocol,ICMP)是互聯網協議族的核心協議之一。它用于網際協議(IP)中發送控制消息,提供可能發生在通信環境中的各種問題反饋。IPv4 中的 ICMP被稱作 ICMPv4(RFC 792),IPv6 中的 ICMP 則被稱作 ICMPv6(RFC 4443)。

    • 類型和代碼: 類型標識生成的錯誤報文,代碼進一步劃分 ICMP 的類型,用來查找產生錯誤的原因。類型及代碼的定義見下表(部分):
    • 校驗和: 用于進行錯誤檢查,該校驗和是從 ICMP 頭和以該字段替換為 0 的數據計算得出的。
    • 剩余部分: 以 4 字節為單位,理論值是 0 ~ 65507(IP 長度限制),但實際內容根據 ICMP 類型和代碼而有所不同。

    ??ICMP 主要被用于網絡設備之間(如兩臺路由器)進行消息傳遞,除了 traceroute 和 ping(其實就是 traceroute 的簡化版)之外,計算機用戶一般不會直接使用到該協議。

    ??在互聯網層上運行的 IP 協議是一種無連接協議。 因此,如果 IP 數據包傳輸失敗,則無法檢測到失敗,ICMP 就負責跟蹤 IP。ICMP 通常被認為是 IP 的一部分(分擔了 IP 糾錯功能),雖然與其他上層協議一樣,ICMP 消息也包含在標準 IP 數據包中,但 ICMP 消息通常作為特殊情況進行處理。

    Ping

    ??Ping 命令通過指定目標 IP 地址發送 Ping 請求,如果可以到達該目標,則向源返回 Ping 響應。它是 ICMP 的一個典型應用,使用就是 ICMP 的 Echo Request (Type 8) 和 Echo Reply (Type 0)。

    ??其中數據可以填充任意內容,一般都是 4 的整數倍。且 Reply 的內容與 Request 是一樣的。下面是 Windows 的 Ping 和 Ubuntu 的 Ping 對比情況:

    參考

  • https://en.wikipedia.org/wiki/Protocol_Wars
  • https://www.geeksforgeeks.org/differences-between-tcp-and-udp/
  • https://en.wikipedia.org/wiki/Internet_protocol_suite
  • https://codeburst.io/understanding-tcp-internals-step-by-step-for-software-engineers-system-designers-part-1-df0c10b86449
  • https://en.wikipedia.org/wiki/Ethernet_frame
  • https://www.cnblogs.com/feitian629/archive/2012/11/16/2774065.html
  • https://www.cnblogs.com/smartjourneys/articles/8124490.html
  • https://www.ibm.com/support/pages/ethernet-version-2-versus-ieee-8023-ethernet
  • https://www.cnblogs.com/smartjourneys/articles/8124490.html
  • https://www.cnblogs.com/qishui/p/5437301.html
  • https://en.wikipedia.org/wiki/EtherType
  • https://zh.wikipedia.org/wiki/IPv4
  • https://www.techtarget.com/searchnetworking/tutorial/Routing-First-Step-IP-header-format
  • https://en.wikipedia.org/wiki/Transmission_Control_Protocol
  • https://www.tspweb.com/key/%E4%BA%92%E8%81%94%E7%BD%91%E5%8D%8F%E8%AE%AE%E5%9C%B0%E5%9D%80%E5%AE%9A%E4%BD%8D.html
  • https://www.practicalnetworking.net/series/arp/traditional-arp/
  • https://fasionchan.com/network/icmp/icmp/
  • https://blog.51cto.com/ccieh3c/4886604
  • 總結

    以上是生活随笔為你收集整理的Network 之五 TCP/IP 协议族、工作流程、常用协议格式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。