我们学校网络拓扑已知,交换机为思科并支持SNMP协议,教育网光纤接入,通过交换机接入各个学院和学校各办公单位,我现在想开发一个程序来实现这样的功能:尽可能准确的定位网络故障,进而排除网络故障。我现在困惑的是不知道如何入手?希望各位专家和高手给我一点建议和指导,由于对网络编程这块不是太熟悉,也不知道该用哪些技术?

解决方案 »

  1.   

    snmp有Trap,设备重要状态更改时会发送Trappdu给nms,162端口
      

  2.   

    既然网络拓扑知道,也就是每一个节点的IP和下一跳地址知道,你可以试试tracert 命令,另外ping类也肯定会用到
      

  3.   

    ping有些防火墙禁止的(无意义)楼主要光靠服务器端定位那是.NET目前比较难的了,必须用C++底层设计了。如果靠.NET,哪么你用C/S架构吧。首先,楼上的方法,他根本没办法搞清楚人家是关机还是故障。同样光靠服务器端也无法判断。使用 .NET 中 MessageQuering 是内网的方法之一,但是 client端和server端,必须部署MessageQuering3.0和.NET frameWork思路:由于 windows MessageQuering是可以基于断开连接模式 发送消息的,不管客户端关机与否,只要网络没坏,第二次开机或者重启,都会查询队列待发消息,把待发消息发送至服务器。服务器根据消息判断:消息队列:
       客户端->我上网了    ->我上网了->服务器 
       客户端->我关机了Or我重启了   .......>服务器
    楼主知道我的意思吧,你也可以用Remoting  Socket代替
      

  4.   

    楼主你可能误解了.net的网络编程.Net的通信部分 分 4个部分Web Service
    .NET Remoting
    Socket
    MessageQuering已经3.0和3.5中的 WCF这些不是楼主所想的 那些 底层设计,而是针对商业的C/S架构或者B/S架构
      

  5.   

    谢谢,是的,我对底层设计和.NET的通信部分的区别不是很了解,底层设计是指什么?而.NET的通信部分和底层设计有什么区别?能否详细介绍一下。
      

  6.   

    .net不能对底层设备直接编程。.net只适合高级应用编程
      

  7.   

    任何语言不都是需要一层层翻译或者解释成机器语言吗?vc++如果可以对底层设备直接编程,.NET为何不可以呢?