TWI766690B - 封包產生方法及封包產生系統之設定方法 - Google Patents
封包產生方法及封包產生系統之設定方法 Download PDFInfo
- Publication number
- TWI766690B TWI766690B TW110117951A TW110117951A TWI766690B TW I766690 B TWI766690 B TW I766690B TW 110117951 A TW110117951 A TW 110117951A TW 110117951 A TW110117951 A TW 110117951A TW I766690 B TWI766690 B TW I766690B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- packet
- encoded
- array
- value
- Prior art date
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本案提出一種封包產生方法及一種封包產生系統之設定方法。所述封包產生系統之設定方法包含: 讀取一流量事件檔案;自該流量事件檔案提取至少一原始封包;編碼該至少一原始封包,而產生至少一第一編碼封包;根據一預設填寫規則將該至少一第一編碼封包寫入一第一陣列;將一元素資料輸入一生成器,使該生成器產生一第二陣列;將該第一陣列及該第二陣列輸入一辨識器,使該辨識器產生一評分值;以及將該評分值回饋至該生成器,以調整該生成器之一權重。
Description
本發明是有關一種網路封包之封包產生方法。
第五代行動通訊朝向了一種應用於特定目的且獨立運作的網路型態發展,以滿足各式產業垂直應用對網路效能的不同需求。垂直應用場景涵蓋交通,智慧制造,智慧工廠,智慧物流等,對於5G網路未來發展之方向是將傳統需要依靠人力操作的設備與5G網路結合,並爲不同應用提供不同的專網環境,實現設備自動化,以達到增加生產效率或是節省人力等優勢。
在5G專用網路建置完成後,需要對專網系統進行完整的端到端測試,以協助專網用戶從應用層角度評估專網布建與垂直應用導入後,布建好的專網是否能夠滿足應用對效能的需求。由於專網客戶關心的是應用的使用體驗而不是單純的性能指標數值,因此需要對待測的專網場景之終端應用流量進行模擬,也就是以受控的方式盡可能的在測試階段模擬實際專網終端在線運作的情境,將模擬應用流量注入網路,所產生的模擬流量能夠提供給後續的應用效能數據分析使用。由於後續的分析是基於注入專網系統的流量,所生成之流量行為需與特定專網服務之應用的流量行為相同。因此,傳統生成應用無關流量的流量產生器將無法滿足後續數據分析的需求。
另一方面,5G垂直專網環境中,可能存在各種不同類型的終端。舉例而言,智慧工廠具備的元件非常多,包含無人搬運車、生產線設備、甚至安裝在機器人上的感測器,這些元件都具備了特殊性而難以取得,因此難以透過應用行爲建立流量模型,這也是為什麼一般對於應用行爲建模的習知流量模擬方法通常針對於消費級應用,而非針對於企業應用。
最後,由於每種應用存在不同的行為,這些應用行為將反映到流量行為特徵之間的關係,以致應用行為的專一性和流量產生器設計目標的通用性互相矛盾。更確切的說,由於生成的流量最終是要做為使用者體驗分析輸入數據,因此應用行為的專一性倍受重視,這將導致習知流量模擬方法需要對每一個應用建立流量模型,而無法透過提出一種通用方法生成所有應用流量。
有鑑於此,申請人提出一種封包產生系統之設定方法。所述封包產生系統之設定方法包含讀取一流量事件檔案;自該流量事件檔案提取至少一原始封包;編碼該至少一原始封包,而產生至少一第一編碼封包;根據一預設填寫規則將該至少一第一編碼封包寫入一第一陣列;將一元素資料輸入一生成器,使該生成器產生一第二陣列;將該第一陣列及該第二陣列輸入一辨識器,使該辨識器產生一評分值;以及將該評分值回饋至該生成器,以調整該生成器之一權重。
申請人還提出一種封包產生方法。所述封包產生方法包含應用前述之該生成器產生該第二陣列,該第二陣列包含至少一第二編碼封包;根據一預設讀取規則自該第二陣列讀取該至少一第二編碼封包;以及解碼該至少一第二編碼封包,而產生至少一生成封包。
圖1係依據一些實施例之封包產生系統之方塊示意圖,請參照圖1。封包產生系統3可以是但不限於應用在電腦、手機、平板電腦、伺服器或嵌入式電路等裝置之程式。依據一些實施例,封包產生系統3儲存在非暫態電腦可讀取記錄媒體。所述非暫態電腦可讀取記錄媒體可以是但不限於記憶體、光碟、隨身碟、硬碟、雲端儲存空間等儲存媒體。
封包產生系統3用以讀取流量事件檔案D1,所述流量事件檔案D1記錄有至少一原始封包。流量事件檔案D1可以為封包擷取檔(Packet Capture, PCAP),封包擷取檔由一個文件標頭(PCAP Header)及至少一組原始封包的封包數據所組成。所述原始封包的封包數據可以包含數據標頭(Packet Header)以及數據內容(Packet Data)等欄位。所述數據標頭可以包含時間戳(Timestamp)、數據內容之數據禎長度(Caplen)及實際數據禎長度(Len)等欄位。所述數據內容可以包含多種特徵資訊。
以傳輸控制協定(Transmission Control Protocol, TCP)之封包格式為例,數據內容可以包含封包來源及目標之埠口(Port)、封包順序編號(Sequence Number)、回應封包之確認編號(Acknowledge Number)、資料偏移量(Data Offset)、位元碼(Code bits)、視窗(Window)、緊急指標(Urgent Point)、任選欄(Option)、填補欄位(Padding)、資料(Data)等欄位之資料。
以網際網路協定(Internet Protocol, IP)之封包格式為例,TCP封包更加上IP標頭。所述IP標頭更至少包含版本(Version)、標頭長度(Header length)、封包大小(Total length)、辨識碼(Identification)、旗標(Flag)、分割定位(Fragment offset)、存活時間(Time to live)、傳輸協議(Protocol)、來源位址、目標位址等欄位之資料。
藉由辨識不同原始封包所呈現之特定特徵資訊表現,得以對應到不同的應用情境。舉例而言,電子郵件服務中,客戶端先解析網際網路資訊存取協定(Internet Message Access Protocol, IMAP)服務器的區域名稱,例如通過使用者資料報協定(User Datagram Protocol, UDP)與網域名稱系統(Domain Name System, DNS)服務器在53端口進行通信;其後,同步客戶端資料夾中的郵件,例如通過TCP協議在143端口與IMAP服務器建立連接;最後,客戶端接收到電子郵件。在部分情況,若使用者點擊電子郵件內可能包含之超連結或信件預設有回傳通知,則客戶端會再對外發送封包。因此,該網路行為包含客戶端與IMAP服務器間的訊息交換,並呈現在單一封包中來源及目標埠口之欄位資訊。
舉例而言,分散式阻斷服務攻擊(Distributed Denial-Of-Service attack, DDoS)源自大量且非特定來源之封包湧入單一伺服端。該網路事件在封包之特徵資訊表現上,可以觀察到大量來源位址不同且抵達時間或發送時間接近之多個封包。如此一來,藉由辨識IP封包之來源位址及利用時間戳計算到達間隔時間(Inter-Arrival Time, IAT),得以評估是發生DDoS事件。
又如,在智慧工廠之生產線上,隨著加工品在產線上的流動,生產線的設備逐一向管理中心交換感測或控制資訊。因此,可能觀察到數個來源位址的封包週期性地出現。
如上所述,部分網路事件藉由辨識單一封包即可加以辨別,部分網路事件則透過辨識多個封包之間的關聯性來辨別,例如先後順序、出現頻率、共同出現或具有共通特徵。因此,先對特定網路事件或應用之行為表現,針對其流量事件檔案D1所儲存之單一或多個封包進行識別,可區分出不同之網路事件或應用之流量差異。
依據一些實施例,封包產生系統3包含編碼器31、生成器32及辨識器33。所述生成器32及辨識器33分別可以指生成對抗網路(Generative Adversarial Network, GAN)中的生成網路(Generative Network)及辨識網路(Discriminating Network)。GAN之訓練重點在於建立特徵與特徵之間的關聯。舉例而言,GAN在人臉生成之應用上,辨識器33被訓練用以識別人臉上的普遍特徵(例如鼻子、眼睛)以及個體特徵(例如痣、紋身),並得以識別特徵之間的相互關係(例如鼻子與眼睛之間的相對方位、距離)。從而,GAN得以創建出具有前述特徵與特徵之間相互關係之虛擬人臉。同理,各種網路行為之流量差異可以體現在單一原始封包內不同特徵資訊之關聯性(例如封包內同時出現IMAP之53來源埠口以及客戶端目標位址,可能表示客戶端在使用信件服務),亦可以體現在多個原始封包之間特徵資訊之關聯性(例如短時間內出現大量來源位址相異且IAT短之封包)。
所述編碼器31用以將流量事件檔案D1之一個或多個原始封包進行編碼而產生一個或多個第一編碼封包,並根據預設填寫規則將第一編碼封包之第一編碼數據寫入第一陣列M1。圖2係依據一些實施例之封包產生系統3之設定方法之流程圖,請參照圖2。依據一些實施例,封包產生系統3自第一資料庫1讀取流量事件檔案D1所包含之原始封包(步驟S001),編碼器31判斷原始封包之第一數據是否已讀取完畢(步驟S002),並於判斷未讀取完畢時(判斷結果為「否」),讀取原始封包之第一數據(步驟S003)。一般而言,第一數據之數據格式為二進制。依據一些實施例,編碼器31將第一數據之進制轉換為高進制(步驟S004)。舉例而言,將第一數據之數據格式由二進制轉換為十六進制,以簡化數值轉換過程中的運算工作。利用將第一數據之進制轉換為高進制,使第一數據之單一位數可以代表較廣的數值範圍,達到減少GAN所需要處理的陣列大小以增加運算速度以及降低錯誤發生率的效果。
請參照圖3,圖3係依據一些實施例之以十六進制表示原始封包之第一數據之示意圖。舉例而言,以圖3所框選的第一數據之元素E1為例,十六進制之數值「1F」佔有兩個位數,十六進制之兩個位數可以代表二進制中「0000 0000~1111 1111」之數值範圍,亦可以代表十進制中「0~255」之數值範圍,亦即兩個位數即代表256種數值變化之可能性。如此一來,當二進制轉換為十六進制,原本需要佔有8個位數之數值表示範圍被縮減為佔有2個位數,從而使GAN需要處理的陣列大小大幅降低。另外,於圖像生成之應用上,GAN雖能夠逼真地生成與訓練數據特徵相似的圖片,儘管生成圖片的像素值可能會出現很小的變化,而對於肉眼而言幾乎沒有差異。然而,對於封包之生成,即便任何位數中發生的微小的差異也會導致生成的封包格式錯誤。舉例而言,二進制以「01100001」代表ASCII碼之字符「a」,對應到十六進制則為「61」。因此,當GAN在生成以二進位為數值進制之封包時,只要所佔有之8個位數中任一個數值發生錯誤即代表了完全不同之字符。類推前述情況,十六進制僅佔有2個位數,從而降低錯誤發生率。
依據一些實施例,編碼器31於轉換第一數據之進制後(步驟S004),將第一數據進行編碼(步驟S005)。依據一些實施例,假定第一數據為n進制,當第一數據之數值小於(n/2)+1,編碼器31將第一數據區分為正值;當第一數據之數值大於等於(n/2)+1,編碼器31將第一數據區分為負值。或者,當第一數據之數值小於(n/2)+1,編碼器31將第一數據區分為負值;當第一數據之數值大於等於(n/2)+1,編碼器31將第一數據區分為正值。舉例而言,當第一數據為16進制,則0~8之數值被區分為正值,9~F之數值被區分為負值;如此一來,原本以0或正值顯示之16個數字,被轉換為0或負值顯示之8個數字以及0或正值顯示之8個數字,從而形成以0為中心之對稱數值範圍。由於正值之數值範圍被壓縮,即由單一位數表示16個數值變為僅須表示8個數值,其錯誤發生率降低。
依據一些實施例,當第一數據(表示為x)之數值小於(n/2)+1,則根據以下式1進行編碼而產生第一編碼數據(表示為x’):
x’ = int(x)*n+(n/2) (式1)
依據一些實施例,當該第一數據之數值大於等於(n/2)+1,則根據以下式2進行編碼而產生第一編碼數據:
x’ = -((int(x)-(n/2))*n+(n/2)) (式2)
式1及式2中,int()為整數函數,(n/2)可代表數值之偏移量,int(x)*n可代表數值間距之調整。其中,依據一些實施例,整數函數int()將第一編碼數據再轉換為十進制之整數。舉例而言,當第一數據為16進制(n=16),則原本之第一數據之數列[0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F]被轉換為第一編碼數據之數列[8,24,40,56,72,88,104,120,-8,-24,-40,-56,-72, -88,-104,-120],其中,原本之數值0被加上偏移量8,原本之數值間距由1被調整為16。從而,偏移量可排除數值0而使正負數值兩兩對稱;數值間距提升數值之容錯性,而有利於後續解碼過程中將數值還原。具體來說,假定數據間距為1,則在生成過程中僅允許數值1以內之偏差,否則將被視為其他數值,例如1加上偏差1即被區分為2;然而,假定數據間距為16,則在生成過程中允許數值7以內之偏差,例如1加上偏差7仍被區分為1,但1加上偏差9則被區分為17。依據一些實施例,所述偏移量小於所述數值間距。依據一些實施例,所述偏移量洽為所述數值間距之一半,使數值間距平分為兩個數據之容錯範圍。
依據一些實施例,當第一數據(表示為x)之數值小於(n/2)+1,則根據以下式3進行編碼而產生第一編碼數據(表示為x’):
x’ = (int(x)*n+(n/2))/N (式3)
依據一些實施例,當該第一數據之數值大於等於(n/2)+1,則根據以下式4進行編碼而產生第一編碼數據:
x’ = -((int(x)-(n/2))*n+(n/2))/N (式4)
式3及式4中,int()為整數函數,N為非零之正負值,代表數值之縮放率。N用以將數值正規化,而將資料按比例縮放1/N 倍,從而在生成資料的準確性與容錯性之間取得平衡。
圖4係依據一些實施例之編碼方法之流程圖;圖5係依據一些實施例之第一陣列之示意圖,請一併參照圖3至圖5。依據一些實施例,編碼器31依序讀取第一數據(步驟S101)。以圖3為例,由左至右依序讀取數值「d」、數值「a」、數值「f」、數值「8」…。第一數據可以包含多個第一數據之元素E1,各個第一數據之元素E1可以包含一至多個數值,如圖3所框選之「1f」。其後,編碼器31將第一數據之元素E1分別轉換為整數(步驟S102)。當編碼器31判斷十六進位之第一數據之數值小於9 (即小於(n/2)+1) (步驟S103或步驟S106) (判斷結果為「是」),則根據算式x’=(int(x)*16+8)/N將數值進行轉換(步驟S104或步驟S107);當編碼器31判斷十六進位之第一數據之數值大於等於9 (即大於等於(n/2)+1) (步驟S103或步驟S106) (判斷結果為「否」),則根據算式x’=-((int(x)-8)*16+8)/N將數值進行轉換(步驟S105或步驟S108)。以「1f」為例,數值「1」小於9(步驟S103),因此編碼後得到數值「24」(步驟S104),數值「f」大於9(步驟S106),因此編碼後得到數值「-120」(步驟S108)。依據一些實施例,編碼器31根據預設填寫規則將第一編碼數據寫入第一陣列M1(步驟S109或步驟S006),直到編碼器31判斷原始封包之第一數據已完全讀取完畢後(步驟S110或步驟S002) (判斷結果為「是」),建立訓練資料,即完成填寫之第一陣列M1(步驟S111或步驟S007)。圖5係依據一些實施例之第一陣列M1之示意圖,請參照圖5。舉例而言,編碼器31以順序A為主依序寫入第一編碼數據之元素EE1,並於該列填滿後,依照順序B而於下一列再以順序A依序寫入第一編碼數據之元素EE1。
所述預設填寫規則可以指將第一編碼封包之第一編碼數據寫入第一陣列M1之順序規則,然並非必須依照第一陣列M1之行、列之順序進行填寫,而可以自訂任意之填寫規則,惟在所有訓練資料之產生上,第一陣列M1必須遵照相同之預設填寫規則而產生。如此一來,藉由預設填寫規則的設定,第一編碼數據之元素EE1在第一陣列M1上的相對位置被固定,從而允許GAN學習各第一編碼數據之元素EE1之間的關聯性。
具體而言,依據一些實施例,第一編碼數據包含相異之多個特徵數據,所述特徵數據可以指將前述原始封包之特徵資訊欄位內之第一數據進行編碼後產生之第一編碼數據,例如將IP封包之傳輸協議(Protocol)欄位進行編碼,或將TCP封包之來源埠口欄位進行編碼。該些特徵數據依照預設填寫規則寫入第一陣列M1後,其相對關係被固定。舉例而言,來源位址之特徵數據固定被寫入最左上角之區域,目標埠口之特徵數據固定被寫入最左下角之區域。因此,當左上角欄位固定出現客戶端之IP位址,左下角欄位固定出現IMAP服務器之53埠口,GAN得以習得特定網路行為所對應之第一陣列M1具有此表徵,而該網路行為可能為客戶端的發信事件。
所述第一陣列M1可以是數列、二維矩陣或多維矩陣。依據一些實施例,第一陣列M1為高維矩陣,編碼器31將特徵數據分別寫入第一陣列M1之不同維度。請參照圖7,各維度之第一陣列M1分別儲存不同之特徵數據,從而使第一編碼數據已預設地被區分開來,令GAN學習維度之間的關聯性,而非自分散於二維矩陣或數列的特徵數據建立關聯性。
生成器32用以自第二資料庫2讀取元素資料D2,並產生第二陣列M2。所述元素資料D2可以是依高斯分布隨機產生之數據而建立之向量或矩陣,亦可以是將實際記錄之封包內容數據拆散後,重新隨機組成之向量或矩陣。依據一些實施例,生成器32之權重根據評分值S執行反向傳播法(Back Propagation)進行修正,所述評分值S係由辨識器33所產生。所述第二陣列M2可以是數列、二維矩陣或多維矩陣。所述第二陣列M2包含至少一第二編碼封包,容後詳述。
辨識器33用以讀取編碼器31產生之第一陣列M1以及生成器32產生之第二陣列M2並進行比對。辨識器33之目的在於最大化真實資料(即第一陣列M1)與生成資料(即第二陣列M2)的資料分布之散度(divergence),從而辨識出第一陣列M1與第二陣列M2之區別。根據第一陣列M1與第二陣列M2之區別程度,辨識器33之輸出一評分值S並回饋給生成器32,從而使生成器32重新調整其權重。
如此一來,依據一些實施例,封包產生系統之設定方法利用GAN學習原始封包之特徵資料間的關聯性,從而得以產生用於模擬真實流量之封包數據。依據一些實施例,封包產生系統之設定方法根據預設填寫規則建立特徵資料之間的配置關係,使GAN得以習得特徵資料間的關聯性。依據一些實施例,封包產生系統之設定方法利用編碼方法提升數據之容錯性,以適於利用GAN產生封包數據而不發生格式錯誤問題。
依據一些實施例,流量事件檔案D1包含多個原始封包。圖6係依據另一些實施例之封包產生系統之設定方法之流程圖,請參照圖6。依據一些實施例,封包產生系統3自第一資料庫1讀取流量事件檔案D1所包含之多個原始封包(步驟S201),編碼器31判斷流量事件檔案D1內之所有原始封包是否已讀取完畢(步驟S202),並於判斷未讀取完畢時(判斷結果為「否」),讀取原始封包(步驟S203)。其後,編碼器31判斷當前原始封包之第一數據是否已讀取完畢(步驟S204),並於判斷未讀取完畢時(判斷結果為「否」),讀取當前原始封包之第一數據(步驟S205)。編碼器31將第一數據之進制轉換(步驟S206)、編碼(步驟S207)並依照預設填寫規則填寫進第一陣列M1(步驟S208)。依據一些實施例,所述步驟S206至步驟S208之流程可以參照前述步驟S004至步驟S006。編碼器31判斷當前原始封包之第一數據已讀取完畢(步驟S204) (判斷結果為「是」),則再次判斷流量事件檔案D1內之所有原始封包是否已讀取完畢(步驟S202)。當編碼器31判斷流量事件檔案D1內之所有原始封包未讀取完畢時(判斷結果為「否」),重複前述步驟S203至步驟S208之流程;當編碼器31判斷流量事件檔案D1內之所有原始封包已讀取完畢時(判斷結果為「是」),建立訓練資料(步驟S209)。如此一來,第一陣列M1包含所有原始封包轉換後得到之第一編碼封包,以及各原始封包之特徵資訊欄位之第一數據轉換後得到之第一編碼數據。
依據一些實施例,各原始封包包含一時間資訊。所述時間資訊可以指原始封包之抵達時間、發送時間、發送順序或抵達順序。編碼器31將多個原始封包編碼並根據時間資訊及預設填寫規則依序寫入第一陣列M1,而建立訓練資料。請參照圖5,舉例而言,編碼器31將抵達時間最早之第一編碼封包填入最左上角之區域,抵達時間最晚之第一編碼封包填入最右下角之區域。同前所述,所述預設填寫規則可以指將第一編碼封包寫入第一陣列M1之順序規則,然亦非必須依照第一陣列M1之行、列之順序進行填寫。依據一些實施例,第一陣列M1為高維矩陣,編碼器31於依照時間順序填寫第一編碼封包時,將各第一編碼封包之各個特徵數據分別寫入第一陣列M1之不同維度,各個特徵數據於第一陣列M1之各維度之間相互對齊。舉例而言,請參照圖7,特徵數據F1至特徵數據F6依序代表單一個第一編碼封包之IAT、傳輸協議、來源或目標位址、來源或目標埠口、旗標、封包大小等欄位之第一編碼數據,特徵數據F1至特徵數據F6於第一陣列M1之各個維度皆位於左下角之區域而相互對齊。依據一些實施例,各個特徵數據透過補零之方式,使所有特徵數據占用之區域大小相同,而相互對齊。
綜上所述,依據一些實施例,封包產生系統之設定方法利用GAN學習原始封包與原始封包間特徵資料的關聯性,從而得以產生用於模擬真實流量之多個封包數據。依據一些實施例,封包產生系統之設定方法根據預設填寫規則建立原始封包之間的配置關係,使GAN習得原始封包間的關聯性。
圖8係依據另一些實施例之封包產生系統之方塊示意圖,請參照圖8。依據一些實施例,封包產生系統3包含生成器32與解碼器34。所述生成器32可依據前述封包產生系統之設定方法進行訓練而產生。生成器32用以產生第二陣列M2,所述第二陣列M2包含至少一第二編碼封包,所述第二編碼封包包含第二編碼數據,即GAN所產生用以模擬真實封包之模擬數據。
圖9係依據一些實施例之封包產生方法之流程圖,請參照圖9。依據一些實施例,解碼器34讀取生成器32產生之第二陣列M2(步驟S301),解碼器34判斷第二陣列M2內之第二編碼數據是否已讀取完畢(步驟S302),並於判斷未讀取完畢時(判斷結果為「否」),根據預設讀取規則自第二陣列M2讀取第二編碼數據(步驟S303)。所述預設讀取規則與所述預設填寫規則相同或相匹配。舉例而言,請參照圖5,預設填寫規則依照左上至右下之順序寫入第一編碼數據,則預設讀取規則亦可以依照左上至右下之順序讀取第二編碼數據。
依據一些實施例,解碼器34將第二數據進行解碼(步驟S304)。依據一些實施例,所述解碼器34之解碼公式與所述編碼器31之編碼公式互為反函數。
圖10係依據一些實施例之解碼方法之流程圖,請參照圖10。依據一些實施例,當第二編碼數據(表示為x’) 之數值大於等於0,則根據以下式5進行解碼而產生第二數據(表示為x):
x = int(x’/n) (式5)
依據一些實施例,當第二編碼數據(表示為x’) 之數值小於0,則根據以下式6進行解碼而產生第二數據(表示為x):
x = int(∣x’∣/n)+(n/2) (式6)
式5及式6中,int()為取底之整數函數,n為第二數據之進制,其對應於第一數據經轉換後之進制。依據一些實施例,轉換解碼後產生之第二數據為16進制。舉例而言,當第二數據為16進制(n=16),則原本之第二編碼數據之數列[8,24,40,56,72,88,104,120,-8,-24,-40, -56,-72,-88,-104,-120]被轉換為第二數據之數列[0,1,2, 3,4,5,6,7,8,9,A,B,C,D,E,F]。藉由前述編碼公式及解碼公式,允許生成器32產生之第二編碼數據具有一定之容錯性。舉例而言,第二編碼數據之數值「40」所對應之第二數據之數值為「2」。當GAN生成數值「40」而發生正偏差7後,將獲得數值「47」。根據編碼公式之設定,容錯範圍為n/2(當第一數據為十六進制,即數值8)之內的數值。因此,將數值「47」套入解碼公式仍被解碼為數值為「2」。然而,當數值「40」發生正偏差9,數值「49」將被解碼為數值「3」。
依據一些實施例,當第二編碼數據(表示為x’) 之數值大於等於0,則根據以下式7進行解碼而產生第二數據(表示為x):
x = int(N*x’/n) (式7)
依據一些實施例,當第二編碼數據(表示為x’) 之數值小於0,則根據以下式8進行解碼而產生第二數據(表示為x):
x = (int(∣N*x’∣/n)+(n/2)) (式8)
式7及式8中,int()為取底之整數函數,N為非零之正負值,其數值對應於編碼過程中所設定之縮放率。圖10係依據一些實施例之解碼方法之流程圖,請參照圖10。依據一些實施例,解碼器34讀取第二陣列M2(步驟S401),並依序讀取第二陣列M2中的第二編碼數據(步驟S402)。第二編碼數據可以包含多個第二編碼數據之元素,各個第二編碼數據之元素可以包含一至多個數值。其後,解碼器34將數據之元素分別乘以N(步驟S403)。以十六進制之第二數據為例,當解碼器34判斷第二編碼數據之數值大於等於0 (步驟S404或步驟S407) (判斷結果為「是」),則根據算式x = int(x’/16)將數值進行轉換(步驟S405或步驟S408);當解碼器34判斷第二編碼數據之數值小於0 (步驟S404或步驟S407) (判斷結果為「否」),則根據算式x = int(∣x’∣/16)+8將數值進行轉換(步驟S406或步驟S409)。以「-28 115」為例,數值「-28」小於0(步驟S404),因此解碼後得到數值「9」(步驟S406),數值「115」大於0(步驟S407),因此解碼後得到數值「7」(步驟S108)。
由前述例示可以得知,對於第二編碼數據介於數值「-17」及數值「-31」之範圍以內之數值,即以數值「-24」為中心正負7之數值範圍,全部會被解碼為數值「9」。因此,其容錯範圍為n/2(當第二數據為十六進制,即數值8)之內的數值。
依據一些實施例,解碼器34將解碼後產生之第二數據儲存於生成封包P後(步驟S410或步驟S306),判斷第二陣列M2之第二編碼數據是否已讀取完畢(步驟S411)。當判斷第二陣列M2之第二編碼數據未讀取完畢(判斷結果為「否」),重複執行步驟S402至步驟S411之流程,直到解碼器34判斷第二陣列M2之第二編碼數據已完全讀取完畢後(步驟S411) (判斷結果為「是」),建立模擬流量事件檔案,即完成填寫之生成封包P(步驟S412或步驟S307)。依據一些實施例,將第二數據儲存於生成封包P之步驟S410包含根據以下式9進行第二數據之轉換並儲存於生成封包P:
hex(x*n+y) ∪P (式9)
式9中,hex()為制轉換函數(以16進制為例),n為第二數據之進制,x及y為將第二編碼數據之元素解碼後之第二數據。
依據一些實施例,根據GAN之訓練方式(例如以包含多個第一編碼封包之第一陣列M1作為GAN之訓練資料),生成器32所產生之第二陣列M2亦可包含多個第二編碼封包。如此一來,完成解碼之第二陣列M2產生多個生成封包P,並儲存於模擬流量事件檔案。依據一些實施例,根據GAN之訓練方式(例如以包含多個第一編碼封包並依時間順序填寫所述多個第一編碼封包而產生之第一陣列M1作為GAN之訓練資料),生成器32所產生之第二陣列M2亦可包含依據一時間順序而儲存於第二陣列M2之多個第二編碼封包。因此,產生該生成封包P之步驟更包含依據所數時間順序逐一產生生成封包P,並儲存於模擬流量事件檔案。
依據一些實施例,解碼器34於解碼第二編碼數據而產生第二數據後(步驟S304),轉換第二數據之進制(步驟S305)。依據一些實施例,第一數據於編碼前由m進制轉換為n進制,其中n>m;則第二數據於解碼後由n進制轉換回m進制。舉例而言,將第二數據之數據格式由十六進制轉換回二進制,以簡化數值轉換過程中的運算工作。
綜上所述,依據一些實施例,封包產生方法根據預設讀取規則讀取GAN所產生之封包資料,以配合根據預設填寫規則所產生且輸入給GAN之訓練資料,藉以大量產生所需情境之模擬流量。依據一些實施例,封包產生方法利用解碼流程,提升數值之容錯性,避免GAN所生成的封包產生大量格式錯誤。
1:第一資料庫
2:第二資料庫
3:封包產生系統
31:編碼器
32:生成器
33:辨識器
34:解碼器
D1:流量事件檔案
D2:元素資料
M1:第一陣列
M2:第二陣列
S:評分值
P:生成封包
E1:第一數據之元素
EE1:第一編碼數據之元素
F1、F2、F3、F4、F5、F6:特徵數據
A、 B:順序
S001~S007:步驟
S101~S111:步驟
S201~S209:步驟
S301~S307:步驟
S401~S412:步驟
[圖1]係依據一些實施例之封包產生系統之方塊示意圖;
[圖2]係依據一些實施例之封包產生系統之設定方法之流程圖;
[圖3]係依據一些實施例之以十六進制表示原始封包之第一數據之示意圖;
[圖4]係依據一些實施例之編碼方法之流程圖;
[圖5]係依據一些實施例之第一陣列之示意圖;
[圖6]係依據另一些實施例之封包產生系統之設定方法之流程圖;
[圖7]係依據另一些實施例之第一陣列之示意圖;
[圖8]係依據另一些實施例之封包產生系統之方塊示意圖;
[圖9]係依據一些實施例之封包產生方法之流程圖;
[圖10]係依據一些實施例之解碼方法之流程圖。
S001~S007:步驟
Claims (11)
- 一種封包產生系統之設定方法,包含:讀取一流量事件檔案;自該流量事件檔案提取至少一原始封包;編碼該至少一原始封包,而產生至少一第一編碼封包;根據一預設填寫規則將該至少一第一編碼封包寫入一第一陣列;將一元素資料輸入一生成器,使該生成器產生一第二陣列;將該第一陣列及該第二陣列輸入一辨識器,使該辨識器產生一評分值;以及將該評分值回饋至該生成器,以調整該生成器之一權重;其中,所述編碼該至少一原始封包之步驟包含:將該第一數據轉換為一第一編碼數據,並根據該第一編碼數據產生該至少一第一編碼封包,使該至少一第一編碼封包包含該第一編碼數據,其中當該第一數據之數值小於(n/2)+1,該第一編碼數據係根據以下公式而產生:x’=int(x)*n+(n/2);當該第一數據之數值大於等於(n/2)+1,該第一編碼數據係根據以下公式而產生:x’=-((int(x)-(n/2))*n+(n/2));其中,x’為該第一編碼數據;x為該第一數據;int()為整數函數。
- 如請求項1所述之設定方法,其中,該原始封包包含一第一數據,所述編碼該至少一原始封包之步驟包含:將該至少一原始封包之該第一數據自m進制轉換為n進制,其中n>m。
- 如請求項1所述之設定方法,其中:當該第一數據之數值小於(n/2)+1,該第一編碼數據係根據以下公式而產生:x’=(int(x)*n+(n/2))/N;當該第一數據之數值大於等於(n/2)+1,該第一編碼數據係根據以下公式而產生:x’=-((int(x)-(n/2))*n+(n/2))/N;其中,N為正負值。
- 如請求項1至3中任一項所述之設定方法,其中,n為16。
- 如請求項1所述之設定方法,其中,各該第一編碼封包之第一編碼數據具有相異之多個特徵數據,將該至少一第一編碼封包寫入該第一陣列之步驟包含:將各該特徵數據分別寫入該第一陣列之不同維度。
- 如請求項5所述之設定方法,其中,該特徵數據係選自由封包大小、旗標、分割定位、存活時間、傳輸協議、到達間隔時間、來源埠口、目標埠口、來源位址、目標位址及順序編號等資訊所組成之群組。
- 如請求項1所述之設定方法,其中,該原始封包包含一時間資訊,該至少一第一編碼封包為多個,將該至少一第一編碼封包寫入該第一陣列之步驟包含:根據該時間資訊依序將該些第一編碼封包寫入該第一陣列。
- 如請求項7所述之設定方法,其中,各該第一編碼封包之第一編碼數據具有相異之多個特徵數據,將該至少一第一編碼封包寫入該第一陣列之步驟更包含:根據該時間資訊依序將該些第一編碼封包之各該 特徵數據分別寫入該第一陣列之不同維度,各該第一編碼封包之該多個特徵數據於該第一陣列之各維度之間相互對齊。
- 一種封包產生方法,包含:執行如請求項1所述之封包產生系統之設定方法,以產生該第二陣列,該第二陣列包含至少一第二編碼封包;根據一預設讀取規則自該第二陣列讀取該至少一第二編碼封包;以及解碼該至少一第二編碼封包,而產生至少一生成封包。
- 如請求項9所述之封包產生方法,其中,該第二編碼封包包含一第二編碼數據,所述解碼該至少一第二編碼封包之步驟包含:將該第二編碼數據轉換為一第二數據,並根據該第二數據產生該生成封包;其中,當該第二編碼數據之數值大於等於0,該第二數據係根據以下公式而產生:x=int(x’/n);當該第二編碼數據之數值小於0,該第二數據係根據以下公式而產生:x=int(|x’|/n)+(n/2);其中,x’為該第二編碼數據;x為該第二數據;int()為取底整數函數;n為第二數據之進制。
- 如請求項9所述之封包產生方法,其中,該第二編碼封包為多個,該些第二編碼封包係依據一時間順序儲存於該第二陣列,產生該生成封包之步驟更包含依據該時間順序逐一產生該生成封包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110117951A TWI766690B (zh) | 2021-05-18 | 2021-05-18 | 封包產生方法及封包產生系統之設定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110117951A TWI766690B (zh) | 2021-05-18 | 2021-05-18 | 封包產生方法及封包產生系統之設定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI766690B true TWI766690B (zh) | 2022-06-01 |
TW202247631A TW202247631A (zh) | 2022-12-01 |
Family
ID=83103696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110117951A TWI766690B (zh) | 2021-05-18 | 2021-05-18 | 封包產生方法及封包產生系統之設定方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI766690B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107293289A (zh) * | 2017-06-13 | 2017-10-24 | 南京医科大学 | 一种基于深度卷积生成对抗网络的语音生成方法 |
US20190286950A1 (en) * | 2018-03-16 | 2019-09-19 | Ebay Inc. | Generating a digital image using a generative adversarial network |
TW202113752A (zh) * | 2019-09-27 | 2021-04-01 | 大陸商北京市商湯科技開發有限公司 | 神經網路訓練及圖像生成方法、電子設備、儲存媒體 |
-
2021
- 2021-05-18 TW TW110117951A patent/TWI766690B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107293289A (zh) * | 2017-06-13 | 2017-10-24 | 南京医科大学 | 一种基于深度卷积生成对抗网络的语音生成方法 |
US20190286950A1 (en) * | 2018-03-16 | 2019-09-19 | Ebay Inc. | Generating a digital image using a generative adversarial network |
TW202113752A (zh) * | 2019-09-27 | 2021-04-01 | 大陸商北京市商湯科技開發有限公司 | 神經網路訓練及圖像生成方法、電子設備、儲存媒體 |
Non-Patent Citations (2)
Title |
---|
期刊 A. Cheng"PAC-GAN: Packet Generation ofNetwork Traffic using Generative AdversarialNetworks" , PAC-GAN: Packet Generation of Network Traffic using Generative Adversarial Networks 2019 IEEE 10th Annual InformationTechnology, Electronics and MobileCommunication Conference (IEMCON), 19 Dec., 2019 pp. 0728-0734.; * |
網路文獻 Qiumei Cheng, et al., "Packet-Level Adversarial Network Traffic Crafting using Sequence Generative Adversarial Networks", arXiv, 8 Mar.,2021. [https://arxiv.org/pdf/2103.04794.pdf]. * |
Also Published As
Publication number | Publication date |
---|---|
TW202247631A (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113159327B (zh) | 基于联邦学习系统的模型训练方法、装置、电子设备 | |
CN112116008B (zh) | 基于智能决策的目标检测模型的处理方法、及其相关设备 | |
CN110070359A (zh) | 基于区块链的数据核对系统、方法、计算设备及存储介质 | |
CN113505882B (zh) | 基于联邦神经网络模型的数据处理方法、相关设备及介质 | |
CN104620284A (zh) | 用于确定图像相似性的方法和系统 | |
CN113222175B (zh) | 信息处理方法及系统 | |
CN112883031B (zh) | 工控资产信息获取方法及装置 | |
CN113221153B (zh) | 图神经网络训练方法、装置、计算设备及存储介质 | |
CN111582653A (zh) | 一种政务服务评价处理方法、系统、装置和存储介质 | |
Kim et al. | Design and implementation of traffic generation model and spectrum requirement calculator for private 5G network | |
CN113722419A (zh) | 骚扰标记数据处理方法、装置、电子设备和介质 | |
TWI766690B (zh) | 封包產生方法及封包產生系統之設定方法 | |
CN117155670B (zh) | 身份加密的安全电子邮件传输方法、系统、设备及存储介质 | |
Yin | Zero-knowledge proof intelligent recommendation system to protect students’ data privacy in the digital age | |
CN108696509B (zh) | 一种终端的接入处理方法和装置 | |
CN115114666B (zh) | 一种基于区块链的考勤数据隐私计算方法和系统 | |
US11693750B2 (en) | Virtual device for providing test data | |
US20230353648A1 (en) | Data tracking for data owners | |
CN113946857B (zh) | 一种基于数据路由的分布式跨链调度方法及装置 | |
CN110517401A (zh) | 一种全景区块链的投票统计方法 | |
CN113254989B (zh) | 目标数据的融合方法、装置和服务器 | |
Li et al. | Software-defined gpu-cpu empowered efficient wireless federated learning with embedding communication coding for beyond 5g | |
CN114363071A (zh) | 一种基于场景分析的敏感数据脱敏和识别的方法 | |
CN117311661B (zh) | 一种虚拟环境音效模拟方法、系统及介质 | |
CN107291712A (zh) | 数据的生成方法及装置 |