阅读:1222回复:1
看看我对模拟三次握手的想法和实现对不对.
我想在中间层模拟三次握手,
三次握手的简单过程 1)a->b syn seq=x 2)b->a syn ack=x+1,seq=y 3)a->b ack=y+1 a为发送请求主机,b为模拟主机 先在假设我接收到一个数据报,然后可以从这个数据包中解析出三次握手的所有信息,那我如何单独在主机b中完成和a的三次握手,注意,此时的要求是a不参与,由b的中间层单独完成。 我的解决设想: 当b收到相应数据包时,根据数据包内容判断是所要的数据包, 然后构造一个1)中的包,往下发;然后在构造一个3)中的包,往下发;所有的这些操作在Ptreceive中完成。 也就是说在Ptreceive中创建两个packet,然后分别填写,然后用ndisMindicatereceivePacket往下发。 问题: 1)可不可以在PtReceive中这样操作,也就是说,构造完全不同的两个包,然后发给上层。 2)这样做能达到三次握手的效果吗?因为握手信息几乎都是在同时发出的,而且是在一个地方,这样可以吗? 3)在ndis中如何存贮一个连接信息库,该用什么样的数据结构 各位对协议和ndis熟悉的大侠,多多帮忙,小弟困惑啊。。。 [编辑 - 3/17/05 by tsingdao] |
|
|
沙发#
发布于:2005-03-22 21:42
大家帮忙看一下啊
|
|
|