TWI428034B - 錄製、還原與重播網路流量的方法 - Google Patents
錄製、還原與重播網路流量的方法 Download PDFInfo
- Publication number
- TWI428034B TWI428034B TW099121944A TW99121944A TWI428034B TW I428034 B TWI428034 B TW I428034B TW 099121944 A TW099121944 A TW 099121944A TW 99121944 A TW99121944 A TW 99121944A TW I428034 B TWI428034 B TW I428034B
- Authority
- TW
- Taiwan
- Prior art keywords
- network
- recording
- payload
- packet
- packets
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係關於一種錄製、還原與重播網路流量的方法,特別是關於可包括錄製程序、還原程序或是選擇性重播程序的方法。
關於錄製流量的技術,習知做法包括以特殊專屬的硬體設計搭配各種軟體套件來實作,以盡量減少漏錄(capture loss)情況的錄製系統。這種技術的重點常在於討論前置處理器的數目、作業系統、緩衝區大小等等議題。除了提升軟硬體系統效能的技術之外,也有類似時光機器(Time Machine)的技術,以分析網路流量行為的方式來節省儲存空間。這種技術採用10000~20000位元組(bytes)的截斷(cutoff)機制來錄製每條網路連線。由於其發現大流量通常是來自於少數的連線,因此從整體來說,時光機器的技術可以完整錄製到多數小流量的網路連線。而其截斷值係根據對於流量的剖析作動態調整。
然而這些技術卻都不是從「觸發/重製網路事件」的測試用途出發來決定錄製流量的策略、設計錄製流量的方法,而導致目前這些的錄製技術與方法並不十分適合用來作為測試之用。且習知技術需要浪費龐大的儲存空間去儲存沒有價值的網路流量,因而無法完全錄製大量且快速的真實網路流量。更甚者,由於無法應付大量且快速的真實網路流量,而造成漏錄的情形。
而關於重播網路流量的技術,例如TCPreplay係根據時間戳記(timestamp)進行重播;Tomahawk則會等待上一個封包抵達之後再重播下一個封包。然而這兩種技術在重播網路流量的過程中並沒有維持網路協定的狀態,而產生無狀態重播(stateless replay)的問題。
對此發展出了數種能維持網路協定的狀態(稱為狀態重播,stateful replay)的技術。例如TCPopera在重播網路流量時使用4種試探法(heuristics)來達到依照傳輸控制/網際網路協定(Transmission Control Protocol/Internet Protocol,TCP/IP)傳送資料的規則。Monkey則是會自行建立插座(socket)以模擬TCP/IP協定並模擬網路情況。Avalanche則可接受一份追蹤檔案(trace file)樣本,並自行分析追蹤檔案後模擬出同時有多位使用者的大量網路流量。此外還有一些技術不僅可以做到網路層及傳輸層的狀態,還可以做到應用層的狀態。
然而跟錄製流量的技術一樣,目前這些重播流量的技術並沒有完全從「觸發/重製網路事件」的測試用途出發來進行設計與實作,導致目前這些的重播技術與方法並不十分適合用來作為測試之用。習知的重播技術以及工具無法依據不完整的網路封包準確地重播出符合網路協定之網路連線。習知技術亦無法有效率地重製事件(reproduce event),而難以得知網路事件發生的原因。
由上述分析可以得知,傳統的網路封包(packet)的處理方法中,無論是錄製或是重播網路流量的方法,均具有浪費龐大的儲存空間、浪費龐大的重播時間、無法依據不完整的網路封包播放符合網路協定之網路連線,或是無法精準重現網路事件等問題。
為解決這些的問題,本發明提供一種錄製、還原與重播網路流量的方法,其用以處理網路之多個網路連線的多個網路封包。
本發明提供之錄製、還原與重播網路流量的方法包括一錄製程序,以針對每一個網路連線錄製網路連線的網路封包。錄製程序則包括:接收一錄製參數(N,M,P),其中N、M以及P係為大於等於零的整數;完整錄製這些網路連線的每一個網路封包的一檔頭以及一酬載(payload),並累計每一個網路連線的一酬載總值;當酬載總值之一超過N時,對與酬載總值對應的網路連線的連續P個網路封包錄製每一個網路封包的該檔頭,以及酬載的前M個位元組;以及當酬載總值之一超過N並對與酬載總值對應的網路連線連續錄製P個網路封包之後,對與酬載總值對應的網路連線的網路封包錄製每一個網路封包的檔頭。
根據本發明之一實施範例,錄製、還原與重播網路流量的方法另可包括一還原程序,而還原程序可包括以下步驟。逐一檢查網路封包的檔頭以及酬載是否完整;當得到至少一個不完整的網路封包時,判斷其是否具有完整的檔頭;以及當不完整的網路封包具有完整的檔頭時,執行下述步驟:依據不完整的網路封包的檔頭,得到不完整的網路封包的一酬載長度;以及依據酬載長度,寫入一虛擬值(dummy)作為不完整的網路封包的酬載。
還原程序另可包括以下步驟。當不完整的網路封包具有不完整的檔頭時,執行下述步驟:依據與不完整的網路封包對應的網路連線的其他網路封包,修復不完整的網路封包的檔頭;依據不完整的網路封包的檔頭,得到不完整的網路封包的酬載長度;以及依據酬載長度,寫入虛擬值作為不完整的網路封包的酬載。
還原程序並可包括以下步驟。依據網路連線的網路封包的檔頭的一序號(sequence number)以及一確認號(acknowledgement number),找出被漏錄(capture loss)的至少一漏錄封包;依據與漏錄封包對應的網路連線的其他網路封包,修復漏錄封包的檔頭;依據漏錄封包的檔頭,得到漏錄封包的酬載長度;以及依據酬載長度,寫入虛擬值作為漏錄封包的酬載。
而其中虛擬值係可以為亂數。
根據本發明之一實施範例,錄製、還原與重播網路流量的方法另可包括一選擇性重播程序,而其可包括以下步驟。接收一事件時間以及一網路連線資訊,其中網路連線資訊包括至少一網路連線位址;以及重播與網路連線位址對應的至少一個網路連線的網路封包。
選擇性重播程序另可包括:依據網路連線資訊的網路連線位址、一網路連線協定以及一網路連線埠,得到這些網路連線中的一特定連線;以及重播特定連線的網路封包。
選擇性重播程序並可包括:重播在事件時間時,正在傳輸的至少一個網路連線的網路封包。
選擇性重播程序又可包括:重播在事件時間之前結束傳輸的至少一個網路連線的網路封包。
其中上述之網路連線位址係可為網際網路協定位址(IP address)。而這些網路連線可為符合傳輸控制協定(Transmission Control Protocol,TCP)或使用者資料協定(User Datagram Protocol,UDP)。
綜上所述,本發明所提供之錄製、還原與重播網路流量的方法能夠解決浪費儲存空間以及無法精準重現網路事件等問題。錄製程序錄製較有價值的網路流量,而節省了絕大的儲存空間。還原程序亦可將錄製程序省略或漏錄的網路封包修復,以得到符合網路通訊協定之完整的網路封包。且選擇性重播程序能找出與網路事件最相關之網路連線的技術,以精準並快速地重現網路事件。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。
本發明提供一種錄製、還原與重播網路流量的方法,其用以處理多個網路連線(connection)的多個網路封包(packet)。其中網路連線可以是符合傳輸控制協定檔頭(Transmission Control Protocol,TCP)或是使用者資料協定(User Datagram Protocol,UDP)的網路連線。而網路封包係指網際網路層(Internet Protocol layer,IP layer)的網路封包。
錄製、還原與重播網路流量的方法包括一錄製程序,以針對每一個網路連線錄製這些網路連線的網路封包。對於每一個網路連線,錄製程序僅錄製網路連線中較有價值的封包的部分,而能夠節省大量的儲存空間。
錄製、還原與重播網路流量的方法另可包括一還原程序或是一選擇性重播程序。其中還原程序係用以針對每一個網路連線修復網路連線的網路封包,而選擇性重播程序則由已錄製的網路連線的封包之中,選擇性地重播部分封包以重現一網路事件。其中網路事件例如為網路中的攻擊事件(attack event)、病毒事件(virus event)、點對點應用(peer-to-peer application,P2P application)或是連線中斷事件等。
請參照「第1圖」,其係為根據本發明一實施範例之錄製、還原與重播網路流量的方法之流程圖。如「第1圖」所示,錄製、還原與重播網路流量的方法可依照執行錄製程序(步驟S300)、執行還原程序(步驟S400)以及執行選擇性重播程序(步驟S500)的步驟。然而本發明提供之錄製程序、還原程序以及選擇性重播程序可個別單獨地執行,亦可以任意順序組合後執行之。舉例而言,選擇性重播程序可直接播放已被完整錄製的網路流量資訊;或是執行錄製程序時可同時執行還原程序,以得到較完整的網路流量資訊。
接下來藉由「第2圖」說明錄製程序之步驟,「第2圖」係為根據本發明一實施範例之錄製程序之流程圖。
首先接收一錄製參數(N,M,P),其中N、M以及P係為大於等於零的整數(步驟S310)。錄製程序可使用相同的錄製參數錄製所有網路連線的網路封包,亦可對於每一個網路連線配置不同的錄製參數以錄製網路封包。錄製程序先完整地錄製這些網路連線的每一個網路封包的一檔頭(header)以及一酬載(payload),並累計每一個網路連線的一酬載總值(步驟S320)。換句話說,於步驟S320中,網路封包的檔頭以及酬載均被完整地錄製。酬載總值係為目前已錄製之網路封包之酬載的總大小,單位可以是位元組(byte)。
錄製程序在錄製網路封包時,同時不斷地判斷酬載總值是否超過錄製參數的N(步驟S330)。若酬載總值之一(也就是任意一個網路連線的酬載總值)尚未超過N,則繼續完整地抓取網路封包的內容。而當酬載總值之一超過N時,對與超過N的此酬載總值對應的網路連線的連續P個網路封包錄製每一個網路封包的檔頭,以及酬載的前M個位元組(步驟S340)。換句話說,當發現對一個網路連線所錄製的網路封包的酬載的累積大小超過N時,對於此網路連線的接下來的P個網路封包便僅錄製其檔頭及酬載的前M個位元組。
而當酬載總值之一超過N並對與超過N的此酬載總值對應的網路連線連續錄製P個網路封包之後,對與酬載總值對應的網路連線的網路封包錄製每一個網路封包的檔頭(步驟S350)。換言之,於步驟S340錄製P個不完整的網路封包後,對於此網路連線的接下來所有的網路封包僅錄製其檔頭,而不在錄製網路封包的酬載。
由於錄製程序依據錄製參數省略了網路連線中後續網路封包的酬載,因此可以大幅減少錄製網路流量時所需的儲存空間。且錄製程序既有錄製所有網路封包的檔頭以及網路連線前期之酬載內容,因此錄製的網路流量的內容是有價值且足以提供給後續程序分析或重播之用的。
錄製參數(N,M,P)係可由實驗法得到,且不同的網路事件可能適合使用不同的值。更詳細地說,對於不同種的網路事件,可逐一測試並調整N、M以及P的值,以得到最省空間又能精準重現網路事件的錄製參數。
以針對攻擊事件之錄製參數為例,請參照「第3A圖」以及「第3B圖」,其分別為根據本發明一實施範例之錄製參數驗證圖。其中可見一網路事件-N值曲線20、一成功重現網路事件-N值曲線21以及一耗費的儲存空間-N值曲線22。
假設在所有錄製到的網路流量中總共發現了1929件攻擊事件,其中有333件攻擊事件的酬載的長度是超過2000 bytes。首先以(N,0,0)的錄製參數進行實驗。也就是說播放所錄製之網路流量中每個網路連線之酬載的前N個bytes,以實驗這333件的攻擊事件是否可以被重現。而實驗的結果如「第3A圖」。當N為2000時即可重現317個攻擊事件,而對於剩下未能重現的16個攻擊事件須要很大的N值才能重現。對此以另一個實驗來看為了要觸發這16個攻擊事件所需要耗費的儲存空間大小,而實驗結果如「第3B圖」。為了要觸發所有的攻擊事件,則必須以很大的N值而耗費相當大的儲存空間才可達成。
接下來針對無法以錄製參數(50000,0,0)重現之四個攻擊事件,以錄製參數(0,M,∞)進行試驗,也就是重播每個網路封包的前M bytes的。實驗結果如下表。
由上表可以知悉,當M為200時,便可以重現其中的三個攻擊事件。此外,再以錄製參數(2000,M,∞)實驗之前以錄製參數(2000,0,0)無法重現的16個攻擊事件,結果如「第3C圖」。由「第3C圖」中的一網路事件-M值曲線23可以知悉,當M為200 bytes時即可重現其中的11的攻擊事件。
接著在實驗中調整P,找出以錄製參數(2000,200,∞)重播時,所需要耗費的儲存空間大小以及網路事件之觸發數量之間的關係。實驗結果如「第3D圖」所示。其中可見一成功重現網路事件-P值曲線24以及一耗費的儲存空間-P值曲線25。當P為1300時,11個攻擊事件皆可被重現。且相較於習知之錄製所有網路封包的做法,當P為1300時,可節省87%的儲存空間。而當P為200時,則可重現8個攻擊事件且節省90%的儲存空間。
總結來說,對於攻擊事件的網路事件而言,錄製參數(2000,200,1300)可以觸發98.5%的網路事件。且相較於錄製所有封包的習知技術,能夠節省87%的儲存空間。以類似的方法進行實驗之後,可知對於病毒事件型的網路事件,錄製參數(6000,0,0)能夠觸發93%的網路事件並較習知節省70%的儲存空間。再例如對於點對點應用,則適合以酬載包含UDP資料之網路封包為主進行錄製。
請參照「第4圖」,其係為根據本發明一實施範例之錄製裝置之方塊圖。錄製程序可被實作於一錄製裝置30,其中錄製裝置30可包括一連線追蹤模組(connection track module)32、一封包擷取資料庫(process characterization analysis package database,或稱為packet capture database,PCAP database,PCAP資料庫)34以及一網路卡(network interface card,NIC)36。
錄製裝置30可與一外部網路以及一內部網路連接,以擷取並錄製在外部網路以及內部網路之間流通之網路連線的網路封包。連線追蹤模組32透過網路卡36得到這些網路封包,依據上述錄製程序之步驟將網路封包錄製為PCAP檔案,並將PCAP檔案存進PCAP資料庫34中。雖本說明書中以PCAP檔案以及PCAP資料庫34為例,然亦可使用其他用以紀錄網路流量之資料庫以及對應的檔案格式。
錄製、還原與重播網路流量的方法並可包括還原程序。請參照「第5圖」,其係為根據本發明一實施範例之還原程序之流程圖。
錄製程序可能為節省儲存空間而故意捨去部分的網路封包的資料。因此在依據這些網路封包播放(重現)網路流量前,需要先經由此還原程序經以錄製的網路封包確認其是否完整。完整的網路封包可直接轉交給選擇性重播程序;而不完正的網路封包則由還原程序處理過後,再提供給選擇性重播程序。
還原程序首先藉由檔頭之封包總長度(total length)欄位等資訊,判斷目前的網路封包的檔頭以及酬載是否完整(步驟S410)。若網路封包本身係為完整,便不需對其進行處理。若網路封包不完整,則進一步藉由檔頭長度(header length,HLEN)欄位等資訊判斷此不完整的網路封包是否具有完整的檔頭(步驟S415)。
當不完整的網路封包具有完整的檔頭時,則依據不完整的網路封包的檔頭,得到不完整的網路封包的一酬載長度(步驟S425)。還原程序再依據酬載長度,寫入一虛擬值(dummy)作為不完整的網路封包的酬載(步驟S430)。更詳細地說,將不完整的網路封包的檔頭中紀錄之封包總長度減去檔頭長度即可獲得酬載長度。而作為網路封包之酬載的虛擬值則可為亂數。
而當不完整的網路封包具有不完整的檔頭時,則需先依據與此不完整的網路封包對應的網路連線的其他網路封包,修復不完整的網路封包的檔頭(步驟S420)。屬於同一個網路連線的網路封包之檔頭的內容大多雷同,例如這些檔頭會具有相同的來源IP位址(Source IP address)、目的IP位址(destination IP address)、通訊協定(Protocol)、存活時間(time to live)或是旗標值(flags),因此參考同一個網路連線的其他網路封包,可修復不完整的檔頭。對於檔頭中HLEN及total length這兩個欄位值的修復,可以利用「total length=HLEN+酬載長度」此關係算出。識別碼(identification)欄位值的算法是對應同一個來源端,每增加一個網路封包identification欄位值就加1;因此可以藉由前後同樣來源端的網路封包的identification欄位值來計算得到。最後,便可對修復中的網路封包進行一次校驗和(checksum)的計算,以修復檔頭中checksum欄位值。如此一來,便可依據修復好的檔頭執行上述步驟S425以及步驟S430,以得到修復好的整個網路封包。
此之外,還原程序並能檢測出是否有在錄製時漏錄(capture loss)的一漏錄封包並修復之。因為一時網路流量過高等情形,亦可能會產生不完整的網路封包,甚至是完全被漏錄的漏錄封包。對於TCP,依據拆解酬載後可得到傳輸控制協定檔頭(TCP header)之一序號(sequence number)以及一確認號(acknowledgement number),還原程序能夠發現是否有網路封包被漏錄。至於UDP,則無法發現網路封包是否發生了漏錄的情形。
請參照「第6圖」,其係為根據本發明另一實施範例之還原程序之流程圖。
還原程序可先依據網路連線的網路封包的檔頭的序號以及確認號,判斷是否有漏錄封包(步驟S435)。若沒發現漏錄封包,則執行步驟S410及後續步驟。
若還原程序找到至少一個漏錄封包,則以下述步驟修復漏錄封包:依據與漏錄網路封包對應的網路連線的其他網路封包,修復漏錄網路封包的檔頭(步驟S440);依據漏錄網路封包的檔頭,得到漏錄網路封包的酬載長度(步驟S445);以及依據酬載長度,寫入虛擬值作為漏錄網路封包的酬載(步驟S450)。
更詳細地說,根據TCP通訊協定,對於來源IP位址與目的IP位址固定之同一網路連線中的一個網路封包,其序號會是前一個網路封包的序號加上前一個網路封包的資料長度(data length)。下表為一實施範例之網路連線的網路封包表,依序表示此網路連線內的連續多個網路封包及其具有的序號及確認號等資訊。
如表所示,網路封包2的序號會是網路封包1的序號加上網路封包1的資料長度(10 byte)。
假設網路封包4為漏錄封包,則還原程序會得到網路封包1-3以及5-6。其中由同為由A到B之網路封包2以及5的序號可以得知,其中應具有一個資料長度為(a+20)-(a+10)的網路封包,也就是網路封包4。藉由上述邏輯,還原程序可找出漏錄封包,並依據同一網路連線的其他網路封包修復整個漏錄封包。
由此可見,還原程序可透過網路協定之特性找出錄製網路流量時省略或漏錄的網路封包,並提高網路流量其行為的準確性。
得到完整的網路流量之後,選擇性重播程序重播部分的網路流量以精準地重現網路事件。為了避免需重播所有已錄製之網路封包所耗費的時間,選擇性重播程序依據網路事件之相關資訊,逆向操作挑選出部分可能足以重現網路事件之關鍵的網路流量(即網路封包)並重播之。
請參照「第7圖」,其係為根據本發明一實施範例之選擇性重播程序之流程圖。
選擇性重播程序首先接收網路事件的一事件時間以及一網路連線資訊(步驟S510),其中網路連線資訊包括至少一網路連線位址。接著依據網路連線位址,重播與網路連線位址對應的至少一個網路連線的網路封包(步驟S520)。其中網路連線位址可以是網際網路協定位址(IP address),且其可包括來源IP位址以及目標IP位址。
更詳細地說,選擇性重播程序在已錄製的網路連線之中尋找具有與接收之網路連線位址相同的來源IP位址以及目標IP位址的網路連線(網路封包),並重播之。
請再參照「第8圖」,其係為根據本發明另一實施範例之選擇性重播程序之流程圖。於本實施範例中,選擇性重播程序逐漸增加播放的網路封包直到成功地重現被指定之網路事件為止。
網路連線資訊除了網路連線位址之外,另可包括一網路連線協定以及一網路連線埠(port);其中網路連線埠可包括一來源埠以及一目的埠。而依據此5維資訊(即來源IP位址、目的IP位址、通訊協定、來源埠以及目的度埠),便可指定一特定連線。
因此當網路連線資訊包含上述5維資訊時,選擇性播放程序可依據網路連線資訊的網路連線位址、網路連線協定以及網路連線程序,得到網路連線中的特定連線(步驟S512);並重播此特定連線的網路封包(步驟S514)。
選擇性播放程序並判斷是否已重現網路事件(步驟S516)。當僅重播此特定連線之封包不足以重現網路事件,或是當網路連線資訊不足以指定特定連線時,則依據網路連線位址重播與網路連線位址對應的至少一個網路連線的網路封包(步驟S520)。於步驟S520中,可重播所有與網路連線位址對應的所有網路連線,以嘗試重現網路事件。
於步驟S522再次重新判斷是否已重現網路事件。若仍未成功,則重播在事件時間時,正在傳輸的至少一個網路連線的網路封包(步驟S524)。根據事件時間,選擇性重播程序可重播所有其他在網路事件發生時正在傳輸中的網路連線,以嘗試重現網路事件。
類似地,於步驟S526再次重新判斷是否已重現網路事件。若仍未成功,則重播在事件時間之前結束傳輸的至少一個網路連線的網路封包(步驟S528)。
且根據本發明之一實施範例,若於步驟S528之後仍未成功地重現網路事件,選擇性播放程序重播所有的網路封包,以重現網路事件。
請對照參考「第9圖」,其係為根據本發明一實施範例之選擇性播放之示意圖。根據事件時間62以及網路連線資訊,選擇性播放程序由多個網路連線60中選擇性地播放,以重現網路事件。假設根據網路連線資訊,可以得到特定連線為網路連線60e,且網路連線60e係為主機A與B之間的連線。則依據「第8圖」的流程,選擇性重播程序將會依照網路連線60e、網路連線60a、網路連線60c、網路連線60b以及網路連線60d的順序重播這些網路連線60。
根據本發明之還原程序以及選擇性重播程序可實作為一選擇性播放裝置。請參照「第10圖」,其係為根據本發明一實施範例之選擇性重播裝置之方塊圖。一選擇性重播裝置40可包括一選擇性重播介面(selective replay interface)41、一前處理器(preprocessor)42、連線追蹤模組43、一漏錄修復引擎(loss-recovery engine)44、一重播引擎(replay engine)45、一插座應用程式介面(socket application program interface,socket API)46、一路由模組(routing module)47、一驗證模組(validate source)48、網路卡49a、網路卡49b、PCAP資料庫422以及一重播紀錄(replay log)452。且選擇性重播裝置40係藉由網路卡49a以及49b提供重播之網路封包給一待測裝置(device under test)50。
選擇性重播介面41係提供給使用者指定事件時間62或是網路連線資訊,並將這些資訊傳送給前處理器42。前處理器42並由PCAP資料庫422中得到已錄製好的網路流量,再將網路流量中完整的TCP資料段(TCP segment)或UDP資料塊(UDP datagram)提供給連線追蹤模組43。連線追蹤模組43紀錄網路連線60的各種狀態,並將由目前之網路封包之酬載得到的TCP或UDP檔頭的內容提供給漏錄修復引擎44。漏錄修復引擎44則執行還原程序,判斷目前之網路封包是否完整,或是是否有漏錄之封包。有必要時,漏錄修復引擎44修復網路封包。且漏錄修復引擎44負責確定所以的網路封包的重播順序。
如此一來,重播引擎45得到完整的資料流(stream),並透過插座應用程式介面46將用以重播的資料傳出去。選擇性重播裝置40可透過路由模組47以及網路卡49a重播網路流量予待測裝置50;並可透過網路卡49b以及驗證模組48回收由待測裝置50發送之網路封包。經待測裝置50回到選擇性重播裝置40的網路封包可由驗證模組48轉送給插座應用程式介面46,以判斷網路封包是否有被修改過,進而確保網路協定的正確性。
根據本發明之一實施範例,重播引擎45係在確認先前送出之網路封包以被回收後,才重播下一個網路封包給待測裝置50。且重播完網路連線60時,可將此網路連線60之開始連線以及結束連線的時間紀錄於重播紀錄452中。
綜上所述,本發明所提供之錄製、還原與重播網路流量的方法可包括錄製程序、還原程序以及選擇性重播程序。其能夠解決習知技術之浪費龐大儲存空間以及無法精準重現網路事件等問題。藉由錄製參數,錄製程序僅錄製較有價值的網路流量,而節省了絕大的儲存空間。對於錄製程序省略或漏錄的網路封包,還原程序亦可將其修復回符合網路通訊協定之完整的網路封包。而藉由找出與網路事件最相關之網路連線的技術,選擇性重播程序可精準並快速地重現網路事件,進而大幅減少測試測試裝置所需的時間。
雖然本發明以前述之較佳實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
20...網路事件-N值曲線
21...成功重現網路事件-N值曲線
22...耗費的儲存空間-N值曲線
23...網路事件-M值曲線
24...成功重現網路事件-P值曲線
25...耗費的儲存空間-P值曲線
30...錄製裝置
32...連線追蹤模組
34...封包擷取資料庫
36...網路卡
40...選擇性重播裝置
41...選擇性重播介面
42...前處理器
422...封包擷取資料庫
43...連線追蹤模組
44...漏錄修復引擎
45...重播引擎
452...重播紀錄
46...插座應用程式介面
47...路由模組
48...驗證模組
49a,49b...網路卡
50...待測裝置
60,60a,60b,60c,60d...網路連線
62...事件時間
第1圖係為根據本發明一實施範例之錄製、還原與重播網路流量的方法之流程圖;
第2圖係為根據本發明一實施範例之錄製程序之流程圖;
第3A圖係為根據本發明一實施範例之錄製參數驗證圖;
第3B圖係為根據本發明一實施範例之錄製參數驗證圖;
第3C圖係為根據本發明一實施範例之錄製參數驗證圖;
第3D圖係為根據本發明一實施範例之錄製參數驗證圖;
第4圖係為根據本發明一實施範例之錄製裝置之方塊圖;
第5圖係為根據本發明一實施範例之還原程序之流程圖;
第6圖係為根據本發明另一實施範例之還原程序之流程圖;
第7圖係為根據本發明一實施範例之選擇性重播程序之流程圖;
第8圖係為根據本發明另一實施範例之選擇性重播程序之流程圖;
第9圖係為根據本發明一實施範例之選擇性播放之示意圖;以及
第10圖係為根據本發明一實施範例之選擇性重播裝置之方塊圖。
Claims (22)
- 一種錄製網路流量的方法,用以處理多個網路連線的多個網路封包,該方法包括:一錄製程序,包括:接收一錄製參數(N,M,P),其中N、M以及P係為大於等於零的整數;完整錄製該些網路連線的每一該網路封包的一檔頭以及一酬載,並累計每一該網路連線的一酬載總值;當該酬載總值之一超過N時,對與該酬載總值對應的該網路連線的連續P個該些網路封包錄製每一該網路封包的該檔頭,以及該酬載的前M個位元組;以及當該酬載總值之一超過N並對與該酬載總值對應的該網路連線連續錄製P個該些網路封包之後,對與該酬載總值對應的該網路連線的該些網路封包錄製每一該網路封包的該檔頭。
- 如申請專利範圍第1項所述之錄製網路流量的方法,其中針對攻擊事件的該錄製參數為(2000,200,1300)。
- 如申請專利範圍第1項所述之錄製網路流量的方法,其中針對病毒事件的該錄製參數為(6000,0,0)。
- 如申請專利範圍第1項所述之錄製網路流量的方法,其中該些網路連線係符合傳輸控制協定或使用者資料協定。
- 一種錄製與還原網路流量的方法,用以處理多個網路連線的多個網路封包,該方法包括:一錄製程序,包括:接收一錄製參數(N,M,P),其中N、M以及P係為大於等於零的整數;完整錄製該些網路連線的每一該網路封包的一檔頭以及一酬載,並累計每一該網路連線的一酬載總值;當該酬載總值之一超過N時,對與該酬載總值對應的該網路連線的連續P個該些網路封包錄製每一該網路封包的該檔頭,以及該酬載的前M個位元組;以及當該酬載總值之一超過N並對與該酬載總值對應的該網路連線連續錄製P個該些網路封包之後,對與該酬載總值對應的該網路連線的該些網路封包錄製每一該網路封包的該檔頭;以及一還原程序,包括:逐一檢查該些網路封包的該些檔頭以及該些酬載是否完整;當得到至少一個不完整的該網路封包時,判斷其是否具有完整的該檔頭;以及當不完整的該網路封包具有完整的該檔頭時,執行下述步驟:依據不完整的該網路封包的該檔頭,得到不完整的該網路封包的一酬載長度;以及依據該酬載長度,寫入一虛擬值作為不完整的該網路封包的該酬載。
- 如申請專利範圍第5項所述之錄製與還原網路流量的方法,其中針對攻擊事件的該錄製參數為(2000,200,1300)。
- 如申請專利範圍第5項所述之錄製與還原網路流量的方法,其中針對病毒事件的該錄製參數為(6000,0,0)。
- 如申請專利範圍第5項所述之錄製與還原網路流量的方法,其中該些網路連線係符合傳輸控制協定或使用者資料協定。
- 如申請專利範圍第5項所述之錄製與還原網路流量的方法,其中該還原程序另包括:當不完整的該網路封包具有不完整的該檔頭時,執行下述步驟:依據與不完整的該網路封包對應的該網路連線的其他該些網路封包,修復不完整的該網路封包的該檔頭;依據不完整的該網路封包的該檔頭,得到不完整的該網路封包的該酬載長度;以及依據該酬載長度,寫入該虛擬值作為不完整的該網路封包的該酬載。
- 如申請專利範圍第5項所述之錄製與還原網路流量的方法,其中該還原程序另包括:依據該些網路連線的該些檔頭的一序號以及一確認號,找出被漏錄的至少一漏錄封包;依據與該漏錄封包對應的該網路連線的其他該些網路封包,修復該漏錄封包的該檔頭;依據該漏錄封包的該檔頭,得到該漏錄封包的該酬載長度;以及依據該酬載長度,寫入該虛擬值作為該漏錄封包的該酬載。
- 如申請專利範圍第5項所述之錄製與還原網路流量的方法,其中該虛擬值係為亂數。
- 還原與重播網路流量的方法,用以處理多個網路連線的多個網路封包,該方法包括:一錄製程序,包括:接收一錄製參數(N,M,P),其中N、M以及P係為大於等於零的整數;完整錄製該些網路連線的每一該網路封包的一檔頭以及一酬載,並累計每一該網路連線的一酬載總值;當該酬載總值之一超過N時,對與該酬載總值對應的該網路連線的連續P個該些網路封包錄製每一該網路封包的該檔頭,以及該酬載的前M個位元組;以及當該酬載總值之一超過N並對與該酬載總值對應的該網路連線連續錄製P個該些網路封包之後,對與該酬載總值對應的該網路連線的該些網路封包錄製每一該網路封包的該檔頭;一還原程序,包括:逐一檢查該些網路封包的該些檔頭以及該些酬載是否完整;當得到至少一個不完整的該網路封包時,判斷其是否具有完整的該檔頭;以及當不完整的該網路封包具有完整的該檔頭時,執行下述步驟:依據不完整的該網路封包的該檔頭,得到不完整的該網路封包的一酬載長度;以及依據該酬載長度,寫入一虛擬值作為不完整的該網路封包的該酬載;以及一重播程序,包括:接收一事件時間以及一網路連線資訊,其中該網路連線資訊包括至少一網路連線位址;以及重播與該網路連線位址對應的至少一個該網路連線的該些網路封包。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中針對攻擊事件的該錄製參數為(2000,200,1300)。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中針對病毒事件的該錄製參數為(6000,0,0)。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該些網路連線係符合傳輸控制協定或使用者資料協定。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該還原程序另包括:當不完整的該網路封包具有不完整的該檔頭時,執行下述步驟:依據與不完整的該網路封包對應的該網路連線的其他該些網路封包,修復不完整的該網路封包的該檔頭;依據不完整的該網路封包的該檔頭,得到不完整的該網路封包的該酬載長度;以及依據該酬載長度,寫入該虛擬值作為不完整的該網路封包的該酬載。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該還原程序另包括:依據該些網路連線的該些檔頭的一序號以及一確認號,找出被漏錄的至少一漏錄封包;依據與該漏錄封包對應的該網路連線的其他該些網路封包,修復該漏錄封包的該檔頭;依據該漏錄封包的該檔頭,得到該漏錄封包的該酬載長度;以及依據該酬載長度,寫入該虛擬值作為該漏錄封包的該酬載。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該虛擬值係為亂數。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該重播程序另包括:依據該網路連線資訊的該網路連線位址、一網路連線協定以及一網路連線埠,得到該些網路連線中的一特定連線;以及重播該特定連線的該些網路封包。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該重播程序另包括:重播在該事件時間時,正在傳輸的至少一個該網路連線的該些網路封包。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該重播程序另包括:重播在該事件時間之前結束傳輸的至少一個該網路連線的該些網路封包。
- 如申請專利範圍第12項所述之錄製、還原與重播網路流量的方法,其中該網路連線位址係為網際網路協定位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099121944A TWI428034B (zh) | 2010-07-02 | 2010-07-02 | 錄製、還原與重播網路流量的方法 |
US12/884,826 US8505098B2 (en) | 2010-07-02 | 2010-09-17 | Method for recording, recovering, and replaying real traffic |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099121944A TWI428034B (zh) | 2010-07-02 | 2010-07-02 | 錄製、還原與重播網路流量的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201204080A TW201204080A (en) | 2012-01-16 |
TWI428034B true TWI428034B (zh) | 2014-02-21 |
Family
ID=45400799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099121944A TWI428034B (zh) | 2010-07-02 | 2010-07-02 | 錄製、還原與重播網路流量的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8505098B2 (zh) |
TW (1) | TWI428034B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101891981B1 (ko) * | 2011-10-07 | 2018-10-04 | 한국전자통신연구원 | 온라인 게임 패킷 분석 시스템 및 방법 |
US8938535B2 (en) * | 2012-06-01 | 2015-01-20 | National Chiao Tung University | System for real traffic replay over wireless networks |
US10735453B2 (en) | 2013-11-13 | 2020-08-04 | Verizon Patent And Licensing Inc. | Network traffic filtering and routing for threat analysis |
US9654445B2 (en) | 2013-11-13 | 2017-05-16 | ProtectWise, Inc. | Network traffic filtering and routing for threat analysis |
US9516049B2 (en) * | 2013-11-13 | 2016-12-06 | ProtectWise, Inc. | Packet capture and network traffic replay |
US10404730B1 (en) * | 2016-02-22 | 2019-09-03 | Vectra Networks, Inc. | High-volume network threat trace engine |
US10594661B1 (en) * | 2017-06-13 | 2020-03-17 | Parallels International Gmbh | System and method for recovery of data packets transmitted over an unreliable network |
CN110489211A (zh) * | 2019-08-16 | 2019-11-22 | 杭州安恒信息技术股份有限公司 | 基于文件过滤驱动框架的回放方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049899A1 (en) * | 1998-09-01 | 2002-04-25 | Stacy Kenworthy | Network attached device with dedicated firewall security |
US20040090923A1 (en) * | 2002-11-07 | 2004-05-13 | Chao Kan | Network monitoring system responsive to changes in packet arrival variance and mean |
US20050240656A1 (en) * | 2001-02-12 | 2005-10-27 | Blair Christopher D | Packet data recording method and system |
US7376969B1 (en) * | 2002-12-02 | 2008-05-20 | Arcsight, Inc. | Real time monitoring and analysis of events from multiple network security devices |
US20090252050A1 (en) * | 2006-08-17 | 2009-10-08 | Dolby Laboratories Licensing Corporation | Transient analysis of packet queuing loss in a broadcast network |
US7653006B1 (en) * | 2007-03-12 | 2010-01-26 | Deja Vu Networks, Inc. | Network traffic capture and replay with transaction integrity and scaling |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453345B2 (en) * | 1996-11-06 | 2002-09-17 | Datadirect Networks, Inc. | Network security and surveillance system |
US7743415B2 (en) * | 2002-01-31 | 2010-06-22 | Riverbed Technology, Inc. | Denial of service attacks characterization |
US20050060295A1 (en) * | 2003-09-12 | 2005-03-17 | Sensory Networks, Inc. | Statistical classification of high-speed network data through content inspection |
KR20110063819A (ko) * | 2008-09-04 | 2011-06-14 | 파워웨이브 코그니션, 인크. | 모바일, 브로드밴드 라우팅가능 인터넷용 애플리케이션 |
-
2010
- 2010-07-02 TW TW099121944A patent/TWI428034B/zh not_active IP Right Cessation
- 2010-09-17 US US12/884,826 patent/US8505098B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049899A1 (en) * | 1998-09-01 | 2002-04-25 | Stacy Kenworthy | Network attached device with dedicated firewall security |
US20050240656A1 (en) * | 2001-02-12 | 2005-10-27 | Blair Christopher D | Packet data recording method and system |
US20040090923A1 (en) * | 2002-11-07 | 2004-05-13 | Chao Kan | Network monitoring system responsive to changes in packet arrival variance and mean |
US7376969B1 (en) * | 2002-12-02 | 2008-05-20 | Arcsight, Inc. | Real time monitoring and analysis of events from multiple network security devices |
US20090252050A1 (en) * | 2006-08-17 | 2009-10-08 | Dolby Laboratories Licensing Corporation | Transient analysis of packet queuing loss in a broadcast network |
US7653006B1 (en) * | 2007-03-12 | 2010-01-26 | Deja Vu Networks, Inc. | Network traffic capture and replay with transaction integrity and scaling |
Also Published As
Publication number | Publication date |
---|---|
US20120005754A1 (en) | 2012-01-05 |
US8505098B2 (en) | 2013-08-06 |
TW201204080A (en) | 2012-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI428034B (zh) | 錄製、還原與重播網路流量的方法 | |
CN112468370B (zh) | 一种支持自定义规则的高速网络报文监测分析方法及系统 | |
JP5018663B2 (ja) | 遅延時間計測装置、遅延時間計測プログラム、および遅延時間計測方法 | |
US8396962B2 (en) | Game grammar-based packet capture and analysis apparatus and method for conducting game test | |
CN112039904A (zh) | 一种网络流量分析与文件提取系统及方法 | |
US7013251B1 (en) | Server recording and client playback of computer network characteristics | |
US20100095370A1 (en) | Selective packet capturing method and apparatus using kernel probe | |
CN113067743B (zh) | 流规则提取方法、装置、系统及存储介质 | |
US20070226483A1 (en) | System and method for storing and/or transmitting emulated network flows | |
CN109347892B (zh) | 一种互联网工业资产扫描处理方法及装置 | |
US20140026123A1 (en) | Systems and methods for replication of test results in a network environment | |
Lin et al. | Low-storage capture and loss recovery selective replay of real flows | |
US20090271171A1 (en) | Emulator device, and a method for testing a test target device | |
CN117278452A (zh) | 一种流量录制与回放的方法、装置、电子设备和计算机存储介质 | |
CN104618192A (zh) | 数据库审计设备的测试方法和装置 | |
CN112422515B (zh) | 一种协议漏洞的测试方法、装置及存储介质 | |
US20150172225A1 (en) | Packet storage method, information processing apparatus, and non-transitory computer-readable storage medium | |
CN113438503B (zh) | 视频文件还原方法、装置、计算机设备和存储介质 | |
CN113760753B (zh) | 基于灰盒模糊技术的quic协议测试方法 | |
CN102347933B (zh) | 录制、还原与重播网络流量的方法 | |
CN105610639A (zh) | 全量日志抓取方法及装置 | |
US20130028262A1 (en) | Method and arrangement for message analysis | |
WO2007010593A1 (ja) | Tcpセッションエミュレーション装置 | |
CN114070633A (zh) | 一种地址扫描行为检测方法及装置 | |
JP2010109746A (ja) | データ受信装置、データ受信方法、及びデータ受信プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |