首页
社区
课程
招聘
[求助]关于利用原始套接字进行网络嗅探的问题
发表于: 2011-10-3 15:44 4217

[求助]关于利用原始套接字进行网络嗅探的问题

2011-10-3 15:44
4217
在看原始套接字进行sniffer的源码时发现,准备工作完成后,程序只是将数据recv到一个足够大的缓冲区,然后就以缓冲区中的起始地址作为数据包起点解析数据包结构。那这里有一个问题就是能保证一次recv的数据恰好是一个完整的IP包结构吗?如果套接字缓冲区中填满了数据,那不就有可能一次取到recv缓冲区的不是完整的结构,而是将其中一个数据包从中间断开了,造成下次的起点错误吗?那下次解析不就出错了吗?或者是一次取走了多个数据包而只是对第一个进行解析,那么不就是漏掉了数据吗?求高手解答,多谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 258
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
一定是完整的数据包,网卡才会交给应用层处理的,放心好了
2011-10-3 19:56
0
雪    币: 693
活跃值: (108)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
问题是他一次取走的数据能保证仅是一个完整的IP包吗?
2011-10-4 08:20
0
雪    币: 304
活跃值: (507)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
可以保证。ip包最长只有 MTU-14字节以太网头

也就是1500字节
2011-10-5 12:47
0
游客
登录 | 注册 方可回帖
返回
//