1. 程式人生 > >ping 原理與ICMP協議 && 安卓用tcpdump和wireshark抓網路包 && 安卓用Fiddler進行網路抓包

ping 原理與ICMP協議 && 安卓用tcpdump和wireshark抓網路包 && 安卓用Fiddler進行網路抓包

(1)ping 的原理
      ping 程式是用來探測主機到主機之間是否可通訊,如果不能ping到某臺主機,表明不能和這臺主機建立連線。ping 使用的是ICMP協議,它傳送icmp回送請求訊息給目的主機。ICMP協議規定:目的主機必須返回ICMP回送應答訊息給源主機。如果源主機在一定時間內收到應答,則認為主機可達。ICMP協議通過IP協議傳送的,IP協議是一種無連線的,不可靠的資料包協議。

(2)Ping工作過程
      假定主機A的IP地址是192.168.1.1,主機B的IP地址是192.168.1.2,都在同一子網內,則當你在主機A上執行“Ping 192.168.1.2”後,都發生了些什麼呢?

      首先,Ping命令會構建一個固定格式的ICMP請求資料包,然後由ICMP協議將這個資料包連同地址“192.168.1.2”一起交給IP層協議,IP層協議將以地址“192.168.1.2”作為目的地址,本機IP地址作為源地址,加上一些其他的控制資訊,構建一個IP資料包,並在一個對映表中查找出IP地址192.168.1.2所對應的實體地址(也叫MAC地址,熟悉網絡卡配置的朋友不會陌生,這是資料鏈路層協議構建資料鏈路層的傳輸單元——幀所必需的),一併交給資料鏈路層。後者構建一個數據幀,目的地址是IP層傳過來的實體地址,源地址則是本機的實體地址,還要附加上一些控制資訊,依據乙太網的介質訪問規則,將它們傳送出去。
      其中對映表由ARP實現。ARP(Address Resolution Protocol)是地址解析協議,是一種將IP地址轉化成實體地址的協議。ARP具體說來就是將網路層(IP層,也就是相當於OSI的第三層)地址解析為資料連線層(MAC層,也就是相當於OSI的第二層)的MAC地址。
      主機B收到這個資料幀後,先檢查它的目的地址,並和本機的實體地址對比,如符合,則接收;否則丟棄。接收後檢查該資料幀,將IP資料包從幀中提取出來,交給本機的IP層協議。同樣,IP層檢查後,將有用的資訊提取後交給ICMP協議,後者處理後,馬上構建一個ICMP應答包,傳送給主機A,其過程和主機A傳送ICMP請求包到主機B一模一樣。即先由IP地址,在網路層傳輸,然後再根據mac地址由資料鏈路層傳送到目的主機。

(3)IMCP協議介紹
      前面講到了,IP協議並不是一個可靠的協議,它不保證資料被送達,那麼自然的,保證資料送達的工作應該由其他的模組來完成。其中一個重要的模組就是ICMP(網路控制報文)協議。

      當傳送IP資料包發生錯誤,比如主機不可達、路由不可達等等,ICMP協議將會把錯誤資訊封包,然後傳送回來給主機。這樣給主機一個處理錯誤的機會,這也就是為什麼說建立在IP層以上的協議是可能做到安全的原因。ICMP資料包由8bit的錯誤型別和8bit的程式碼和16bit的校驗和組成。而前16bit就組成了ICMP所要傳遞的資訊。

      儘管在大多數情況下,錯誤的包傳送應該給出ICMP報文,但是在特殊情況下,是不產生ICMP錯誤報文的。如下:

A,ICMP差錯報文不會產生ICMP差錯報文(防止IMCP的無限產生和傳送)
B,源地址不是單個主機的資料報。這就是說,源地址不能為零地址、環回地址、廣播地 址或多播地址。 
     ICMP協議大致分為兩類,一種是查詢報文,一種是差錯報文。其中查詢報文有以下幾種用途:

A,ping查詢
B,子網掩碼查詢(用於無盤工作站在初始化自身的時候初始化子網掩碼)
C,時間戳查詢(可以用來同步時間)
      而差錯報文則產生在資料傳送發生錯誤的時候,就不贅述了。

==========================================================================================

       主要介紹如何利用tcpdump抓取andorid手機上網路資料請求,利用Wireshark可以清晰的檢視到網路請求的各個過程包括三次握手。

(1)下載並安裝tcpdump,下載地址https://raw.githubusercontent.com/Trinea/trinea-download/master/tcpdump,然後安裝,前提是root機型。

adb push "C:\Users\zhangcheng\Desktop\tcpdump" /system/bin
(2)啟動並執行tcpdump

[email protected]:/system/bin # tcpdump -n -s 0。這時在手機上做任何涉及到網路的操作都會在螢幕上打印出來,可以通過ctrl+c停止。

