Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6594154
  • 博文数量: 227
  • 博客积分: 10047
  • 博客等级: 上将
  • 技术积分: 6678
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-11 10:33
个人简介

网上的蜘蛛

文章分类

全部博文(227)

文章存档

2010年(19)

2009年(29)

2008年(179)

分类: C/C++

2008-03-14 14:12:02

  当初选这个课题,是凭着自己的兴趣,因为觉得自己对网络还是很有情感的,而且觉得课题和老师都挺适合我的。
  头两周,我回家了,本以为回家能自己自觉看书的,呵呵,可是家里好冷,终日都躺在床上,以看电视度日。年后回到学校的第三周我才正式开始进入课题:
  第三周:时间比较紧,主要是把virtualWiFi的build环境--SDK for Windows Server 2003 以及 DDK平台搭建起来,然后自己手动build源代码。最后安装virtualWiFi,只不过在自己的电脑总是安装没有成功,可是安装过程并没有错误。
  第四周:开始研究代码,主要工作放在driver目录下的miniport.c 以及 protocol.c两个文件,研究了miniport的初始化,硬件的注册绑定,以及之后的数据发送和缓冲。知道了如何控制网络之间的切换,何时开始缓冲数据,发送数据。

第五周:主要处理一下工作
1.不同的网络之间什么时候做切换,如何断开当前的连接(做那些操作停止当前的连接)以及如何关联、连接一个新的网络,调用了那些windows定义的函数来完成。
2.数据处理,就是缓冲的数据如何组织。当没有数据发送的时候,数据结构如何,以及当在一个特定的时间内无法完全发送packets,该做如何处理。
3.当一个被挂起的连接重新被激活(active)的时候,怎么样知道当前的连接有多少数据需要发送,怎么发送和接收。
第六周:老师突然叫我把virtualWiFi的build环境从DDK转移到WDK,sdk也从for server2003 换成for server2008.当然编译的时候好多错误了,大部分原因在于头文件的定义不同了。具体原因不想多说了。
第七周:也就是目前的工作,回到原来的环境更改关于Buffer部分的代码,实现无线无缝传输,就是在remove network的时候,确保那个连接的数据发送完毕才能断开连接,而原来的程序只是直接断开连接,所以这是我论文的重点工作,还有就是更改缓冲区的算法。


  目前做到的就是判断在接受remove network指令后,代码的执行顺序,两个方面,一方面是硬件上的,需要断开连接,另外一个方面是软件上的,也就是驱动该做的,必须停止那个连接的服务,然后发送一个事件给service server重新计算当前有多少个网络连接,每个网络连接的名字,类型、停留和转换事件等。这样就移除掉了一个网络。可是要是现无缝的连接,我还真的不知道往那方面入手,因为毕竟都要从硬件软件两个方面考虑。自己倒是有一个idea,就是为每个连接添加一个属性比如 boolean Flag_To_Be_Remove,一旦系统得知要移除SSID的网络,把那个网络的Flag_To_Be_Remove值设置为true,然后 deriver每次检查每个连接的active的值时,也检查Flag_To_Be_Remove值,一旦为ture,当它的缓冲区为空的时候,就移除掉该连接。想法而已,实现起来应该很困难的,因为整个驱动程序都设接到了那个struct.
  算是一个总结。继续努力吧,无论如何,都不能放弃。
 

阅读(2635) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-04-30 17:35:13

老兄,你好! 可以给我一份Virtual WiFi的源代码吗, 官方网站要吗无法下载,要吗就缺少文件! 我邮箱: 46071190@qq.com 谢谢了!