TW201206120A - Method for tracing processing procedure of network packet - Google Patents

Method for tracing processing procedure of network packet Download PDF

Info

Publication number
TW201206120A
TW201206120A TW99125188A TW99125188A TW201206120A TW 201206120 A TW201206120 A TW 201206120A TW 99125188 A TW99125188 A TW 99125188A TW 99125188 A TW99125188 A TW 99125188A TW 201206120 A TW201206120 A TW 201206120A
Authority
TW
Taiwan
Prior art keywords
function
network
packet
network packet
name
Prior art date
Application number
TW99125188A
Other languages
Chinese (zh)
Other versions
TWI425795B (en
Inventor
Chien-Chao Tseng
Tsung-Hung Li
Hung-Hsin Chang
Original Assignee
Univ Nat Chiao Tung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Chiao Tung filed Critical Univ Nat Chiao Tung
Priority to TW99125188A priority Critical patent/TWI425795B/en
Publication of TW201206120A publication Critical patent/TW201206120A/en
Application granted granted Critical
Publication of TWI425795B publication Critical patent/TWI425795B/en

Links

Abstract

This invention presents a new mechanism that can trace the execution sequence of kernel functions that process data network packet and record information of concern. With such trace, we can analyze the networking behavior, conduct software debugging and optimize performance of networking devices. The underlying idea of the mechanism is that the execution sequence of functions process a network packet can be derived from the sequence the functions access the data structure of the network packet. The proposed mechanism first adopts a function analyzer to identify all functions that refer or handle the data structure of network packets, and then patches instructions in each function identified. At run time, the execution of each patched function will trigger the patched instructions automatically to record the function identity and other information of concern. Because, the patching instructions are executed in a sequence exactly the same as the one of the patched functions, the patching instructions can thus record the execution sequence of the patched functions.

Description

201206120 六、發明說明: 【發明所屬之技術領域】 本發明為一種追蹤網路封包之處理程序的方法,尤指 一種有關網路通訊裝置、雲端計算之追蹤網路封包的處理 程序之方法。 【先前技術】 對於網路通訊裝置而言,界定網路行為異常(例如: 傳輸延遲、反應時間以及封包遺漏等問題)的原因是有必 要的,此對於日漸普及的連網裝置的開發非常重要。通常 網路封包會由系統核心處理,系統核心的分析工具(Linux Kerne 1 Prof i 1 er)是用來協助開發者分析系統核心内部 的(i nterna 1)行為,現有的工具大略可以分為三類:原始 工具類(Source Instrumentation)、二進制工具類 (Binary Instrumentation)、統計取樣類(Statistical201206120 VI. Description of the Invention: [Technical Field] The present invention is a method for tracking a processing procedure of a network packet, and more particularly to a method for processing a network communication device and a cloud computing processing packet of a cloud computing device. [Prior Art] It is necessary for network communication devices to define network behavior anomalies (such as transmission delay, response time, and packet omissions), which is very important for the development of increasingly popular networked devices. . Usually the network packet is processed by the system core. The system core analysis tool (Linux Kerne 1 Prof i er) is used to help developers analyze the internal (i nterna 1) behavior of the system core. The existing tools can be roughly divided into three. Class: Source Instrumentation, Binary Instrumentation, Statistical Sampling (Statistical)

Samp 1 i ng),各分類相關的分析工具即如表一所示者。 表一、現有系統核心分析工具的分類Samp 1 i ng), the analysis tools related to each category are as shown in Table 1. Table 1. Classification of existing system core analysis tools

Source Binary StatisticalSource Binary Statistical

Instrumentation Instrumentation SamplingInstrumentation Instrumentation Sampling

Kprobe Systemtap Kernlnst KLASY DtraceKprobe Systemtap Kernlnst KLASY Dtrace

Oprof i le LTTngOprof i le LTTng

KTAUKTAU

LKSTLKST

KFTKFT

Ftrace 201206120Ftrace 201206120

KernprofKernprof

Source Instrumentation主要是修改系統原始碼 (Source Code),插入能記錄系統内部資訊的指令,以達到 分析系統核心内部的(internal)行為。例如Linux追縱工具 箱第二代(Linux Trace Toolkit Next Generation, LTTng)、 核心調整及分析公用程式(Kernel Tuning and Analysis Utilities, KTAU)、Linux核心狀態追縱器(Linux Kernel State Tracer,LKST)等,修改系統中重要的核心函式,此 φ 三項技術在核心系統内部對重要的核心函式插入程式 碼,記錄下核心事件觸發時間,用來分析核心系統的運作 行為,此記錄通常包含上下文切換(context switch)、計時 器期滿(timer expired)和系統呼叫(system call)等等。 但是,依然無法詳細追蹤網路封包在核心系統内部處 理過程,而且無法自動尋找與嵌入追蹤指令於核心函式序 列(sequence),亦即此些記錄無法協助開發者追縱網路封 包於核心網路通訊協定的處理過程。核心函式追蹤(Kernel • Function Trace,KFT)、FTrace和Kernprof等,則進一步修 改所有的系統核心函式,記錄核心函式執行順序和執行時 間等資訊,此三項技術在核心系統内部所有的核心函式均 插入程式碼,完整取得核心系統的運作過程,結果如第一 圖所示者。 其中:index指主函式(primary function)的編號、%time 指 primary function 的使用時間比、self指 primary function 的運行時間、children指primary function呼叫子(child)的運 201206120 行時間、called指被呼叫的總次數、name指primary function 的名稱。在實框線内的主函式的編號(index)分別為[20]及 [21] ’在主函式的上下均有母(parent)及子(Children)的程 式(如以虛線的箭頭所示者);然而,開發者依然無法利 用這些資訊,正確地追蹤核心系統處理封包的函式執行順 序;亦即使用者依然無法藉由分析結果,進而有效率地且 正確地追縱封包導向的核心函式序列。Source Instrumentation mainly modifies the system source code (Source Code) and inserts instructions that can record the internal information of the system to analyze the internal behavior of the system core. For example, Linux Trace Toolkit Next Generation (LTTng), Kernel Tuning and Analysis Utilities (KTAU), Linux Kernel State Tracer (LKST), etc. Modify the important core functions in the system. This φ three-item technology inserts the code into the important core functions in the core system, records the core event trigger time, and analyzes the operation behavior of the core system. This record usually contains the context. A context switch, a timer expired, a system call, and so on. However, it is still impossible to track the internal processing of the network packet in the core system in detail, and it is unable to automatically find and embed the tracking instruction in the core function sequence, that is, these records cannot assist the developer to trace the network packet to the core network. The processing of the road communication protocol. Core function tracking (Kernel • Function Trace, KFT), FTrace and Kernprof, etc., further modify all system core functions, record the core function execution order and execution time, etc. These three technologies are all within the core system. The core functions are all inserted into the code, and the operation process of the core system is completely obtained. The result is as shown in the first figure. Where: index refers to the number of the primary function, %time refers to the usage time ratio of the primary function, self refers to the running time of the primary function, children refers to the primary function call (child), 201206120 line time, called refers to The total number of calls, name refers to the name of the primary function. The number of the main function in the real line is [20] and [21] 'There are parents and children in the upper and lower sides of the main function (such as the arrow with the dotted line) However, developers still can't use this information to correctly track the order of execution of the core system's processing of packets; that is, users can't effectively and correctly track packet-oriented by analyzing the results. Core function sequence.

