當前位置:首頁 » 雲伺服器 » 抓包數據包被伺服器丟棄如何處理

抓包數據包被伺服器丟棄如何處理

發布時間: 2022-09-25 11:18:54

① 怎麼看抓到的數據包有沒有被丟棄

你可以先將你抓到的包保存到文件
主要代碼:
/* 回調函數,用來處理數據包 */
void packet_handler(u_char *mpfile, const struct pcap_pkthdr *header, const u_char *pkt_data)
{
/* 保存數據包到堆文件 */
pcap_mp(mpfile, header, pkt_data);
}

然後用wireshark 這款軟體,打開文件你保存抓包信息的文件,查看你抓到的包
Wireshark(前稱Ethereal)是一個網路封包分析軟體。

② 使用pcap庫寫的抓包程序 抓到數據包之後進行修改在發送給伺服器

一般來說,網卡是收不到自己發送出去的數據包的一份拷貝的。
建議樓主研讀《TCP IP詳解卷一:協議》《TCP IP詳解卷二:實現》。
建議使用wireshark這種比較權威的抓包軟體抓包並且解析一下你發送和接收的包的每個位元組是否如你所願。
用 pcap_sendpacket 發送的包是應該要包含原始的乙太網頭部的吧,你的包貌似只有 IP 頭,沒有乙太網的頭部哦。

③ 抓包工具抓包,怎麼只抓被成功提交到tcp層的數據不抓在低層就被丟棄的數據包

能。。。。。。。。。。。。。。。。。。。。。。。。

