阅读:2108回复:11
DDK PACKET sample problem
救命啊:
1.请问一下如果我要在Protocol Driver(如 ddk packet sample)内传送一个Packet是不是要自己加上Mac Header呢? 2.如果是要如何加呢? |
|
最新喜欢:utahyj |
沙发#
发布于:2002-11-20 13:04
1. 是要自己加 2. 在链接到packet的第一个buffer所指向的MEMORY填充Mac Header |
|
板凳#
发布于:2002-11-20 16:32
谢谢coffee000的回复 对于第二个问题是,我现在并不知道接收端的Mac Address所以没有办法填入 所以有没有简单的方法可以得知对方的Mac Address? |
|
地板#
发布于:2002-11-20 16:49
发一个arp包
|
|
|
地下室#
发布于:2002-11-20 16:49
发一个arp包,
|
|
|
5楼#
发布于:2002-11-21 09:19
发一个arp包, 1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用) 2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入? 3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? |
|
6楼#
发布于:2002-11-21 09:20
[quote] 谢谢coffee000的回复 对于第二个问题是,我现在并不知道接收端的Mac Address所以没有办法填入 所以有没有简单的方法可以得知对方的Mac Address? [/quote] |
|
7楼#
发布于:2002-11-21 10:02
如果知道对方IP地址的话,可以在协议driver中发送一个ARP。 如果没有对方IP地址,可以在协议driver先发送一个自定义的广播帧,在对方协议driver中应答这一个广播,你就可以知道对方MAC地址了(象其他局域网协议(NETBEUI/IPX)一样)。 |
|
8楼#
发布于:2002-11-21 10:20
1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用) 2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入? 3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? |
|
9楼#
发布于:2002-11-21 11:12
[quote] 1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用) 2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入? 3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? [/quote] 1.目前不知道有没有这种函数 2.为什么要填入arp cache 3.分配一个packet descritor从预先分配的packet pool,申请一段内存,拷贝数据到此缓冲区,把这段内存连接到一个buffer descriptor,调用NdisChainBufferAtFront把buffer连接到前面的packet,调用NdisSend. |
|
10楼#
发布于:2002-11-21 11:32
[quote][quote] 1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用) 2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入? 3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? [/quote] 1.目前不知道有没有这种函数 2.为什么要填入arp cache 3.分配一个packet descritor从预先分配的packet pool,申请一段内存,拷贝数据到此缓冲区,把这段内存连接到一个buffer descriptor,调用NdisChainBufferAtFront把buffer连接到前面的packet,调用NdisSend. [/quote] 2.我想如果在我的本 |
|
11楼#
发布于:2002-11-21 11:36
[quote][quote][quote] 1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用) 2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入? 3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? [/quote] 1.目前不知道有没有这种函数 2.为什么要填入arp cache 3.分配一个packet descritor从预先分配的packet pool,申请一段内存,拷贝数据到此缓冲区,把这段内存连接到一个buffer descriptor,调用NdisChainBufferAtFront把buffer连接到前面的packet,调用NdisSend. [/quote] 2.我想如果在我的本机内的arp cache 内有destination host的mac address则直接取用就好了 3.可是要NdisSend的data没有Mac header 所以才要自己填Mac Header 但是又没有Destination host的 Mac Address所以才要发arp packet去索取 destination mac addres 但是我是想如果本机的arp cache有destination host的mac address就直接取用,就不用再发一次arp packet了 谢谢 |
|