Binary Instrumentation主要是直接修改系統機器碼 φ (ObjectCode),將執行流程暫時導到此記錄系統内部資訊 的函式’以達到動態分析系統内部的行為。以K探針 (Kprobe)為例,開發者需要藉由編譯程式(C〇mpiler)或者 反組譯程式(Disassembler)的協助,事先取得目標核心函 式的進出點位址,再藉由此類工具協助修改系統機器碼, 取得所需資訊。 又Kprobe、Kernlnst、D追縱(DTrace)此三項技術主要 是修改核心系統的機器碼(Object Code),以達到動態分析 _ 系統内部的行為,使用者藉由Compiler或者Disassembler 的協助再修改機器碼,但是使用者需要具有核心系統處理 網路封包的相關知識,否則無法正確地追蹤封包導向的核 心函式序列’所以依然無法自動尋找與嵌入追蹤指令於核 心函式序列’此類技術皆有須在特定裝置及核心版本上運 作的缺失。至於二進制工具類之系統跟蹤分析程式 (Systemtap) ’此技術主要是提供一個介面給使用者,讓使 用者藉由此介面簡化使用Kprobe的困難處,使用者只須提 201206120 供目標核心函式的名稱,Systemtap負責找出目標核心函 式的進去點位址,並且完成設定Kprobe,但是使用者依然 需要具有核心系統處理網路封包的相關知識,否則無法正 確地追蹤封包導向的核心函式序列,所以依然無法自動尋 找與嵌入追蹤指令於核心函式序列。 另有些工具,如核心階層特徵定向系統(Kernel Level Aspect-oriented System, KLASY) ’ 此技術也是提供一個介 面給使用者,讓使用者藉由此介面簡化使用KernInst的困 φ 難處,其透過修改後的Compiler(gcc)先對核心程式做處 理,再由開發者針對某些函式做追縱與記錄’使用者可以 提供目標資料結構的名稱,KLASY負責找出目標資料結 構被處理的指令位址’並且元成設定KernInSt,但是此技 術所產生的分析資科過於龐大’使用者無法有效率地追蹤 封包導向的核心邊式序列’且此技術需要特定的 compiler協助,對於嵌人式裝置的開發者相當不方便。 亦即開發者必須具有核心系統處理網路封包的相關 鲁知識,才可以人工檢祝的方式追蹤封包處理程序,然而人 工檢視方式不但費睹,更容易遺漏或誤查,很難正確有效 地追蹤封包在核心系統的函式執行順序,而且BinaryBinary Instrumentation mainly directly modifies the system machine code φ (ObjectCode), and temporarily introduces the execution flow to the function of the internal information of the recording system to achieve dynamic analysis of the internal behavior of the system. Taking Kprobe as an example, the developer needs to obtain the entry and exit address of the target core function in advance by the help of the compiler (C〇mpiler) or the disassembler (Disassembler). The tool assists in modifying the system machine code to obtain the required information. Kprobe, Kernlnst, D (DTrace) These three technologies are mainly to modify the core system's Object Code to achieve dynamic analysis _ system internal behavior, users modify the machine with the help of Compiler or Disassembler Code, but the user needs to have the knowledge of the core system to process the network packet, otherwise the packet-oriented core function sequence cannot be correctly tracked. So it is still impossible to automatically find and embed the tracking instruction in the core function sequence. Missing operations on specific devices and core versions. As for the system trace analysis program (Systemtap) of the binary tool class, this technology mainly provides an interface for the user to simplify the difficulty of using Kprobe through this interface. The user only needs to provide 201206120 for the target core function. Name, Systemtap is responsible for finding the entry point address of the target core function, and completing the Kprobe setting, but the user still needs to have the knowledge of the core system to process the network packet, otherwise the packet-oriented core function sequence cannot be correctly tracked. So it is still not possible to automatically find and embed tracking instructions in the core function sequence. Other tools, such as the Kernel Level Aspect-oriented System (KLASY), also provide an interface to the user, allowing the user to simplify the use of KernInst through this interface. The Compiler (gcc) first processes the core program, and then the developer performs tracking and recording for certain functions. The user can provide the name of the target data structure. KLASY is responsible for finding the instruction address of the target data structure. 'And Yuan Cheng set KernInSt, but the technology generated by this technology is too large 'users can not efficiently track the packet-oriented core edge sequence' and this technology requires specific compiler assistance for the development of embedded devices It is quite inconvenient. That is to say, the developer must have the relevant knowledge of the core system to process the network packet, and then the packet processing procedure can be tracked in a manual manner. However, the manual inspection method is not only costly, but also easy to miss or mis-examine, and it is difficult to track correctly and effectively. Encapsulation of the function execution order in the core system, and Binary

