slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3601回复:43

是否可以在协议驱动里面构造以太帧

楼主#
更多 发布于:2003-02-26 20:16
我想问一下链路层的成帧是在协议驱动里面完成的吗?如果我想自己控制成帧的过程是否可以在协议驱动里面完成呢?
不知道协议驱动对应的是网络协议的哪一层,请高手讲解一下,20奉送
slightflying
phone-boy
驱动牛犊
驱动牛犊
  • 注册日期2002-11-27
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-26 22:21
到miniport driver 之前就被打成帧了,你完全可以在miniport里面再拆开,重新打成你自己的帧
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-26 22:45
到miniport driver 之前就被打成帧了,你完全可以在miniport里面再拆开,重新打成你自己的帧

协议驱动传到小端口的是不是以太帧呢,成帧的过程是在那个驱动里面完成的呢
slightflying
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-27 09:07
在协议驱动里面就已经封装好了
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-27 09:27
在协议驱动里面就已经封装好了

如此说来帧的封装过程是在协议驱动了,那么我是否可以在协议驱动里面按照自己的要求封装成帧呢
我要做的东西是这样的,我想实现一个新的协议栈,链路层任然是802.3以太网协议,以太帧的格式不变,但是内容稍稍有点差别,主要是成帧时目的mac地址的填写,以太网是根据IP查一张表或者通过ARP协议来获得目的MAC,而我的获取方法是要根据和IP等字节长度的VPI、VCI参数来查表就可以得到目的MAC,所以我必须控制这个成帧的过程,各位大虾给点建议,我该怎么做
slightflying
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-27 09:31
从协议出来了你再改不行么?、

你要在协议驱动里做就要做一个驱动替换windows的协议驱动了吧,你去看一下passthru的例子好了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-27 10:23
从协议出来了你再改不行么?、

你要在协议驱动里做就要做一个驱动替换windows的协议驱动了吧,你去看一下passthru的例子好了。

“从协议出来我再改”怎么理解,能说详细点吗,是不是再做一个IMD修改呀
slightflying
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-27 10:33
做一个IMD可以,做一个虚拟网卡也可以。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-27 10:47
做一个IMD可以,做一个虚拟网卡也可以。

mikeluo真是言简意赅呀,我的理解是做一个中间驱动截获我的协议驱动下来的数据包,并在中间驱动里面控制成帧是吧,如果做成一个虚拟网卡,不知道这个起什么作用,还有简单的方法吗,比如说就在我的新协议驱动里面完成成帧的过程
slightflying
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-02-27 11:00
你如何让系统发包的时候从你的协议走?

一个IMD就解决问题了,不用协议驱动的。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-02-27 11:13
你如何让系统发包的时候从你的协议走?

一个IMD就解决问题了,不用协议驱动的。

如果是中间驱动的话,截获的包向上转给哪个协议驱动呀,我的协议栈是一个新的协议栈,不是tcp/ip,所以必须要注册一个协议栈
slightflying
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-02-27 11:21
你如何让系统发包的时候从你的协议走?

一个IMD就解决问题了,不用协议驱动的。

tcp/ip的协议协议驱动为tcpip.sys,所以我想它应该在这个驱动里面就实现了网络层和传输层的功能,比如网络层包的封装和拆分,差错控制等以及传输层的流量控制等等,不知道我的想法是否正确
slightflying
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-02-27 12:41
引用:
--------------------------------------------------------------------------------
从协议出来了你再改不行么?
做一个IMD可以,做一个虚拟网卡也可以。
--------------------------------------------------------------------------------
to mikeluo:我认为在协议里面改和在IMD 虚拟网卡中改是一样的。首先从协议驱动出来后如果没有IMD或者虚拟网卡,这个封装好的数据包将直接进入NIC;如果有的话,他将进入到他们之中,然后再进入NIC。所以从这个层次关系看来,没有必要做IMD和虚拟网卡。
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-02-27 12:47
你的协议层都要干什么???单独的一个协议驱动只能做个sniffer用用,一个IMD即有协议层也有小端口,至于要交给那个协议可以根据协议的handle来区分
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-02-27 12:49
引用:
--------------------------------------------------------------------------------
从协议出来了你再改不行么?
做一个IMD可以,做一个虚拟网卡也可以。
--------------------------------------------------------------------------------
to mikeluo:我认为在协议里面改和在IMD 虚拟网卡中改是一样的。首先从协议驱动出来后如果没有IMD或者虚拟网卡,这个封装好的数据包将直接进入NIC;如果有的话,他将进入到他们之中,然后再进入NIC。所以从这个层次关系看来,没有必要做IMD和虚拟网卡。


在协议里面怎么改呢?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-02-27 13:59
我们在协议驱动里面同样可以得到数据包,那么怎么不能改包呢?
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-02-27 14:47
你得到的是受到的报文还是发送的报文??

如何得到正在往外发送的报文的?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-02-27 15:14
你得到的是受到的报文还是发送的报文??

如何得到正在往外发送的报文的?

我在协议驱动上层再做一个驱动,专门负责收发我自己的新协议包给协议驱动可不可以呀?
slightflying
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-02-27 16:11
那是做一个TDI client吧?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
slightflying
驱动牛犊
驱动牛犊
  • 注册日期2002-11-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-02-27 16:36
那是做一个TDI client吧?

我想在socket里面注册一个服务提供者,TDI这一块我希望不要动它,这一点我想理论上应该还是行得通,我现在就是想控制成帧的过程,因为如果我不自己控制而由以太网协议软件来完成的话,我的新协议栈肯定无法通讯,请各位高手告诉我成帧的过程tcp/ip是在什么驱动里面做的,我能在协议驱动完成吗?
slightflying
上一页
游客

返回顶部