istening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:59:23.860653 IP 192.168.1.100.49417 > 239.255.255.250.1900: UDP, length 123
14:59:25.496472 IP 192.168.1.104.43056 > 216.58.221.100.443: . ack 59201845 win 29200
14:59:26.833782 IP 192.168.1.100.49417 > 239.255.255.250.1900: UDP, length 125
14:59:26.834769 IP 192.168.1.100.49417 > 239.255.255.250.1900: UDP, length 123
14:59:28.719620 IP 211.162.127.93.80 > 192.168.1.104.55841: F 1444768075:1444768075(0) ack 839979193 win 123

由於命令列最大輸出的限制及螢幕不斷滾動,檢視不方便,我們可以將抓取的網路包儲存到sd卡,如下命令:
[email protected]:/system/bin # tcpdump -i any -p -s 0 -w /sdcard/netCapture.pcap,操作完畢後,將netCapture.pcap拷貝到PC上用wireshark分析。
(3)利用wireshark分析包資料

用wireshark開啟netCapture.pcap即可分析log。分析過程參見http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html,核心部分是


以及TCP三次握手的解析過程。

===========================================================================================================

       主要介紹Android及IPhone手機上如何進行網路資料抓包,比如我們想抓某個應用(微博、微信、墨跡天氣)的網路通訊請求就可以利用這個方法。
       Fiddler是強大且好用的Web除錯工具之一,它能記錄客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,Fiddler包含了一個強大的基於事件指令碼的子系統,並且能使用.net語言進行擴充套件,在web開發和調優中經常配合firebug使用。
       Fiddler的執行機制其實就是本機上監聽8888埠的HTTP代理。 對於PC端Fiddler啟動的時候預設IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設定的,所以如果需要監聽PC端Chrome網路請求,將其代理改為127.0.0.1:8888就可以監聽資料了,手機端按照下面的設定即可完成整個系統的http代理。

停止網路監控的話去掉wifi的代理設定即可,否則Fiddler退出後手機就上不網了哦。 如果需要恢復手機無密碼狀態,Android端之後可以通過系統設定-安全-受信任的憑據-使用者,點選證書進行刪除或清除憑據刪除所有使用者證書,再設定密碼為無。

相關推薦

ping 原理ICMP協議 && tcpdumpwireshark網路 && Fiddler進行網路

(1)ping 的原理       ping 程式是用來探測主機到主機之間是否可通訊,如果不能ping到某臺主機,表明不能和這臺主機建立連線。ping 使用的是ICMP協議,它傳送icmp回送請求訊息給目的主機。ICMP協議規定:目的主機必須返回ICMP回送應答訊息給源主機

轉載 STM32簡單資料傳輸方法通訊協議(適合串列埠一般匯流排)

版權宣告:謝謝你那麼厲害還看了我的文章,歡迎轉載交流學習~    https://blog.csdn.net/kilotwo/article/details/79307090 引言 在一般的專案開發過程中,往往需要兩塊或以上微控制器進行通訊完成資料傳輸,例如四旋翼無人機

NLP漢語自然語言處理原理實踐 5 詞性、語塊命名實體識別

        NLP中很多問題要求解的輸出標籤不是相互獨立的,而是時間或結構上相互依存的結構化標籤。這種結構包括序列、樹狀或更普通意義上的圖結構。而對於中文分詞、詞性標註、組塊標註、淺層語法分析等任務,標記和切分觀察序列都是序列結構的。解決詞類方法最常用的模型也是概率圖模

[模擬登陸三劍客]1. Fiddler怎麼?--使用Fiddler 進行網路

[模擬登陸三劍客]1. Fiddler怎麼用?–使用Fiddler 進行網路抓包 目的 模擬登陸三劍客之“Fiddler安裝和抓包”。認識fiddler,使用fiddler進行簡單抓包。簡單上手,大家用兩次就熟悉了。 工具 Win7 32/64 位,

tcpdumpethereal捕獲IPv6資料

tcpdump和ethereal都是著名的開源網路資料包捕獲和分析軟體,大家對肯定都曾經用過,其中Ethereal是通過capture filter設定捕獲規則,display filter設定顯示規則,捕獲規則和顯示規則的語法是不同的,其中捕獲規則語法類似tcpdump的規

C#.架構設計(三)MVVM架構模式(在WPF或Silverlight)、MVC架構模式(在java開發)、MVP架構模式(開發)的原理區別

轉發https://blog.csdn.net/victoryzn/article/details/78392128 本文將詳細闡述以下MVC、MVP、MVVM三種理念的定義及區別還有他們的適用場合。 MVC MVC模式最初生根於伺服器端的Web開發,後來漸漸能夠勝任客戶端Web開發,能

ICMP協議ping命令

ping命令是什麼協議? 維基百科介紹: ping是一種電腦網路工具,用來測試資料包能否通過IP協議到達特定主機。ping的運作原理是向目標主機傳出一個ICMP [email protected]要求資料包,並等待接收echo迴應資料包。程式會按時間和成功

ping原理以及ICMP

都在 發生 傳輸 傳播 ppr nim 同時 工作 con ping 的原理: ping 程序是用來探測主機到主機之間是否可通信,如果不能ping到某臺主機,表明不能和這臺主機建立連接。 ping 使用的是ICMP協議,它發送icmp回送請求消息給目的

