手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Xray@NET,协议插件实现方式的简述

来源:互联网 作者:西部数码 时间:2008-04-11
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

OSI上的多个层面上来看,Ethernet上的要支持的协议太多了,如果需要让我的Xray(a)NET支持这么多的协议,实现是没有更好的办法了,因此暂时想了一个通过XML配置插件的方法,下面是Ethernet Frame下协议在我的Xray@NET下的描述,Xray@NET的扩展类通过对类似的这些XML进行解析并Cache到内存里,在通过引擎解包时,在Ethernet Frame解包线程里对当前packet的port number进行判断,然后确定协议类型,再通过另一个PTNumber来确认下一层的协议类型。

先写这么多,我是学EtherPeek的做法,EtherPEEK比较聪明,它的显示可能使用到了XSLT。有兴趣的可以来讨论。

// ETNumber.xml --> Ethernet Frame 类型定义。

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE ETNUMBER SYSTEM "etnumber.dtd">
<!--
ETHER TYPES (last updated 2001-05-01)
Many of the networks of all classes are Ethernets (10Mb) or
Experimental Ethernets (3Mb). These systems use a message "type"
field in much the same way the ARPANET uses the "link" field.
Ethernet Exp. Ethernet Description References
decimal Hex decimal octal
-->
<etnumber desc="ETHER TYPES CODE">
<number decimal="0000" hex="0000-05DC" description="IEEE802.3 Length Field" references="XEROX"/>
<number decimal="0257" hex="0101-01FF" description="Experimental" references="XEROX"/>
<number decimal="0512" hex="0200" description="XEROX PUP (see 0A00)" references="8,XEROX"/>
<number decimal="0513" hex="0201" description="PUP Addr Trans (see 0A01)" references="XEROX"/>
<number decimal="1536" hex="0600" description="XEROX NS IDP" references="133,XEROX"/>
<number decimal="2048" hex="0800" description="Internet IP (IPv4)" references="IANA"/>
<number decimal="2049" hex="0801" description="X.75 Internet" references="XEROX"/>
<number decimal="2050" hex="0802" description="NBS Internet" references="XEROX"/>
<number decimal="2051" hex="0803" description="ECMA Internet" references="XEROX"/>
<number decimal="2052" hex="0804" description="Chaosnet" references="XEROX"/>
<number decimal="2053" hex="0805" description="X.25 Level 3" references="XEROX"/>
<number decimal="2054" hex="0806" description="ARP Address Resolution Protocol" references="IANA"/>
<number decimal="2055" hex="0807" description="XNS Compatability" references="XEROX"/>
<number decimal="2056" hex="0808" description="Frame Relay ARP" references="RFC1701"/>
<number decimal="2076" hex="081C" description="Symbolics Private" references="DCP1"/>
<number decimal="2184" hex="0888-088A" description="Xyplex" references="XEROX"/>
<number decimal="2304" hex="0900" description="Ungermann-Bass net debugr" references="XEROX"/>
<number decimal="2560" hex="0A00" description="Xerox IEEE802.3 PUP" references="XEROX"/>
<number decimal="2561" hex="0A01" description="PUP Addr Trans" references="XEROX"/>
<number decimal="2989" hex="0BAD" description="Banyan VINES" references="XEROX"/>
<number decimal="2990" hex="0BAE" description="VINES Loopback" references="RFC1701"/>
<number decimal="2991" hex="0BAF" description="VINES Echo" references="RFC1701"/>
<number decimal="4096" hex="1000" description="Berkeley Trailer nego" references="XEROX"/>
<number decimal="4097" hex="1001-100F" description="Berkeley Trailer encap/IP" references="XEROX"/>
<number decimal="5632" hex="1600" description="Valid Systems" references="XEROX"/>
<number decimal="16962" hex="4242" description="PCS Basic Block Protocol" references="XEROX"/>
<number decimal="21000" hex="5208" description="BBN Simnet" references="XEROX"/>
<number decimal="24576" hex="6000" description="DEC Unassigned (Exp.)" references="XEROX"/>
<number decimal="24577" hex="6001" description="DEC MOP Dump/Load" references="XEROX"/>
<number decimal="24578" hex="6002" description="DEC MOP Remote Console" references="XEROX"/>
<number decimal="24579" hex="6003" description="DEC DECNET Phase IV Route" references="XEROX"/>
<number decimal="24580" hex="6004" description="DEC LAT" references="XEROX"/>
<number decimal="24581" hex="6005" description="DEC Diagnostic Protocol" references="XEROX"/>
<number decimal="24582" hex="6006" description="DEC Customer Protocol" references="XEROX"/>
<number decimal="24583" hex="6007" description="DEC LAVC, SCA" references="XEROX"/>
<number decimal="24584" hex="6008-6009" description="DEC Unassigned" references="XEROX"/>
<number decimal="24586" hex="6010-6014" description="3Com Corporation" references="XEROX"/>
<number decimal="25944" hex="6558" description="Trans Ether Bridging" references="RFC1701"/>

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!