阅读:3969回复:27
用IMD实现数据包分类接收和转发
各位高手,我想用IMD实现数据包分类接收和转发,主要是对接收和发送的数据包先进行判断分析,然后分类转发,请帮忙!给高分,最好是那位有类似原代码,在此表示感谢!
|
|
最新喜欢:tempte... |
沙发#
发布于:2004-03-14 21:21
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-03-14 22:48
看passthru先,呵呵
|
|
地板#
发布于:2004-03-15 11:27
看passthru先,呵呵 我已经看了passthru,但不知道怎么把数据包分类,然后发送! 请指点 |
|
地下室#
发布于:2004-03-15 11:29
关于这点,本论坛中有很多的例子呀,你可以先找找再问 我在论坛上花了两个星期,就是没发现类似的方法和程序,请高人引点过来,谢谢 |
|
5楼#
发布于:2004-03-15 11:58
引用: 既然这样,那么在ptreceive中能截获到以太包,你应该知道吧 有了以太包,你就可以对包进行分类,判断 但是要取得以太包中的数据,需要自己构造一个包 |
|
6楼#
发布于:2004-03-15 13:13
[quote]引用: 既然这样,那么在ptreceive中能截获到以太包,你应该知道吧 有了以太包,你就可以对包进行分类,判断 但是要取得以太包中的数据,需要自己构造一个包 [/quote] 对啊,我就是需要对以太包进行分析,因为有些发来的以太包是数据,有些以太包发来的是命令,就在这里,很难搞的,看看高人有什么想法,怎么实现?我想了很久,就没想出来,先谢谢了! |
|
7楼#
发布于:2004-03-15 14:37
可以根据包的内容判断(无论是命令还是数据)
12,13位判断包类型 比如 8,0 IP包 8,6 ARP包 然后继续判断协议类型比如TCP/UDP等 |
|
8楼#
发布于:2004-03-15 14:46
根据以太网帧格式,和相应的承载的协议格式,可以分析任何的数据包
|
|
|
9楼#
发布于:2004-03-17 18:24
可以根据包的内容判断(无论是命令还是数据) 兄弟,你这个判断包类型有详细的规则和规定吗? 还有判断协议类型又有和星系的规则和规定? |
|
10楼#
发布于:2004-03-17 18:28
根据以太网帧格式,和相应的承载的协议格式,可以分析任何的数据包 以太格式也没什么啊,而对应的我是要知道是什么数据包,知道吗?兄弟,你看看能不能说详细点!谢谢 |
|
11楼#
发布于:2004-03-18 08:36
里边是协议包呀,一层一层剥就是了,关键是转发,要有很多判断工作要处理。
|
|
12楼#
发布于:2004-03-18 12:47
用户被禁言,该主题自动屏蔽! |
|
13楼#
发布于:2004-03-18 14:06
借问一句,收到以太贞后要想传递给应用程序应该怎么处理,也就是中间层如何与应用程序交互
|
|
14楼#
发布于:2004-03-19 00:02
里边是协议包呀,一层一层剥就是了,关键是转发,要有很多判断工作要处理。 这个知道,但怎么以太包是数据包还是命令包呢? |
|
15楼#
发布于:2004-03-19 08:50
以太包包头只有14字节,除了12个MAC地址,剩下的2字节通常是0x0800(ip包),0x0806(arp包),没有命令和数据之分,ip包中的icmp或许可以称做是命令(我不知道你说的命令是何意思),arp包中只有请求和应答之分。
|
|
16楼#
发布于:2004-03-19 10:18
以太包包头只有14字节,除了12个MAC地址,剩下的2字节通常是0x0800(ip包),0x0806(arp包),没有命令和数据之分,ip包中的icmp或许可以称做是命令(我不知道你说的命令是何意思),arp包中只有请求和应答之分。 谢谢,很感谢,因为我上层发来的数据包有的是命令包,有的是数据包,数据包就是要继续转发,而命令包怎么就是要某太设备或工作站执行某种操作! |
|
17楼#
发布于:2004-03-19 10:20
下面是协议字段对应的值,给大家,希望大家帮忙,看看我这么问题怎么解决?谢谢
Decimal Keyword Protocol References ------- ------- -------- ---------- 0 Reserved [JBP] 1 ICMP Internet Control Message [RFC792,JBP] 2 IGMP Internet Group Management [RFC1112,JBP] 3 GGP Gateway-to-Gateway [RFC823,MB] 4 IP IP in IP (encasulation) [JBP] 5 ST Stream [RFC1190,IEN119,JWF] 6 TCP Transmission Control [RFC793,JBP] 7 UCL UCL [PK] 8 EGP Exterior Gateway Protocol [RFC888,DLM1] 9 IGP any private interior gateway [JBP] 10 BBN-RCC-MON BBN RCC Monitoring [SGC] 11 NVP-II Network Voice Protocol [RFC741,SC3] 12 PUP PUP [PUP,XEROX] 13 ARGUS ARGUS [RWS4] 14 EMCON EMCON [BN7] 15 XNET Cross Net Debugger [IEN158,JFH2] 16 CHAOS Chaos [NC3] 17 UDP User Datagram [RFC768,JBP] |
|
18楼#
发布于:2004-03-19 10:55
下面是协议字段对应的值,给大家,希望大家帮忙,看看我这么问题怎么解决?谢谢 这些协议属于传输层协议,封装在IP头里边,而不是以太包里边。也就是说,对于以太包,你首先要判断是不是0x0800(IP包)。如果是IP包,则进一步判断IP头里边的协议部分,看看是不是上面那些类型,然后做你想做的事。 |
|
19楼#
发布于:2004-03-19 12:51
楼上兄说的对,那些都是包在以太包里的东西。
但你给出的内容却不是他们的字段,只是写说明,就拿IP包来说他的字段如下: typedef struct _IPHDR //20byte { unsigned char Ver_Hlen; //高4位IP版本号+4位首部长度(32bit为单位) unsigned char TOS; //8位服务类型TOS unsigned short Length; //16位总长度(字节)包括IP头 unsigned short Ident; //16位标识 unsigned short Flags_Offset; //高3位标志位+13位片偏移 unsigned char TTL; //8位生存时间 TTL unsigned char Protocol; //8位协议 (TCP, UDP 或其他) unsigned short HdrCheckSum; //16位IP首部校验和(不包括数据) unsigned long SrcIP; //32位源IP地址 unsigned long DstIP; //32位目的IP地址 }IP_HEADER,*PIP_HEADER; [编辑 - 3/19/04 by asmsys] |
|
上一页
下一页