④ 使用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幀,以選擇和配置一個或多個網路層協議。當所選的網路層協議配置好後,便可以將各網路層協議的數據包發送到數據鏈路上。配置好的鏈路將一直處於通信狀態,直到LCP幀或NCP幀明確提示關閉鏈路,或有其它的外部事件發生。PPP連接狀態圖如圖1所示。 1.1 連接死亡階段 一個連接的開始和結束都要經歷這個階段。當一個外部事件指示物理層已准備好並可使用時,PPP進入建立連接階段。此時,LCP自動機處於初始階段。當它向鏈路建立階段轉換時將給LCP自動機發送一個UP事件信號。 1.2 連接建立階段 LCP用於交換配置信息包、建立連接。一旦一個配置成功的信息包發送且被接收,就完成了交換,進入LCP開啟狀態。所有的配置選項都假定使用默認值,除非在配置交換過程中被改變。只有那些與特定的網路層協議無關的選項才會被LCP配置。收到LCP配置數據包將使鏈路從網路層協議階段或者認證階段返回到鏈路建立階段。 1.3 認證階段 在某些連接情況下,希望在允許網路層協議交換數據前對等實行認證。默認情況下,是不要求認證的。認證要求必須在建立連接階段提出,然後進入認證階段。如果認證失敗,將進入連接終止階段。在此階段只對連接協議、認證協議、連接質量測試數據包進行處理。1.4 網路層協議階段 一旦PPP完成上述階段,便進入網路協議階段。每一個網路層協議 (例如IP、IPX、AppleTalk等)必須有相應的網路控制協議(NCP)單獨配置,每個網路控制協議都可以隨時打開或關閉。此階段,LCP協議自動狀態機處於打開狀態,接收到的任何不支持的協議數據包都會被返回一個協議拒絕包,而接收到的所有支持的數據包都將被丟棄。此時,鏈路上流通的是LCP數據包、NCP數據包以及網路協議數據包。 1.5 終止連接階段 PPP連接可以隨時被終止。LCP通過交換連接終止包來終止連接。當連接被終止時,PPP會通知物理層採取相應的動作。只有當物理層斷開,連接才會真正被終止。此階段,接收到的所有非LCP數據包都將被丟棄。 2 PPP數據結構 PPP數據幀的結構如表1所示,PPP協議標志如表2所示。每個PPP數據包的開始和結束都有一個0x7E的數據標志。在開始標志後,緊跟2個HDLC常量:地址常量0xFF和控制常量0x03。協議域長度通常為2位元組,表示信息域里包含的是哪種協議以及它的處理信息。隨後是代碼(Code)、標識符(ID)和長度域(Length)。事實上它們都是信息域(Payload)的一部分。信息域長度最多為1500位元組。代碼部分用來指示LCP、PAP、IPCP或者CHAP協議數據包中的某種類型。通常情況下,用來表示IP自定址信息數據包的標識是0x45。ID對於每一幀來說都是唯一的,所有協議間的商談和響應都通過ID聯系在一起。只有當PPP協議幀被壓縮成IP定址信息包時例外。這個時候ID表示的是一種服務類型。有效載荷部分是可變的,並能隨著請求和響應的變化作相應的改變。在IP自定址情況下,IP數據包的大小與PPP協議幀的大小是兼容的,有效載荷包含有關協議的商談和數據包的保持。然後是一個長度為2位元組循環冗餘檢驗碼,以檢測數據幀中的錯誤。由於標志字元的值是0x7E,因此當該字元出現在信息欄位中時, PPP需要對它進行轉義。具體實現過程如下:(1)當遇到字元0x7E時,需連續傳送2個字元:0x7D和0x5E,以實現標志字元的轉義。 (2)當遇到轉義字元0x7D時,需連續傳送2個字元:0x7D和0x5D,以實現轉義字元的轉義。 (3)默認情況下,如果字元的值小於0x20(例如ASCII控制字元),一般都要進行轉義。例如,遇到字元0x01時需連續傳送0x7D和0x21兩個字元(這時,第6個比特取補碼後變為1,而前面兩種情況均把它變為0)。這樣做是防止它們出現在雙方主機的串列介面驅動程序或數據機中,因為它們有時會把這些控制字元解釋成特殊的含義。另一種可能是用鏈路控制協議來指定是否需要對這32個字元中的某些值進行轉義。默認情況下是對所有的32個字元都進行轉義。 關於PPP協議的詳盡描述可以參閱RFC1661文檔。 3 單片機PPP協議 單片機PPP協議是PPP協議在單片機中的應用,有其特點。單片機的存儲空間只有64KB,而PPP協議包括LCP、PAP、IPCP以及NCP等協議,並且在連接建立後還要用到數據傳輸協議(TCP/IP、UDP等)、各種壓縮協議等。要把這些協議完全嵌入單片機是不可能的,所以只能根據實際需要選擇其中的一部分。 例如採用UDP協議而不是功能相對齊全但協議內容過於龐大的TCP/IP協議來傳輸數據,傳輸中基本上不使用數據壓縮協議,跳過單片機作為伺服器端時的密碼驗證過程,省略IPX、AppleTalk等網路層協議等。也就是說,本文的單片機PPP協議,事實上只包含了從PPP連接的建立到實現簡單的數據傳輸所必需的協議,而不包括PPP協議的所有功能。這種協議的取捨是由硬體的客觀限制以及實際的應用需要共同決定的。 4 單片機PPP協議PPP連接的建立 建立後的單片機PPP連接狀態如圖2所示。 其中,C51系統是已經植入PPP協議的51系列單片機,電話線部分也可以是某個網路的一部分,甚至是Internet。 單片機PPP協議流程圖如圖3所示。 PPP連接的建立主要經過三個階段,分別是LCP協商、密碼認證以及網路層協議配置。 4.1 LCP處理階段 首先,第一個LCP數據包被伺服器端發送後,從伺服器端返回一個PPP拒絕包給除密碼認證外的所有選項,接著伺服器端強制認證協議進行協商(先前來自否定幀的PAP和CHAP都被發送)。隨後伺服器端返回一個拒絕包給CHAP,本文用PAP來代替。然後伺服器端認同並返回一個新的請求,這時候需要進行PAP。接下去對PAP進行確認,系統對字元映射的丟棄進行協商。最後所有控制特性被伺服器端同意丟棄。 下面是由伺服器發送的一段LCP建立連接的字元串: 0000:7E FF 03 C0 21 01 71 00 2B 01 04 06 40 05 06 3A 5D 8B B4 02 06 00 0016:00 00 00 11 04 06 40 17 04 00 64 00 02 03 04 C0 23 13 09 03 08 00 002C:03 0A 2C 2C 95 7F 7E 對它進行分析如表3。 4.2 PAP處理階段 首先,系統發送PAP數據包給伺服器端,然後伺服器端通過用戶ID和密碼驗證。PAP密碼驗證協議在RFC1334中有詳細定義,主要是為撥號網路中提供密碼保護。這個選項是可選的。在本應用軟體中,強制單片機和PC協商的選項中,PC要求密碼驗證,單片機端不要求。所以如果PC機作為伺服器,單片機需要發送用戶名和密碼;如果單片機作伺服器,則沒有密碼驗證的要求。 PAP的格式如圖4所示。 下面是單片機發送PAP的數據包: 7E FF 03 C0 23 01 06 00 0C 03 7A 77 6D 03 7A 77 6D… 解析如表4所示。 單片機向PC機發送PAP數據包是在PC機發送對單片機LCP選項的確認之後、PC機向單片機發送IPCP請求之前。 4.3 IPCP處理階段 IPCP是用來設置PPP連接中的網路環境,包括IP地址、IP壓縮協議、DNS伺服器地址等都是通過IPCP來協商的。首先伺服器端發送請求進行IPCP協商,然後系統返回一個拒絕包給除IP地址外的所有操作。由於先前的發送被拒絕,伺服器端發送一個回復,只包含IP地址。此時,系統相當於伺服器端的IP地址認證,然後由請求信息和IP地址來完成三路握手協議。接著伺服器端返回一個包含預先指派IP地址的拒絕包。此時連接建立並擁有一個指定的IP地址。IPCP幀的格式與LCP也是類似的:一位元組的代碼,然後是標志,長度,選項。當IP協議的選項配置完,就可以開始通訊了。IPCP的詳細描述在RFC1332中。連接建立後,PPP將在原有協議的基礎上調用網路協議UDP(User Datagram Protocol)和ICMP(Internet Control Messages Protocol)等。有關用戶數據包協議UDP的詳細資料可參看RFC882、RFC883文檔;Internet信息控制協議ICMP的詳細資料可參看文檔RFC792。 參考文獻 1 Erkins D. Requirements for an Internet Standard Point-to-Point Protocol RFC 1547.Carnegia Mellon University.December 1993. 2 Reynolds J, Postel J. Assigned Numbers STD 2,RFC 1340. USC/Information Sciences Institute,July 1992. 3 Douglas E. Comer. Internetworking With TCP/IP Vol I: Principles Protocol and Architecture (Third Edition) 4 W.Simpson.STD 51,RFC1661.Network Working Group.July 1994 5 Douglas E. Comer, David L. Stevens. Internetworking With TCP/IP Vol II:Design Implementation and Internals (Second Edition)