[從Paxos到ZooKeeper][分布式一致性原理實踐]<二>一致性協議

邏輯 計算機 二階段提交 是否 組成 原子性 per 缺點 兩種 Overview 在<一>有介紹到,一個分布式系統的架構設計,往往會在系統的可用性和數據一致性之間進行反復的權衡,於是產生了一系列的一致性協議。 為解決分布式一致性問題,在長期的探索過程中,湧現

圖解ARP協議(二)ARP攻擊原理實踐

tcp/ip arp協議 網絡安全 局域網安全 一、ARP攻擊概述在上篇文章裏,我給大家普及了ARP協議的基本原理,包括ARP請求應答、數據包結構以及協議分層標準,今天我們繼續討論大家最感興趣的話題:ARP攻擊原理是什麽?通過ARP攻擊可以做什麽,賬號是否可以被竊取?有哪些常見的ARP滲透(攻

Linux服務器關閉/開啟ICMP協議(ping)

服務器 需要 inux ech g模式 linux服務 遇到 icm 我們 經常會遇到一些問題就是主機明明是在線的卻ping不通的,對方可能開啟了禁ping模式有時為安全問題著想,需要給我們的Linux服務器禁ping 關閉ICMP協議(禁ping) echo "

閱讀《大型網站技術架構:核心原理案例分析》第五、六、七章,結合《河北省重大技術需求征集系統》,列舉實例分析采的可用性可修改性戰術

定時 並不會 表現 做出 span class 硬件 進行 情況   網站的可用性描述網站可有效訪問的特性,網站的頁面能完整呈現在用戶面前,需要經過很多個環節,任何一個環節出了問題,都可能導致網站頁面不可訪問。可用性指標是網站架構設計的重要指標,對外是服務承諾,對內是考核指

20155219付穎 Exp3 免殺原理實踐

但是 遇到 有一個 執行文件 圖書館 是個 alt .cn 現在 1.基礎問題回答 (1)殺軟是如何檢測出惡意代碼的? 殺毒軟件有一個病毒的特征碼庫,通過識別惡意代碼的特征碼或者特征片段檢測惡意代碼 殺毒軟件通過動態檢測對象文件的行為來識別惡意代碼,如果他的行為在一定程度

TCP/IP協議原理介紹

因此 關註 數據量 fin end F5 編號 它的 巨人 一、什麽是TCP/IP? 顧名思義 TCP/IP(Transmission Control Protocol/Internet Protocol),傳輸控制協議/網際協議,TCP/IP是現代Internet的核心技

BASE64編碼原理Golang代碼調

lock 十進制數 打印 補齊 zab 常用 pre const sgu 一.概念簡介 Base64是一種基於64個可打印字符來表示二進制數據的表示方法。由於2^6=64,所以每6個比特為一個單元,對應某個可打印字符。3個字節有24個比特,對應於4個Base64單元,即3個

FIDO U2F應用開發(一)-原理協議

註冊 oss 特定 官方網站 圖1 images www 成功 tps 1. FIDO與U2F ??FIDO(Fast IDentity Online聯盟)是一個基於標準、可互操作的身份認證生態系統。??U2F(Universal 2nd Factor)是FIDO聯盟

什麽軟件可以在手機中打開CAD圖紙並進行查看?

ffffff 安裝 進行 deb 根據 能夠 size vpd 應用商店 用什麽安卓軟件可以在手機中打開CAD圖紙並進行查看?現在隨著科技的不斷發展,CAD看圖不僅僅能在電腦中進行下載使用,還可以在手機中,而且還支持多種版本的,有安卓版和蘋果版的,今天小編就來和大家分享一下

區塊鏈100講:HTTPS協議原理及其HTTP協議的區別

1 HTTPS協議是什麼 https協議比http協議多了一個s,字面意思上s=secure(安全)。它跟http協議一樣都是應用層協議,都是工作在TCP協議之上。 只不過https協議在傳輸過程中的資料都是經過了加密。本質上HTTPS協議就是在TCP協議之上又加了一層SS

《從 PAXOS 到 ZOOKEEPER:分散式一致性原理實踐》讀書筆記[1]——一致性協議

1 分散式 1.1 定義 分散式系統是一個硬體或軟體元件分佈在不同的網路計算機上,彼此之間僅僅通過訊息傳遞進行通訊和協調的系統 1.2 特點 分佈性、對等性、併發性、缺乏全域性時鐘、故障總是會發生 2 CAP 和 BASE 2.1 CAP CAP 理論:一個分散式系統不可

BGP協議原理配置

一,BGP協議原理與配置 邊界閘道器協議( Border Gateway Protocol,BGP)是個複雜而又龐大的距離向量動態路由協議, 裡面涉及許多非常複雜的配置。當然它的功能也非常強大,主要用於網際網路AS之間的互連,BGP 最主要的功能在於控制路由的傳播和選擇最優的路由。目前移動、