阅读:4055回复:27
用IMD实现数据包分类接收和转发
各位高手,我想用IMD实现数据包分类接收和转发,主要是对接收和发送的数据包先进行判断分析,然后分类转发,请帮忙!给高分,最好是那位有类似原代码,在此表示感谢!
|
|
最新喜欢:![]() |
沙发#
发布于:2004-03-26 15:47
我re邮件,是否收到? 兄弟啊,收到了,谢谢你,最几天很忙,没来得及给你回信,很抱歉,对不起! 但好象实现有些不是那种类型的包拦截不到,就比如上网吧,去看别的网站,我设置的格式不起作用?好象没实现我要的功能!!! |
|
板凳#
发布于:2004-03-26 09:30
我re邮件,是否收到?
|
|
地板#
发布于:2004-03-23 19:06
不是发出去就完了,要有好多事情要做,最主要的就是释放资源,不然肯定不幸,ASMSYS.163.COM 兄弟,帮我看看,我发到你信箱里去!!! |
|
地下室#
发布于:2004-03-22 11:18
不是发出去就完了,要有好多事情要做,最主要的就是释放资源,不然肯定不幸,ASMSYS.163.COM
|
|
5楼#
发布于:2004-03-21 22:46
你有电子信箱吗?帮我看看那里错了,我很郁闷,调试了几天
|
|
6楼#
发布于:2004-03-21 22:45
[quote][quote]楼上兄说的对,那些都是包在以太包里的东西。
但你给出的内容却不是他们的字段,只是写说明,就拿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; 兄弟,我已经初步编写了,但调试不了一下到电脑里就死机,启动电脑后网络不通,你看能不能不能帮我看一下? |
|
7楼#
发布于:2004-03-19 16:29
我没有听说ip包中有数据包和命令包之分,在网络上传输的都是数据包。在你得到的IP包中,第10个字节是传输层协议类型,tcp是0x06,udp是0x11,icmp是0x01。在tcp数据包中的第0,1和第2、3字节分别是源、目的端口号,指示应用层协议类型,0x80是http,0x21是ftp,0x23是telnet。
[编辑 - 3/19/04 by lchusty] |
|
8楼#
发布于:2004-03-19 14:18
楼上兄说的对,那些都是包在以太包里的东西。 兄弟,我上层发送来的包都是IP包,但我要知道上层发来的IP包有数据包和命令包!怎么判断呢?兄弟? |
|
9楼#
发布于: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] |
|
10楼#
发布于:2004-03-19 10:55
下面是协议字段对应的值,给大家,希望大家帮忙,看看我这么问题怎么解决?谢谢 这些协议属于传输层协议,封装在IP头里边,而不是以太包里边。也就是说,对于以太包,你首先要判断是不是0x0800(IP包)。如果是IP包,则进一步判断IP头里边的协议部分,看看是不是上面那些类型,然后做你想做的事。 |
|
11楼#
发布于: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] |
|
12楼#
发布于:2004-03-19 10:18
以太包包头只有14字节,除了12个MAC地址,剩下的2字节通常是0x0800(ip包),0x0806(arp包),没有命令和数据之分,ip包中的icmp或许可以称做是命令(我不知道你说的命令是何意思),arp包中只有请求和应答之分。 谢谢,很感谢,因为我上层发来的数据包有的是命令包,有的是数据包,数据包就是要继续转发,而命令包怎么就是要某太设备或工作站执行某种操作! |
|
13楼#
发布于:2004-03-19 08:50
以太包包头只有14字节,除了12个MAC地址,剩下的2字节通常是0x0800(ip包),0x0806(arp包),没有命令和数据之分,ip包中的icmp或许可以称做是命令(我不知道你说的命令是何意思),arp包中只有请求和应答之分。
|
|
14楼#
发布于:2004-03-19 00:02
里边是协议包呀,一层一层剥就是了,关键是转发,要有很多判断工作要处理。 这个知道,但怎么以太包是数据包还是命令包呢? |
|
15楼#
发布于:2004-03-18 14:06
借问一句,收到以太贞后要想传递给应用程序应该怎么处理,也就是中间层如何与应用程序交互
|
|
16楼#
发布于:2004-03-18 12:47
用户被禁言,该主题自动屏蔽! |
|
17楼#
发布于:2004-03-18 08:36
里边是协议包呀,一层一层剥就是了,关键是转发,要有很多判断工作要处理。
|
|
18楼#
发布于:2004-03-17 18:28
根据以太网帧格式,和相应的承载的协议格式,可以分析任何的数据包 以太格式也没什么啊,而对应的我是要知道是什么数据包,知道吗?兄弟,你看看能不能说详细点!谢谢 |
|
19楼#
发布于:2004-03-17 18:24
可以根据包的内容判断(无论是命令还是数据) 兄弟,你这个判断包类型有详细的规则和规定吗? 还有判断协议类型又有和星系的规则和规定? |
|
上一页
下一页