⑤ 數據一直掉包怎麼辦

許多時候,我們可能都會碰到網路連接時斷時續的故障現象,面對這種網路故障,不少網路管理員都會使用Ping命令對網路連通性進行測試,測試結果表明此時的網路傳輸線路數據丟包現象非常嚴重,那麼究竟是什麼因素導致了數據丟包現象比較嚴重呢?是連接線路接觸不穩定?是網路病毒?還是其他的潛在因素?

仔細對這類現象進行總結後,我們發現最容易造成數據丟包現象的因素就是網路環路,畢竟在規模稍微大一點的區域網環境中,網路管理員很容易把交換機之間的埠連接錯誤,從而引起網路環路現象,並且這種現象由於有比較強的隱蔽性,我們在排除這類故障的時候要是不留神的話很容易多走彎路!為了幫助各位高效解決數據丟包嚴重這類網路故障,筆者現在就將自己曾經遭遇到的一則網路環路故障排除過程貢獻出來,希望大家能從中獲取收益!

故障現象

筆者所在單位的區域網網路使用的拓撲結構是星型百兆乙太網結構,區域網主機房中使用了一台Cisco品牌的三層路由交換機作為網路的核心交換機,單位五層大樓中的每個樓層都組建了子網段,每個網段中的所有工作站都使用D-Link品牌的普通交換機作為集線設備,並且各個樓層中的普通交換機通過雙絞線纜直接接入主機房中的核心交換機,並通過核心交換機直接訪問Internet網路。單位區域網中同時安裝、配置了多台伺服器,例如有保存單位重要數據信息的文件伺服器,有對外提供Web訪問服務的Web伺服器,有提供重要資料下載的FTP伺服器等。

