LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1396|回复: 9

怎样编写一个脚本程序扫描tcpdump的ASCII格式文件中的每一行数据,把属于同一个连接的

[复制链接]
发表于 2003-10-1 16:17:27 | 显示全部楼层 |阅读模式
请问编程高手,怎样编写一个脚本程序扫描tcpdump的ASCII格式文件中的每一行数据,把属于同一个连接的所有数据包总结成一条连接记录。
发表于 2003-10-1 19:43:23 | 显示全部楼层
说详细点,因为相同的tcp链接很多,而且所占用端口却不见得一样.还是把你要求的格式之类的叙述详细点吧~~ ...
发表于 2003-10-2 00:15:17 | 显示全部楼层
能不能说的详细点,把你截获的数据贴一两条出来看看。
 楼主| 发表于 2003-10-2 15:18:20 | 显示全部楼层
16:49:18.588971 210.40.2.69.33233 > 211.93.98.22.http: S [tcp sum ok] 1576342548:1576342548(0) win 5840 <mss 1460,sackOK,timestamp 231361 0,nop,wscale 0> (DF) (ttl 64, id 37845, len 60)
16:49:18.692104 211.93.98.22.http > 210.40.2.69.33233: S [tcp sum ok] 1486243031:1486243031(0) ack 1576342549 win 5840 <mss 1460> (DF) (ttl 51, id 0, len 44)
16:49:18.692417 210.40.2.69.33233 > 211.93.98.22.http: . [tcp sum ok] 1:1(0) ack 1 win 5840 (DF) (ttl 64, id 37846, len 40)
16:49:18.724864 210.40.2.69.33233 > 211.93.98.22.http: P 1:514(513) ack 1 win 5840 (DF) (ttl 64, id 37847, len 553)
16:49:18.827956 211.93.98.22.http > 210.40.2.69.33233: . [tcp sum ok] 1:1(0) ack 514 win 6432 (DF) (ttl 51, id 42763, len 40)
16:49:18.981294 211.93.98.22.http > 210.40.2.69.33233: . 1:1461(1460) ack 514 win 6432 (DF) (ttl 51, id 42764, len 1500)
16:49:18.981548 210.40.2.69.33233 > 211.93.98.22.http: . [tcp sum ok] 514:514(0) ack 1461 win 8760 (DF) (ttl 64, id 37848, len 40)
16:49:18.982536 211.93.98.22.http > 210.40.2.69.33233: . 1461:2921(1460) ack 514 win 6432 (DF) (ttl 51, id 42765, len 1500)
16:49:18.982758 210.40.2.69.33233 > 211.93.98.22.http: . [tcp sum ok] 514:514(0) ack 2921 win 11680 (DF) (ttl 64, id 37849, len 40)
16:49:19.086593 211.93.98.22.http > 210.40.2.69.33233: P 2921:4381(1460) ack 514 win 6432 (DF) (ttl 51, id 42766, len 1500)
16:49:19.086818 210.40.2.69.33233 > 211.93.98.22.http: . [tcp sum ok] 514:514(0) ack 4381 win 14600 (DF) (ttl 64, id 37850, len 40)
发表于 2003-10-2 19:04:43 | 显示全部楼层
数据可以用tcpshow看。刚找的。这里有下载
http://rpmseek.com/rpm-pl/tcpshow.html?hl=com&cbn=0:T:180::
发表于 2003-10-2 19:14:28 | 显示全部楼层
你想要哪部分的数据?
> 211.93.98.22.http: . [tcp sum ok] 514:514(0) ack 4381 win 14600 (DF) (ttl 64, id 37850, len 40)
:ask
 楼主| 发表于 2003-10-4 08:48:40 | 显示全部楼层
由于截获的网络数据包按照在网络中出现的时间顺序排列,而在同一段时间内,网络上可能同时会建立很多连接,这些连接数据包在tcpdump数据文件中按时间顺序排列,这样导致的结果是不同连接的数据包会相互穿插,因此,为了收集有关连接的信息,首先需要把关于一条连接的所有数据包整理成一条连接记录。
   用一个脚本程序扫描tcpdump的ASCII格式文件中的每行数据,把属于同一个连接的所有数据包总结成一条连接记录。对每一条TCP连接,脚本程序完成的工作是:在连接建立阶段,检查TCP连接的三次握手是否正常建立,如果没有正常建立,是在哪个状态结束的,连接失败的原因是什么,如连接被拒绝,没有收到连接响应数据包,收到不应该的响应数据包等;在数据传输阶段,监控所有的数据包和ACK包,设置一些计数器记录与连接有关的某些统计值,如重传率,错误的重传率,重复的ACK,在两个方向上传送的字节数等;在连接结束阶段,检查连接结束的状态,如正常结束,中断,半连接以及断连接等。
发表于 2003-10-4 10:22:30 | 显示全部楼层
比较麻烦的说
不知道是否可以这样:
指定一个IP链接,然后取出这个链接的所有信息再作进一步处理,就是生成一个格式文件
 楼主| 发表于 2003-10-4 11:26:44 | 显示全部楼层
应该就是判断tcp连接建立阶段状态,数据传输阶段状态,连接结束阶段状态,然后把这些状态值转成一条格式记录,不知道怎么编写?
发表于 2003-10-4 11:36:56 | 显示全部楼层
用netstat -t 来显示TCP的链接状态,再结合tcpdump -q显示重要的链接信息,合并后取出指定IP的信息,再试试 ;)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表