今天大家继续往前走, 查阅资料攻克难点. 在获取解包的基本数据上基本已经没有问题.用原始套接字(RAW SOCKET) 监听网络包, 一层层的剥离IP头,传输层协议头(TCP,IP) , 采用unsafe(不安全代码),指针,位移获取数据. 但是最郁闷的是不知道如何将一个完整文件的多个分散的包合并起来, 就是分散包的重组.
理论上说, 我们想IP头应该有些属性可以用来作为包合并的依据的,而就像很多资料里所示,我们猜想是正确的:
Identification

识别码(ID)。每一个IP封包都有一个16bit的唯一识别码。我们从OSI的网路层级知识里面知道当程式产生的数据要通过网路传送时都会被拆散成封包形式发送当封包要进行重组的时候这个ID就是依据了。

Flag

标记(FL)。这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。请参考下表
000. 当此值为0的时候表示目前未被使用。
.0.. 当此值为0的时候表示封包可以被分割如果为1则不能被分割。
..0. 当上一个值为0时此值为0就示该封包是最後一个封包如果为1则表示其後还有被分割的封包。

可是我们找了许多分析包的工具,CommView,Packetyzer等,测试时候都没有发现这些属性能够有用,非常郁闷,
留下次难点,我们今天还是按照计划, 完善了测试用例, 设计了类图和接口, 并进行了分工,明天继续.
|
|
| | 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|
| 26 | 27 | 28 | 1 | 2 | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | 12 | 13 | 14 | 15 | 16 | 17 | 18 | | 19 | 20 | 21 | 22 | 23 | 24 | 25 | | 26 | 27 | 28 | 29 | 30 | 31 | 1 | | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|
公告
此Blog内容未经说明皆为原创
欢迎指正、交流~
挪窝鸟,这里不再更新
<div style="display:none">
<script language="javascript" type="text/javascript" src="http://js.users.51.la/285927.js"></script>
<noscript><a href="http://www.51.la/?285927" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/285927.asp" style="border:none" /></a></noscript>
</div>
留言簿(28)
随笔分类(67)
最新随笔
最新评论

|
|