平時單位各個子網段中的所有工作站都能正常訪問Internet網路,每個子網段中的工作站之間也能互相訪問。可是有一天,某一子網段中的用戶通過手機向筆者反映情況說,他們所在的子網工作站訪問Internet網路時,有時正常有時不正常,並且同一子網段中的工作站之間相互進行Ping測試時,發現數據丟包現象非常嚴重;原以為這種故障僅是極個別現象,可誰曾想到,沒有多長時間,分布在多個網段中的許多用戶接二連三地向筆者反映情況,並且描述的故障現象基本相同。

連續的故障求援讓筆者再也坐不住了,筆者立即動身來到其中一個樓層,對該網段中的工作站進行上網測試,在上網過程中筆者發現網頁打開速度有時非常緩慢,幾分鍾也打不開一個頁面,有時速度很快,只要輸入地址敲下回車鍵後,網頁內容立即就顯示出來了,並且這種現象反反復復。在確認網路故障的確存在後,筆者認為這種故障現象涉及多個網段,引起這種故障現象的原因很可能是交換機的連接埠出現了問題,於是筆者對交換機的連接埠進行了適當調整,並在調整之後及時進行了測試,可是區域網中的故障現象依然存在。

重新返回到故障工作站現場進行測試,筆者看到使用Ping命令可以Ping通區域網中的部分工作站和伺服器,不過在Ping主機房中的核心交換機IP地址時,筆者發現存在明顯的數據丟包現象,並且網路延遲時間也比較長。通過專業的網路管理工具對主機房中的核心交換機進行參數配置檢查,筆者也沒有發現明顯的錯誤。

故障分析

雖然核心交換機的參數配置方面沒有找到可疑的地方,但是筆者還是深信問題出在核心交換機身上,畢竟多個子網同時出現相同的故障現象決不是偶然的。在排除了核心交換機參數配置因素後,筆者開始將懷疑重點轉移到該設備的物理因素上了;首先,筆者仔細觀察了核心交換機控制面板中各個信號燈的工作狀態,發現連接有雙絞線的所有埠對應的信號燈狀態都很正常。其次,筆者擔心網路線纜沒有緊密地插入到核心交換機的各個埠中,於是不厭其煩地將所有的網路線纜逐一拔下來,之後又將其重新插入到對應的交換機埠中,可是筆者的這番辛苦並沒有得到任何回報,區域網中的數據丟包現象仍然十分嚴重,並且許多工作站還是不能正常訪問Internet網路中的內容。

那會不會是核心交換機的緩存遇到錯誤,導致連接到該交換機設備中的所有子網工作站都不能正常訪問網路內容呢?筆者腦海中總有這樣一種意識,認為交換機運行時間一長之後,其系統緩存十分容易出現溢出或其他軟體錯誤,這類錯誤常常會導致區域網網路產生莫名其妙的故障現象;依照這樣的想法,筆者嘗試著切斷了核心交換機的電源,過了一段時間後,又重新接通該設備的電源,以便讓其重新啟動,等待核心交換機系統啟動穩定之後,筆者再次嘗試了在故障工作站中進行上網測試,結果發現網路訪問還是時斷時續。

