著录项信息
专利名称 | 转发与控制分离网络件内信息组播传输的方法 |
申请号 | CN200910127408.4 | 申请日期 | 2006-02-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2009-12-09 | 公开/公告号 | CN101599846 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/18 | IPC分类号 | H;0;4;L;1;2;/;1;8;;;H;0;4;L;1;2;/;5;6;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 浙江工商大学 | 申请人地址 | 浙江省杭州市西湖区教工路149号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江工商大学 | 当前权利人 | 浙江工商大学 |
发明人 | 王伟明 |
代理机构 | 杭州中成专利事务所有限公司 | 代理人 | 唐银益 |
摘要
本发明涉及网络件的技术,旨在提供转发与控制分离网络件内信息组播传输的方法,是在转发件和控制件的协议单元实现一个控制件向多个转发件或一个转发件向多个控制件进行ForCES协议消息组播传输的方法。协议单元形成一个组播列表,将该组播列表传递到传输映射单元,协议单元将该组播列表传递到所有参与该组播的成员协议单元中,传输映射单元根据该组播列表以及存在的信息,建立起该组播列表中的组播号与传输映射单元实际传输地址之间的映射关系,当传输映射单元接收到需要以该组播号进行组播传输时的消息时,将该消息传输到该组播要求的所有成员中。该方法无需在ForCES网络件内另外定义其它信息交换协议如传输映射单元到传输映射单元的信息交换协议。
1.一种转发与控制分离网络件内信息组播传输的方法,是在转发件和控制件的协议单元实现一个控制件向多个转发件或一个转发件向多个控制件进行ForCES协议消息组播传输的方法,包含以下步骤:
(1)控制件的协议单元形成一个组播列表,该组播列表包含一个组播号以及使用转发件标识号或控制件标识号表示的组播成员列表,当传输映射单元使用UDP协议进行ForCES协议消息组播传输时,还包含一个组播号与UDP组播地址的对应关系;
(2)控制件协议单元将该组播列表以及组播号与UDP组播地址的对应关系传递到控制件的传输映射单元;
(3)控制件协议单元将该组播列表以及其组播号与UDP组播地址的对应关系,使用ForCES协议传递到所有参与该组播的转发件成员的协议单元中;
(4)转发件协议单元将该组播列表以及组播号与UDP组播地址的对应关系传递到该转发件的传输映射单元中;
(5)控制件和转发件的传输映射单元根据该组播列表以及组播号与UDP组播地址的对应关系,结合传输映射单元存在的信息,建立起该组播列表中的组播号与传输映射单元实际传输地址之间的映射关系;
(6)根据该映射关系,当传输映射单元接收到需要以该组播号进行组播传输的ForCES协议消息时,传输映射单元将该消息传输到该组播要求的所有成员中。
转发与控制分离网络件内信息组播传输的方法\n技术领域\n[0001] 本发明涉及网络件(如路由器、网关、交换机等)的技术,具体涉及转发与控制分离网络件内信息组播传输的方法。\n背景技术\n[0002] 随着互联网等计算机网络应用领域的迅速扩大,新特性、新需求不断出现并不断变化,这就要求新一代网络设备应具有足够的灵活性,能快速地对新业务、新需求做出响应;要求新一代网络设备应具有足够的开放性,使用户可以根据所开放的资源灵活组合,以提供不同的网络需求服务;要求新一代网络设备应具有足够的模块化特性,并通过标准化组织进行标准化,使得每个模块可以由不同厂家独立研究开发,又可以通过积木式有机组合成一个整体,这种积木式的发展模式可以极大地加快产品的开发过程,同时也有利于良性竞争、降低成本,个人计算机(PC)的发展已经充分证明了该模式的有效性。\n[0003] 转发与控制分离的网络件正是由于满足了新一代网络的以上要求而在目前得到了广泛研究和应用。关于转发与控制分离网络件的研究目前主要在互联网标准制定组织IETF引导下开展,IETF成立了专门的ForCES(Forwarding and Control Element Separation,转发和控制件分离)工作组中。转发与控制分离网络件的典型结构如图1所示。一个转发与控制分离的网络件分成转发件和控制件两部分,它们之间的信息交换使用标准化的被称为“ForCES协议”的信息交换协议(见Avri Doria,王伟明等:“ForCES Protocol Specification”,http://www.ietf.org/internet-drafts/draft-ietf-forces-protocol-06.txt),进而转发与控制分离网络件也被称为ForCES网络件,标准化使得转发件和控制件可以由不同厂家生产。一个ForCES网络件可由多个转发件和多个控制件组成,其中多个控制件的使用是为了系统冗余备份目的,转发件通过网络接口与外部网络相连接,多个转发件之间也通过接口互相连接,从一个转发件网络接口进来的网络数据包可以被转发到另一个转发件,再通过其网络接口发回到外部网络。但从外部看,这些转发件和控制件组成的一个网络件是一个完整独立的网络设备实体如一个路由器或交换机。互联网协议RFC3654中规定了转发与控制分离网络件的需求(Requirements),互联网协议RFC3746规定了转发与控制分离网络件的框架(Framework)。\nIETF ForCES工作组也正在制定并即将完成用于转发件与控制件间信息交换的“ForCES协议”的互联网协议标准。IETF ForCES工作组也正在制定关于转发件中各个资源模块的具体描述模型的“ForCES转发件模型”的协议标准。\n[0004] 转发与控制分离网络件内信息交换的可被标准化的方法是ForCES网络件技术研究的核心内容。它至少包含两方面研究内容:转发件与控制件间信息交换的格式定义方法和转发件与控制件间信息的传输方法。\n[0005] 目前即将完成的ForCES协议规定了转发件和控制件间信息交换的格式定义方法,信息被表示成一条条的消息格式,该消息被称为“ForCES协议消息”,一个网络件中的所有转发件和控制件都被预先指定了一个标识号,ForCES协议使用该标识号作为消息地址进行消息传输,ForCES协议消息中还包含一个关于该消息的“类型”和一个关于该消息传输和处理所要求的“优先级”等信息。ForCES协议消息通常可被分成两类:控制协议消息和重定向协议消息,通过ForCES协议格式中的“类型”信息可以区分出该两类消息。控制协议消息是该转发件或控制件自己产生的用于控制类信息交换目的的协议消息,如用于配置或查询转发件或控制件的参数的协议消息等;重定向协议消息是用来承载数据包的协议消息,转发件和控制件间通常需要交换纯数据类信息,例如,转发件需要将一些从网络件外经由网络接口进来的网络数据包重定向发送到控制件上,控制件也需要将其产生的一些数据包发送到转发件上再由转发件发送到网络件外,这些数据都需要通过ForCES协议的重定向协议消息来传输。\n[0006] 可标准化的转发件和控制件间信息交换的传输方法是ForCES网络件内信息交换技术的另一重要研究内容。连接转发件和控制件的信息通道在物理层面上可能是多样化的,例如,可以是基于IP协议的单跳或多跳网络、直接的以太网络、或ATM网络等,基于IP协议的网络又可以进一步被区分为使用TCP/UDP协议的网络或使用其它传输层协议的网络。\n[0007] 为了使ForCES协议标准的设计与所用的不同传输技术无关,ForCES协议的传输机制被设计成如图2所示的结构。信息传输过程被由两个单元完成:协议单元和传输映射单元。\n[0008] 协议单元负责产生和处理与传输层类型无关的ForCES协议消息,同时协议单元管理和控制传输映射单元。\n[0009] 传输映射单元为协议单元提供协议消息传输服务,所提供的服务包含传输性能控制如可靠性、拥塞控制、消息次序等;一个转发件可能需要向多个控制件或一个控制件向多个转发件发送相同的ForCES消息内容,这被称为ForCES协议消息在协议单元层面的组播传输,传输映射单元需要支持该组播传输。为了实现所需的服务和控制,传输映射单元需要从协议单元获得相关的控制参数和服务设置参数。针对前述的协议单元可能产生两类不同的协议消息:控制协议消息和重定向协议消息的情况,传输映射单元通常被划分为两个通道:控制协议消息通道和重定向协议消息通道。由于重定向协议消息通道用来转发来自网络件外的数据包,该通道可能受到来自网络件外的恶意攻击,攻击者可能试图通过向该网络件发送大量需由其转发件重定向到控制件的数据包,使得传输映射单元的传输通道被阻塞,进而使转发件和控制件间信息交换瘫痪,这种攻击被称为来自重定向包的拒绝服务攻击。\n[0010] 信息传输方式更重要的一点是,协议单元和传输映射单元之间被要求通过标准化的信息交换方法相连接,这使得同一个ForCES协议单元模块可以在不同传输单元模块上运行,进而可使协议单元(通常是软件为主的产品)与传输映射单元(通常是硬件和软件)在产品意义上分离。\n[0011] 所以,一种可以被标准化的用于协议单元和传输映射单元之间进行信息交换的协议成为ForCES网络件技术研究当前需要解决的重要问题,该协议是一种协议单元和传输映射单元之间进行信息交换的方法。\n[0012] 目前没有发现任何有关ForCES网络件中实现协议单元信息组播传输的专利或研究文章,IETF ForCES工作组目前也没有给出一种有效的和完整的解决该问题的方法。互联网上曾有关于传输映射单元支持协议单元实现组播传输技术的相关讨论,反映的基本观点为:定义一种用于传输映射单元与传输映射单元间直接进行信息交换的协议,组播需要的信息参数等通过该协议进行传输。例如,当一个转发件想加入某一个组播组时,该转发件的传输映射单元需要向该组播组中的所有成员的传输映射单元使用专门被定义的传输层信息交换协议发送请求加入消息,同样,要退出该组播时需发送请求退出消息。该方法的主要问题是:\n[0013] (1)协议单元的组播传输并不能完全由传输映射单元实现,它需要协议单元的控制,更具体讲,它需要控制件的协议单元控制。例如,关于组播成员的选定都是由控制件协议单元决定的。所以,即使定义了传输映射单元到传输映射单元的交换协议,单纯使用该协议仍然不能完成协议单元组播控制,所以上述方式是不完备的;至今尚未发现有效的解决办法。\n[0014] (2)ForCES协议是转发件与控制件的协议单元间信息交换的协议,通过适当设计协议单元与传输映射单元间的信息交换方法,就可以实现上述的传输映射单元与传输映射单元间的信息交换需求,所以另外定义一种传输映射单元间直接信息交换的协议方法是多余的。\n发明内容\n[0015] 本发明的目的是要解决现有技术中尚未解决的问题,解决IETF ForCES标准制定工作组当前面临的转发与控制分离网络件内ForCES协议的传输问题,以推进相应的标准制定工作。技术问题包括网络件内协议单元有效地实现一个控制件向多个转发件或一个转发件向多个控制件进行ForCES协议消息的组播传输问题。\n[0016] 据此,本发明给出了一种在转发与控制分离网络件内协议单元与传输映射单元之间进行信息交换的方法,是一种该网络件内协议单元有效地实现一个控制件向多个转发件或一个转发件向多个控制件进行ForCES协议消息组播传输的方法。\n[0017] 在转发与控制分离网络件内协议单元与传输映射单元之间进行信息交换包含以下中心内容:\n[0018] (1)协议单元使用打开服务原语来开启传输映射单元;\n[0019] (2)协议单元使用配置服务原语来设置、修改或删除传输映射单元的参数,;\n[0020] (3)协议单元使用查询服务原语来查询传输映射单元的参数或状态;\n[0021] (4)协议单元使用发送服务原语来向传输映射单元发送该协议单元产生的ForCES协议消息;\n[0022] (5)协议单元使用接收服务原语来从传输映射单元接收来自于控制件或转发件的ForCES协议消息;\n[0023] (6)协议单元使用关闭服务原语来关闭传输映射单元。\n[0024] 服务原语是包含程序的模块单元间进行信息交换的一种工具,它反映在一个模块单元中是存储在其内存储器上的一段指令和数据的集合,该集合的特点是它可以被另一个模块单元通过输入参数来控制其指令的运行方式并把运行结果通过输出参数传递回另一个模块,服务原语也可以被理解为是一种应用程序接口(API)。服务原语可以表示为[0025] 服务原语名(参数,参数,...)\n[0026] 的形式。其中的参数即是两个单元间交换的信息。\n[0027] 由于协议单元管理和控制传输映射单元、传输映射单元为协议单元提供协议消息传输服务,所以所述方法中的服务原语是由传输映射单元提供给协议单元,协议单元通过执行传输映射单元提供的服务原语达到对传输映射单元的管理控制和利用。协议单元与传输映射单元的所有信息交换均通过所述方法中的服务原语实现。\n[0028] 协议单元使用发送服务原语来向传输映射单元发送该协议单元产生的ForCES协议消息,其中发送服务原语参数中包含已经从被发送的ForCES协议消息中分离出来的该协议消息的目的地标识号、类型、和优先级,传输映射单元依据该服务原语参数决定对该ForCES协议消息的发送处理方法,传输映射单元不进行读取被传送的ForCES协议消息体的动作。\n[0029] 发送服务原语可以表示为:\n[0030] 发送服务原语名(ForCES协议消息目的地标识号,\n[0031] ForCES协议消息类型,\n[0032] ForCES协议消息优先级,\n[0033] ForCES协议消息体,\n[0034] ...)\n[0035] 其中ForCES协议消息体是一个ForCES协议消息的完整封装。\n[0036] 传输映射单元在收到该服务原语调用后,就可以不用通过读取ForCES协议消息体来获得关于该消息的目的地标识号、类型、和优先级信息,这些信息是传输映射单元传输该ForCES协议消息所需要的,例如,目的地标识号决定消息的接收者,消息类型和优先级决定消息的不同传送方法,以满足其不同的传输性能要求。虽然在ForCES协议消息体内也包含有这些信息,但传输映射单元若通过读取该消息体来获得这些信息,将使得传输映射单元的实现与具体的ForCES协议格式相关联,例如,ForCES协议的升级变化可能导致其消息格式的变化、进而将导致传输映射单元设计的变化。所以,使传输映射单元设计不与ForCES协议消息具体格式相关联的方法具有重要的技术优越性,也正是IETF ForCES工作组所期望达到的。\n[0037] 协议单元使用配置服务原语来设置、修改或删除传输映射单元的参数,该服务原语可以表示为:\n[0038] 配置服务原语名(参数名,\n[0039] 操作号,\n[0040] 参数值,\n[0041] ...)\n[0042] 其中的参数名表示所操作的参数的名字,一般可以用一个标识号表示,各种不同的参数被预先赋予一个唯一的标识号;操作号表示操作类型,共有三种操作类型:设置、修改、和删除;参数值给出在规定操作下所需的该参数的具体值。\n[0043] 协议单元使用配置服务原语来设置、修改或删除传输映射单元的参数,配置的参数包含传输映射单元故障事件回调函数名、传输映射单元受到来自重定向包的拒绝服务攻击预警事件回调函数名、传输映射单元控制通道阻塞事件回调函数名、传输映射单元重定向通道阻塞事件回调函数名。基于该技术方法,传输映射单元就可以建立起向协议单元即时报告相应事件的机制。\n[0044] 回调函数是包含程序的模块单元间进行信息交换的又一种工具,它反映在一个模块单元中是存储在其内存储器上的一段指令和数据的集合,该集合的特点是通过向另一个模块单元传递该集合的名字即回调函数名,另一个模块就可以控制执行该指令集合,执行中也可以传递进参数。\n[0045] 传输映射单元利用被设置的故障事件回调函数名,建立起一旦传输映射单元检测到发生任何形式故障的事件时,即通过调用该回调函数,向协议单元报告该事件,使协议单元可以利用预先设定的方案来处理该事件。在该事件已经被报告后,若一定时间后该事件状态消失,传输映射单元也可以继续使用该回调函数向协议单元报告该事件状态已经消失的事件。\n[0046] 传输映射单元利用被设置的受到来自重定向包的拒绝服务攻击预警事件回调函数名,建立起一旦传输映射单元检测到受到拒绝服务攻击的危险时,即通过调用该回调函数,向协议单元报告该事件,使协议单元可以利用预先设定的方案来抵御该拒绝服务攻击。\n在该事件已经被报告后,若一定时间后该事件状态消失,传输映射单元也可以继续使用该回调函数向协议单元报告该事件状态已经消失的事件。\n[0047] 传输映射单元利用被设置的控制通道阻塞事件回调函数名或重定向通道阻塞事件回调函数名,建立起一旦传输映射单元检测到该类事件时即通过调用该回调函数,向协议单元报告该事件,使协议单元可以利用预先设定的方案来消除该类事件。在该事件已经被报告后,若一定时间后该类事件状态消失,传输映射单元也可以继续使用该类回调函数向协议单元报告该事件状态已经消失的事件。\n[0048] 协议单元使用配置服务原语来设置、修改或删除传输映射单元的参数,配置的参数包含传输映射单元收到来自其它转发件或控制件的ForCES协议消息事件回调函数名,传输映射单元可以利用该参数建立起向协议单元即时报告该事件并向协议单元传输所收到的ForCES协议消息的机制。该机制使得协议单元可以通过异步方式接收ForCES协议消息。前述的直接使用接收服务原语接收ForCES协议消息的方式是按同步方式工作的,也即协议单元需要预先执行该服务原语,然后再等待ForCES协议消息的到来。\n[0049] 协议单元使用配置服务原语来设置、修改或删除传输映射单元的参数,配置的参数包括用于实现协议单元ForCES协议消息组播传输的组播列表,该组播列表包含一个组播号以及使用转发件标识号或控制件标识号表示的组播成员列表,可以表示为:\n[0050] {组播号,成员标识号,成员标识号,...}\n[0051] 该信息参数用于建立ForCES协议消息在协议单元层面上的组播传输机制,也即一个转发件向多个控制件或一个控制件向多个转发件发送相同的ForCES协议消息机制。\n其中的成员标识号是ForCES协议层面的转发件或控制件的标识号。\n[0052] 协议单元使用配置服务原语来设置、修改或删除传输映射单元的参数,当传输匹配层是使用UDP协议进行ForCES协议消息组播传输时,所配置的参数包括协议单元组播号与UDP组播地址的对应关系列表,可以表示为:\n[0053] {组播号,UDP组播地址}\n[0054] 通常UDP组播使用的地址是一个IP组播地址。\n[0055] 基于前述的协议单元与传输映射单元间进行信息交换的方法,本发明给出了一种在转发与控制分离网络件内其协议单元实现一个控制件向多个转发件或一个转发件向多个控制件进行ForCES协议消息组播传输的方法,包含以下步骤:\n[0056] (1)控制件的协议单元形成一个组播列表,该组播列表包含一个组播号以及使用转发件标识号或控制件标识号表示的组播成员列表,当传输映射单元使用UDP协议进行ForCES协议消息组播传输时,还包含一个组播号与UDP组播地址的对应关系;\n[0057] (2)控制件协议单元将该组播列表以及组播号与UDP组播地址的对应关系传递到控制件的传输映射单元;\n[0058] (3)控制件协议单元将该组播列表以及其组播号与UDP组播地址的对应关系,使用ForCES协议传递到所有参与该组播的转发件成员的协议单元中;\n[0059] (4)转发件协议单元将该组播列表以及组播号与UDP组播地址的对应关系传递到该转发件的传输映射单元中;\n[0060] (5)控制件和转发件的传输映射单元根据该组播列表以及组播号与UDP组播地址的对应关系,结合传输映射单元存在的信息,建立起该组播列表中的组播号与传输映射单元实际传输地址之间的映射关系;\n[0061] (6)根据该映射关系,当传输映射单元接收到需要以该组播号进行组播传输的ForCES协议消息时,传输映射单元将该消息传输到该组播要求的所有成员中。\n[0062] 该方法中,控制件可以通过修改组播列表以及其它参数来随时改变组播成员,通过删除一个组播列表以及其它参数来删除该组播服务。\n[0063] 本发明的显著优点\n[0064] 1.本发明解决ForCES网络件技术实现和制订技术标准化过程中急需解决的几个相关重要问题,即一种在协议单元实现ForCES协议消息组播传输的方法。从IETF ForCES工作组的工作看,本发明是目前唯一的一套具有完整解决方案、可向IETF ForCES工作组申请进行标准化的关于该信息交换的方法协议,未见其它任何有效的解决方法发表。应用本发明具有拟制标准化的前景,故本发明具有广阔的应用前景和广泛的实际使用效果前景。\n[0065] 2.本发明的显著技术优点在于:\n[0066] (1)本发明基于所给出的协议单元与传输映射单元间进行信息交换的方法,高效率地实现了一种在协议单元进行ForCES协议消息组播传输的方法,该方法无需在ForCES网络件内另外定义其它信息交换协议如传输映射单元到传输映射单元的信息交换协议。\n[0067] 3.本发明的方法已经被实际系统使用证明是切实可行的。\n附图说明\n[0068] 图1是转发与控制分离网络件的结构示意图\n[0069] 图2是协议单元与传输映射单元的关系结构示意图\n[0070] 图3是一个具体实施例的示意图\n具体实施方式\n[0071] 结合附图,进一步说明本发明的技术方案,给出一种本发明所述方法的具体实施方式。\n[0072] 如图3所示,本实施例使用Intel公司生产的IXP2400网络处理器(含必要的外围电路)构成转发件,使用PC计算机构成控制件,共有两个标号分别为1和2的控制件和三个标号分别为10、11和12的转发件组成一个ForCES网络件,转发件具有多个与外部网络连接的网络接口,转发件和控制件间通过以太网接口经由一台以太网交换机相互连接实现相互通信。\n[0073] 转发件和控制件均使用TCP/UDP传输映射单元,也即ForCES协议消息在该传输映射单元中被封装在TCP协议包或UDP协议包中,然后TCP/UDP协议被进一步封装在IP协议包上传输,同时该传输单元能够运行IP层的组播协议如IGMP。\n[0074] 转发件和控制件运行由基本C语言经过各自编译系统编译获得的指令代码。本实施方式首先使用基本C语言语法按照本发明所述的方法和本实施所述的指令和数据结构规则编写传输映射单元服务原语和与本发明相关的其它程序,经过控制件和转发件各自的编译工具编译获得各自程序指令代码,并通过各自的装载工具装入各自传输映射单元的存储器中。按同样步骤获得本发明所述的用于协议单元与传输映射单元进行信息交换的程序指令代码并被输入各自协议单元中。协议单元也同时被装载入各自的ForCES协议处理程序和ForCES协议应用程序。最后控制件和转发件中的协议单元和传输映射单元各自启动运行被装载在其中的程序指令代码,一般传输映射单元代码被稍先运行,协议单元代码接着运行,但这个顺序并不需要被保证,该顺序并不影响正常工作。代码运行后,协议单元与传输映射单元之间即按本发明所述方法交换信息,同时转发件与控制件间也即开始按本发明所述方法频繁地交换信息。\n[0075] 下面说明本发明方法相关的一些具体实施方式。\n[0076] 首先根据本实施的具体条件(C语言语法)设计传输映射层服务原语的具体结构。\n在以下服务原语的参数描述中,由协议单元的原语调用者输入值的原语参数标为“原语输入”,需由传输映射单元输出返回给调用者参数值的原语输入参数标为“原语输出”。\n[0077] 1)传输映射单元打开服务原语TMLopen\n[0078] 原语格式:\n[0079] int TMLopen(void);\n[0080] 原语参数:\n[0081] void:无参数\n[0082] 返回值:\n[0083] 返回的是整型(int)值,值的意义:\n[0084] 0:该原语调用成功;\n[0085] 其它值:该原语调用失败并返回错误代码。\n[0086] 2)传输映射单元关闭服务原语TMLclose\n[0087] 原语格式:\n[0088] int TMLclose(void);\n[0089] 原语参数:\n[0090] void:无参数\n[0091] 返回值:\n[0092] 0:该原语调用成功;\n[0093] 其它值:该原语调用失败并返回错误号码。\n[0094] 3)传输映射单元配置服务原语TMLconfig\n[0095] 原语格式:\n[0096] int TMLconfig(int td,\n[0097] int op,\n[0098] void *tp);\n[0099] 原语参数:\n[0100] td:所要配置的TML参数名,原语输入;\n[0101] op:操作号,原语输入,值的意义为:\n[0102] 1:设置该TML参数,即将一个参数添加到TML层;\n[0103] 2:修改该TML参数,即使用新的参数覆盖原来的参数;\n[0104] 3:删除该TML参数,若该操作指定了一个参数值,则该操作只删除该参数\n[0105] 中被指定值的部分;若该操作未指定参数值,即参数值的指针为空,该\n[0106] 操作将删除与该参数有关的所有值,并删除该参数;\n[0107] 其它值:非法操作;\n[0108] tp:所要配置的参数值或指向所要配置的参数值的指针,原语输入;当操作为删\n[0109] 除操作(即op=3)时,该参数值指针可以为空(即tp=0)。\n[0110] 返回值:\n[0111] 0:该原语调用成功;\n[0112] 其它值:该原语调用失败并返回错误号码。\n[0113] 4)传输映射单元查询服务原语TMLquery\n[0114] 原语格式:\n[0115] int TMLquery(int td,\n[0116] void *tp);\n[0117] 原语参数:\n[0118] td:所要查询的TML参数或状态名,原语输入;\n[0119] tp:指向返回的被查询的参数或状态值的指针,原语输出。\n[0120] 返回值:\n[0121] 0:该原语调用成功;\n[0122] 其它值:该原语调用失败并返回错误号码。\n[0123] 5)传输映射单元发送服务原语TMLsend\n[0124] 原语格式:\n[0125] int TMLsend(long int msgDestID,\n[0126] int msgType,\n[0127] int msgPrio,\n[0128] int msgLen,\n[0129] char *msgBody);\n[0130] 原语参数:\n[0131] msgDestID:要发送的ForCES协议消息的目的标识号,它即为如图3所示的转发\n[0132] 件标识号10、11或12等,原语输入;\n[0133] msgType:要发送的ForCES协议消息的消息类型,原语输入;\n[0134] msgPrio:要发送的ForCES协议消息的消息优先级,原语输入;\n[0135] msgLen:要发送的ForCES协议消息的长度,原语输入;\n[0136] msgBody:指向要发送的ForCES协议消息体的指针,原语输入。\n[0137] 返回值:\n[0138] 0:该原语调用成功;\n[0139] 其它值:该原语调用失败并返回错误号码。\n[0140] 6)传输映射单元接收服务原语TMLreceive\n[0141] 原语格式:\n[0142] int TMLreceive(int *msgLen,\n[0143] char **msgBody);\n[0144] 原语参数:\n[0145] msgLen:指向接收到的ForCES协议消息的长度的指针,原语输出;\n[0146] msgBody:指向接收到的ForCES协议消息体的指针的指针,使用两层指针的目\n[0147] 的是让传输映射单元只传回指针参数,而避免了耗费时间的协议消息体的移动,\n[0148] 原语输出。\n[0149] 返回值:\n[0150] 0:该原语调用成功;\n[0151] 其它值:该原语调用失败并返回错误号码。\n[0152] 基于上面规定的服务原语,设计协议单元与传输映射单元之间进行的信息交换的相关程序指令代码,方法为:\n[0153] (1)协议单元使用所述的TMLopen服务原语来开启传输映射单元,[0154] (2)协议单元使用所述的TMLconfig服务原语来设置、修改或删除传输映射单元的参数,\n[0155] (3)协议单元使用所述的TMLquery服务原语来查询传输映射单元的参数或状态,[0156] (4)协议单元使用所述的TMLsend服务原语来向传输映射单元发送该协议单元产生的ForCES协议消息,\n[0157] (5)协议单元使用所述的TMLreceive服务原语来从传输映射单元接收来自于其它控制件或转发件的ForCES协议消息,\n[0158] (6)协议单元使用所述的TMLclose服务原语来关闭传输映射单元。\n[0159] 其中TMLsend服务原语的参数中包含已经从被发送的ForCES协议消息中分离出来的该协议消息的目的地标识号、类型、和优先级,传输映射单元依据该服务原语参数决定对该ForCES协议消息的发送处理方法,传输映射单元不通过读取被传送的ForCES协议消息体的动作来获得这些参数,使传输映射单元设计独立于协议单元的设计。其中目的地标识号决定该协议消息在协议单元的目的地,TCP/UDP传输映射单元中建立有一个协议单元目的地标识号与实际目的地IP地址的对应关系表,使用该关系表即可以决定该协议消息的实际IP层地址。其中类型参数决定以下关系:控制类ForCES协议消息使用TCP协议传输,重定向类协议ForCES协议消息使用UDP协议传输。其中优先级参数决定高优先级的协议消息被放在传输映射单元发送队列的前面优先得到传输。\n[0160] 进一步说明协议单元设计用于传输映射单元事件的回调函数的步骤。关于协议单元在接收到传输映射单元事件后的具体处理方式不是本发明的主要内容,由于篇幅关系,不包含在本实施说明内。\n[0161] 协议单元设计以下用于传输映射单元事件的回调函数:\n[0162] int callbackTMLFailureEvent(int eventState,int failCode);\n[0163] 这是传输映射单元故障事件回调函数,其中参数均由传输映射单元输入,其意义为:\n[0164] eventState=1:该事件发生;\n[0165] =0:该事件被解除。\n[0166] failCode:该事件的具体故障代码。\n[0167] int callbackTMLDoSAlertEvent(int eventState);\n[0168] 这是传输映射单元受到来自重定向包的拒绝服务攻击预警事件回调函数,参数意义同上。\n[0169] int callbackTMLCtrMsgCongestEvent(int eventState);\n[0170] 这是传输映射单元控制通道阻塞事件回调函数,参数意义同上。\n[0171] int callbackTMLRedMsgCongestEvent(int eventState);\n[0172] 这是传输映射单元重定向通道阻塞事件回调函数,参数意义同上。\n[0173] int callbackTMLMsgArrivalEvent(int msgLen,char*msgBody);\n[0174] 这是传输映射单元收到来自其它转发件或控制件的ForCES协议消息事件回调函数,其中参数msgLen为由传输映射单元输入的关于该ForCES协议消息的长度,msgBody为指向该协议消息体的指针。\n[0175] 进一步设计让TMLconfig服务原语所配置的参数包含用于传输映射单元向协议单元报告发生上述各类事件的回调函数名,使协议单元可以将上述回调函数名传递给传输映射单元,一个实施例如下表所示:\n[0176] \n 参数名(td) 参数值\n 1 callbackTMLFailureEvent\n 2 callbackTMLDoSAlertEvent\n 3 callbackTMLCtrMsgCongestEvent\n 4 callbackTMLRedMsgCongestEvent\n 5 callbackTMLMsgArrivalEvent\n[0177] 以下为操作实例:\n[0178] 协议单元执行以下服务原语将把传输映射单元故障事件回调函数名设置入传输映射单元:\n[0179] TMLconfig(1,1,callbackTMLFailureEvent);\n[0180] 协议单元执行以下服务原语将把传输映射单元故障事件回调函数名修改成当前的值(假如原来已经设置了一个该回调函数名):\n[0181] TMLconfig(1,2,callbackTMLFailureEvent);\n[0182] 协议单元执行以下服务原语将删除已经设置在传输映射单元故障事件回调函数名:\n[0183] TMLconfig(1,3,0);\n[0184] 可以根据各种实际情况设计传输映射单元对以上事件的触发条件,一个实施示例如下:\n[0185] (1)传输映射单元故障事件触发条件:当传输映射单元发现与对方传输映射单元通信中断时。\n[0186] (2)传输映射单元受到来自重定向包的拒绝服务攻击预警事件触发条件:在有控制类消息要求发送情况下,控制通道连续10秒钟处于发送速率小于每秒10个消息包的状态。\n[0187] (3)传输映射单元控制通道阻塞事件触发条件:在有控制类消息要求发送情况下,控制通道连续1秒钟不能发送消息。\n[0188] (4)传输映射单元重定向通道阻塞事件触发条件:在有重定向消息要求发送情况下,重定向通道连续1秒钟不能发送消息。\n[0189] 使TMLconfig服务原语所配置的参数包含ForCES协议消息组播传输所需参数的实施过程如下:\n[0190] 首先定义组播列表的数据结构为:\n[0191] struct McastList{\n[0192] long int groupID; //这是协议单元的组播号\n[0193] int number; //这是组播成员数量\n[0194] long int memberIDlist[];//这是用转发或控制件标识号表示的组播成员列表\n[0195] };\n[0196] 进一步设定TMLconfig服务原语配置组播列表所用参数号td=10。\n[0197] 根据以上设定,若在协议单元已经形成了两个组播列表,如:\n* *\n[0198] McastList mList1,mList2;\n[0199] 并已经在列表参数中输入了相应数据,则协议单元执行以下服务原语操作将把mList1和mList2组播列表设置到传输映射单元:\n[0200] TMLconfig(10,1,mList1);\n[0201] TMLconfig(10,1,mList2);\n[0202] 协议单元执行以下服务原语将修改已经被设置在传输映射单元的mList1组播列表的数据:\n[0203] TMLconfig(10,2,mList1);\n[0204] 协议单元执行以下服务原语将删除已经被设置在传输映射单元的mList2组播列表:\n[0205] TMLconfig(10,3,mList2);\n[0206] 协议单元执行以下服务原语将删除所有已经被设置在传输映射单元的组播列表:\n[0207] TMLconfig(10,3,0);\n[0208] 本实施例使用TCP/UDP协议的传输映射单元,TMLconfig服务原语所配置的参数需要包含ForCES协议消息组播传输所需的协议单元组播号与UDP组播地址对应关系的列表,实施过程如下:\n[0209] 首先定义组播号与UDP组播地址对应关系的数据结构:\n[0210] struct McastTMLPar{\n[0211] long int groupID;//协议单元的组播号\n[0212] _u32 IPv4add;//32bits的用于UDP组播地址的IP(IPv4)地址[0213] };\n[0214] 进一步设定TMLconfig服务原语配置上述参数所用的参数号td=11。\n[0215] 根据以上设定,若在协议单元已经形成了两个组播号与UDP组播地址对应关系列表,即:\n[0216] McastTMLPar *mPar1,*mPar2;\n[0217] 并已经在参数中输入了相应数据,则:\n[0218] 协议单元执行以下服务原语将把mPar1和mPar2设置到传输映射单元:\n[0219] TMLconfig(11,1,mPar1);\n[0220] TMLconfig(11,1,mPar2);\n[0221] 协议单元执行以下服务原语将修改已经被设置在传输映射单元的mPar1的数据:\n[0222] TMLconfig(11,2,mPar1);\n[0223] 协议单元执行以下服务原语将删除已经被设置在传输映射单元的mPar2:\n[0224] TMLconfig(11,3,mPar2);\n[0225] 协议单元执行以下服务原语将删除所有已经被设置在传输映射单元的对应关系列表:\n[0226] TMLconfig(11,3,0);\n[0227] 在以上步骤的设计之后,进一步可以得到一个协议层程序指令代码集和传输映射层程序指令代码集合,使用前述的步骤,将该代码装载入控制件和转发件的协议单元和传输映射单元,启动运行该程序指令代码,转发件或控制件的协议层与传输映射层之间、以及转发件与控制件之间即开始信息交换过程,进而转发件与控制件完成所需要的作为网络件如路由器所需的各项工作。\n[0228] 在以上所述的实施基础上,进一步就可实现由一个控制件向多个转发件或一个转发件向多个控制件进行ForCES协议消息组播传输,例如可以实现由如图3所示的控制件1向转发件10、11组播或实现由转发件12向控制件1和2组播。实现方法步骤如下:\n[0229] (1)控制件的协议单元按如上所述的数据结构和具体组播要求形成一个组播列表和一个组播号与UDP组播地址对应关系列表,由于除当前活跃的控制件外,其它控制件都工作在备分状态,所以所有控制件都将获得该参数;\n[0230] (2)控制件协议单元将该两个参数使用本实施方式所定义的TMLconfig服务原语传递到控制件的传输映射单元;\n[0231] (3)控制件协议单元将该两个参数使用ForCES协议传递到所有参与该组播的转发件成员的协议单元中;\n[0232] (4)转发件协议单元将该两个参数使用本实施方式所定义的TMLconfig服务原语传递到转发件的传输映射单元中;\n[0233] (5)控制件和转发件的传输映射单元根据该两个参数,结合基于该参数运行IP组播协议IGMP建立的IP组播信息,建立起该协议单元组播列表中的组播号与传输映射单元实际传输IP地址之间的映射关系;\n[0234] (6)根据该映射关系并使用IP组播协议,当传输映射单元接收到需要以该协议单元组播号进行组播传输的ForCES协议消息时,传输映射单元将该消息组播传输到该组播要求的所有成员中。\n[0235] 使用以上步骤,同时结合使用TMLconfig原语中的修改和删除功能,就可以实现随时修改该组播列表中的组播成员,也可以删除该组播列表以删除该组播功能。\n[0236] 以上所述仅为本发明的较典型实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2022-02-08
未缴年费专利权终止
IPC(主分类): H04L 12/18
专利号: ZL 200910127408.4
申请日: 2006.02.24
授权公告日: 2011.07.27
- 2011-07-27
- 2010-02-03
- 2009-12-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |