ping(未完待補充)

JoJo~發表於2020-12-12

ping是程式,有程式;包頭部的ID代表了程式

ICMP Echo Request:

  • Type:8
  • Code:0
  • Header Checksum:
  • Identifier:代表程式ID,ID相同代表一個程式
  • Sequence Number:該程式包的序列號
  • Payload:
    • Unix/Cisco的payload裡面放了時間有關的資料,可以計算出時間差
    • 微軟的payload裡面是填充,無實際意義;微軟的時間差是程式自己記錄的

 

ICMP Echo Reply:

  • Type:0
  • Code:0
  • Header Checksum:
  • Identifier:代表程式ID,ID相同代表一個程式
  • Sequence Number:該程式包的序列號,如果有的話,和Request值一樣
  • Payload:

 

PAT與ping

  • PAT:埠地址轉換,意思就是有埠才轉換,沒埠無法轉換
  • 每一個會話佔用一個埠號
  • ICMP沒有埠號,所以ICMP要解決過PAT的問題
    • Cisco曾(12.3版本前)把序列號當作埠號,這樣的後果是:ping10000個包就是10000個序列號,要轉換10000個埠號
    • 後來改進為用ID做轉換

一個地址理論上可以同時處理的會話個數:

  • tcp65535-1023
  • udp65535-1023
  • ping65535-1023

IP可選項與ping(IP協議見https://isjojo.blog.csdn.net/article/details/110413713,可選項在倒數第二行字有提到

  1. IP記錄路徑選項:記錄所有的出介面
    1. 大多數不同版本的ping程式都提供-R選項,以提供記錄路由的功能(debug ip icmp ,ping 回車 R Record)
    2. 過程以及作用:
      1. 源主機生成RR(路徑記錄)選項
      2. 中間路由器對RR選項進行處理,中間路由器會把出介面的IP地址放到路徑記錄選項裡面
      3. 目的裝置會回顯請求,回來的過程中也會記錄出介面
      4. 收到回顯請求:一路上去與回的出介面都會被記錄列印
    3. 缺點:IP頭部可選項最多40位元組,去除IP選項的欄位(3位元組),最多可以放9個IP地址(去與回一共),所以大型網路要用trace route
    4. IP選項3位元組結構:
      1. code1位元組:對於RR來說,值為7
      2. len1位元組:RR選項總位元組長度,39,先佔滿整個空間
      3. ptr1位元組:指標位,指下一個IP存放的位置
  2. IP源站路由(有安全隱患,Cisco路由器天生支援)
    1. 作用:IP包在穿越網路時,除特殊情況,源目IP地址是不變的;源站路由的包逐跳改變目的IP地址
    2. 嚴格的源路由選擇:目的地必須和上臺路由器直連
      1. code值:0x89
    3. 寬鬆的源站選路:下一跳可以不直連
      1. code值:0x83
    4. 安全隱患:嚴格源站路由直接直連逐跳過來,不走路由表,不過策略;寬鬆源站路由可以先到邊界,然後再使用下一跳為內網地址入侵
    5. 又名:源站及記錄路由
      1. 以嚴格源站為例,#表示指標位置,下一次從指標位置讀,記錄出介面是為了回包,源站路由是雙向的
    6. 關閉命令:no ip source-route
    7. ICMP源站路由失敗差錯報文
      1. 型別:3
      2. 程式碼:5
      3. 失敗的可能:裝置不支援、嚴格源站指的是非直連
  3.  

相關文章