在排除了上面幾種因素後,筆者估計這種網路故障應該不在交換機硬體部分,很可能是區域網中的網路病毒造成的。於是,筆者特意從網路中下載了專業分析工具Sniffer,通過該工具抓包分析網路中的信息包,發現有許多信息包都不約而同來自相同的一個網卡設備的MAC地址,而信息包中發送的目的地址在區域網中根本找不到,於是筆者立即下意識地懷疑可能是「熊貓燒香」之類蠕蟲病毒造成了網路傳輸通道堵塞。難道目標網卡MAC地址對應的工作站真的被感染上了網路蠕蟲病毒?

想到這一點,筆者立即通過網路正常傳輸時創建的MAC地址與IP地址對應表,查找到該工作站來自區域網二樓網段中的一台工作站,初步確認故障原因後,筆者立即將目標網卡MAC地址對應的工作站從特定網段中斷開連接,同時在該工作站系統中安裝了最新版本的殺毒軟體,並對該工作站系統進行了全面、徹底地病毒查殺操作,等到病毒查殺任務結束後,筆者還真的看到了一些網路蠕蟲病毒,原以為這些網路蠕蟲病毒就是最終的「禍首」,可是當將該工作站重新接入到對應網段中後,區域網的數據丟包故障現象還是沒有消失。

在萬般無奈之際,筆者決定對各個子網進行單獨測試檢查。於是筆者特意找來當初組建區域網時使用的網路拓撲結構圖,對照圖紙筆者想依次找出不同網段接入到核心交換機時所使用的埠,在進行這方面查找操作時,筆者偶然看到有一條網路線纜竟然同時插入到核心交換機中的兩個埠中,很明顯這條網路線纜使區域網中形成了環路現象,而環路現象可能就是整個區域網數據丟包嚴重的「罪槐禍首」。

為了驗證筆者的分析是否正確,筆者嘗試著將造成環路的那條線纜拔出後,立即從故障工作站中再次訪問了Internet網路,結果發現故障工作站打開網頁的速度很快;但筆者還是有點不放心,又跑到另外一個故障子網中,隨意找了一台工作站進行上網測試,測試結果證明區域網的所有故障全部已經消失,這表明區域網的數據丟包故障已經被成功解決了。

故障探究

通過上面的分析,我們不難發現網路環路其實就是引起區域網所有子網不能正常訪問的「禍首」,在區域網環境中一旦有網路環路現象存在時,那麼工作站對外發送的每一幀信息都會在網路通道中反復廣播,從而造成了廣播風暴現象,最終導致區域網傳輸通道嚴重被堵塞,那樣一來區域網網路就容易出現數據丟包現象。

在解決這類網路故障時,筆者由於沒有及時了解到區域網網路中發生了一些變動,導致在排除故障的過程中,始終沒有想到網路環路竟是由於我們網路管理員的疏忽引起的,從而導致了筆者在解決故障的過程中多走了不少彎路。

仔細想來,要是在排除故障之前,筆者能夠事先詢問一下單位的其他網路管理員,打聽一下最近網路是否進行了改動的話,說不定就能很快找到故障原因了。所以,日後我們在解決類似網路故障時,首先應該仔細了解一下故障之前網路的變動情況,之後再按照常規思路進行排查。

當然,為了便於管理網路,我們在組建區域網網路時,也應該及時建立了比較完善的區域網組建檔案資料,具體內容可以包括IP及MAC對應表、網路布線圖、網路變動說明等,有了這些資料幫忙,任何網路管理員都能在很短時間內解決各種網路故障了。

⑥ 計算機終端接受到錯誤的數據包後,是否會丟棄數據包並要求對方重傳

看是什麼協議了,象UDP協議就不會去要求數據包重發.........................

網路協議(Protocol)是一種特殊的軟體,是計算機網路實現其功能的最基本機制。網路協議的本質是規則,即各種硬體和軟體必須遵循的共同守則。網路協議並不是一套單獨的軟體,它融合於其他所有的軟體系統中,因此可以說,協議在網路中無所不在。網路協議遍及OSI通信模型的各個層次,從我們非常熟悉的TCP/IP、HTTP、FTP協議,到OSPF、IGP等協議,有上千種之多。對於普通用戶而言,不需要關心太多的底層通信協議,只需要了解其通信原理即可。在實際管理中,底層通信協議一般會自動工作,不需要人工干預。但是對於第三層以上的協議,就經常需要人工干預了,比如TCP/IP協議就需要人工配置它才能正常工作。