Instrumentation的方式之應用性是較差的。至於Statistical Sampling 主要 是週期 性檢查 CPU 中正在執行的指令 (Instruction),符將記錄結果以統計的方式,呈現給使 用者。而就◦分析工具(〇profile)而言,此技術主要是 以統計的方式,分柝核心系統的行為,週期性檢查指令再 201206120 將記錄結果以統計的古 地且正確地追縱封包導:的無法完整 並不處理網路封包的函式做記錄· 二;:=:與追_路通訊裝置 =:f應時間以及封包遺漏等問題的原因。 此糸統核心分析工具(Linux Kernei 蹤網路通訊裝置處理封 Her)應用於追 1盔本担# 式執行順序的缺點如下: 相要分析封包導向的函式序列之切記錄,對於 =要刀析處理封包的函式之執行順序的使用者相當不方 種特定_或者系統版本,對於 甘入八八衣置的開發相當不方便;以及 3.使用者必須先具備封包處理鱼系餘眘从^ & 依人工檢閱方式植入追縱指令,過程繁= = =,並 因此’如何改善函式序列之 -易錯决。 記錄、必須運作於某種特定的裝置及必境先^導向的追縱 與系統實作知識之人工檢閱方式處, :、測試及研究後,終於獲得一種追縱網 序的方法,除了有效解決無法提供 ^處理程 裳置及先具備實作知識等缺點外,亦能乍於特定 軟體的開發時程與執行效能之功效。亦即本二明網路通訊 的課題即為如何克服存取網路封包的函式以== 201206120 問題,而使得系統核心之處 克服只有使用ah“序相,以及如何 sk—buf f此一特金咨姓+広, 搜尋的其淮机a 符疋貝科之原始型態名作為 執行函式與封㈣容的問料克服要在切設法記錄 【發明内容】 -;—種追縱—網路封包(NetwQrk㈤⑷之 處理私序的方法’其中該網路封包係儲存在一資料結構 ►法包封包在―系統核心内接受該處理程序’該方 追i該處口理呼叫一函式以傳遞該資料結構,並據以 =,該方法的系統為一 Linux’而該資料結構為 令方㈣该方法利用該系統核心以存取該網路封包, 理程序為該資料結構之-執行順序。…同路封包,且销 又按照-主要技術的觀點來看,本發明可以涵蓋到一 =縱:網路封包之一處理程序的方法,其中該網路封包 係在-糸統核心内接受該處理程序,該方法包括如下步 驟,提供-函式’以處理該網路封包,其中該函式呈一炎 數,定義該參數之-資料型態名,以及藉搜尋該資料型態 名,而追縱該處理程序。 較佳者’該方法的資料型態名係為一搜尋的基準點, 而該資料型態名為一 Sk 一 buff之原始型態名或一變形 態名。 當然,該方法的變形型態名可以為一別名、一客製化 201206120 貝料尘態名或一巢狀資料結構,而該變形型態名係使苴虚 該網路封包之一資料型態產生關聯。 〜、 ,該方法更可以包含從該系統核心之一原始碼 ^哥找-存取該網路封包的函式,其中該存取該網路封 二二為一直接存取該網路封包的函式或-間接存取 °亥網路封包的函式。 已該方法之直接存取網路封包的函式係利用-The applicability of the Instrumentation approach is poor. As for Statistical Sampling, it is mainly to periodically check the instruction (Instruction) being executed in the CPU, and the result is recorded to the user in a statistical manner. As far as the analysis tool (〇profile) is concerned, this technology mainly divides the behavior of the core system in a statistical manner, and periodically checks the instructions and then 201206120 to record the results in statistical ancient and correct tracking: The function that cannot be completed and does not process the network packet is recorded. Second;:=: and the chasing_road communication device =:f should be the reason for the time and the missing packets. The short-term core analysis tool (Linux Kernei trace network communication device processing seal Her) is applied to the chasing helmet. The shortcomings of the execution order are as follows: The correlation analysis of the packet-oriented function sequence is recorded. It is quite inconvenient for the user to process the execution order of the function of the processing package to be specific to the specific _ or system version, and the user must first have the packet processing fish system. ^ & The manual tracking method is used to implant the tracking instruction, the process is complicated = = =, and therefore 'how to improve the function sequence' - easy to be wrong. Recording, must be operated in a specific device and the manual review method of the tracking and system implementation knowledge of the necessary environment, after testing and research, finally obtain a method of tracking the network order, in addition to effectively solving It is not able to provide the shortcomings of handling the process and the first-hand knowledge. It can also be used for the development time and performance of specific software. That is to say, the topic of this two-way network communication is how to overcome the problem of accessing the network packet with the == 201206120 problem, so that the core of the system overcomes the use of only ah "order phase, and how sk_buf f this one The special name of the 金金咨+広, the original type name of the 淮 疋 疋 疋 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为 作为Network packet (NetwQrk (5) (4) method of processing private sequence] wherein the network packet is stored in a data structure ► The packet is accepted in the system core, and the party is chasing the call function. Passing the data structure, and according to =, the system of the method is a Linux' and the data structure is the ordering party. (4) The method utilizes the core of the system to access the network packet, and the processing program is the data structure-execution order The same way, and the pin is in accordance with the main technical point of view, the present invention can cover a method of processing a program in one of the network packets, wherein the network packet is accepted in the core of the system. The handler, the party The method includes the following steps: providing a function - to process the network packet, wherein the function is an inflammation number, defining a parameter type name of the parameter, and searching for the data type name, and tracking the processing program Preferably, the data type name of the method is a reference point of a search, and the data type is a primitive type name or a variant form name of a Sk-buff. Of course, the deformation type of the method The name can be an alias, a customized 201206120 shell material dust name or a nested data structure, and the deformed type name causes the data type of the network packet to be associated with the virtual network. ~, , the method Moreover, the function of finding and accessing the network packet from the source code of one of the cores of the system may be included, wherein the accessing the network packet is a function for directly accessing the network packet or an indirect The function of accessing the network packet of the Haihai network. The function of the direct access network packet of the method is utilized -

