linux系统下sniffer的实现(二)的论文

linux系统下sniffer的实现(二)的论文

ID:10495313

大小:102.00 KB

页数:17页

时间:2018-07-07

linux系统下sniffer的实现(二)的论文_第1页
linux系统下sniffer的实现(二)的论文_第2页
linux系统下sniffer的实现(二)的论文_第3页
linux系统下sniffer的实现(二)的论文_第4页
linux系统下sniffer的实现(二)的论文_第5页
资源描述:

《linux系统下sniffer的实现(二)的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Linux系统下Sniffer的实现(二)的论文boolreadtable()//读取table.dat{file*tab=fopen(table_file,"r");//打开文件intcount=fread(tab,sizeof(int),tab_size,tab);fflush(tab);//刷新文件流for(inti=0;i<=tab_size-2;i++)if(tab[i]!=-1tab[i+1]!=-1)tab[i+1]=tab[i+1]+tab[i];elsebreak;returntrue;}intloadpack()//加载数据包{inti;i

2、ntload_packs=0;file*pack=fopen(pack_file,"r");for(i=0;i<buf_count;i++){if(tab[to_be_load+i]!=-1tab[to_be_load+i+1]!=-1){intsize=tab[to_be_load+i+1]-tab[to_be_load+i];intoffset=tab[to_be_load+i];if(fread(buf+i,size,1,pack)!=1){printf("readerror...");exit(1);}load_packs++;//更新变量}e

3、lse{/*donothing*/}}fflush(pack);//刷新数据流to_be_load+=load_packs;//更新变量returnload_packs;//返回读取的数目}  3.4.2系统中的buffer  在现实中的很多系统中,buffer是很重要的一种思想,为的就是减少读取外部存储的次数,延长设备的使用寿命。.cOmbuffer在计算机系统中,应用是很广泛的,例如,在硬盘和内存之间存在一层缓冲区,在cpu和内存之间同样也存在一层缓冲区,这层缓冲区通常被称作cache。  在本系统中,也同样利用了buffer思想,有着传统意义上的原因,当然还考

4、虑到用户操作时的特殊性,系统的buffer思想描述如下:  l在任意时刻,buffer内最多存储100个package数据  l刚开始,加载pack0~pack99共计100个package,当要查看pack100时,则采取的方法是:保留旧的50个package,加载新的50个package,则package编号变为:pack50~pack149,这样操作的原因是为了用户的方便,因为用户经常会查看某个报文附近的几个报文。  初始状态下,假设系统已经加载了编号为0到99的数据包,如图2.7所示:            图2.7加载前缓冲区内容  在某一时刻,假设用户想

5、查看编号为100的数据包,则需要重新加载,重新加载后的数据包如图2.8所示:           图2.8加载后缓冲区内容  使用此种buffer思想,用户操作的方便性即体现在这个方面,在对某条报文进行研究时,会经常查看它的临近报文,使用此种机制,那么便不会不断的对要查看的临近报文进行加载,减少了读取硬盘的次数。  3.4.3系统的显示问题  在控制台上,要想建造一个好的用户操作界面,是一件比较难的事情,根据我的体验,linux下著名的sniffer工具tcpdump的操作界面也不够友好,普通用户很难操作。在ple”模式,“detail”模式意为“详细显示模式”,“

6、simple”模式意为“简单显示模式”。  在“detail”模式下,每个包得到尽可能详细的解析,解析包的每一层信息,示意如图2.9:         图2.9详细显示模式  根据上图显示的信息,可以得知此包是一个icmppackage,具体内容属于pingreply,更详细得知是本主机ping本主机的一个数据包。  “simple”模式意为简单模式,所谓简单模式就是对每个package尽可能的用一句话来描述,虽然尽可能的简短,但是一定要包含以下信息:  lpackage的类型  lpackage的作用  这种模式的重要作用是在用户对包进行检测和测量时,通常会查看相

7、邻的几个package,这样的模式方便用户进行“查看上一个package”和“查看下一个package”,只要用户在这种模式下按“n”或者“n”就可以查看下一个package,只要按“l”或“l”键就可以查看上一个package。  “simple”模式的示意如图2.10所示:          图2.10简单显示模式  从图中可以看出,当前正在查看的包用“蓝色”的线条标出,方面用户的操作,当用户向上或者向下进行选择时,此蓝色线条也同样会向上或向下运动,这样做的原因是是的系统显示具有动态效果。  “detail”模式的显示比较简单,只要逐层进行解析就可以了,下面

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。