區域網常用的三種通信協議分別是TCP/IP協議、NetBEUI協議和IPX/SPX協議。 TCP/IP協議毫無疑問是這三大協議中最重要的一個,作為互聯網的基礎協議,沒有它就根本不可能上網,任何和互聯網有關的操作都離不開TCP/IP協議。不過TCP/IP協議也是這三大協議中配置起來最麻煩的一個,單機上網還好,而通過區域網訪問互聯網的話,就要詳細設置IP地址,網關,子網掩碼,DNS伺服器等參數。

TCP/IP協議族中包括上百個互為關聯的協議,不同功能的協議分布在不同的協議層, 幾個常用協議如下:

1、Telnet(Remote Login):提供遠程登錄功能,一台計算機用戶可以登錄到遠程的另一台計算機上,如同在遠程主機上直接操作一樣。
2、FTP(File Transfer Protocol):遠程文件傳輸協議,允許用戶將遠程主機上的文件拷貝到自己的計算機上。
3、SMTP(Simple Mail transfer Protocol):簡單郵政傳輸協議,用於傳輸電子郵件。
4、NFS(Network File Server):網路文件伺服器,可使多台計算機透明地訪問彼此的目錄。
5、UDP(User Datagram Protocol):用戶數據包協議,它和TCP一樣位於傳輸層,和IP協議配合使用,在傳輸數據時省去包頭,但它不能提供數據包的重傳,所以適合傳輸較短的文件。

HTTP協議簡介

HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規范化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經提出。
HTTP協議的主要特點可概括如下:
1.支持客戶/伺服器模式。
2.簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯系的類型不同。
由於HTTP協議簡單,使得HTTP伺服器的程序規模小,因而通信速度很快。
3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快

⑦ 需要搞清楚的關於抓包的問題

不同主機之間的數據通信都是通過網路來進行傳輸,對那些在網路上傳輸的數據(發送、請求的數據)進行截獲、編輯、轉存等操作叫做抓包。抓包可以是抓取電腦端請求的數據,還可以抓取移動端(手機APP)的數據包。

通過對網路上傳輸的數據進行抓取,可以對其進行分析,對於軟體的Debug很大的幫助。當然也可以通過抓取用戶發送的涉及用戶名和密碼的數據包來獲取用戶的密碼。

一般情況下,數據按照各種網路協議按照一定的格式在網路上進行傳輸,網路上傳輸的數據是以幀為單位,在對需要發送的數據進行包裝的時候,會把數據的接收方、發送的的地址(MAC地址、IP地址等)一起進行包裝並進行發送。根據發送方和接收方的地址,會有一條數據包的傳輸路徑,在這條路徑上,發送的數據包,會經過網路上很多台主機,標準的TCP/IP協議是這樣處理的:當有數據經過主機時,主機會通過存放在數據包裡面的地址來進行判斷,這個數據包是否是發送自己的,如果不是發給自己的,主機就不會對它進行解析,簡單的進行丟棄(轉發)。如果是發送給自己的,那麼主機就會對其進行解析和存儲。

如果想要存儲那些不是發送給自己的數據包,可以把網路適配卡設置為雜亂模式。這樣它就會接收經過它的每一個數據包了。

目前主流的移動端抓包工具為:TcpDump、WireShark、Fiddler, 他們的對比如下。

Android平台下的網路數據抓包工具,Android模擬器中自帶 TcpDump 文件。
用 TcpDump 對網路數據抓包,手機不用走代理——將網路數據包添加到 WireShark 中分析即可。

缺點:

PC端截獲、分析通過該網卡的所有網路通信的數據包(針對移動端時候,就要對移動端設置 代理伺服器)強大的工具,完整查看網路中的每層、每個協議、每個數據包的詳細組成信息;TCP、UDP、HTTP、HTTPS等協議的數據包均可獲取;

