A. 怎樣用wireshark捕獲和ppp協議報文
PPP協議(Point-to-Point Protocol)提供了在串列點對點鏈路上傳輸數據報的方法,支持非同步8位數據及位導向的同步連接(如ISDN)。它提供了一種管理兩點間會話的有效方法,正在取代SLIP(Serial Line Interface Protocol)協議成為點對點網路的標准。 嵌入式單片機PPP協議是在單片機中嵌入PPP協議,以實現單片機與計算機之間的PPP數據傳輸,使它既可以作為PPP連接的客戶端,也可以作為獨立的PPP伺服器端來使用。它在家電控制和小型數據傳輸系統中具有非常廣闊的應用前景,並且具有成本低、傳輸穩定等特點,是當前單片機研究的熱門話題之一。 1 PPP的工作原理 PPP採用高級數據鏈路控制(HDLC)協議作為在對點鏈路上分裝數據報的基本方法。使用可擴展的鏈路控制協議(LCP)來建立、配置和測試數據鏈路。用網路控制協議簇(NCP)來建立和配置不同的網路層協議,PPP允許同時採用多種網路層協議。 為基裂了建立點對點鏈路上的通信連接,發送端PPP首先發送LCP幀,以配置和測試數據鏈路。在LCP建立好數據鏈路並協調好所選設備後,發送端PPP發送NCP幀,以選仔模擇和配置一個或多個網路層協議。當所選的網路層協議配置好後,便可以將各網路層協議的數據包發送到念鋒緩數據鏈路上。配置好的鏈路將一直處於通信狀態...
B. TCPDUMP 抓包 怎麼查看 抓的包的內容
1、tcpmp檢測登錄linux系統輸啟前入tcpmp,如果找不到表示沒悉游有安裝。也可以睜旁銷用rpm查詢。
C. 計算機網路題,若通過數據包捕獲軟體採集到的一個IP數據報首部(用16進製表示)為:45 00 00
根據IP報文頭部格式可知第九個16進制數是TTL欄位,也就是3B=59,TTL每過一個路由器就減少一,初始值為68,所以68-59=9跳
D. UDP是什麼它有什麼用
UDP是User Datagram Protocol的簡稱,中文名是用戶數據報協議,是OSI參考模型中的傳輸層協議,它是一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。
UDP的正式規范是IETF RFC768。UDP在IP報文的協議號是17。
在這里插入圖片描述
在OSI模型中,UDP在第四層——傳輸層,處於IP協議的上一層。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,也就是說,當報文發送之後,是無法得知其是否安全完整到達的。UDP用來支持那些需要在計算機之間傳輸數據的網路應用。包括網路視頻會議系統在內的眾多的客戶/伺服器模式的網路應用都需要使用UDP協議。UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網路傳輸層協議。
與所熟知的 TCP(傳輸控制協議)協議一樣,UDP 協議直接位於 IP(網際協議)協議
的頂層。根據 OSI(開放系統互連)參考模型,UDP 和 TCP 都屬於傳輸層協議。 UDP 協議
的主要作用是將網路數據流量壓縮成數據包的形式。一個典型的數據包就是一個二進制數據
的傳輸單位。每一個數據包的前 8 個位元組用來包含報頭信息,剩餘位元組則用來包含具體的傳
輸數據。
UDP報頭
在這里插入圖片描述
UDP報頭包括4個欄位,每個欄位佔用2個位元組(即16個二進制位)。
在IP4v中,「來源連接埠」和「校驗和」是可選欄位(粉色背景標出)。
在IPv6中,只有來源連接埠是可選欄位。
UDP數據報格式有首部和數據兩個部分。首部很簡單,共8位元組。包括:
源埠(Source Port):2位元組,源埠號。
目的埠(Destination Port):2位元組,目的埠號。
長度(Length):2位元組,用於校驗UDP數據報的數據欄位和包含UDP數據報首部的「偽首部」。其校驗方法用IP分組首部中的首部校驗和。
偽首部,又稱為偽包頭(Pseudo Header):是指在TCP的分段或UDP的數據報格式中,在數據報首部前面增加源IP地址、目的IP地址、IP分組和協議欄位、TCP或UDP數據報的總長度等共12位元組,所構成的擴展首部結構。此偽首部是一個臨時的結構,它既不向上也不向下傳遞,僅僅只是為了保證可以校驗套接字的正確性。
在這里插入圖片描述
TCP和UDP區別
特徵點 TCP UDP
傳輸可靠性 面向連接 面向非連接
應用場景 傳輸數據量大 傳輸量小
速度 慢 快
TCP(傳輸控制協議)提供的是面向連接、可靠的位元組流服務。當客戶端和伺服器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之後才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
UDP(用戶數據協議)是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP咋傳輸數據前不用在客戶和伺服器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。
由於UDP缺乏擁塞控制(congestion control),需要基於網路的機制來減少因失控和高速UDP流量負荷而導致的擁塞崩潰效應。換句話說,因為UDP發送者不能夠檢測擁塞,所以像使用包隊列和丟棄技術的路由器這樣的網路基本設備往往就成為降低UDP過大通信量的有效工具。數據報擁塞控制協議(DCCP)設計成通過在諸如流媒體類型的高速率UDP流中,增加主機擁塞控制,來減小這個潛在的問題。
UDP方式傳輸數據
發送時:先把數據放到報文,寫到緩沖區位元組數組再傳送。
接收時:從緩沖器數組讀取,打包到報文。
UDP的應用場景
在選擇使用協議的時候,選擇UDP必須要謹慎。由於缺乏可靠性且屬於非連接導向協議,UDP一般必須允許一定量的數據包丟失、出錯和復制粘貼。但有些應用,比如TFTP,需要可靠性保證,則必須在應用層增加根本的可靠機制。但是絕大多數UDP應用都不需要可靠機制,甚至可能因為引入可靠機制而降低性能。流媒體、即時多媒體游戲和IP電話(VoIP)就是典型的UDP應用。如果某個應用需要很高的可靠性,那麼可以用傳輸控制協議(及TCP協議)來代替UDP。
E. 交換機的區域網中,Sniffer能否監視其他主機的網路通訊
可以 抓獲同一區域網內 其他計算機主機的非點對點通訊的報文
可以通困哪或過報文分析 它的通信情況 也相當於是監視了
如果緩純要很直觀的圖形界面 或他電腦操作狀況 那就不得而知汪伍了
Sniffer是從最原始的計算機通訊數據來分析 的
希望我的回答能對你有所幫助
F. Wireshark 抓包理解 HTTPS 請求流程
目錄
我的操作是這樣的,讓手機和電腦在同一個區域網內(比如連接同一個 wifi),接著在手機的wifi上設置代理,電腦使用 Charles 做代理,IP 為電腦在區域網 IP,我這邊的環境,手機 IP 為 172.17.32.117,電腦 IP 為 172.17.32.19。再設置代理埠為 8888。設置代理後,接下來手機的請求都會通過電腦的網卡代理請求發送出去。
其實可以不用這么繞。我之所以多設了一個代理,是因為自己電腦創建的 wifi 熱點,手機接收不到。為了讓手機的包能經過電腦網路嗅探到才這么處理的。
最便捷的方式,就是電腦放個 wifi 熱點給手機連接完事。
創建後代理連接後,然後使用 Wireshark 嗅探網卡,比如我這里使用的是 etho0 網卡去訪問網路的。這時候玩玩手機,打開幾個請求,Wireshark 上面就會出現捕捉的大量的包旁慶祥,各種各樣的協議都有,有 ARP 尋人啟事(尋找 IP 對應的物理地址),有 TCP 連接包,有 HTTP 請求包。
這里我設置了一下過濾規則,把對網易的一個 https://nex.163.com 的一個的請求過濾出來如下:
整個完整的 HTTPS 請求的過程如下:
接下來把手機稱為 A(172.17.32.211),電腦稱為 B(172.17.32.19),對完整的過程進行簡要分析。
作為整個過程的第一個 TCP 包,這里對它做一個詳細的剖析,理解一下 TCP 報文的格式和內容。TCP 是傳輸層協議,負責可靠的數據通信,它在整個體系結構的位置如下:
作為傳輸層協議,主要為上層協議提供三個功能:
TCP 協議為 HTTP 和 SSL 協議提供了基礎的通信功能。所以 SSL 協議是基於 TCP 的。
三次握手的內容有:
對每個包進行詳細的分析:
A 發出一個帶 SYN 同步位的包,通知服務端要建立連接 。
第一次握手,發出的 TCP 包的數據和 Wireshark 解析的結果如下:
灰色部分就是 TCP 報文的數據內容,第一個兩個位元組 0x8c85 = 35973 表示源埠。
TCP 報文的格式如下,對應的如上圖的灰色部分。非灰色部分分別為 IP 首部和數據幀首部。
參考謝希仁版本的 《計算機網路》一書,對照著整個報文格式表,把整個 TCP 報文的二進制信息和相關意義做些說明:
到這里的話,TCP 數據報首部固定部分結束,固定部分一共有 20 位元組。也就是 TCP 首部,至少要有 20 位元組。
固定首部後,就是可長度可以變化的選項了:
整個所以 TCP 數據包的大小可以這樣表示:
我們 Wireshark 後面的運搏一長串的信息就指出了該 TCP 報文的一些主要信息:
從上面的分析可以看出,這個 SYN 包並沒有攜帶數據,但是按協議這里要消耗一個序號。
在發出 SYN 包後,A 端進入 SYN-SENT 狀態。
B 收到 SYN 包,發出 SYN + ACK 確認包 。
這個包,既是確認收到了第一差乎次握手的包,也是一個由 B 端發出的同步包,表示自己准備好了,可以開始傳數據了。
TCP 報文包相對於第一次握手的包可以窺見一些變化:
可以看到,這個包的應答時間戳剛好是第一次握手的發送時間戳。從這里也可以理解到,這個包就是在響應第一次握手的包
所以,接收方 A 可以利用這個值來計算這一次 RTT ,收到第二次握手的包後,計算當前時間戳減去該包的應答時間戳就是一個 RTT 的延時了。
這雖然是 ACK 包,但也是 SYN 包,所以也要消耗一個序號。
在發出這個包後,B 端進入 SYN-REVD 狀態。
A 收到後,再發出一個 ACK 確認包
發出的包如下:
這里我們產生一個疑問,這里發送端 A 發連接請求信息、接收端 B 發確認信息,又互相同步了序號,是不是已經可以傳輸數據了?但實際上 A 還要再發一個 ACK 確認報文,如圖所示,確認收到了 B 第二次握手發出的包,這個時候,在這個 ACK 包後 A 和 B 才正式進入 ESTABLISHED 狀態。這就是第三次握手。
這是為什麼呢?
假設我們用兩次握手,然後在第一次握手期間,A 發了第一次握手包後出現了這樣的場景:一直沒有得到響應而進行超時重傳,又發了一次包,然後我們稱上一次包為失效包。
然後我們可以看到:
所以,只有接收端 B 在發送端 A 發出了第三次握手包後,才認為連接已經建立,開始等待發送端 A 發送的數據,才不會因為失效的連接請求報文導致接收端異常。
TCP 三次握手的時序圖如下:
三次握手,有幾個重要的任務,一個是 同步序號 ,接收端和發送端都發出同步包來通知對方初始序號,這樣子後面接收的包就可以根據序號來保證可靠傳輸;另一個是讓發送端和接收都 做好准備 。然後就開始傳數據了。
整個過程都發生在 HTTP 報文發出之前。HTTP 協議就是依靠著 TCP 協議來做傳輸的管理。TCP 可以認為是它的管家,管理著傳輸的大大小小的事務,比如要不要保證包順序一致?什麼時候發包?要不要收包?TCP 是很嚴格的。
三次握手在 Java API 層面,對應的就是 Socket 的連接的創建(最終調用的是 native 層的 socket 創建):
這里的 connectTimeout 對應的是三次握手的總時長,如果超時了就會被認為連接失敗。
比如一個場景,客戶端發出一個 SYN 報文後,遲遲沒有收到服務端的 SYN + ACK。這時候客戶端觸發重傳機制,每次重傳的間隔時間加倍,同樣沒有收到包。然後如果這段時間超出了連接超時時間的設置,那麼建立連接超時就發生了。
所以,如果三次握手要花的時間,總是大於這里的 connectTimeout 時間,這個 Socket 就無法建立連接。
我們這一次請求的三次握手時間在 180ms 左右。
像在 OkHttp 中,如果是三次握手階段的連接超時,是會有重試機制的。也就是重新建聯,重新發出 SYN 報文發起 TCP 連接。重新建聯的時候會更換連接的路由,如果已經沒有可選擇路由的話,那麼這個就真的失敗了。
在 OkHttp 3.9.0 的默認配置中,連接超時的時間為 10000ms = 10s。在 OkHttpClient.Builder 中。
實際應用的時候,根據業務場景來調整。
這次請求,為了讓 Wireshark 抓到手機的包,我使用了電腦作為代理。
其實就是客戶端 A 使用 HTTP 協議和代理伺服器 B 建立連接。和普通的 HTTP 請求一樣,需要攜帶 IP + 埠號,如果有身份驗證的時候還會帶上授權信息,代理伺服器 B 會使用授權信息進行驗證。然後代理伺服器會去連接遠程主機,連接成功後返回 200。
Wireshark 抓到的包有這樣兩條信息,就是在創建代理:
請求報文:
響應報文:
HTTP CONNECT 是在 HTTP1.1 新增的命令,用於支撐 https 加密。
因為我採用代理的方式抓包才有這一個步驟。如果是直接抓 PC 機上瀏覽器發出的 HTTPS 包,不會有這個過程。
然後我們思考一下,為什麼代理伺服器需要這些信息,要連接的主機名和埠號?
這是因為後面進行 SSL 加密 HTTP協議,因為代理伺服器拿不到加密密鑰,是無法獲取到 HTTP 首部的,進而無法這個請求是要發到哪個主機的。所以,這里先使用 CONNECT 方法,把主機名和對應的埠號通知代理伺服器。
這個也被稱為 HTTPS SSL 隧道協議。建立這個 SSL 隧道後,這個特殊代理就會對數據進行盲轉發。
SSL 整個協議實際上分兩層,SSL 記錄協議和其他子協議(SSL握手協議,SSL改變密碼協議,SSL警告協議):
這兩層協議的關系,其實就是數據封裝的關系,SSL 握手封裝協議封裝其他上層協議。
封裝握手協議:
封裝應用數據協議,比如 HTTP:
封裝交換密碼協議:
封裝警報協議:
所以 SSL 記錄協議其實就是一個其他協議的載體,只是提供了一個封裝的功能。它的格式為:
MAC 就是消息驗證碼,用來驗證數據的完整性,保證中途沒有篡改。這個消息驗證碼比數字簽名弱一些,使用的是對稱密鑰加密摘要。數字簽名使用的是非對稱密鑰加密,有區分公鑰私鑰。
記錄協議的主要目的有這幾個,為其他 SSL 子協議提供了以下服務:
TCP 三次握手結束並且和代理伺服器成功連接後,建聯成功,客戶端 A 就開始發起 SSL 連接,首先會進入 SSL 握手階段。
SSL 握手階段的主要目的有這么幾個:
SSL 握手的流程並不是一成不變的,根據實際的應用場景來。主要有三種:
SSL 握手的完整的交互過程如下,這里是驗證服務端又驗證了客戶端的情況:
我們的請求只驗證服務端,所以 7,8,9 是不存在的。
現在具體分析每一個階段的內容。
Client Hello
作為 SSL 握手的第一個握手包,我們詳細分析和理解一下包的內容。
下面是 Wireshark 解析好的這個 SSL 協議的數據包:
這個包如何解讀,按照之前對 SSL 協議的分析,其實分成兩個部分:
因為是握手過程,密鑰還沒協商,這里還是使用明文傳輸,記錄協議的數據載體就是明文的 SSL 握手協議。
SSL 握手協議的格式為:
我們可以從握手協議的數據包中得到這些信息:
密碼套件隨著密碼學的發展而發展,而且根據現實應用中,可能會有某些密碼被破解,從而導緻密碼套件可能會導致安全問題,所以一般都會使用當前最新最安全的密碼套件。
在 Android 系統中,一般情況下,使用 SSLSocket進行連接的時候,會帶上系統默認的支持的密碼套件。但是這個有個缺點,比如某些密碼套件的加密演算法被破解或者出現安全漏洞,而且要跟著系統升級反應緩慢。OkHttp 在進行 SSL 握手的時候,會使用 ConnectionSpec 類中帶上提供了一系列最新的密碼套件。可以從注釋上看,這些密碼套件在 Chrome 51 和 Android 7.0 以上得到了完全支持。
然後,再把這些密碼套件和 Android 系統支持的密碼套件取交集,提交給服務端。這樣,萬一哪個密碼套件有問題,OkHttp 官方會下降支持。網路庫 OkHttp 庫會隨著版本的迭代,不斷地去提供比較新的密碼套件,並且放棄那些不安全的密碼套件。接入應用即時更新 OkHttp,就不用等待緩慢的系統更新了。
如果提供的所有密碼套件服務端都不支持,OkHttp 有回退機制,退而求其次,選比較舊的套件。
Server Hello
服務端收到了客戶端的 Hello,通過客戶端的配置信息,結合服務端的自身情況,給出了最終的配置信息。
Wireshark 解析後的內容如下:
具體內容如下:
Certificate
上面的 Server Hello 已經制定了接下來的非對稱加密演算法
服務端下發證書,客戶端驗證服務端的身份,並且取出證書攜帶的公鑰,這個公鑰是交換加密演算法的公鑰。也就是在 Server Hello 階段指定的 ECDHE (EC Diffie-Hellman)演算法,也是通常說的 DH 加密。
這個 Certificate 消息下發了從攜帶自己公鑰的數字證書和 CA 證書的證書鏈,在 Certificates 欄位中:
CA 是 PKI 體系的重要組成部分,稱為認證機構。
那什麼是 CA 證書?就是用來 CA 中心發布的,認證該服務單證書的合法性,可以確保該證書來源可靠而不是被中間人替換了。但是 CA 證書也可能被中間人攔截造假?那就再用一個證書來認證它。看起來好像沒完沒了。實際上到最後有一個根 CA 證書,這個證書存儲再瀏覽器或者操作系統中,是系統直接信任的。
服務端證書需要 CA 證書做認證。使用的還是數字簽名方式,從數據中摘要一段信息,用 CA 證書的加密。然後驗證的時候時候,用 CA 證書的公鑰解密,用同樣的摘要演算法摘要數據部分和解密好的信息進行比較。
客戶端在驗證服務端證書的有效性有這樣的一個過程。首先會找到該證書的認證證書,也就是中級 CA 證書。然後找中級 CA 證書的認證證書,可以是另一個中級 CA 證書,也可能是根 CA 證書。這樣直到根 CA 證書。
接著從根 CA 證書開始往下去驗證數字簽名。比如有這樣的證書鏈:根 CA 證書-> 中級 CA 證書 -> 服務端證書。用 CA 證書的公鑰去驗證中級證書的數字簽名,再用中級證書的公鑰去驗證伺服器證書的數字簽名。任何一個環節驗證失敗,就可以認為證書不合法。
這就是整個證書鏈的認證過程:
查看抓到的包的數據,發現只有兩個證書。為服務端證書和中級 CA 證書。根 CA 證書呢?順藤摸瓜找到它。
首先看服務端證書。它內容如下:
從這個證書中我們可以窺見這些信息:
首先是 signedCertificate 欄位的內容,即數字證書的數據:
然後是證書頒發機構的簽名信息:
從上面的 issuer 可以了解到,認證該伺服器證書的 CA 證書為 GeoTrust SSL CA - G3 ,我們從 Certificates 找到對應的中級證書的內容如下(中級證書可以有好幾級,我們這兒只有一級):
可以得到中級證書名為 GeoTrust SSL CA - G3 ,證書組織為 GeoTrust Inc. 。
認證該 CA 證書的證書呢?還是看 issue 欄位,認證證書名為 GeoTrust Global CA ,組織同樣是 GeoTrust Inc. 。
其實這個就是根 CA 證書。在這個請求中沒有找到,但在瀏覽器或者操作系統可以找到。一般的瀏覽器和系統都會內置該 CA 證書。所以根證書是受瀏覽器或者操作系統信任的,無需其他證書做擔保。
如果想要自己的系統再信任某些非通用的權威機構的根 CA 證書,那麼就去安裝它。
比如我的 Windows 系統就安裝了 GeoTrust Global CA 證書:
像我們平時使用 Charles 抓 HTTPS 就是這個原理,把 Charles 的 CA 證書安裝在手機中,成為受信任的根 CA 證書。
基本原理就是,Charles 代理作為 SSL 隧道,並沒有透明傳輸,而是作為一個中間人,攔截了 SSL 握手信息,修改裡面的 CA 證書。仿冒手機端和真實服務端建立連接獲取主密鑰,然後又仿冒服務端和手機客戶端建立 SSL 連接,修改服務端證書的 CA 和數字簽名,這樣 Charles 就可以解析到加密的 HTTP 內容了。
修改後的服務端證書如下,可以看到 issuer 被替換成了 Charles 的證書。
G. wireshark抓包——DHCP 篇
簡介:為了更好地觀察DHCP續租等過程,利困正用windows server 2012 搭建DHCP伺服器
(1)我准備了一台windows server 2012虛擬機、一台windows10,2012搭建伺服器,win 10測試。
(2)搭建DHCP伺服器必須要有靜態的ip地址,這里咱們沒有就隨便填寫即可
右擊電腦右下角小電腦的圖標,點擊「打開網路和共享中心」
(3)在彈出的窗口上選擇「更改適配器設置」
(4)右擊小電腦,點擊屬性
(5)點擊ipv4 的Internet 協議版本
(6)配置ip地址
(7)接下來就是安裝DHCP服務,打開儀錶板,點擊添加角色和功能
(8)伺服器選擇本機
(9)選擇dhcp伺服器添加功能,如果沒有配置靜態的ip就會收到提醒
(10)下一步即可
(11)安裝完成後點擊工具中的 DHCP
(12)點擊新建作用域
下一步
填寫信息(隨便填)
填寫想要分配的ip段
依情況而(起始和結束打同樣的地址,表示這個地址不會分配出去,或者一個范圍,按需要來,如下),下一步
默認就好
襪尺和 選擇如下圖選項
填寫之前配好的網關即可
這里dns,wins,暫時不配置,默認就好
下一步
完成
現在就可以看到咱們新建的作用域了
打開windows 測試,網路的獲取形式為自動,把網路放在同一網段內,這里我們把網路放在VMnet8網卡上,最好把虛擬機的DHCP也關掉
查看2012 就可以看到已經分配了(沒有的刷新一下)
window10 端
DHCP搭建完成
(1)打開wireshark並過濾dhcp包
可以看到紅色部分為咱們創建的DHCP服務
DHCP續租過程通常被稱為DORA過程,因為它使用了四種類型的DHCP數據包 ,發現(discover)、提供(offer)、請求(request)、確認(acknowledge)
1)第一階段discover
第一個包從0.0.0.0的68埠發往255.255.255.255的67埠,客服端使用的是0.0.0.0,是因為它目前還有沒有ip地址。數據包發往255.255.255.255,是告盯因為這是一個獨立於網路的廣播地址,從而確保這個數據包發送到它所在網路上的每個設備,簡單來說就是某計算機A大喊我沒ip地址,DHCP 看到後就會響應
1)第二階段offer
范圍內的DHCP伺服器接收到discover 請求後,會向客戶端發出DHCP Offer 報文作為回應,該報文包含該DHCP伺服器可向DHCP客戶端提供的IP地址以及該DHCP伺服器自己的IP地址信息
ip 地址的租期為8天
子網掩碼為:255.255.255.0
這里理論上還有DNS ,router等信息,因為咱們沒有配置,所以沒有
3)第三階段request
這個文件依然是從ip地址0.0.0.0發出,因為還沒有完成獲取ip地址的過程,以廣播的形式發送DHCP Request 報文,該報文會加入對應DHCP伺服器的地址以及所需要的IP。
4)第四階段 ack確認
被選擇的DHCP伺服器通過ack報文把在offer報文中准備的ip地址租約給對應客戶端。這時客服端就有ip地址了。
H. 被抓包是什麼意思
被抓包指在做「壞事」的時候現場給逮住發現了。女朋友說"你被我抓包了"的意思是:你做壞事被女朋友抓到了。
抓包的本意是網游作弊。通過對網路上傳輸的數據進行抓取,可以對其困豎進行分析,對於軟體的Debug很大的幫助。當然也可以通過抓取用戶發送的涉及用戶名和密碼的數據包來獲取用戶的密碼。
數據在網路上是以很小的稱為幀的單位傳輸的,幀由幾部分組成,不同的部分執行不同的功能。幀通過特定的稱為網路驅動程序的軟體進行成型,然後通過網卡發送到網線上,通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。
接收端機器的乙太網卡捕獲到這些幀,並告訴操作系統幀已到達,然後對其進仿宴行存儲。就是在這個傳輸和接收的過程中,嗅探器會帶來安全方面的問題。
(8)計算機網路報文抓取擴展閱讀:
關於被抓包的小故事:
在印度的一個小村莊里,一條飢腸轆轆的眼鏡蛇闖進一戶人家覓食,在雞籠備尺銀里發現了一頓雞蛋大餐。
為了如願吃到美食,它首先咬死了兩只母雞,隨後,便將雞蛋一股腦兒吞下了肚。就在它酒足飯飽准備離開的時候,這家的主人聽到動靜及時趕到。面對被抓包的窘境,眼鏡蛇為了趕緊逃命,一口氣吐出了9顆雞蛋,看得人目瞪口呆。
I. 計算機網路課設 socket 編程
、IP分組首部信息解析l 目的及要求:熟悉SOCKET的編程,利用RAW Socket編程技術設計一個應用程序能夠截獲網路底層上的IP分組,然後對其首部進行解析,將IP分組的首部信息顯示並保存到相關文件中。能初步掌握TCP/IP網路編程的方法,對網路基本協議的結構有進一步的認識。l 具體內容(1)定義好IP分組首部相關的數據結構;(2)在WINDOWS環境下實現程序;(3)在命令提示符下輸入:程序文件名 結果文件名;然後抓取IP分組顯示首部信息並保存在結果文件中,按Ctrl+C結束程序的運行。 2、TCP報文首部信息解析l 目的及要求:熟悉SOCKET的編程,利用RAW Socket編程技術設計一個應用程序能夠截獲網路底層上的IP分組,然後通過其中的協議欄位獲取TCP報文類型的分組並對其首部進行解析,將TCP報文的首部信息顯示並保存到相關文件中。能初步掌握TCP/IP網路編程的方法,對網路基本協議的結構有進一步的認識。l 具體內容(1)定義好IP分組、TCP報文首部相關的數據結構;(2)在WINDOWS環境下實現程序;(3)在命令提示符下輸入:程序文件名 結果文件名;然後抓取TCP報文分組顯示首部信息並保存在結果文件中,按Ctrl+C結束程序的運行。 3、網路連通性測試程序的設計與實現l 目的及要求:熟悉PING程序的工作原理,該程序利用ICMP的回送請求和回送應答來進行工作,而ICMP協議數據是直接封裝到IP分組後傳遞的,利用RAW Socket編程技術。能初步掌握TCP/IP網路協議的基本實現方法,對網路的實現機制有進一步的認識。l 具體內容(1)定義好IP分組、ICMP報文相關的數據結構;(2)在WINDOWS環境下實現程序;(3)在命令提示符下輸入:「myping ip地址」;不要求支持主機名,也不帶參數(有能力的同學可以實現支持主機名,並帶上-l[數據長度]、-n[報文數量]等參數),默認發送4個ICMP數據包,要求返回4次響應。返回信息的格式:「來自[IP]地址的回復:位元組=32bytes 序號=X」或「請求超時」(無法PING通的情況)。 4、路由追蹤程序的設計與實現l 目的及要求:熟悉ICMP協議的作用,利用ICMP的回送請求和回送應答來進行檢測出到達網路上任何一台目的主機途中所經過的路由器,並將結果顯示在標准輸出上。通過本實驗,使學生更加熟悉ICMP報文的結構,對ICMP協議有更好的理解和認識。l 具體內容(1)定義好IP分組、ICMP報文相關的數據結構;(2)在WINDOWS環境下實現程序;(3)在命令提示符下輸入:「mytrace IP地址 或 主機名 或 域名」;數)持續發送ICMP回送請求數據包,其中的IP首部TTL欄位依次增加,如果是中途路由器收到TTL為0的IP分組後,將會發回超時的錯誤報告ICMP響應報文,如果到達最後的主機,將會發回ICMP回送應答報文,結束追蹤。然後將整個發送過程中收到的ICMP報文中的路由器信息依次在多行中顯示出來,格式為「編號 往返時延 路由器地址」。 以上四個題目任選一個 最好能c或c++實現 現在只學過C和C++