基于linux的一種快速數(shù)據(jù)包捕獲方法(含開題+任務書).rar
基于linux的一種快速數(shù)據(jù)包捕獲方法(含開題+任務書),基于linux的一種快速數(shù)據(jù)包捕獲方法(含開題+任務書)2萬字48頁包括開題報告,任務書,程序代碼,論文正文摘 要隨著網絡規(guī)模的不斷擴大,網絡異構程度不斷加深,計算機網絡變得日益復雜,迫切需要對網絡的流量進行實時、在線的監(jiān)控和管理。網絡流量監(jiān)測分析可以獲得詳細的流量特征,如流量大小、協(xié)議分布、數(shù)據(jù)包大小分布等信息,從而...
該文檔為壓縮文件,包含的文件列表如下:
內容介紹
原文檔由會員 usactu 發(fā)布
基于Linux的一種快速數(shù)據(jù)包捕獲方法(含開題+任務書)
2萬字 48頁
包括開題報告,任務書,程序代碼,論文正文
摘 要
隨著網絡規(guī)模的不斷擴大,網絡異構程度不斷加深,計算機網絡變得日益復雜,迫切需要對網絡的流量進行實時、在線的監(jiān)控和管理。網絡流量監(jiān)測分析可以獲得詳細的流量特征,如流量大小、協(xié)議分布、數(shù)據(jù)包大小分布等信息,從而指導網絡運維、管理與規(guī)劃設計。
網絡流量監(jiān)測分析必須解決的一個技術難點是如何實現(xiàn)高速鏈路的數(shù)據(jù)包捕獲。采用專用硬件價格比較昂貴,且缺乏靈活性;傳統(tǒng)的基于軟件實現(xiàn)的捕包方法由于受到硬件性能和操作系統(tǒng)開銷的影響,只適用于百兆及以下速率的低速鏈路中。除去硬件系統(tǒng)—CPU, PCI, Memory, Cache機制等本身固有的處理能力限制外,本文分析了傳統(tǒng)基于軟件的數(shù)據(jù)包捕獲方法所存在的局限性,研究如何控制其實現(xiàn)過程中的開銷,進而實現(xiàn)了一種基于Linux內核的高速鏈路數(shù)據(jù)包捕獲方法,該方法在通用PC上實現(xiàn),適應Gigabits級高速鏈路環(huán)境。實驗表明,基于內核的捕包方法降低了系統(tǒng)調用和內存拷貝,提高了流量分析的能力,與libpcap捕包能力相比有明顯的提高。
關鍵字:數(shù)據(jù)包捕獲,libpcap,內存拷貝,系統(tǒng)調用,內核模塊
An Efficient Packet Capture Method Based On Linux
Abstract
With the rapid development of network technologies, networks are becoming more and more complicated as the scale of networks are expanding, new applications are emerging, and the heterogeneity of networks is deepening. It is necessary to monitor networks traffic in real time and manage networks on-line. Through network traffic measurement, we can obtain the details of the traffic, such as link utilization, the distribution of the different protocols, the distribution of packet size, and so on. It will guide the maintenance and management of networks and facilitate the design of networks.
There are many challenges in high-speed network traffic monitoring; one of the most important bottlenecks is packet capturing. But it is too expensive and lack of flexibility to use the special hardware. Because of hardware capability and operating system overhead limitations, the existing network traffic monitoring tools based on software can only perform well at low speed network with the link rate below 100Mbps.Except the limit of hardware system like CPU, PCI, Memory, Cache. This thesis analysis the limit of traditional methods of captured data packet. We also analysis the overhead of its process of Implementation and then Implement a methods which is based on common PC and linux kernel and suit for GE high-speed network. The method which makes use of the characters of kernel module, reduces the overhead of system calls and memory copy times. The experiments show that the method which makes use of the characters of kernel module can enhance the performance much than one traffic analysis tool based on Libpcap.
Key Words: Packet Capture,libpcap,Memory Copy,system call,kernel module
目 錄
1.緒論 1
1.1 研究背景 1
1.2 研究意義 2
1.3 研究現(xiàn)狀 2
1.4 本文結構 3
2.網絡流量監(jiān)測概述 5
2.1 網絡流量的基本概念 5
2.1.1 網絡流量的基本定義 5
2.1.2數(shù)據(jù)包監(jiān)測的定義 5
2.1.3中斷活鎖的概念 6
2.2 網絡監(jiān)聽原理 6
2.2.1 以太網監(jiān)聽原理 6
2.2.2 網卡的四種工作模式 7
2.3 Linux操作系統(tǒng)數(shù)據(jù)包捕獲方法 8
2.3.1 Linux系統(tǒng)接收數(shù)據(jù)包的過程 9
2.3.2 Linux系統(tǒng)中流量分析性能影響因素 10
3.基于內核捕包方案的分析 12
3.1 常規(guī)的數(shù)據(jù)包捕獲方案 12
3.1.1 Libpcap 12
3.1.2 Libpcap的傳統(tǒng)捕獲機制影響 12
3.1.3 Libpcap捕包方法的不足 13
3.2存在的性能提升空間 14
3.3 基于內核捕包方案原理 15
3.3.1 Linux內核的數(shù)據(jù)包處理 15
3.3.2 基于Linux內核的捕包方案原理 16
3.4基于內核捕包方案性能分析 17
4.基于內核捕包方案的設計與實現(xiàn) 19
4.1設計概述 19
4.2 實現(xiàn)方案 20
4.2.1 實現(xiàn)的環(huán)境 20
4.2.2 方案的實現(xiàn) 20
4.3實現(xiàn)結果 24
5.實驗結果分析 27
5.1 實驗環(huán)境 27
5.1.1 libnet簡介 27
5.1.2實驗室環(huán)境配置 28
5.2數(shù)據(jù)包捕獲能力測試 29
5.3數(shù)據(jù)包深度分析能力測試 30
5.4 結論 31
6.總結與展望 33
致謝 34
參考文獻 35
附錄A 主要源程序 36
參考文獻
[10] 朱剛等著. linux網絡編程 [M]. 北京科學出版社,2000年.
[11]李善平,劉文峰等.Linux內核2.4版源代碼分析大全[M].機械工業(yè)出版社,2002.
[12] 楊建華,謝高崗,李忠誠.基于Linux內核的流量分析方法[J]. 計算機工程, 2006年 08期.
[13] Iannaccone G, Diot C, Graham I, et al. Monitoring Very High SpeedLinks[C]. Proc. of ACM SIGCOMM Internet Measurement Workshop,2001: 267-271. [14]楊建華.IP網絡業(yè)務流監(jiān)測分析技術研究[D].中國科學院計算技術研究所,2005.
[15]夏靖波等著 Windows網絡程序設計[M].西安電子科技大學出版社,2006.
附錄A 主要源程序
/*******************************************************
函 數(shù) 名: decode_init
功 能: 模塊初始化,主要包括字符設備注冊;相關變量初始化;
空間分配;網卡設置為混雜模式
調 用 函數(shù): decode_init_global_var()
被調用函數(shù): 模塊加載時
輸 入: 無
輸 出: 無
返 回 值:0表示成功,其他表示失敗
********************************************************/
int decode_init(void)
{
int result, i;
struct net_device *net_dev;
......
2萬字 48頁
包括開題報告,任務書,程序代碼,論文正文
摘 要
隨著網絡規(guī)模的不斷擴大,網絡異構程度不斷加深,計算機網絡變得日益復雜,迫切需要對網絡的流量進行實時、在線的監(jiān)控和管理。網絡流量監(jiān)測分析可以獲得詳細的流量特征,如流量大小、協(xié)議分布、數(shù)據(jù)包大小分布等信息,從而指導網絡運維、管理與規(guī)劃設計。
網絡流量監(jiān)測分析必須解決的一個技術難點是如何實現(xiàn)高速鏈路的數(shù)據(jù)包捕獲。采用專用硬件價格比較昂貴,且缺乏靈活性;傳統(tǒng)的基于軟件實現(xiàn)的捕包方法由于受到硬件性能和操作系統(tǒng)開銷的影響,只適用于百兆及以下速率的低速鏈路中。除去硬件系統(tǒng)—CPU, PCI, Memory, Cache機制等本身固有的處理能力限制外,本文分析了傳統(tǒng)基于軟件的數(shù)據(jù)包捕獲方法所存在的局限性,研究如何控制其實現(xiàn)過程中的開銷,進而實現(xiàn)了一種基于Linux內核的高速鏈路數(shù)據(jù)包捕獲方法,該方法在通用PC上實現(xiàn),適應Gigabits級高速鏈路環(huán)境。實驗表明,基于內核的捕包方法降低了系統(tǒng)調用和內存拷貝,提高了流量分析的能力,與libpcap捕包能力相比有明顯的提高。
關鍵字:數(shù)據(jù)包捕獲,libpcap,內存拷貝,系統(tǒng)調用,內核模塊
An Efficient Packet Capture Method Based On Linux
Abstract
With the rapid development of network technologies, networks are becoming more and more complicated as the scale of networks are expanding, new applications are emerging, and the heterogeneity of networks is deepening. It is necessary to monitor networks traffic in real time and manage networks on-line. Through network traffic measurement, we can obtain the details of the traffic, such as link utilization, the distribution of the different protocols, the distribution of packet size, and so on. It will guide the maintenance and management of networks and facilitate the design of networks.
There are many challenges in high-speed network traffic monitoring; one of the most important bottlenecks is packet capturing. But it is too expensive and lack of flexibility to use the special hardware. Because of hardware capability and operating system overhead limitations, the existing network traffic monitoring tools based on software can only perform well at low speed network with the link rate below 100Mbps.Except the limit of hardware system like CPU, PCI, Memory, Cache. This thesis analysis the limit of traditional methods of captured data packet. We also analysis the overhead of its process of Implementation and then Implement a methods which is based on common PC and linux kernel and suit for GE high-speed network. The method which makes use of the characters of kernel module, reduces the overhead of system calls and memory copy times. The experiments show that the method which makes use of the characters of kernel module can enhance the performance much than one traffic analysis tool based on Libpcap.
Key Words: Packet Capture,libpcap,Memory Copy,system call,kernel module
目 錄
1.緒論 1
1.1 研究背景 1
1.2 研究意義 2
1.3 研究現(xiàn)狀 2
1.4 本文結構 3
2.網絡流量監(jiān)測概述 5
2.1 網絡流量的基本概念 5
2.1.1 網絡流量的基本定義 5
2.1.2數(shù)據(jù)包監(jiān)測的定義 5
2.1.3中斷活鎖的概念 6
2.2 網絡監(jiān)聽原理 6
2.2.1 以太網監(jiān)聽原理 6
2.2.2 網卡的四種工作模式 7
2.3 Linux操作系統(tǒng)數(shù)據(jù)包捕獲方法 8
2.3.1 Linux系統(tǒng)接收數(shù)據(jù)包的過程 9
2.3.2 Linux系統(tǒng)中流量分析性能影響因素 10
3.基于內核捕包方案的分析 12
3.1 常規(guī)的數(shù)據(jù)包捕獲方案 12
3.1.1 Libpcap 12
3.1.2 Libpcap的傳統(tǒng)捕獲機制影響 12
3.1.3 Libpcap捕包方法的不足 13
3.2存在的性能提升空間 14
3.3 基于內核捕包方案原理 15
3.3.1 Linux內核的數(shù)據(jù)包處理 15
3.3.2 基于Linux內核的捕包方案原理 16
3.4基于內核捕包方案性能分析 17
4.基于內核捕包方案的設計與實現(xiàn) 19
4.1設計概述 19
4.2 實現(xiàn)方案 20
4.2.1 實現(xiàn)的環(huán)境 20
4.2.2 方案的實現(xiàn) 20
4.3實現(xiàn)結果 24
5.實驗結果分析 27
5.1 實驗環(huán)境 27
5.1.1 libnet簡介 27
5.1.2實驗室環(huán)境配置 28
5.2數(shù)據(jù)包捕獲能力測試 29
5.3數(shù)據(jù)包深度分析能力測試 30
5.4 結論 31
6.總結與展望 33
致謝 34
參考文獻 35
附錄A 主要源程序 36
參考文獻
[10] 朱剛等著. linux網絡編程 [M]. 北京科學出版社,2000年.
[11]李善平,劉文峰等.Linux內核2.4版源代碼分析大全[M].機械工業(yè)出版社,2002.
[12] 楊建華,謝高崗,李忠誠.基于Linux內核的流量分析方法[J]. 計算機工程, 2006年 08期.
[13] Iannaccone G, Diot C, Graham I, et al. Monitoring Very High SpeedLinks[C]. Proc. of ACM SIGCOMM Internet Measurement Workshop,2001: 267-271. [14]楊建華.IP網絡業(yè)務流監(jiān)測分析技術研究[D].中國科學院計算技術研究所,2005.
[15]夏靖波等著 Windows網絡程序設計[M].西安電子科技大學出版社,2006.
附錄A 主要源程序
/*******************************************************
函 數(shù) 名: decode_init
功 能: 模塊初始化,主要包括字符設備注冊;相關變量初始化;
空間分配;網卡設置為混雜模式
調 用 函數(shù): decode_init_global_var()
被調用函數(shù): 模塊加載時
輸 入: 無
輸 出: 無
返 回 值:0表示成功,其他表示失敗
********************************************************/
int decode_init(void)
{
int result, i;
struct net_device *net_dev;
......