015
LINUX网络子系统PKTGEN模块的分析样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本设计包含内容:源代码+毕业论文
论文大概:
毕业论文
(或毕业设计)
LINUX网络子系统
PKTGEN模块的分析
目 录
摘要
…………………………………………………………………………… 2
1.引言
…………………………………………………………………………
3
2.控制流程 ……………………………………………………………………
3
(1)接收数据包 ……………………………………………………………………
3
(2)发送数据包 ……………………………………………………………………
4
(3)数据包的分段,插入进程 ……………………………………………………
4
3.流程图 …………………………………………………………………………
5
4.关键的数据结构及其实现 …………………………………………………
7
(1)数据结构pktgen_info ………………………………………………
7
(2)数据结构sk_buff …………………………………………………………
8
(3)数据结构net_device……………………………………………………… 10
5.
关键函数及其算法 ……………………………………………………………11
(1)alloc_skb(
) ……………………………………………………………… 11
(2)skb_clone(
) …………………………………………………………… 11
(3)kfree_skb(
) …………………………………………………………… 12
(4)skb_put(
) ………………………………………………………………… 12
(5)skb_push(
) …………………………………………………………… 12
(6)skb_pull (
) …………………………………………………………… 13
(7)skb_cloned(
) …………………………………………………………… 13
(8)setup_inject(
) …………………………………………………………… 13
(9)fill_packet(
) …………………………………………………………… 17
(10)inject( )
………………………………………………………………
21
6.Pktgen.c模块与其他模块之间的调用关系 ……………………………… 25
7. 异常处理
………………………………………………………………
25
结束语 …………………………………………………………………………
26
参考文献………………………………………………………………………… 26
Linux网络子系统Pktgen模块的分析
01计算机(1)班 梁潇 学号014043122
摘要:pktgen.c:可评估其绩效的数据包生成器。一种为了承载网络上已经形成的数据包的工具。该工具被作为LINUX的一个模块。参数被输出到设备,决定了包的数量以及是否使用众多的SKB,还是只使用同一个SKB。数据包生成器使用已安装的接口输出程序。本文主要介绍了pktgen.c模块内部控制流程、实现算法、关键语句的语法和语义、系统与函数的调用;相关的数据结构;与系统其它模块的接口;如何使用;该模块的差错处理;等等。
关键词:
数据包;协议;网络设备
The analyse of pktgen in Linux
Abstract: pktgen.c: Packet
Generator for performance evaluation. A tool for loading the network
with preconfigurated packets. The tool is implemented as a
linux module. Parameters are output device, IPG
(interpacket gap), number of packets, and whether to use
multiple SKBs or just the same one. pktgen uses the installed
interface's output routine.
Key
words:packet;protocol;netdevice
1.引言
Linux 操作系统是 UNIX 操作系统的一种克隆系统。它诞生于 1991 年的 10 月 5
日(这是第一次正式向外公布的时间)。此后借助于 Internet
网络,经过全世界各地计算机爱好者的共同努力,现已成为当今世界上使用最多的一种 UNIX
类操作系统,并且使用人数还在迅猛增长。
Linux
操作系统的创始人Linus在回答别人提出的有关Linux的每一个问题时,所说的第一句话就是“阅读源代码”(“RTFSC”)。他认为答案就在源程序中。这也说明了对于学习系统软件来说,不光需要懂得系统的工作基本原理,还需要结合实际系统,学习实际系统的实现方法。因为理论毕竟是理论,其中省略了许多枝节,而这些枝节问题虽然没有太多的理论含量,但却是一个系统必要的组成部分,就象麻雀身上的一根羽毛。
国内外已有众多学者阅读linux源代码,比如像David
A Rusling在著作linux
kernel中是分硬件基础,软件基础,存储管理,进程间通讯机制,PCI,设备驱动,文件系统,模块,处理器等几大块来分析研究。大多著作中都只介绍了linux系统较高层面的框架结构,把细节部分都省略未介绍,所以笔者这次专攻网络核心部分模块pktgen的源代码,希望能通过对细节部分的剖析来加深对linux系统功能实现的理解。