標題: | 網路通訊協定堆疊剖析暨除錯之選擇性指令嵌入與封包關聯技術 Selective Instrumentation and Packet Association for Profiling and Debugging Network Protocol Stacks |
作者: | 李宗鴻 Li, Tsung-Hung 曹孝櫟 曾建超 Tsao, Shiao-Li Tseng, Chien-Chao 資訊科學與工程研究所 |
關鍵字: | Linux;網路通訊協定堆疊;嵌入式系統;核心函式;開放原始碼;封包處理過程;Linux;Network Protocol Stack;Embedded System;Kernel Function;Open Source;Packet Processing Procedure |
公開日期: | 2010 |
摘要: | 本研究之目的是發展選擇性指令的嵌入技術以及核心行為與網路封包的關連機制。網路通訊協定堆疊的運作,包含裝置系統內部的網路核心行為(包含核心函式的執行與核心事件的產生),以及外顯的網路協定行為,因此,為了了解裝置的整體通訊行為,我們需要整合網路核心系統的執行紀錄,以及網路協定在裝置間交換的封包紀錄。雖然,網路封包擷取工具可以擷取封包,紀錄網路協定外顯的封包交換行為,但目前尚未有一套工具能夠有效完整地記錄核心系統內部處理封包的行為,並且將系統內部的核心行為與外顯的網路協定行為整併,以追蹤與剖析網路通訊協定堆疊的完整運作程序。
因此,本論文提出一套選擇性指令的嵌入機制,該機制可以在核心程式中選擇適當的嵌入點嵌入指令,祇記錄必要的核心行為發生的時間點,以及與封包關聯的資訊,利用這些紀錄,我們可以將核心行為的紀錄與網路封包整合,展現網通裝置的整體通訊行為,讓開發者可以剖析裝置的網路協定堆壘運作,釐清與改善網路通訊的問題,提升開發效率與通訊效能。
本論文首先於作業系統的網路通訊協定堆疊之上,設計一套追蹤網路封包處理程序的機制,該機制從核心系統的原始程式碼中,找出存取封包的函式,並且嵌入能記錄執行函式與封包相關資訊的指令於該函式內,讓開發者得以追蹤系統內部處理網路封包的行為與時間點。接著提出一套對應整體通訊行為的方法,即將核心行為記錄與網路協定行為記錄作對應,讓開發者可以進一步分析核心運作與網路封包傳遞之間的互相影響,達成整合除錯的目的。
最後利用其他手動追蹤網路封包處理程序的方法來驗證本論文尋找網路封包處理函式的準確性,以及利用網路效能測試程式,來比較本論文所提出的機制與其他核心函式追蹤工具對於作業系統處理封包速度的影響程度。實驗結果顯示,本論文所提出的追蹤封包處理程序機制能夠確實地找到網路封包處理函式,並且對於作業系統的影響程度是非常小的。另一方面,我們使用TCP的Three-way-handshake之過程,驗證本論文整倂核心行為記錄與網路協定記錄的準確性。 New network communication applications such as cloud computing boost the need of the small and compact interaction gadgets. Such gadgets are compact and small devices that developers have tried hard to make them more reliable and powerful. Tools like kernal profilers and packet tracer help developers to analyze the behavior of the device internally and externally, respectively.. However, there still does not have any tool that can capture the overall networking behavior and help us to investigate and debug the network protocol stack or networking protocol. This thesis aims to develop a selective instrumentation and packet association mechanism that can automatically select network kernel functions and patch instructions to record the times functions start or termine as well as the information used to associate kernel function log with packet tracers's outputs. The selection instrumentation uses the special data-structure Linux Kernels use to maintain packets being processed to identify the network kernel functions. Experimental results show that the selective instrumentation and packet association mechanism is very effective and can indeed help to derive the overall networking behavior, including both internal network kernel operations and external communication behaviors. In the future, we could extend the work of this thesis to develop an analyzer that can fileter irrelated information and automatically thynthesize the networking behavior of interest, and help users to identy design flaws or the bottlenecks of the networking protocols or network kernels. |
URI: | http://140.113.39.130/cdrfb3/record/nctu/#GT079755538 http://hdl.handle.net/11536/45883 |
顯示於類別: | 畢業論文 |