[发明专利]一种基于动态插桩技术的数据包处理时延分析方法有效
申请号: | 201110309258.6 | 申请日: | 2011-10-13 |
公开(公告)号: | CN102346710A | 公开(公告)日: | 2012-02-08 |
发明(设计)人: | 刘家军;郝沁汾;张伟 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F15/163 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 技术 数据包 处理 分析 方法 | ||
1.一种基于动态插桩技术的数据包处理时延分析方法,其特征在于:该方法具体步骤如下:
步骤一.在机器2上收集内核符号表,获取内核函数与地址的对应关系,输出能进行插桩的函数列表,并传递给机器1;
步骤二.在机器1上根据优化的目标,确定需要分析的函数,输出需要插桩的函数列表,并传递给机器2;
步骤三.将步骤二所确定的函数列表传递到机器2上,机器2运用动态插桩技术在需要监控的函数的头部插入一段代码,该代码会将函数的地址和当前的时间戳写入数据包;
步骤四.启动收包模块和发包模块;机器1开始发送数据包,数据包传递到机器2的内核之后,若检测到数据包的目的地是机器2的收包模块的话,就将当前正在执行的函数的地址和时间戳写入数据包;当数据包到达机器2的收包模块时,收包模块将数据包返还给机器1,机器1的发包模块将来自机器2的数据包以文件的形式存储起来;
步骤五.机器1统计所有来自机器2接收模块的数据包,计算并输出统计结果;
其中,所述的机器1和机器2是真实的计算机,或是通过虚拟化软件虚拟出来的虚拟计算机,它们同时部署在同一个物理机上;机器1的功能是提供控制界面,分析并输出结果,机器1上部署了发包模块和统计模块,机器2的功能是收集信息,并将收集到的信息反馈给机器1,机器2上部署了插桩模块和收包模块。
2.根据权利要求1所述的一种基于动态插桩技术的数据包处理时延分析方法,其特征在于:步骤一中所述的“在机器2上收集内核符号表”是指:收集正在运行的内核的符号表,内核符号表中记录了内核函数和变量在内存中的地址,在Linux系统下,通过读取/boot目录下与内核版本相对应的System.map或直接读取/proc/ksyms就获取到内核符号表,此外,还能通过分析内核文件或内核调试信息来获得的内核符号表;由于内核符号表中不仅记录了内核函数的在内存中的地址,还记录了内核变量的地址,因此需要对读取到的内核符号表进行分析,过滤掉那些非函数的内核符号,输出所有内核函数的符号表,这些函数就是能进行插桩的函数列表,确定之后,将其传递给机器1。
3.根据权利要求1所述的一种基于动态插桩技术的数据包处理时延分析方法,其特征在于:步骤二中所述的“在机器1上根据优化的目标,确定需要分析的函数,输出需要插桩的函数列表,并传递给机器2”是指:当机器1收到机器2的能插桩的函数列表之后,手动或自动确定需要插桩的函数列表;手动确定需要对于内核处理过程熟悉,知道内核会调用哪些函数来处理数据包,然后手动的将需要插桩的函数写入文件形成需要插桩的函数列表;除了手动确定外,也能写些脚步通过名字匹配的方法来自动确定。
4.根据权利要求1所述的一种基于动态插桩技术的数据包处理时延分析方法,其特征在于:步骤三中所述的“将步骤二所确定的函数列表传递到机器2上,机器2运用动态插桩技术在需要监控的函数的头部插入一段代码,该代码会将函数的地址和当前的时间戳写入数据包”是指:需要监控的函数的头部插入一段代码完成之后,内核执行该函数时会首先执行插入的代码,接着执行原函数;插入的代码的功能是对当前正在处理的数据包进行检测,若满足条件则将当前正在执行的函数的地址和当前的时间戳添加数据包后面。
5.根据权利要求1所述的一种基于动态插桩技术的数据包处理时延分析方法,其特征在于:步骤四中所述的“启动收包模块和发包模块”是指:机器1的发包模块和机器2的收包模块都是运行在用户态下的应用程序;机器1的发包模块被激活之后会根据用户的配置以一定的速率向机器2的收包模块发送数据包,数据包包含两部分信息,元信息部分记录了数据包总共的大小、数据信息的偏移量及目前需要插入信息的偏移量;数据信息就是一个函数地址与时间戳的表格,插桩模块每次都将函数地址和时间戳写入到数据信息的末尾;机器1的发包模块发送的数据包的数据信息部分用零填充,数据包到达机器2之后,位于内核中的插桩模块会将需要监控的函数的地址及内核调用该函数时的时间戳写入数据包的数据信息部分,并修改数据包的元信息;当数据包传递到收包模块之后,收包模块不会修改数据包,而是直接将数据包返还给机器1的发包模块。
6.根据权利要求1所述的一种基于动态插桩技术的数据包处理时延分析方法,其特征在于:步骤五中所述的“机器1统计所有来自机器2接收模块的数据包,计算并输出统计结果”是指:机器1的发包模块接收到机器2返还的数据包之后,先将数据包以文件的形式存储起来,结束后再结合步骤二收集到的内核符号表,通过分析数据包的数据信息,计算出内核在数据包处理过程中调用了哪些函数,以及各个函数所消耗的时间,若对内核的数据包处理过程熟悉的话,通过查看入队列和出队列的时间戳,还能够分析出数据包在处理过程中的排队时延。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110309258.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:注射器芯杆
- 下一篇:电路板零配件整理装置