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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

协议簇:ICMP 解析

發布時間:2024/7/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 协议簇:ICMP 解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

ICMP 是 Internet Control Message Protocol 的簡寫. 它主要用來調試網絡通信環境中存在的問題.

比如,當 IP 數據包總是無法正常的發送到目的地址, 當網關沒有足夠的 buffer 來轉發對應的數據包 等問題.

值得一提的是,它屬于網絡層,不屬于傳輸層. 也就是說它和 IP 協議處于同一層次,而并不是與 TCP/UDP 處于同一層次.

消息格式

ICMP 協議使用 IP 協議頭來傳輸數據. 具體的數據就是 ICMP 規定的一些數據包,我們接下來一一介紹…

因為 ICMP 格式與 IP 相同,這里我們簡單介紹以下各個字段. 詳細請參考 協議簇: IPv4 詳解

幾個需要特別注意的字段,及其值:

  • Version: 4
  • Type of Service: 0
  • Protocol: ICMP = 1
  • 接下來,我們來看看常見的 ICMP 報文實例

    Destionation Unreachable Message


    各字段的意義及其值:

  • Type:3
  • Code:
    0 = net unreachable
    1 = host unreachable
    2 = protocol unreachable
    3 = port unreachable
    4 = fragmentation needed and DF set
    5 = source route failed
  • Checksum: 檢查和
  • Internet Header + 64 bits of Data Datagram: 該字段存放原始的 ICMP 請求,以便將當前這個 ICMP 報文與請求報文對應起來.
  • 描述

  • 當根據網關的漏油表推斷出該網絡地址不可達,網關有可能會返回此ICMP消息。
  • 目的端收到 IP 數據包,但是無法正常將該數據包傳送到對應端口(該端口有可能沒有啟用), 目的端有可能會返回此 ICMP 消息
  • 當數據包必須被分片才能正常的發送到目的端,當時當前數據包卻設置了 Don’t Fragment 標記,此時網關有可能會返回此 ICMP 消息
  • 實例

    筆者在自己機器上使用 ping 192.168.1.44 命令得到了 Destination unreachable 消息的包,這里我們來分析以下

  • 首先注意最上面的 IP 協議數據內容, Protocol 字段值是 1,表明當前數據包是一個 ICMP 消息。 目的地址和源地址相同,說明從我本地的路由表中解析不到 192.168.1.44 這個地址。
  • 接下來是一個 ICMP 消息。 該消息作為 IP 協議的 Data 字段搭載在 IP 協議數據包上.
  • ICMP 消息的 type 是 3, 正是 Destionation Unreachable Message
  • Code 是 1, 表明主機不可達
  • Internet Header + 64 bits of Data Datagram 字段中包含了我們發送的 ICMP 請求的 IP 數據包. 由這個 IP 包的源地址和目的地址得知,我本地是 192.168.1.35, 我 ping 了主機 192.168.1.44. 至于這個 ICMP 請求,我們先不分析,后邊我們專門來分析.
  • Time Exceeded Message

    它的包格式與 Destionation Unreachable Message 相同,這里不再贅述.

    各字段的意義及其值:

  • Type:11
  • Code:
    0 = time to live exceeded in transit
    1 = fragment reassembly time exceeded
  • 描述

  • IP 協議規定當某個數據包在傳輸過程中 TimeToLive 字段的值減少到 0, 那個這個數據包應該被丟棄. 于此同時,丟棄數據包的網關有可能會給源主機發送此 ICMP 消息來通知該數據包被丟棄.
  • 當目的端收到分片的數據包后,但是由于部分分片丟失而無法在指定時間內完成數據包重組,那么該數據包會被丟棄, 丟棄數據包的網關有可能會給源主機發送此 ICMP 消息來通知該數據包被丟棄.
  • 實例

    筆者使用 ping -i 2 baidu.com 命令抓取到了此類型的 ICMP 數據包,這里我們省略掉于前文重復的部分,直接貼出 ICMP 包相關的信息

  • 這里注意,IP 頭中 Time to live 字段的值是 1,而不是 0. 猜測是因為在處理該數據包的中間節點發現它并不是該數據包的目的地址,而此時 time to live 已經是 1,自己處理完之后再將該值減少 1 之后,該數據包的 time to live 就是 0,因此,該節點給我們發送了 time exceeded message.
  • Parameter Problem Message


    各字段的意義及其值:

  • Type:12
  • Code:
    0 = pointer indicates the error
  • Pointer: 當 code == 0, 這個字段指明出錯的字節位置.
  • 描述

    當網關或者目標主機無法根據 IP 頭正確的解析此數據包時,就會丟棄該數據包并發送此 ICMP 報文.

    這個問題的可能原因是 錯誤的使用 Option.

    Source Quench Message

    它的包格式與 Destionation Unreachable Message 相同,這里不再贅述.

    各字段的意義及其值:

  • Type:4
  • Code: 0
  • 描述

    當網管或者目標主機沒有足夠的 buffer 來處理對應的數據包時,就會丟棄數據包并發送此 ICMP 報文

    Redirect Message


    各字段的意義及其值:

  • Type:5
  • Code:
    0 = Redirect datagrams for the Network
    1 = Redirect datagrams for the Host
    2 = Redirect datagrams for the Type of Service and Network
    3 = Redirect datagrams for the Type of Service and Host
  • Gateway Internet Address: 該字段指明發送給當前目的主機的數據包都應該被發送給 Gateway Internet Address 所指定的網關
  • 描述

    這種 ICMP 消息在如下情況下會被發送:
    假定網關 G1 從一個相連的主機或網關收到一個數據包,G1 檢查自己的路由表找到該數據包應該被轉發給網關 G2,再由 G2 繼續轉發,直到該數據包到達主機 X. 但是如果 G2 和 該數據包的源地址處于同一個網絡,那么此時 G1 會發送此 ICMP 消息來建議源主機將發送給 X 的數據包都直接發送給 G2,這樣路由長度最短,數據發送速度更快.

    Echo or Echo Reply Message


    各字段的意義及其值:

  • Type:
    8 = Echo Message
    0 = Echo Reply Message
  • Code: 0
  • Identifier 和 sequence number: 當 code = 0 時, 使用 Identifier 和 sequence number 來幫助將 Echo Message 和 Echo Reply Mesage 對應起來
  • 描述

    正如我們前面已經看到,我們在收到一個 ICMP 響應時,響應的 ICMP 數據包中都會包含對應 Echo Message.

    實例

    下面展示一個 Echo Message 的結構

    下面時對應的 Echo Reply Message 的結構

    值得注意的時: Echo Message 和 Echo Reply Message 中的 identifier 和 sequence number 字段時相同的. 這樣我們就得知 這兩個數據包時互相對應關系.

    而我們收到了 Echo Reply Message,也就證明我們到對應的目的主機的鏈路是工作的.

    Timestamp or Timestamp Reply Message


    各字段的意義及其值:

  • Type:
    13 = Timestamp Message
    14 = Timestamp Reply Message
  • Code: 0
  • Identifier 和 sequence number: 同 Echo Message 和 Echo Reply Message.
  • Originate Timestamp:發送方發送最后一次修改這個數據包的 timestamp
  • Receive Timestamp: 接收方接收這個數據包的 timestamp
  • Transmit Timestamp: 接收方最后一次修改這個數據包的 timestamp
  • Information Request or Information Reply Message

    各字段的意義及其值:

  • Type:
    15 = Information Request Message
    16 = Information Reply Message
  • Code: 0
  • Identifier 和 sequence number: 同 Echo Message 和 Echo Reply Message.
  • 描述

    這個數據包發送時不填寫目的地址字段,接收方在 reply message 中填寫自己的地址信息.

    使用這個數據包可以用來發現當前網絡中所有的主機地址信息.

    END!

    總結

    以上是生活随笔為你收集整理的协议簇:ICMP 解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 99国产在线播放 | 国产精品呻吟久久 | 美女扒开尿口让男人捅爽 | 国内自拍真实伦在线观看 | 成人毛片观看 | 色综合狠狠爱 | 97人妻精品一区二区三区免 | 久久久久人妻精品色欧美 | 成人午夜免费福利 | 极品熟妇大蝴蝶20p 国产偷自拍视频 | 插入综合网 | 2017天天干 | 日韩性生活大片 | 成年人在线免费看 | a√在线 | 女人扒开腿让男人桶爽 | www.4hu95.com四虎| 天堂久久久久 | 久久久久久久国产精品美女 | 色吧av色av | 欧美日韩成人免费 | 国产欧美一区二区三区国产幕精品 | 97人妻人人澡人人爽人人精品 | 国产一区二区黑人欧美xxxx | 色婷婷av一区二区三区gif | 黄色av网站免费在线观看 | 欧洲精品无码一区二区 | 欧美美女一区 | 久草福利资源在线 | 少妇一级淫片免费放 | 涩漫天堂 | 又粗又大又硬又长又爽 | 亚洲福利在线观看 | 精品孕妇一区二区三区 | 欧美男同又粗又长又大 | 少妇高潮迭起 | 疯狂做爰的爽文多肉小说王爷 | 秋霞网一区二区三区 | 无码一区二区三区在线观看 | 免费一级特黄特色毛片久久看 | 日韩免费高清视频网站 | 中国少妇毛片 | 蜜桃视频一区二区在线观看 | 美女mm131爽爽爽免费动视频 | 日韩免费高清视频 | 日本一区二区三区欧美 | 免费一级片网站 | 性感美女一区二区三区 | 色妞干网| 奇米影视奇米色 | 亚洲国产精品成人 | 美女脱了裤子让男人捅 | 奇米精品一区二区三区四区 | 一本色道久久综合亚洲精品小说 | 越南黄色一级片 | 亚洲国产www| 亚洲女人初尝黑人巨大 | 日韩成人动漫在线观看 | 日韩首页 | 成人激情电影在线观看 | 午夜精品福利电影 | 国产人妻精品一区二区三区 | 日韩伦理av | 亚洲特级片 | 久久影片 | 神秘电影永久入口 | 欧美一级淫片免费视频魅影视频 | 成人性视频免费网站 | 激情小视频在线观看 | 蜜桃视频成人 | 动漫大乳美女 | 伊人久久大香线蕉av色婷婷色 | 四虎www| 色综合天天综合网天天看片 | 欧美性猛交99久久久久99按摩 | 亚洲女同志亚洲女同女播放 | 亚洲精品乱码久久久久久久 | 老色批永久免费网站www | 男人操女人的免费视频 | 天干夜夜爽爽日日日日 | 成熟了的熟妇毛茸茸 | 亚洲综合精品国产一区二区三区 | 午夜亚洲av永久无码精品 | av集中营 | 亚洲丁香 | 性一交一乱一色一免费无遮挡 | 亚洲午夜久久久 | 福利片在线观看 | 用舌头去添高潮无码视频 | 亚洲视频网站在线 | 激情av在线播放 | 欧美激情aaa | 污污视频在线 | 亚洲人网 | av免费播放网站 | 3p在线播放 | 久久久亚洲一区 | 婷婷五月在线视频 | 丰满人妻一区二区三区在线 |