缺點:

HTTP協議的代理工具,抓取、分析電腦中所有進出該網卡、與網路進行數據交互的數據(針對移動端抓包時,需要設置代理伺服器),主要針對的是 HTTP/HTTPS協議;能夠清晰查看 數據包 中的內容——HTTPS中的數據包可以解密出來;

優點:

缺點:

網路

利器 -- 抓包工具總結

移動端網路數據抓包工具對比分析

fiddler和wireshark工具介紹及對比 - catherine的心路歷程 - 博客大巴

⑧ Wireshark

Wireshark作為網路工具,一直被推崇;wireshark可以通過TCP的埠號的個數,或者Stream index的個數,來判定有幾個線程;可以通過分段分片的消息,判定是否分片;可以通過mss判定MTU的大小。

抓eNb的WireShark pcap

tcpmp -p sctp -i eth2 -w aa.pcap

epc內部抓不同口,開兩個ssh,抓取S1U和SGI的數據包

tcpmp -i eths1u -s 0 -w s1u.cap

tcpmp -i ethsgi -s 0 -w sgi.cap

Wireshark的時序圖產生一個TCP序號vs.時間的圖形。

在Wireshark的菜單Statistics ->TCP Stream Graph -> Time-Sequence Graph下,有兩種格式的時序圖,stevens和tcptrace。Stevens時序圖描述了流量(序號)隨著時間的變化,主要用於查看流量變化的情況,是否有中斷、丟包、大時延的情況,命名取自W.Richard Stevens寫的經典書籍《TCP/IP協議詳解》。

Tcptrace時序圖除了stevens時序圖的內容外,還記錄了對端ACK值和接收窗口的變化,內容較stevens時序圖要豐富。Tcptrace原是Ohio University的Shawn Ostermann寫的一個工具。

正常情況下,如果TCP速率穩定,那麼在stevens時序圖上看到的將是一條筆直上升的斜線,它的斜率等於速率,下面是放開限速的情況下的速率圖,速率為100Mbps。

最好的情況下對應的WireShark的抓包

相比Stevens時序圖,tcptrace時序圖增加了對端ACK值和接收窗口變化的序號。如下圖,中間黑色的粗線代表了發送的包,下方淺色的線代表了上一個ACK確認的包序號,上方淺色的線表徵了TCP窗口,它等於上一個TCP ACK序號再加上TCP鏈路的window size。

下圖為限速的情況下的序列圖,下行限速1Mbps:

TCP segment of a reassembled PDU指的不是IP層的分片,IP分片在wireshark里用Fragmented IP protocol來標識。TCP segment of a reassembled PDU指TCP層收到上層大塊報文後分解成段後發出去。

數據報的分段和分片確實發生,分段發生在傳輸層,分片發生在網路層。但是對於分段來說,這是經常發生在UDP傳輸層協議上的情況,對於傳輸層使用TCP協議的通道來說,這種事情很少發生。

網路層IP協議會檢查每個從上層協議下來的數據包的大小,並根據本機MTU的大小決定是否作「分片」處理。分片最大的壞處就是降低了傳輸性能,本來一次可以搞定的事情,分成多次搞定,所以在網路層更高一層(就是傳輸層)的實現中往往會對此加以注意。

有些高層因為某些原因就會要求我這個麵包不能切片,我要完整地麵包,所以會在IP數據包包頭裡面加上一個標簽:DF(Do not Fragment)。

這樣當這個IP數據包在一大段網路(水管裡面)傳輸的時候,如果遇到MTU小於IP數據包的情況,轉發設備就會根據要求丟棄這個數據包,然後返回一個錯誤信息給發送者。

TCP數據丟棄會造成網路丟包的發生

