在较低网络协议层进行的过滤的制作方法_3

文档序号:9510405阅读:来源:国知局
器组件。存储器222通常存储待由(一个或多个)处理元件221执行的计算机可执行指令和/或由(一个或多个)处理元件221操纵的数据,以用于实现根据实施例的功能。(一个或多个)存储设备223是另一种类型的计算机可读介质,并且通常包括固态存储介质、盘驱动器、磁盘、联网服务、磁带驱动器、以及其他存储设备。(一个或多个)存储设备223通常存储待由(一个或多个)处理元件221执行的计算机可执行指令和/或由(一个或多个)处理元件221操纵的数据,以用于实现根据实施例的功能。
[0037]图3A示出了层2或层3多播地址的一部分,其包括类别301和个类302。在一个实施例中,类别301对应于通用群组,而个类302定义了该群组中的特定项,或该通用群组的所有特定项。例如,在多播域名系统(mDNS)的上下文中,类别301可对应于.local、.home、, cisco, com等等,而个类可以传送到类别301的所有订户,或传送到个别订户。在另一上下文中,类别301可表示一组打印机,而个类对应于所有打印机、一类打印机(例如,一类中的一个或多个打印机,诸如但不限于HP彩色打印机)或特定打印机(例如,特定房间中的特定打印机)。
[0038]在一个实施例中,类别301通过使用散列函数来确定,该散列函数将类别301的一个值(例如,诸如.home之类的字母数字)改变为另外的值。类似地,在一个实施例中,个类302通过使用散列函数来确定,该散列函数将个类302的一个值(例如,诸如HP彩色打印机A之类的字母数字)改变为另外的值。通过使用相同的散列函数,每个提供服务的实体和消费者能够确定性地产生相同值的类别301和个类302。
[0039]一个实施例使用类别301和个类302作为层2 (例如,以太网)或层3网络地址(例如,互联网协议版本4或6)的一部分。例如,在一个实施例中,互联网协议版本6 (IPv6)地址可采用FFOx:y::〈类别301X个类302>/64的形式,其中x表示足够宽的范围,y是被选取为构造有效的IPv6地址的值。在一个实施例中,类别301是三十二位值,并且个类302是三十二位值。
[0040]在一个实施例中,希望成为服务的提供商或消费者的网络设备(或其代理)将订阅针对包括类别301和个类302的多播地址的多播分配树。
[0041]然而,特别是当网络并未基于全部长度的目的地址来转发分组时,分组可被传递至非预期的接收者。在一个实施例中,这些分组在应用层处被过滤掉,但是这需要在协议栈的多个层处进行处理。
[0042]图3B根据一个实施例示出了协议栈300的一部分的处理。所示出的是高层协议331 (例如,应用层)、低层协议333 (例如,层2或层3协议层),以及(一个或多个)中间协议层332和(一个或多个)较低层334。
[0043]在一个实施例中,较高协议层331把它的下述类别和个类向较低协议层注册:对于这些类别和个类,较高协议层331想要接收(或不接收)来自所接收的具有匹配类别和个类的分组的信息。低层协议层333执行这种过滤,并且选择性地转发来自下述分组的信息:该分组的目的地址中的类别和个类与所订阅的类别/个类之一匹配。在一个实施例中,对所接收的分组的目的地址的类别执行精确匹配。在一个实施例中,对所接收的分组的目的地址的个类执行部分匹配。
[0044]在一个实施例中,接收节点可能不具备足够的存储器和/或处理能力来针对每一可能的类别/个类配对在数据结构中保持条目。在一个实施例中,低层协议层333对类别和/或个类执行部分匹配,从而能够实现匹配数据结构中的条目的数目降低。例如,在一个实施例中,较高协议层331订阅了这样的个类:其最后三位是101和010(尽管个类可能是三十二位的值),因为它们是较高协议层唯一感兴趣的个类。
[0045]在一个实施例中,用来对值进行散列以产生用于分组的目的地址中的类别和个类的(一个或多个)散列函数被选择以与受限网络中所执行的路由和/或在低层协议层333中可用的过滤数据结构的尺寸匹配。
[0046]图4示出了在一个实施例中所执行的处理。处理开始于处理框400。在处理框402中,高层协议标识其希望针对哪一类别进行订阅和接收分组(这可以直接进行或经由网络节点中的代理进行)。在处理框404中,高层协议标识其希望针对该类别(在处理框402中所标识的)的哪一个或多个个类(例如,单个实体、所有实体)进行订阅和接收分组(这可以直接地或经由网络节点中的代理进行)。如处理框405中所确定的,如果过滤要由远程代理执行,则在处理框406中,类别和个类被发送至该代理,该代理执行处理框410-419的操作。
[0047]处理继续进行至处理框410,其中类别和(一个或多个)个类通常被散列化以生成要被包括在目的地址(例如,多播目的地址)中的类别和个类值。在处理框412中,向低层协议层(例如,层2或层3)注册(例如,订阅)该类别和(一个或多个)个类,该低层协议层更新用于过滤所接收的分组的数据结构。在处理框414中,低层协议层针对该类别和所有个类(例如,在该个类是匹配所有个类的通配符的情况下)以及所有所注册的类别-个类配对订阅多播分配群组。图4的流程图的处理如处理框419所表明的那样完成。
[0048]图5示出了一个实施例中所执行的处理,该处理用于发送具有所选定的类别和个类的分组。处理开始于处理框500。在处理框502中,类别被标识。在处理框504中,个类被标识(例如,该类别的特定实体或全部实体)。如处理框505中所确定的,如果对分组的发送由远程代理来执行,则在处理框506中,类别和个类被发送至该代理,该代理执行处理框510-519的操作。
[0049]处理继续进行至处理框510,其中类别和(一个或多个)个类通常被散列化以生成待被包括在目的地址(例如,多播目的地址)中的类别和个类值。在处理框512中,低层协议层将(经散列的)类别和个类包括在网络设备所发送的分组的(多播)目的地址中。图5的流程图的处理如处理框519所表明的那样完成。
[0050]图6示出了在一个实施例中由接收分组的网络设备所执行的处理。处理开始于处理框600。在处理框602中,分组被接收。如果在处理框603中确定该分组不是具有包括类别/个类(CP)的目的地址的分组,则在处理框604中该分组被正常处理。否则,处理进行至处理框607。
[0051]如低层协议层(例如,层2或层3)所确定的,如果如处理框607中确定的所接收的(多播)目的地址的类别部分是匹配的(例如,在一个实施例中,精确匹配),并且所接收的(多播)目的地址的个类部分是匹配的(例如,在一个实施例中,部分匹配),则处理进行至处理框610。否则,在处理框608中分组被丢弃(或以其他方式来处理)。
[0052]在处理框610中,低层协议层转发来自所接收的分组的信息(例如低层协议通常被剥离),并且在处理框612中,较高协议层处理此信息。
[0053]图6的流程图的处理如处理框619所表明的那样完成。
[0054]图7示出了在一个实施例中网络设备所执行的处
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1