傳數⑹-1 Variable)、-參數型態名、-回 專圭心名或一區域定義以直接存取該網路封包。 呼叫路封包的函式係利用— ,罔路封包之函式(ln(jirect caller) < 一;^ , & 路封包之函式呼叫師一e),並藉 間接指向該網路封包的指標,以存取該網路封工包。 -網=ΓΓ行的角度來看’本發明即為-種追縱 ,罔路封包之-處理程序的方法,其中該網 二:核内接受該處理程序’該方法包括如下步驟:提 :於:網” 一函式,嵌入-追縱指令於該函式中: 。執订遠函式’並進而觸發該追蹤指令 式之:識別符,俾得以追職處理程序。 錄该函 當然,該方法的追蹤指令係可以為— (Instrument Source Code),該識別符為 ’、始馬 本發明經由上述構想的解說,即能看出=或一代碼。 網路封包的處理程序之方法,果能利 用之追縱 資料結構,而據以追縱該處理程序巧式以傳遞該 ”百疋義該參數之 201206120 資料型態名進而藉搜尋該資 之特色。為了易於說明,本發處理程序 及圖示而更加清楚。 g下述之較佳實施例 f實施方式】 本發明提出—種新的應用在網 糊包處理程序的機制, :=中:追縱 路封包資料的順序,追縱網 由核:函式存取網 序。本發明應用在網路通 紅心糸統的處理程 貝科、“冓’及一個函式分析方法匕的 路封包資料的函式,並在此=^有存取網 本身執行函式的順序,依序 入藉由程式 函式名稱或代碼與封包内容之二;令二::彔被執行的 L—x核心系統内部用於管理 。七明可以利用 ((buff),追縱核 』存網路封包的資料結構 點。核^錢内部處理網路封包的行為與時間 矛J用這些紀錄,協助纟 —^ ^ ^ ^ (網路應用與核心協定或個體;;.罔路通訊 取網路封包的函式執即本發明可以追縱存 的行為與時間點及不限定=系統内部處理網路封包 能應用之產業包括資本。本案可 等,而可能應用之產上、:Γ通訊產業及 ^_)、繼、;;=線網路設備、手提電腦 于铖(Handset)、網路存取閘道器、 201206120 網路家電與任何連網裝置等。 在此我們將以Linux核心系統為例,針對網路封包於 L^nux核心糸統内部處理的過程,紀錄量度(measurement) 資料,諸如各函式所做之内容改變或各函式之啟動 (statring)時間,說明本發明提出的追蹤網路封包處理程序 的機制之一個較佳實施(applying)例,此類記錄資訊在開 發(developing)網路裝置上具有重要價值。但本發明應用 並不侷限於此一環境,只要知道網路封包資料型態名,就 籲可以套用本發明追縦此系統處理該網路封包的程序。本發 明應用於Linux核心系統中,利用Unux核心系統内料 網路封包之資料結構,追縱Linux核心系統内部處理網路 封包的行為與時間點,協助開發者分析L i聰核 部的網路行為。 尔為門 本發明於L i n u X核心系統的實施例,The number of (6)-1 Variable), - parameter type name, - back to the specific name or a region definition to directly access the network packet. The function of calling the road packet is to use the function of the _ (jirect caller) <one; ^, & the road packet to call the e-mail, and indirectly point to the network packet Indicator to access the network seal package. - NET = ΓΓ 的 ' ' 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本: "Net" a function, embedding - tracking instructions in the function: .. Binding the telegram 'and then triggering the tracking command: identifier, 俾 can be pursued processing. Record this letter, of course, The tracking instruction of the method may be - (Instrument Source Code), the identifier is ', the original invention of the invention through the above concept, that can be seen = or a code. The method of processing the network packet, the fruit The use of the tracking data structure, and according to the processing program to pass the "201206120 data type name of the parameter, and then search for the characteristics of the capital. For ease of explanation, the present processing program and the illustration are more clear. g The following preferred embodiment f embodiment] The present invention proposes a new application mechanism in the network packet processing program, :=: the order of tracking the packet data, the tracking network by the core: function storage Take the network order. The invention is applied to the function of the network packet processing data of the processing core of the network, the "冓" and a functional analysis method, and the order of the function is executed by the access network itself, in order Enter the second part of the L-x core system that is executed by the program function name or code and the content of the package. The second is available for management. (Buff), tracking the core, and storing the network packet. The structure of the data structure. The behavior of the internal processing of the network packet and the time of the nuclear money use these records to assist 纟-^ ^ ^ ^ (network applications and core agreements or individuals;; The function of the present invention can be traced to the behavior and time points of the invention and is not limited = the industry can handle the application of the network packet including the capital. The case can be, and the application may be applied,: Γ communication industry and ^_ ), followed by;; = line network equipment, laptops in Handset, network access gateways, 201206120 network appliances and any networking devices, etc. Here we will take the Linux core system as an example. For the network packet inside the L^nux core system The process of recording measurement information, such as the content changes made by the functions or the statring time of each function, illustrates a preferred implementation of the mechanism for tracking the network packet processing procedure proposed by the present invention (applying For example, such record information has great value in developing a network device. However, the application of the present invention is not limited to this environment, and as long as the network packet data type name is known, the call can be applied to the present invention. The system processes the program of the network packet. The invention is applied to the Linux core system, and utilizes the data structure of the Unux core system internal material network packet to track the behavior and time point of processing the network packet inside the Linux core system, and assists in development. The analysis of the network behavior of the L i Cong core department. The invention is based on the embodiment of the Linu X core system.

