linux系统下sniffer的实现(二)

linux系统下sniffer的实现(二)

ID:25535579

大小:94.50 KB

页数:21页

时间:2018-11-20

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;}int

2、LoadPack()//加载数据包{inti;intload_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

3、("Readerror...");exit(1);}load_packs++;//更新变量}else{/*donothing*/}}fflush(pack);//刷新数据流to_be_load+=load_packs;//更新变量returnload_packs;//返回读取的数目}  3.4.2系统中的buffer  在现实中的很多系统中,buffer是很重要的一种思想,为的就是减少读取外部存储的次数,延长设备的使用寿命。Buffer在计算机系统中,应用是很广泛的,例如,在硬盘和内存之间存在一层缓冲区,

4、在CPU和内存之间同样也存在一层缓冲区,这层缓冲区通常被称作Cache。  在本系统中,也同样利用了Buffer思想,有着传统意义上的原因,当然还考虑到用户操作时的特殊性,系统的Buffer思想描述如下:  l在任意时刻,Buffer内最多存储100个Package数据  l刚开始,加载pack0~pack99共计100个package,当要查看pack100时,则采取的方法是:保留旧的50个package,加载新的50个package,则package编号变为:pack50~pack149,这样操作的原因是为了

5、用户的方便,因为用户经常会查看某个报文附近的几个报文。  初始状态下,假设系统已经加载了编号为0到99的数据包,如图2.7所示:            图2.7加载前缓冲区内容  在某一时刻,假设用户想查看编号为100的数据包,则需要重新加载,重新加载后的数据包如图2.8所示:           图2.8加载后缓冲区内容  使用此种Buffer思想,用户操作的方便性即体现在这个方面,在对某条报文进行研究时,会经常查看它的临近报文,使用此种机制,那么便不会不断的对要查看的临近报文进行加载,减少了读取硬盘的次数。 

6、 3.4.3系统的显示问题  在控制台上,要想建造一个好的用户操作界面,是一件比较难的事情,根据我的体验,linux下著名的Sniffer工具tcpdump的操作界面也不够友好,普通用户很难操作。在ple”模式,“detail”模式意为“详细显示模式”,“simple”模式意为“简单显示模式”。  在“detail”模式下,每个包得到尽可能详细的解析,解析包的每一层信息,示意如图2.9:         图2.9详细显示模式  根据上图显示的信息,可以得知此包是一个ICMPPackage,具体内容属于pingRe

7、ply,更详细得知是本主机ping本主机的一个数据包。  “simple”模式意为简单模式,所谓简单模式就是对每个Package尽可能的用一句话来描述,虽然尽可能的简短,但是一定要包含以下信息:  lPackage的类型  lPackage的作用  这种模式的重要作用是在用户对包进行检测和测量时,通常会查看相邻的几个Package,这样的模式方便用户进行“查看上一个Package”和“查看下一个Package”,只要用户在这种模式下按“N”或者“n”就可以查看下一个package,只要按“L”或“l”键就可以查看

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

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

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

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