在TCP傳輸過程中(不包括三次握手和四次揮手),同一台主機發出的數據包應該是連續的,即後一個包的Seq號等於前一個包的Seq+Len。也可以說,後一個包的Seq會大於或等於前一個包的Seq。當Wireshark發現後一個包的Seq號小於前一個包的Seq+Len時,就會認為是亂序了,因此提示 [TCP Out-of-Order] 。如圖所示,3362號包的Seq=2685642小於3360號包的Seq=2712622,所以就是亂序。

小跨度的亂序影響不大,比如原本順序為1、2、3、4、5號包被打亂成2、1、3、4、5就沒事。但跨度大的亂序卻可能觸發快速重傳,比如打亂成2、3、4、5、1時,就會觸發足夠多的Dup ACK,從而導致1號包的重傳。

當亂序或者丟包發生時,接收方會收到一些Seq號比期望值大的包。它每收到一個這種包就會Ack一次期望的Seq值,以此方式來提醒發送方,於是就產生了一些重復的Ack。Wireshark會在這種重復的Ack上標記[TCP Dup ACK] 。

以圖為例,伺服器收到的7號包為「Seq=29303, Len=1460」,所以它期望下一個包應該是Seq+Len=29303+1460=30763,沒想到實際收到的卻是8號包Seq=32223,說明Seq=30763那個包可能丟失了。因此伺服器立即在9號包發了Ack=30763,表示「我要的是Seq=30763」。由於接下來伺服器收到的10號、12號、14號也都是大於Seq=30763的,因此它每收到一個就回復一次Ack=30763,從圖中可見Wireshark在這些回復上都標記了[TCP Dup ACK]。

當發送方收到3個或以上[TCP Dup ACK],就意識到之前發的包可能丟了,於是快速重傳它(這是RFC的規定)。以圖6為例,客戶端收到了4個Ack=991851,於是在1177號包重傳了Seq=991851。

如果一個包真的丟了,又沒有後續包可以在接收方觸發[Dup Ack],就不會快速重傳。這種情況下發送方只好等到超時了再重傳,此類重傳包就會被Wireshark標上[TCP Retransmission]。以圖為例,客戶端發了原始包之後,一直等不到相應的Ack,於是只能在100多毫秒之後重傳了。 

⑨ tcpmp抓包 幫我分析一下原因.我迷茫了!

貌似ICMP數據包被服務端丟棄了,UDP埠號得不到啊

⑩ 伺服器丟包怎麼解決 伺服器如何解決丟包的情況

1、本地網路故障:可以用戶本身可以進行解決,先查看是什麼原因導致的本地網路故障。有部分情況是因為管理員賬號被黑,然後被大量的發送數據包,導致的網路堵塞,進而導致伺服器丟包。

2、中轉網路故障:中轉網路故障具體指的是,訪問伺服器跳出本地路由直到跟機房核心交換,在這中間的路由網路。中轉網路故障非常難以判斷,無論是用戶還是機房人員,都沒辦法直接進行干預操作,好在中轉網路故障會自行恢復,一般也不要等待太長時間。

3、機房網路故障:機房網路故障的形成原因是機房硬體設備故障跟自然災害。機房網路故障是相對常見的原因,特別是高防伺服器機房,因為可以抵擋各種流量的網路攻擊,因而有時會被攻擊導致出現丟包的情況。

熱點內容
鉅通塑機電腦密碼多少 發布:2024-12-28 10:48:59 瀏覽:975
微信能發多大的視頻文件夾 發布:2024-12-28 10:30:53 瀏覽:355
編程邏輯圖 發布:2024-12-28 10:20:05 瀏覽:94
android二維碼靈敏 發布:2024-12-28 10:19:18 瀏覽:779
寫資料庫mysql 發布:2024-12-28 10:12:02 瀏覽:454
注銷外地卡為什麼要密碼 發布:2024-12-28 10:08:56 瀏覽:669
如何打開伺服器小窗口 發布:2024-12-28 10:01:28 瀏覽:960
flex與java交互 發布:2024-12-28 10:00:12 瀏覽:162
優酷視頻上傳好慢 發布:2024-12-28 09:54:25 瀏覽:338
androiduribitmap 發布:2024-12-28 09:53:46 瀏覽:780