以及B.嵌入指令。且先就A.部分而言 可見-網路封包的-資料結# sk_buff,罝包括圖’ 料(Man柳―一封包資料财;責 storage),本發明利用 Linux 核心 (cket dati 存網路封包的資料結構’作為尋找的基準;^理與儲 路封包的函式’而在Linux核心系統内部用於:出存取網 網路封包的資料結構㈣(buff。請/理與储存 出-種追縱—網路封包之—處理程序^ 卩圖’顯示 封包係儲存在該資料結構内,且該網路二其中該網路 丁匕在一系統核心 201206120 内接以處理程序,該方法包括如下 傳f亥資料結構,並據以追縱該處理程序。而:;函式以 封包的函式使用函式呼叫傳遞^ 一( 存取網路 框線内所示者),可讓其餘的函式得以存:圖中的虛 此本發明可以輕易實施於Linux核心系統之同路封包,因 该方法的作業系統為一 Un sk_buff,該方法利用兮李 ^貝料結構為— 方法更包含利用以存取該網路封包,該 3則特疋函式以存取該網 程序為該資料結構之一執行順序。 匕且该處理 又才女'系主要技術的觀點來看,請袁間笛 =可以涵蓋到一種追蹤網路封包之處 ::::: 該網路封包係在-系統核心内接受該處理程序;^方= =下::,提供一函式’以處理該網路封包,其中該; ί;:ίΓ定義該參數之一資料型態名,以及藉搜尋該 貝科U,而追縱該處理程序。當然,此時的方And B. embedded instructions. And firstly visible in part A. - network packet - data node # sk_buff, including the picture 'Man (Man Liu - a package of information; responsibility storage), the present invention utilizes the Linux core (cket dati storage network packet The data structure 'as the basis for the search; ^ and the function of the storage road packet' and used in the Linux kernel system: the data structure of the access network packet (4) (buff. Please / rational and storage - kind Tracking - network packet - processing program ^ 卩 diagram 'display packet is stored in the data structure, and the network 2, the network is connected to a system core 201206120 to process the program, the method includes the following Pass the data structure of the hai, and follow the procedure according to it. And:; function to use the function of the packet to use the function call ^ (access to the network box), the rest of the letter The method can be saved: the virtual invention in the figure can be easily implemented in the same way of the Linux core system, because the operating system of the method is an Un sk_buff, the method utilizes the structure of the 兮 ^ 贝 — Access the network packet, the 3 The special function is to access the network program as one of the data structures to execute the order. And the processing is only the female's main technical point of view, please ask Yuan Didi = can cover a tracking network packet: :::: The network packet accepts the handler in the -system core; ^方==下::, provides a function to handle the network packet, where the; ί;: Γ Γ defines the parameter a data type name, and the search for the processing program by searching for the Beko U. Of course, the party at this time

=態名係可以作為—搜尋的基準點,而本發明利用此I 式刀^方法’包含-個尋找特定資料之型態名的方法,該 特疋貝料之型態名包含原始型態與各種變形型態名。 亦即從Linux核心系統的原始碼之中,在尋找存取網 路封包的函式時,不僅可以使用該資料型態名為一 sk^buff此一特定資料之原始型態名,亦可以改用一變形 型態名。請參閱第四圖A,因為c語言擁有別名(AHas)、 客製化資料型態(Customized data types)、巢狀資料結構 (Nested Structures)等規則,故該方法的變形型態名可以為 12 201206120 二料型態…一巢狀資料結構 產生^型悲名43係使其與該網路封包之一資料型態 斜,^語言的函式可以透過許多種方式存取特定資 勺之函Μ發日㈣函式分析方法包含—個尋找存取網路封 二,尋二方二該方法包含從該系統核心之-原始碼 :二:rirr函式’其中該存取該網路封 取該網路封包的函式 匕的函式或一間接存 封包的函弋伤 夕 四圖β,該直接存取網路 式,—全域變數(亦稱為 型態名(Pa咖eterType)45 —ar=ble)44、—函式的參數 或-區域定義(L〇 , n 目傳型態名(Return Type)46 封包。義(L〇CalDeflnhl_7,得以直接存取該網路 四種::方二:Γ存取特定資料的函式並未利用以上 利用-呼叫存取網路封包 存取,.罔路封包的函式係 Ε呼叫直接存取網路封㈣⑸㈣,以函式 b〜一)方式,而間接:;大:為例’E藉由-指標,因此使且彳曰,、,— 侍到—指向該網路封包的 之一被存取網路封勺:取°亥網路封包。或是如第六圖所示 直接存取網路封包L函式哞叫(Indirect⑸⑹),以Η被 refe職e,而間接從===為例,Η藉由cali by 因此得以存取該網路封包。向網路封包的指標,使其 13 ί S] 201206120 部分而言’請參”七圖(其原始函式係位於 是從另一個可行的角度來看,本發明可以利 用上述函式分析方法,找出 .* — ^ 狂式中有存取網路封包的函 式,並在廷些函式中嵌入指令, 玫4+勹 > 由 亦即本發明為一種追縱網 路封包之處理程序的方法,其 βπ A ^ ^ T。亥網路封包係在一糸統核 匕内接又錢理㈣,該方法包括The state name can be used as a reference point for searching, and the present invention utilizes this I-type method to include a method for finding the type name of a specific data, and the type name of the special shell material contains the original type and Various deformation type names. That is, from the source code of the Linux core system, when searching for a function for accessing the network packet, not only the original type name of the specific data type, but also the name of the data type, can be used. Use a deformed state name. Please refer to Figure 4A. Because the C language has rules such as aliases (AHas), customized data types, and Nested Structures, the deformed state name of the method can be 12 201206120 Two material types... A nested data structure generates a type of tragic 43 system that makes it oblique to the data type of one of the network packets. The function of the language can access the function of a specific tool in many ways. The function of the four-day analysis method includes: searching for the access network, and searching for the second party. The method includes the core code of the system: the source code: two: the rirr function, where the access to the network is blocked. The function of the network packet or the function of an indirect packet is the four-picture β, the direct access network type, the global variable (also known as the type name (Paca eterType) 45 - ar = ble) 44, - the function of the function or - the definition of the region (L 〇, n Return Type 46 packets. Meaning (L〇CalDeflnhl_7, can directly access the network four:: Fang 2 : The function of accessing specific data does not utilize the above-used-call access network packet access, .NET packet The function system calls the direct access network seal (4) (5) (four), in the form of the function b ~ a), and indirect:; large: for example 'E by - indicator, so make and 彳曰,,, - 侍到- pointing One of the network packets is accessed by the network gateway: take the Internet packet, or directly access the network packet L (Indirect (5) (6)) as shown in Figure 6, to be refu e, and indirectly from ===, for example, cali by accessing the network packet. The metrics for the network packet, so that the 13 ί ] 201206120 part of the 'please participate' seven map (its The original function is located from another feasible point of view. The present invention can use the above-mentioned functional analysis method to find out the function of the access network packet in the .* — ^ mad type, and The embedding instruction, mei 4+勹> is also a method for tracking the processing procedure of the network packet, and the β π A ^ ^ T. The hai network packet is connected to the nucleus and the nucleus (d), the method includes

網路封包的一函式,嵌入一V孙扠仏仔取A 追峨指令(例如:在第七圖中 的大虛線框内者即為一工具 r $ 始碼(Instrument Source 1 Γ ’是—插入追蹤技術的指令)於該函式中,開始 執㈣^’並進而觸發該追_令,以及記錄該函式之 一 5哉別符,俾得以追蹤該處埋程序。 田此%的方法之泫追蹤指令係可以為一工具原始 碼’此些指令碼的功用係可以記錄下函式的執行順序以及 所關心的系統内部資料或資源情況,提供開發者追縱與分 析系統的運作狀態,而該識別符為一名稱或一代碼或其他 各式各樣的符號。本發明可以應用於網路裝置的開發,目 前網路已大量建置,連網裝置也日漸普及,未來再加上雲 端计算產業的發展,裝置連網會更加普遍,本發明可以提 升網路通訊裝置的軟體開發效率與通訊效能,產業價值極 大 又本案進行檢索的關鍵字為:packet processing sequence 、 packet processing procedure 、 packet trace、packet flow、packet data type 及 kernel function等。而當檢索之資料庫為美國專利商標局專利 201206120 資料庫檢索系統(http: //www. uspto. gov/)時,其結果如 下: 1. " packet processing sequence" AND " packet data type11 : 0 篇 2. "packet processing sequence" AND "kernel function": 0 篇 3. "packet processing procedure" AND " packet data type": 0 篇 4. "packet processing procedure" AND 丨丨kernel function": 0 篇 5. "packet flow" AND " packet data type": 9篇 6. "packet flow" AND M kernel function": 7篇 7. "packet trace" 'AND "packet data type" :0篇 8. "packet trace" 'AND "kernel function": 0篇A function of the network packet, embedding a V-sun fork to take the A tracking command (for example, in the large dotted frame in the seventh figure, it is a tool r $ start code (Instrument Source 1 Γ 'is- In the function of the tracking technology, in the function, start (4) ^ ' and then trigger the chase _ order, and record one of the 5 哉 符 俾 俾 俾 俾 俾 俾 俾 俾 俾 俾 俾 俾 俾 俾 俾 田 田 田 田 田 田 田The tracking instruction system can be a tool source code. The function of the instruction code can record the execution order of the function and the internal data or resources of the system concerned, and provide the developer tracking and analysis system operation status. The identifier is a name or a code or other various symbols. The invention can be applied to the development of network devices, and the network has been widely built, and the networked devices are becoming more and more popular, and the cloud is added in the future. The development of the computing industry, device networking will be more common, the invention can improve the software development efficiency and communication efficiency of the network communication device, and the industry value is great. The keyword for searching in this case is: packet processing Sequence, packet processing procedure, packet trace, packet flow, packet data type, and kernel function, etc. When the database retrieved is USPTO patent 201206120 database retrieval system (http: //www. uspto.gov/) The results are as follows: 1. " packet processing sequence" AND " packet data type11 : 0 Article 2. "packet processing sequence" AND "kernel function": 0 Article 3. "packet processing procedure" AND " Packet data type": 0 Part 4. "packet processing procedure" AND 丨丨kernel function": 0 Article 5. "packet flow" AND " packet data type": 9 articles 6. "packet flow" AND M Kernel function": 7 articles 7. "packet trace" 'AND "packet data type" :0. 8. "packet trace" 'AND "kernel function": 0

謹將第5及第6次已檢索到之專利資料臚列如下: 1 US 7, 453, 801The 5th and 6th patent documents retrieved are listed below: 1 US 7, 453, 801

Admission control and resource allocation in a communication system supporting application flows having quality of service requirements 2 US 7, 305, 51 1Admission control and resource allocation in a communication system supporting application flows having quality of service requirements 2 US 7, 305, 51 1

Providing both wireline and wireless connections to a wireline interface 3 US 7, 164, 657Providing both wireline and wireless connections to a wireline interface 3 US 7, 164, 657

Intelligent collaboration across network systems 201206120 4 US 7, 136, 904Intelligent collaboration across network systems 201206120 4 US 7, 136, 904

Wireless cable replacement for computer peripherals using a master adapter 5 US 7, 127, 541Wireless cable replacement for computer peripherals using a master adapter 5 US 7, 127, 541

Automatically establishing a wireless connection between adapters 6 US 6, 963, 955Automatically establishing a wireless connection between adapters 6 US 6, 963, 955

Scattering and gathering data for faster processing φ 7 US 6, 950, 859Scattering and gathering data for faster processing φ 7 US 6, 950, 859

Wireless cable replacement for computer peripherals 8 US 6, 894, 972Wireless cable replacement for computer peripherals 8 US 6, 894, 972

Intelligent collaboration across network system 9 US 6, 665, 495Intelligent collaboration across network system 9 US 6, 665, 495

Non-blocking, scalable optical router architecture and method for routing optical traffic • 10 US 7,685,254Non-blocking, scalable optical router architecture and method for routing optical traffic • 10 US 7,685,254

Runtime adaptable search processor 11 US 7, 631,107Runtime adaptable search processor 11 US 7, 631,107

Runtime adaptable protocol processor 12 US 7, 627, 693Runtime adaptable protocol processor 12 US 7, 627, 693

IP storage processor and engine using RDMA 13 US 7, 536, 462IP storage processor and engine using RDMA 13 US 7, 536, 462

Memory system for a high performance IP processor 201206120 14 US 7,487,264Memory system for a high performance IP processor 201206120 14 US 7,487,264

High performance IP processor 15 US 7,415,723High performance IP processor 15 US 7,415,723

Distributed network security system and a hardware processor 16 US 7, 376, 755Distributed network security system and a hardware processor 16 US 7, 376, 755

TCP/IP processor and engine using RDMATCP/IP processor and engine using RDMA

又當檢索之資料庫為歐洲專利局專利資料庫檢索系 統(http://ep· espacenet.com/)時,其結果如下: 1. "packet processing sequence" AND "packet data type": 0 篇 2. "packet processing sequence" AND "kernel function” : 0 篇 3. "packet processing procedure" AND "packet data type'丨:0 篇 4. " packet processing procedure" AND "kernel function": 0 篇 5. "packet flow" AND M packet data type": 0 篇 6. "packet flow" AND " kernel function": 0 篇 7. "packet trace" 'AND "packet data type": 0 篇 8. "packet trace" 1 AND "kernel function”: 0 篇 將上述檢索的技術内容與本案進行比對後的結果,顯 示出均與本發明無關或不同,並沒有與本發明類似的專When the database retrieved is the European Patent Office Patent Database Search System (http://ep·espacenet.com/), the results are as follows: 1. "packet processing sequence" AND "packet data type": 0 2. "packet processing sequence" AND "kernel function" : 0 Part 3. "packet processing procedure" AND "packet data type'丨:0 Article 4. " packet processing procedure" AND "kernel function&quot ;: 0 Part 5. "packet flow" AND M packet data type": 0 Part 6. "packet flow" AND " kernel function": 0 Article 7. "packet trace" 'AND "packet data type&quot ;: 0 Part 8. "packet trace" 1 AND "kernel function": 0 The results of comparing the technical content of the above search with the case show that they are not related to or different from the present invention, and there is no Invention similar

17 201206120 叫二二:’广产明確能以一嶄新的設計’藉由利用呼 所定=料結構’而據以追縱該處理程序,並且 亥參數之資料型態名,能實質獲致 追縱該處理程序之功效。故凡熟習本技化貝人料 ’件任施匠思而為諸般修飾,然皆 ^ 圍所欲保護者。 π节。月專利把 【圖式簡單說明】 •的追::::是習知的原始工具類之Kernprof核心函式 第二圖:是本發明的追縱網路封包之處理程 所利用之資料結構的結構圖; =三圖:是本發明之使用函式呼叫以傳遞資料結構的 幸父佳貫施例之程式設計圖; 第四圖A:是本發明之使用c語言的別名、客製化資 態及巢狀資料結構等規狀魏實施㈣設計 圖; 0 〇1 第四圖B:是直接存取網路封包的函式之全域變數、 函式的參數型態名、回傳型態名及區域定義等程式圖; 第五圖:是利用彳叫存取網路封包之函式的程式設計 圖; 第六圖:是利用被存取網路封包之函式呼叫的程式嗖 計圖;以及 > 第七圖:是第三圖之嵌入指令結果的較佳實施例之程 式設計圖。 201206120 【主要元件符號說明】 41 :別名 42 客製化資料型態名 43 :巢狀資料結構 44 全域變數 45 :參數型態名 46 回傳型態名 47 ·區域定義 70 工具原始碼17 201206120 Called 22: 'Guangzhou can clearly track the process with a new design 'by using the caller = material structure', and the data type name of the parameter can be substantially recovered. The efficiency of the handler. Therefore, if you are familiar with the technology, you will be able to modify it, and you will be able to protect it. π section. The monthly patent [simplified description of the schema] • The chase:::: is the Kernprof core function of the original primitive tool class. The second diagram is the data structure used by the processing network of the present invention. Structure diagram; = three diagrams: is a programming diagram of the method of using the function call to transfer the data structure of the present invention; the fourth diagram A: is the alias of the c language of the present invention, the customary capital State and nested data structure isomorphism Wei implementation (four) design diagram; 0 〇1 fourth diagram B: is the global variable of the function directly accessing the network packet, the parameter type name of the function, the return type name And the program definition and other program diagrams; Figure 5: is a program diagram that uses the function of squeaking to access the network packet; Figure 6: is a program diagram of the function call using the accessed network packet; And > seventh figure: is a programming diagram of a preferred embodiment of the embedded instruction result of the third figure. 201206120 [Explanation of main component symbols] 41 : Alias 42 Customized data type name 43 : Nested data structure 44 Global variable 45 : Parameter type name 46 Return type name 47 · Area definition 70 Tool source code

Claims (1)

201206120 七、申請專利範圍·· 1 · 一種追縱-網路封包(NetWGrk Paeket)之—處 :::在路封包係儲存在一資料結構内,且該網 包括如下步ί (Kernei)内接受該處理程序,該方法 縱該傳遞該_結構’並據以追 ^如申W專利範圍第!項所述之方法,其中該 ^繼’而該資料結構為一 sk—buii,該方 ^ 存取該該方法更包含利用一特定函式以 序。 、1,且该處理程序為該資料結構之-執行順 封包之一處理程序的方法,其令該網路 步驟:、織心内接受該處理程序’該方法包括如下 數; 提供一函式,以處理該網路封包’其中該函式具一參 定義該參數之一資料型態名;以及 搜尋該資料型態名’而追縱該處理程序。 :如申請專利範圍第3項所述之方法 係為—搪晷的其進 一甲3貝枓型態名 二技寸的基準點,而該資料型態名為 始型態名或一變形型態名。 -之原 5.如申請專利範圍第4項所述 客製化資料型能文+ ω · 名或-巢狀資料結構 為咨“方法其中該變形型態 而 20 201206120 變形型態名係使其與該網 6.如申請專利範圍第3項所v匕之一資料型態產生關聯。 心之一原始碼尹,尋找一,' 方法更包含從該系統核 存取該網路封包的函式為1取該網路封包的函式,其中該 或一間接存取該網路^包的'函直接存取該網路封包的函式 7.如申請專利範圍第6項所::方 路封包的函式係利用— 法,-中該直接存取網 Variable)、—參數型離、 已宣告的變數(Global 以直接存取該網路封包二、—回傳型態名或-區域定義 8·如申請專利範圍第6項 路封包的函式係利用方法’其中該間接存取網 Caller)或一被存敌 子網路封包之函式(Indirect ⑸lee),並藉由一傳址方^封包之函式呼叫(Indirect 的指標,以存取該而間接得到一指向該網路封包 9.—種追縱一網路封句 _ 封包係在一奉缔仿、、 ^程序的方法,其中該網路 步驟| …内接$該處理程序,該方法包括如下 提供存取該網路封包的一函式; 嵌入一追蹤指令於該函式中; 開始執行該函式,並進而觸發該追縱指令;以及 兄錄該函式之-_符,俾得以追縱該處理程序。 ^ 如申請專利範圍第9項所述之方法,其中該追縱指令 卫具原始碼(InStrument Source Code),該識別符 為一名稱或一代碼。 竹 21201206120 VII. Scope of application for patents·· 1 · A type of net-network packet (NetWGrk Paeket)::: The road packet is stored in a data structure, and the network includes the following steps (Kernei) accepted The processing program, the method should pass the _structure' and according to the scope of the application of the W patent! The method of the item, wherein the data structure is a sk_buii, and the method of accessing the method further comprises using a specific function. And 1, the processing program is a method of executing a processing packet of the data structure, wherein the network step: accepting the processing program within the weaving heart, the method includes the following number; providing a function, To process the network packet 'where the function defines a data type name of the parameter; and search for the data type name' to track the processing program. The method described in item 3 of the patent application scope is the reference point of the 甲 3 进 进 , , , , , , , , , , , , , , , , , , , , , , , , , , , , name. - The original 5. According to the scope of the patent application, the customized data type can be + ω · name or nested data structure for the "method of the deformation" and the 2012 201220 deformed type Corresponding to the data type of the network 6. According to the third item of the patent application scope, one of the original code of the heart, looking for one, 'the method further includes a function of accessing the network packet from the system core. 1 is a function of the network packet, wherein the function of the network packet that directly accesses the network packet is directly accessed by the function of the network packet as described in item 6 of the patent scope: The function of the packet is to use the method, the direct access network Variable, the parameter type, the declared variable (Global to directly access the network packet 2, the return type name or the - area definition 8. If the application for the sixth paragraph of the patent application scope is the use of the method 'the indirect access network Caller' or the function of the stored enemy network packet (Indirect (5) lee), and by means of a destination ^ Packet's function call (Indirect's indicator to access this indirectly to get a pointer to the network seal 9. A type of network slogan _ a package is a method of circumventing a program, wherein the network step | ... is connected to the processing program, the method includes providing access to the network as follows a function of the packet; embedding a tracking instruction in the function; starting to execute the function, and then triggering the tracking instruction; and the brother-recording the -_ character of the function, so that the processing program can be traced. The method of claim 9, wherein the tracking code is an InStrument Source Code, and the identifier is a name or a code.
TW99125188A 2010-07-29 2010-07-29 Method for tracing processing procedure of network packet TWI425795B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW99125188A TWI425795B (en) 2010-07-29 2010-07-29 Method for tracing processing procedure of network packet

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW99125188A TWI425795B (en) 2010-07-29 2010-07-29 Method for tracing processing procedure of network packet

Publications (2)

Publication Number Publication Date
TW201206120A true TW201206120A (en) 2012-02-01
TWI425795B TWI425795B (en) 2014-02-01

Family

ID=46761848

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99125188A TWI425795B (en) 2010-07-29 2010-07-29 Method for tracing processing procedure of network packet

Country Status (1)

Country Link
TW (1) TWI425795B (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002089426A1 (en) * 2001-04-27 2002-11-07 Ntt Data Corporation Packet tracing system
US7376950B2 (en) * 2002-05-08 2008-05-20 Intel Corporation Signal aggregation
US7742414B1 (en) * 2006-06-30 2010-06-22 Sprint Communications Company L.P. Lightweight indexing for fast retrieval of data from a flow-level compressed packet trace
CN1937544A (en) * 2006-11-13 2007-03-28 陈哲 IP phone monitoring system
US8695089B2 (en) * 2007-03-30 2014-04-08 International Business Machines Corporation Method and system for resilient packet traceback in wireless mesh and sensor networks
US7925940B2 (en) * 2007-10-17 2011-04-12 Synopsys, Inc. Enhancing speed of simulation of an IC design while testing scan circuitry

Also Published As

Publication number Publication date
TWI425795B (en) 2014-02-01

Similar Documents

Publication Publication Date Title
Kerrisk The Linux programming interface: a Linux and UNIX system programming handbook
McKusick et al. The design and implementation of the FreeBSD operating system
US9842045B2 (en) Failure recovery testing framework for microservice-based applications
JP6494609B2 (en) Method and apparatus for generating a customized software development kit (SDK)
EP2994835B1 (en) Identifying impacted tests from statically collected data
CN109656538A (en) Generation method, device, system, equipment and the medium of application program
US20070130119A1 (en) User/process runtime system trace
Knorreck et al. Formal system‐level design space exploration
US20230040635A1 (en) Graph-based impact analysis of misconfigured or compromised cloud resources
Ayanoglu et al. Mastering rabbitmq
US9373093B2 (en) Gateway service manager for business object applications
CN103294482B (en) Web service method for packing and system for PWscf concurrent computational system
de la Cámara et al. Model checking software with well-defined apis: the socket case
Larsson Hands-on Microservices with spring boot and spring cloud: Build and deploy Java microservices using spring cloud, Istio, and Kubernetes
WO2023049520A1 (en) Advanced agent instrumentation for opentelemetry implementations
TW201206120A (en) Method for tracing processing procedure of network packet
Tjandra Performance model extraction using kernel event tracing
Bowles et al. Parametric transformations for flexible analysis
CN112965749B (en) Request path acquisition method, apparatus, computer device and storage medium
Lamouchi Flying All Over the Sky with Quarkus and Kubernetes
Leduc Lambda functions for network control and monitoring
Sommese Boosting the performance of NFV services with SmartNIC
Dubey et al. Customized Framework for Backend Using Node JS
Iyer Latency Interfaces for Systems Code
Klingestedt Client-Server Communications Efficiency in GIS/NIS Applications: An evaluation of communications protocols and serialization formats

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees