CN1578310A - 用于提供虚拟协议夹层的方法和系统 - Google Patents

用于提供虚拟协议夹层的方法和系统 Download PDF

Info

Publication number
CN1578310A
CN1578310A CNA2004100632417A CN200410063241A CN1578310A CN 1578310 A CN1578310 A CN 1578310A CN A2004100632417 A CNA2004100632417 A CN A2004100632417A CN 200410063241 A CN200410063241 A CN 200410063241A CN 1578310 A CN1578310 A CN 1578310A
Authority
CN
China
Prior art keywords
interlayer
protocol
address
layer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2004100632417A
Other languages
English (en)
Inventor
R·P·小德拉夫斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1578310A publication Critical patent/CN1578310A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

揭示了通信堆栈中的两个协议层之间的虚拟协议“夹层”。当需要执行通信任务时,但这些现存的协议层内的实施可能会由于兼容性事项而阻碍部署,使用本发明的这些方法来创建夹层,以处理这项任务。设立该夹层所特有的寻址方案。该夹层释放该协议堆栈中的这些其他的层来如以前那样进行操作,从而将执行该通信任务的细节留给该夹层。在一个实施例中,在该ISO/OSI协议层2与3之间建立夹层。使用夹层地址,在这个夹层内执行源路由选择。通过使用夹层地址(而不是层2或层3地址),源路由选择的这个实施例允许既与多个层3协议相兼容,又与多个层2网络接口相兼容。

Description

用于提供虚拟协议夹层的方法和系统
技术领域
本发明一般涉及计算机网络通信,更具体地说,涉及分层通信协议。
背景技术
现代计算机网络系统日益发展,变得十分复杂,除了将消息从一台计算机移到另一台计算机这项基本任务以外,还涉及许多完全不同的通信任务。为了处理这种日益增长的复杂性,许多(虽然不是所有)通信协议被分成各个“层”——每个层处理一些重要的通信任务,而将其他任务留给其他层来处理。“国际标准化组织开放式系统互连”(ISO/OSI)协议模型是在该模型的七层“堆栈”之中分配通信任务的理论结构。在这个模型中,启用网络通信的这项总任务被分成各项子任务,那些子任务每个都被分配给该协议堆栈中的逻辑层。该堆栈是分等级的:每个具有被定义的接口——其上、下具有这些层(当然,除最高层和最低层以外)。逻辑上,每个层与另一台计算机上的其同等层进行通信,为该堆栈中的位于其以上的那个层提供服务,并使用其以下的那个层所提供的这些服务。从物理上讲,消息从其来源沿该堆栈流动,直到该物理层实际上跨越该网络连接的介质来传送它们为止。当消息由其预定接收计算机来接收时,这些消息沿该堆栈被向上传递——每个层除去并响应于为其预定的数据,而将其余的消息向上传递到下一个层次。例如,网络层(层3)定义如何在各个网络之中发送消息。通过将数据包向下传递到其自己的计算机上的数据层(层2),一台计算机上的网络层逻辑地与另一台计算机上的网络层进行对话。数据层又将头部加入网络层的数据包,从而创建数据帧,它将该数据帧传递到物理层(层1)。物理层使用该物理网络介质来传送那个数据帧。当该数据帧由该接收计算机来接收时,该接收者的数据层读取该数据帧,从而从其中除去供其自己使用的该头部信息。然后,数据层获得该帧的其余部分(包括该源计算机的数据包),并将它向上发送到网络层。这样,该接收者上的网络层读取如该来源上的网络层所发送的那个数据包,而无须对该数据层头部以及被这些低层用来传送该数据包的其他信息进行解码。
该分层模型的主要优点是:每个协议层可以与其同位体进行通信,而无须关心该协议堆栈中的其他层所处理的无数细节。也就是说,每个层通常独立于这些其他的层所执行的任务来执行其通信任务。这保证了实施中的灵活性。例如,一个层(例如,“电气和电子工程师协会”(IEEE)802以太网数据层2)的特定实施配合它以上的协议层(例如,多个ISO/OSI网络互连协议层3s)的任何数量的实施。这样,可以引入新的层3协议,来发展网络通信技术,同时,与层2设备的被安装的基础结构保持兼容。同样,给定的上协议层在多个完全不同的低层之上进行操作。这样,一台计算机可以在以太网层2接口和无线接口之上运行单层3。这种灵活性允许分层协议存在并发展达二十余年。
这种灵活性引起每个层的多个实施例——这些实施例为特定的情况而加以优化,所有这些实施例都在相同的低层之上运行。但是,该分层协议对各层之间的兼容性的保证不会延至一个层内的多个实施例。例如,该ISO/OSI模型不会先验地确保:新的层3协议(例如,IPv6)将与先前的版本(例如,IPv4)相互作用。这个问题并不基于该ISO/OSI模型的细目,而一般是分层协议所特有的。
作为这个层内兼容性问题的例子,考虑在无线网络内发送数据的通信任务。(以下的“详细说明”章节中更加详细地展示并解释了这个例子。)在传统的有线网络中,设备可以与该网络内的其他设备(“本地设备”)进行直接通信,并且可以与用于将数据发送到该局部网络的界限以外的设备(“远程设备”)的路由器进行直接通信。但是,无线网络中的设备可能由于噪声、干扰和这些设备之间的距离而无法与所有这些其他的本地设备进行直接通信。同样,设备可能无法与将该无线网络连接到该有线因特网的路由器进行直接通信。这样,无线设备在将消息发送到本地设备和远程设备的过程中会遇到困难。在一些无线网络中,已执行协议来处理这些问题。在这些网络中,无线设备通过转发指定到其他设备那里去的被截取的消息,来相互帮助。这允许源设备所发送的消息在到达该预定接收者之前“跃过”或通过几个中间设备。
若被盲目地加以执行,则这个转发模型会导致:在到达其预定接收者之前,消息低效率地在“回路”中行进。在防止混乱状态的一个途径集中,应用“源路由选择协议”的各种方法。以下详述了一个例子,但现在说这一点就足够了:该来源发现潜在地通过几个中间设备的、到该预定接收者的路由。只有沿该源路由的设备转发被截取的消息,从而允许执行传递,同时减少低效率的过度转播通信量。也已制定了解决这个问题的非源路由选择方法。
源路由选择通常按所通告的那样来运作,但它很好地展示了分层协议的这些层内兼容性问题。当决定将源路由选择放置在该分层协议堆栈内的什么地方时,会出现这些问题。如果该源路由选择协议成为该层3协议的一部分,并且因而使用层3地址,那么,该分层协议模型允许该源路由选择协议作用于多个层2s。当网络中的设备使用不同的无线协议时,或者当该网络包括有线设备和无线设备时(或者当单一设备具有有线网络接口和无线网络接口时),这是一个重要的优点。但是,如上所述,不同的层3协议不一定相互作用。这样,为(比如说)该IPv4层3协议而开发的层3源路由将不会作用于使用其他层3协议(例如,IPv6和IPX)的设备。通过将该源路由选择协议置于层2中并使用层2地址,这个问题被移开,但并没有得到解决。为了允许层2源路由跨越多种类型的层2网络接口,该源路由选择协议将必须为每项层2技术而加以再次执行。也会出现困难,这是因为不同的层2网络接口(例如,以太网和Bluetooth(无线网络标准))可以为其地址使用不同的、不兼容的格式。
为了制定并处理新的通信任务,分层协议系统必须配合每个层处的新协议。该分层模型有助于确保:新协议与该协议堆栈中的其以上和以下的其他协议相兼容。但是,如该源路由选择例子所示,给定的层内的协议的不兼容性阻碍了分层协议的这个保证的充分实现。
发明内容
鉴于前述内容,本发明在通信堆栈中的两个协议层之间提供虚拟协议“夹层”。当需要执行通信任务时,但这些现存的协议层内的实施可能由于兼容性事项而会阻碍部署,可以使用本发明的这些方法来创建夹层,以处理这项任务。设立该夹层所特有的寻址方案。该夹层释放该协议堆栈中的这些其他的层,使其如以前那样进行操作,从而将执行该通信任务的细节留给该夹层。
协议夹层的这项操作的细节取决于要求它来执行的这项或这些任务的细目。如果必要的话,一个通信设备可以同时支持一个以上的夹层,尽管性能事项会阻碍夹层的倍增。
可以修改已在其他协议层处被加以使用的各项技术,以便分配和发现该必要联网环境中的夹层地址。在一些实施例中,为每个网络设备上的每个网络接口分配其自己的全球唯一夹层地址。在为每个网络设备分配单一夹层地址的实施例中,可以将接口标识符加入该夹层地址,以便在网络设备上的多个网络接口之中进行区别。
在一些实施例中,引入协议夹层,而不改变它以上和以下的各个协议层。例如,该夹层向它以上的那个层(例如,层3)表现它以下的那个层(例如,层2)所示的相同的接口。这样,这个现存的上协议层与该夹层相互作用,就如同它被用来与该下协议层相互作用。其他实施例只要求稍微改变与该夹层邻近的协议层。例如,通过使用现存的技术,低层可以认出所接收的消息中的新协议头部标记,从而使该低层将该消息传递到该夹层,而不是处理该消息本身或将其传递到该上层。
源路由选择是一个有用的例子,用于展示该协议夹层的效用。在一个实施例中,在该ISO/OSI协议层2与3之间建立夹层。使用夹层地址,在这个夹层内执行源路由选择。通过使用夹层地址(而不是层2或层3地址),源路由选择的这个实施例允许既与多个层3协议相兼容,又与多个层2网络接口相兼容。
附图说明
所附权利要求书详细陈述了本发明的各个特点,但通过以下结合附图而进行的详细说明,可以最佳程度地理解本发明及其目的和优点。在这些附图中:
图1是支持有线主机和无线主机的通信环境的框图;
图2a~2c一起构成数据流图表,该数据流图表通过使用源路由来展示图1中的两个主机如何可以经由中间设备来彼此通信;
图3是使用夹层地址的源路由的数据结构图表;
图4是示意图,一般展示了支持本发明的示范计算机系统;
图5a是关于等级分层的网络通信协议的“国际标准化组织开放式系统互连”(ISO/OSI)模型的逻辑图;图5b是框图,表现了运行ISO/OSI协议堆栈的过程中所涉及的部分这些通信任务;
图6是示意图,展示了用于执行根据图5b而加以描述的这些任务的一项可能的软件实施;
图7是流程图,表现了供上协议层与协议夹层相互作用的、根据本发明的示范方法;
图8是地址关联表格的数据结构图表;
图9a和9b一起构成响应于从上协议层接收的消息的示范协议夹层的流程图;
图10是当接收被指定到协议夹层那里去的消息时可以由示范下协议层来使用的方法的流程图;
图11是包含夹层头部的示范数据帧的数据结构图表;
图12a和12b一起构成响应于从下协议层接收的消息的示范协议夹层的流程图;
图13是用于分配和发现夹层地址的示范方法的流程图;以及,
图14a和14b一起构成数据流图表,表现了该“地址解析协议”如何可以在协议夹层存在的情况下运作。
具体实施方式
参考这些附图(其中,相似的标记表示相似的元件),本发明被展示为在合适的计算环境中加以执行。下文基于本发明的实施例,而不应该在这里未加以明确描述的选择性实施例方面,被视作限制本发明。
在下文中,除非另有指示,参照由一个或多个计算设备执行的动作和操作的符号表示,来描述本发明。照此,将会理解:这类动作和操作(有时被称作“是计算机执行的”)包括用结构化形式表现数据的电信号的该计算设备的该处理单元所执行的操作。这项操作变换该数据,或者将其保存在该计算设备的该存储系统中的各个位置,这样,用精通该技术领域的人所熟悉的方式重新配置或改变了该设备的该操作。其中保存数据的这些数据结构是具有由该数据的格式定义的特定属性的、该存储器的物理位置。但是,前述上下文中描述了本发明,而这并不意味着起限制作用,如精通该技术领域的人将会理解的,也可以在硬件中执行其后所描述的各种动作和操作。
本发明在通信堆栈中的两个协议层之间提供虚拟协议“夹层”。当需要执行通信任务时,但这些现存的协议层内的实施可能由于兼容性事项而会阻碍部署,创建夹层(利用其自己的寻址方案)来处理这项任务。
本发明的这些方法具有广泛的应用,因此在其一般的概念方面有些抽象。下文着重于特殊的实施,以展示那个一般的概念。源路由选择是一个有用的例子,用于展示该协议夹层的效用。在以下所讨论的一个实施例中,在该ISO/OSI协议层2与3之间建立夹层。使用夹层地址,在这个夹层内执行源路由选择。通过使用夹层地址(而不是层2或层3地址),源路由选择的这个实施例允许既与多个层3协议相兼容,又与多个层2网络接口相兼容。但是,本发明的效用不局限于源路由选择:可以开发协议夹层,以便也执行其他通信任务。
源路由选择是为不应用传统的路由选择方法的情况而开发的一套技术。首先,考虑传统的路由选择运作的方式。关于传统的有线网络上的设备,所有其他的设备被分成两大类。“本地”设备定位于相同的局部网络,并且可以被直接存取。“远程”设备位于该局部网络的界限以外,并通过路由器来加以存取。该路由器是本地设备。传统的路由选择方法基于本地设备和远程设备的这种二分法。当发送到本地设备时,该源设备只是将该消息呈送到该预定接收者,并将该消息放出到该局部网络上。所有本地设备(包括该预定接收者)接收该消息。(这种过分简单化的视图不总是约束于真实的网络中。例如,以太网交换器不将以太网帧传播给不包含该被寻址设备的本地链路。但是,出于举例说明的目的,而保持该过分简单化的视图。以太网交换器发现本地设备的这些位置并相应地限制转发的方式是非无线网络中的“特别”路由选择的杰出例子。然后,所有本地设备(除该预定接收者以外)放弃该消息。该预定接收者读取该消息,并作出相应的响应。
当该预定接收者远离该源设备时,传统的路由选择经常(虽然不明确地)应用“最短路径”算法。该源设备(或更有可能是该源设备的网络上的路由器)考虑到该预定接收者的该最短路径,并将该来源的消息转送到那个最短路径上的下一个设备。当这下一个设备接收该消息时,它检查该接收地址,并且,要么如果这个设备是该预定接收者,则接受该消息,要么再次应用该最短路径算法来发送该消息。最后,该消息到达该预定接收者那里。注意,发送该消息的每个设备——该来源和所有这些中间体自己选择接下来将该消息发送到什么地方。路由器定期分享终端对终端网络拓扑信息,以允许其中的每个路由器正确地选择该最短路径。
但是,传统的路由选择技术分解成各个网络,这些网络支持使用短距离的无线协议来进行通信的设备。关于这一点的第一个原因是:该无线网络中的变化步调大大加速。无线设备进入和离开该联网环境的速度如此迅速,以致用于发现网络拓扑信息的传统技术无法跟得上。其次,关于哪些其他的设备当前在该网络中、哪些其他的设备当前不在该网络中,无线设备的意见会不一致。这两种考虑违反了拓扑信息的该传统模型,它在“相对不变”和“普遍公认”这两个方面是可知的。
考虑图1中的该网络通信环境。在“特别”无线网络100中,设备102、104和106都可以相互进行无线通信(如该延长了的“Z”所暗示的)。(在该上下文中,“特别”意味着:没有关于网络100的中央配置管理,因此没有被传统的路由选择算法大大依靠的关于该地址和拓扑信息的中心仓库。)设备106也具有与另一个设备110的有线局域网(LAN)连接108。在其他事物之中,那个设备110是将特别无线网络100连接到因特网112的路由器。但是,这个设备110没有无线接收器,纯无线设备102和104无法与其直接通信,在无协助的情况下,它们也无法通过路由器110而与因特网112进行通信。
为了处理这些问题,这些无线设备通过转发被指定到其他设备那里去的被截取的消息,来相互帮助。这允许源设备所发送的消息在到达该预定接收者之前“跃过”或通过几个中间设备。源路由选择协议构成用于防止传输“回路”的一个途径集,其中,消息在其去往该预定接收者的途中通过同一中间设备一次以上。简而言之,该源设备发现潜在地通过几个中间设备的、到该预定接收者那里的路由。只有沿该源路由的设备转发被截取的消息,从而允许传递,同时减少效率很低的过度转播通信量。为清楚起见,本文使用源路由选择来展示本发明的各种方法,但那些方法同等地适用于也已被制定的针对这个问题的这些非来源路由选择途径。
图2a~2c的数据流图表展示了一种简单的源路由选择情况。首先按很高的层次来呈现该情况。然后,在图6的讨论之后,再访该情况,更加注意寻址细节。
设备102希望将消息发送到设备110。该消息的性质对于此讨论而言并不重要;它可以被指定到运行于设备110上的应用程序那里去,或者,它可以被发送到设备110,以便被发送到因特网112上的另一个设备。无论如何,设备102无法与设备110直接通信,所以,在图2a的步骤200中,设备102发现到设备110的源路由。
被发现的这个源路由通过设备106,设备102可以与设备106直接通信,设备106又可以与设备110直接通信。存在用于发现这个源路由的许多协议,并且,它们的复杂性在本文的范围以外。关于源路由选择上的更多背景,并且关于特定的源路由选择协议的细节,考虑被包括于此、用作整体参考的“因特网工程特别工作小组因特网草案”《关于移动式网络和特别网络的动态源路由选择协议(DSR)》。
图3展示了源路由300。源路由300在源设备102(字段302)处开始,然后进行到设备106(字段304)。由于设备106具有两个网络接口——一个到特别网络100中的这些无线设备,另一个到LAN 108,因此,字段304也规定那两个接口中的哪个接口将从源路由300上的该先前设备那里接收该消息。这里,设备106的该无线接口将要从纯无线设备102接收该消息。源路由300中的下一个项目或“跳跃距离(hop)”规定该消息将如何离开设备106(字段306)。该消息将要经由该LAN接口而离开。这下一个跳跃距离是该预定接收者——设备110在字段308中规定的最后一个跳跃距离。该源路由的格式和内容可以在这各种源路由选择协议之中变化,所以,图3意在只展示源路由的这些概念。例如,一些源路由将只包括中间字段304和306,并且将会分别认为源字段302和目的字段308不是该源路由本身的一部分。当然,实际的源路由会比图3中的那个简单的例子复杂得多。
设备102创建被指定到设备110那里去的其消息,并且在其内包括源路由300。在设备106的这种情况中,该消息被呈送到该源路由上的下一个跳跃距离。在图2a的步骤202中,该消息被传送到无线通信网络100中。其他的两个无线设备104和106在步骤204中接收该消息,然后在步骤206中检查该消息的目的地址。注意:一般而言,这下一个跳跃距离目的地“不是”源路由300中的最终接收地址。由于那个目的地址不与设备104的目的地址相匹配,因此,那个设备在步骤208中放弃该消息。
另一方面,该目的地址与设备106的目的地址相匹配,所以,那个设备在步骤210中继续检查该消息,尤其是源路由300。通过检查源路由300,设备106发现:它不是这个消息的预定接收者。所以,在图2b的步骤212中,设备106找到源路由300中的这下一个跳跃距离,并且转送该消息。
设备110在步骤214中接收该消息,并在步骤216中检查该目的地址。由于那个地址与设备110的地址相匹配,因此,设备110在步骤218中继续检查该消息中的源路由300。在图2c的步骤220中,设备110认识到:它是该消息的该预定接收者。设备110适当地处理该消息的这些内容。
图2a~2c的上述讨论既没有提及一般的分层协议,也没有提及有关哪些层执行哪些通信任务的细节。那种省略是故意的,以便本文可以提供关于分层协议的、尤其是随后分层协议中的寻址的讨论的非常概括的基础。在伴随图6的该讨论之后,复查这种情况,以考虑以下的分层寻址。
图1中的网络设备102、104、106和110可能属于任何结构。图4是框图,一般展示了支持本发明的示范计算机系统。图4中的该计算机系统只是合适的环境的一个例子,它并不意在对本发明的使用或功能性的范围提出任何限制。不应该将设备102解释为具有涉及图4中所展示的任何一个部件或部件组合的任何从属性或要求。本发明可用于众多其他的通用或专用计算环境或配置。适用于本发明的众所周知的计算机系统、环境和配置的例子包括(但不局限于)个人计算机、服务器、手持设备或便携式设备、写字板设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PCs、小型计算机、大型计算机,以及包括以上任何系统或设备的分布式计算环境。在其最基本的配置中,设备102通常至少包括一个处理单元400和存储器402。存储器402可以是易失的(例如,RAM)、非易失的(例如,ROM或快闪存储器)或这两者的某种组合。在图4中,用虚线404展示了这种最基本的配置。设备102可能具有额外的特点和功能性。例如,设备102可以包括额外的存储器(可移动和不可移动的)(包括(但不局限于)磁盘、磁带和光盘、光带)。在图4中,通过可移动存储器406和不可移动的存储器408,展示了这种额外的存储器。计算机存储介质包括易失和非易失的可移动和不可移动的介质,该介质用关于信息(例如,计算机可读指令、数据结构、程序模块或其他数据)存储的任何方法或技术来加以执行。存储器402、可移动存储器406和不可移动的存储器408都是计算机存储介质的例子。计算机存储介质包括(但不局限于)RAM、ROM、EEPROM、快闪存储器、其他存储技术、CD-ROM、数字通用光盘、其他光学存储器、盒式磁带、磁带、磁盘存储器、其他磁性存储设备,以及可以被用来存储所需信息并可以由设备102来存取的任何其他的介质。任何这类计算机存储介质都可能是设备102的一部分。设备102也可能包含允许该设备与其他设备进行通信的信道410。信道410是通信介质的例子。通信介质通常具体表现计算机可读指令、数据结构、程序模块或调制数据信号(例如,载波或其他传送机制)中的其他数据,通信介质包括任何信息传递介质。术语“调制数据信号”意味着一种信号,该信号的一个或多个特征按这样一种方式来加以设置或更改,以便为该信号中的信息编码。举例来讲(不作限制),通信介质包括有线介质(例如,有线网络和直线连接)和无线介质(例如,声音、RF、红外线和其他无线介质)。如这里所使用的术语“计算机可读介质”既包括存储介质,又包括通信介质。设备102也可能具有输入设备412(例如,键盘、鼠标、笔、语音输入设备、写字板、触式输入设备等)。诸如显示器(可以与触式输入设备结合)、扬声器和打印机等输出设备414也可以被包括在内。所有这些设备在该技术领域中众所周知,这里不需要详细讨论。
网络设备102、104、106和110可以使用许多通信协议中的任何通信协议。如以上的“背景”章节中所述,如今的通信协议中的许多(但不是全部)通信协议遵循图5a中所示的该ISO/OSI协议模型。在这个模型中,启用网络通信的总任务被分成各项子任务,那些子任务每个都被分配给该协议堆栈中的逻辑层。从逻辑上讲,每个层与另一个设备上的其同等层进行通信,为该堆栈中的其以上的那个层提供服务,并使用其以下的那个层所提供的这些服务。从物理上讲,消息从其发信方沿该堆栈流动,直到物理层500实际上跨越该网络连接(这里被示作LAN 108)的介质来传送这些消息为止。当消息由其预定接收者来接收时,这些消息沿该堆栈被向上传递——每个层除去并响应于为其预定的该数据,而将该消息的其余部分向上传递到下一个层次。这个分层模型的主要优点是:每个协议层可以与其同位体进行通信,而无须关心该协议堆栈中的其他层所处理的无数细节。也就是说,每个层通常独立于这些其他的层所执行的任务来执行其通信任务。
应该记住:该ISO/OSI协议堆栈只是概念模型,没有协议可确切地遵循它。但是,如今所使用的许多流行的协议遵循这个模型的程度或多或少,并且,该模型使其所定义的这些通信任务的论述更容易理解。
该ISO/OSI模型没有规定设备102应该如何在内部执行支持ISO/OSI分层通信协议所要求的这些任务。图5b表现了支持该流行的“传输控制协议/网际协议”(TCP/IP)堆栈的这些任务的一项可能的实施。在这个实施例中(但不一定在所有的实施例中),通信沿计算部件的堆栈上、下流动,该堆栈十分类似于该ISO/OSI模型中的那个分层堆栈。套接层(socket layer)510将网络通信服务呈现给应用程序506。套接层510使应用程序506与该ISO/OSI通信协议的细节隔离。当设备(例如,设备106)被连接到一个以上的网络并且正在运行一个以上的通信协议时,这种隔离特别有价值。当应用程序506调用套接层510中的例行程序来将消息发送到另一个设备上的应用程序506时,该请求沿该协议部件堆栈自行运作——每个部件按照该ISO/OSI模型来与这另一个设备上的其同位体进行通信。但是,即使在这个实施例中,一些部件也没有直接映射到ISO/OSI层。如这里通过缺乏特殊层5(“话路层”)部件所示出的,一些协议没有执行所有这些ISO/OSI层。实施也可以将几个ISO/OSI层的功能性组合到一个部件中。在图5b中,层3(图5a中的网络层504)和层4(传输层508)由组合的TCP/IP驱动器516来支持。复杂的协议(例如,TCP/IP)要求执行“数据的简单传送”以外的几项任务。在图5b中,这些功能由802.1X部件512(提供鉴定服务)来表现,并由“动态主机配置协议”部件514(规定非静态层3地址)来表现。
图6描绘了支持ISO/OSI协议的这些通信任务的一项可能的软件实施。在这个示范系统中,应用程序506正在设备106上运行。它们通过“分层服务器供应者”600来与设备106所提供的该标准通信硬件和软件进行通信。在这种情况下,网络协议堆栈602(具有其内部缓冲器)处理通信任务。输入/输出管理器604设立并拆卸信道。网络协议堆栈602与硬件提取层606对话,硬件提取层606又与运行LAN通信链路108的网络接口608对话。另一个网络接口(未示出)运行设备106的无线链路。
更加深入图2a~2c的情况,并且将图5a中的该ISO/OSI分层协议模型用作向导,每个跳跃距离(步骤202、206、212和216)中所使用的这些目的地址是层2地址。(在IEEE 802网络中,这些被称作“介质存取控制地址”。)这些地址在局部网络内是唯一的,但可能不是全球唯一的。不同类型的网络(例如,有线LAN 108对无线网络100)可以使用不同的和不相兼容的地址格式。除这些层2地址以外,层3或任何更高的层所创建的消息还包括该来源和该预定接收者的层3地址。
图3表示:范例源路由300使用各种协议夹层地址。原先技术的源路由选择协议使用层2地址或层3地址。无论如何,源路由只对于提供其地址的该协议层而言是可理解的。这样,如果源路由将要使用层2地址,那么,该源路由将会(在步骤210和218中)由层2协议驱动器518来检查。作为选择,基于层3地址的源路由将会在那些步骤中由层3协议驱动器516来检查。如以上的“背景”章节中所解释的,“将该源路由选择协议放置在该ISO/OSI协议堆栈内的什么地方”的选择十分重要,这是因为每个选择由于分层协议的这些层内兼容性问题而表现出优点和缺点。不接收该源路由选择协议的无论哪个层都可以对源路由选择进行茫然的操作,并且因而可以保留其自己的兼容性测量,但运行该源路由选择协议的那个层变得与其自己的层处的其他实施不相兼容。通过将源路由选择既不置于层2中、也不置于层3中,协议夹层的使用可处理(以使用有关单词的不合宜的选择)这个层内不兼容性问题。
本文的其余部分提供了位于该ISO/OSI协议堆栈的层2与层3之间的协议夹层中的源路由选择的特殊实施的细节。该例中再次使用图1中的环境和图2a~2c中的通信情况。
图7表现了设备102的层3协议驱动器516如何开始这种情况。在图2a中的步骤200之前执行图7中的这些方法。在步骤700中,创建层3数据包,它包含该来源(设备102)和该预定接收者(设备110)的层3地址。由于这些较低的协议层无法使用层3地址来发送该数据包,因此,这些地址在步骤702中被转换成该协议夹层所规定的地址。这个转换过程可以是对地址关联表格(例如,图8中所描绘的地址关联表格)的简单的查找。在地址表格800中,设备的该层3(IP)地址被用作定位包括关于那个相同的设备的夹层地址的记录的关键。注意,层3协议驱动器516不需要理解夹层地址的格式:它可以仅仅从表格800中取出这些值。在步骤704中,层3协议驱动器516将该层3数据包连同该夹层源地址和夹层目的地址一起传递到协议夹层。
注意,在一些实施中,层3协议驱动器516可以遵循图7中的该程序,而不必作丝毫改变来配合该协议夹层。层3协议驱动器516可以相信:在步骤702中,它正需要层2地址。该调用被截取,而夹层地址被返回。同样,层3协议驱动器516可以相信:在步骤704中,它正在将该层3数据包传递到层2协议驱动器518,而不是传递到该协议夹层。安排结合该层3协议层和层2协议层,以便该协议夹层显得正好就象另一个层2协议驱动器518到层3协议驱动器516。这是一个例子——其中,可以引入协议夹层,而不对它以上的该协议驱动器产生任何变化。这种可能性已决定关于兼容性和普遍实施的优点。
在图9a的步骤900中,该协议夹层从层3接收该数据包。由于所接收的这个夹层源地址对于层2协议驱动器518而言将是无法理解的,因此,该夹层在步骤902中将这个地址转换成层2源地址。(实际上,这个转换步骤是任选的,因为层2协议驱动器518可能知道其自己的层2地址。)该转换可以使用图8中的地址关联表格800。
在步骤904中,该协议夹层首先确定是否将源路由选择的这些方法应用于本数据包。如果(例如)层3数据包在设备106处生成并被指定到设备110那里去,那么,LAN 108将直接传送该数据包,并且,不需要源路由选择。另一方面,在图2a~2c的情况中,需要源路由选择来将该数据包从源设备102传送到接收设备110。知道这一点,该协议夹层在步骤904(对应于图2a中的步骤200)中定位合适的源路由。这个步骤的这些细节取决于所使用的该源路由选择协议,并且会十分复杂。设备102可能已将合适的源路由存储在表格中,以便它可以在步骤904中仅仅检索该路由。如果否,那么,设备102可以通过询问其周围的这些设备来发现路由。在这个例子中,被定位的这个源路由通过设备106,并使用如图3中所示的夹层地址。
在步骤906中,该协议夹层将其自己的头部加入该层3数据包,以创建夹层数据帧。以下参考图11来讨论关于该夹层头部的示范格式。
在步骤908中,该协议夹层将这下一个跳跃距离的该夹层地址转换成层2地址。如果源路由选择不合适(例如,设备106正在直接发送到设备110),那么,这下一个跳跃距离是该接收设备。关于具有源路由的消息,该地址是该路由中的这下一个设备的该层2地址。在本情况中,这是设备106的该层2地址。
在步骤910中,该协议夹层使用这下一个跳跃距离的该夹层地址的接口索引,以便选择使用特殊层2协议驱动器518来发送该消息。当该发送设备具有一个以上的层2接口时,应用这个步骤。在本情况中,这个步骤不应用于设备102,因为它只有一个层2接口。
在图9b的步骤912中,该层3数据包、其所附的夹层头部、该源层2地址以及这下一个跳跃距离的该层2地址被传递到所选择的层2协议驱动器518。
步骤914和916是任选的,但由一些源路由选择协议来加以规定。在这些协议中,计时器与在步骤912中被传递到层2协议驱动器518的该数据包有关联。如果没有接收到成功传递的指示(会来自该预定接收者或该源路由上的中间设备),那么,该发送设备知道其选择的源路由出问题了。这是特别网络中的普通事件,在这些特别网络中,所选择的源路由上的设备会越界或完全消失。如果该计时器期满,那么,该源设备应用该源路由选择协议所规定的方法来修改或取代该源路由。然后,使用这个新的源路由来再发送该消息。
当层2协议驱动器518从该协议夹层接收该消息时,它继续进行,就好象它从层3协议驱动器516接收该消息一样。在图2a的步骤202中,该层2数据帧(被呈送到设备106,并包括该层3数据包和该夹层头部)由设备102的无线发送器来传送。
在图2a~2c的情况中,在网络连接上接收层2数据帧的地方有两处:设备104和106处的步骤204,以及设备110处的步骤214。在这些步骤中,接收层2协议驱动器518可以使用图10中的该程序。在步骤1000中,接收该层2数据帧;在步骤1002中,根据这个合适的层2协议的标准实践来处理该层2数据帧。这些实践包括:将该帧中的这个层2目的地址与该当前设备的地址进行比较。(在步骤206和216中执行这个比较。)在执行这个比较之后,设备104指明该差异,并且由于该数据帧不被指定到它那里去而在步骤208中放弃该数据帧。注意,由于在标准层2实践下执行这种放弃,因此,它不依靠该消息中所包含的该源路由。
与设备104的情况对比而言,设备106上的步骤206和设备110上的步骤216的该层2目的地址比较揭示:这些设备是所接收的这个数据帧的预定目的地。所以,在图10的步骤1004中,这些设备继续检查该数据帧的这些内容。这项检查揭示:该数据帧包含夹层头部(例如,图11中的1104)。由于层2协议被设计成支持多个联立层3协议,因此,这些协议规定关于标记的值,该标记告诉层2协议驱动器518:该数据帧应该被指引到哪个层3协议驱动器516。在本实施例中,那个标记是字段1106。为该标记提供一个与该夹层关联的值。这样,层2协议驱动器518读取标记1106,并响应于其值,就好象它响应于该标记的其他值。数据帧1100被向上传递到该协议夹层,就好象该协议夹层只是另一个层3协议驱动器516。如果接收到数据帧而没有夹层头部,那么,层2协议驱动器518在步骤1008中为层3数据包检查该帧;并且,如果找到一个,则在步骤1010中将该层3数据包传递到合适的层3协议驱动器516(如该标记的这个值所确定的)。
注意,该协议夹层的引入只在这一方面改变层2协议驱动器518:它现在必须在步骤1004中认出夹层头部的存在,并适当地传递它。层2协议已熟悉许多类型的层3标记值,以便这个变化仅仅是将关于该标记(在字段1106中)的另一个普遍公认的值加入已由层2协议驱动器518认出的值。还要注意,该夹层的存在并不需要通过它的所有消息,但(如在步骤1008和1010中)如果必要的话,消息仍然可以从层2直接被传递到层3。
该协议夹层分别从设备106和110上的步骤210和218中的层2协议驱动器518那里接收数据帧1100。这些接收夹层应用图12a和12b中的方法。在步骤1200中,接收具有其夹层头部1104的数据帧1100。在步骤1202中,该设备应用由其源路由选择协议定义的这些合适的方法。然后,在步骤1204中,该接收设备检查夹层头部1104中的目的夹层地址308。注意,与在以上的步骤206和216中所检查的该层2目的地址不同,这是该消息的最终接收者的地址。在步骤1206中,将目的夹层地址308与被分配给该当前设备的该夹层地址进行比较。在设备110上(在图2b的步骤218中),这个比较揭示:这个设备110是该消息的预定接收者。然后,该消息在步骤1208中被传递到层3协议驱动器516,层3协议驱动器516相应地对其进行处理(图2c中的步骤220)。
但是,当在设备106上执行步骤1206的这个比较时,这个设备106认识到:它不是该消息的预定接收者。然后,设备106为源路由300中的这下一个跳跃距离的该夹层地址检查夹层头部1104,并准备将该消息传递到那下一个设备。在如此做的程序之前,源设备102执行这个程序:将该消息发送到源路由300中的第一个设备。图12a和12b通过使用与步骤902和步骤908~916先前所用的相同的编号方式,来强调这种对应。在图2a~2c的情况中,这下一个跳跃距离是到设备110,并使用设备106的该LAN 108网络接口(如源路由300的字段306中的该接口索引所规定的)。设备106将其自己的源层2地址(图12a中的步骤902)和设备110的该层2地址(图12b中的步骤908)加入该数据包。然后,该数据包被向下发送到处理该LAN 108网络接口(图2b中的步骤212)的层2协议驱动器518。
以上所讨论的这种情况展示了:如何可以将协议夹层加入协议堆栈,以处理重要的通信任务,而很少或不对其以上和以下的各个层进行修改。该夹层的这项操作的细节取决于要求它来执行的这项或这些任务的细目。但是,独立于那些细节,使用这些方法来分配夹层地址。可以为夹层地址使用该技术领域中众所周知的、用于分配地址的几种方法。图13中提供了一个例子。在步骤1300中,该程序始于设备为自身选择夹层地址。可以完全随便地进行这项选择。如果该设备具有一个以上的网络接口,那么,在步骤1302中,为那些接口分配接口索引。在步骤1304中,该设备开始了解其他设备的夹层地址。通过应用现存的协议(例如,“邻居发现”和该“地址解析协议”)的这些方法,可以在需要这些地址的时候(例如)发现它们。(以下见ARP例子。)如果在步骤1306中发现地址冲突,那么,在步骤1308中,这些发生冲突的设备中的至少一个设备需要改变其地址。(实际上,通过适当地选择该夹层地址空间的尺寸,可以使地址冲突的可能性变得极小,以致这种检查并不是全然必要的。)由于该地址没有固有的含义,因此,步骤1308中的该程序只会涉及:该设备发现这个冲突,随便选择另一个地址,并为冲突而测试那个地址。联合其他地址来将这个所选择的地址存储在图8的地址关联表格800中。直到发现另一个冲突,该程序才在步骤1310中结束。
源路由选择只是运行多层协议堆栈的过程中所涉及的这许多通信任务中的一项通信任务。本发明的这些方法被设计成:允许其他通信任务如以前那样进行,而不需要改变来配合该协议夹层。作为一个例子,并且作为广播夹层寻址的例子,考虑图14a和14b中的通信情况。这种情况涉及可从图1中了解的这些相同的设备,但这次,设备102上的层3协议驱动器516希望发现与设备110的该层3地址关联的该层2地址。至少,那是层3协议驱动器516相信它所希望实现的。但是,这些设备实际上正在运行具有夹层地址的协议夹层。所以,层3协议驱动器516确实希望知道与设备110的该层3地址关联的该夹层地址。(在以上所讨论的这些情况中,假设:设备102已知道该信息,并将其存储在图8的地址关联表格800中。)
在被称作“IPv4”的该层3协议中,使用ARP来让层3地址与层2地址相关联。图14a和14b中的情况表现了如何可以使用ARP来让层3地址与夹层地址相关联。设备102上的层3协议驱动器516创建包括该靶层3地址的ARP请求包。由层3协议驱动器516选择的该目的夹层地址是广播地址(可能是所有的1),这是因为设备102不知道如何将该消息呈送到预定接收设备110。(如果它知道要使用的这个地址,则它不需要调用ARP。)该广播目的夹层地址被转换成广播目的层2地址,并且在步骤1402中传送该ARP消息。
该ARP请求由无线电射程内的所有这些设备来接收,也就是说,在步骤1404中由设备104和106来接收。由于该目的层2地址是广播地址,因此,这两个设备在步骤1406中检查该消息的内容。该请求包括夹层头部,所以,该请求被向上传递到两个设备上的该协议夹层。该协议夹层检查该目的地址,该目的地址也是广播地址。然后,该协议夹层将该ARP请求向上传递到层3协议驱动器516。
仍然在步骤1406中,设备104和106上的层3协议驱动器516检查该ARP请求,并将该请求中所包含的该靶层3地址与被分配给该本地设备的该层3地址进行比较。设备没有找到匹配。设备104也无法找到匹配,所以,它在步骤1408中放弃该ARP请求。
但是,设备106具有两个网络接口。它在该无线接口上接收过该ARP请求,所以,在步骤1410中,它将该ARP请求传递到另一个接口,即,传递到LAN108。再次广播该ARP消息。设备110在图14b的步骤1412中接收该广播ARP请求。它执行与设备104和106早先执行的相同的检查。但是,这次,设备110找到其自己的层3地址与该ARP请求中所包含的该目标地址之间的匹配。然后,在步骤1416中,设备110发送包含其自己的夹层地址的ARP答复。该ARP答复返回到原始请求设备(requestor device)102。那个设备现在可以用设备110的层3地址和关联的夹层地址来填充其地址关联表格800。
在所有这种ARP情况期间,在“如果适当的位置没有协议夹层,则将如何行动”这一方面,每个设备上的层3协议驱动器516执行相等的动作。这样,该夹层的存在改变ARP的这些结果(从创建层3/层2地址联合,到创建层3/夹层地址联合),而无须要求运行ARP的层3协议驱动器516中有任何变化。这个例子表现了:该协议夹层可以如何执行其自己的通信任务,而不会干扰其他层的这些通信任务。
鉴于可以应用本发明的这些原理的这许多可能的实施例,应该认识到:这里根据这些附图而描述的这些实施例意在只起说明的作用,而不应该被视作限制本发明的范围。例如,精通该技术领域的人将会认识到:在不脱离本发明的精神的前提下,可以开发协议夹层,以适用于除源路由选择以外的各种情况。虽然在软件模块或部件方面描述了本发明,但是,精通该技术领域的人将会认识到:这类软件模块或部件可以由硬件部件来等效地取代。所以,如这里所描述的本发明计划可以将所有这类实施例纳入以下权利要求书及其相等物的范围以内。

Claims (79)

1.在支持多层协议的通信环境中,该多层协议包括上协议层和下协议层,一种方法用于提供协议夹层,该协议夹层在该上协议层与该下协议层之间逻辑地进行操作,其特征在于:该方法包括:
从该上协议层接收数据,该数据包括目的夹层地址;
处理该所接收的数据,该处理包括:将该目的夹层地址放置在夹层头部中,将该夹层头部加入该数据,并将目的低层地址加入该数据;以及,
将该处理过的数据传递到该下协议层。
2.如权利要求1所述的方法,其特征在于,该多层协议遵循“国际标准化组织/开放式系统互连”模型(ISO/OSI);其中,该上协议层是“网络互连协议”;并且,其中,该下协议层是“数据链路协议”。
3.如权利要求2所述的方法,其特征在于,该“数据链路协议”是“电气和电子工程师协会”(IEEE)802协议;并且,其中,该“网络互连协议”由包括IPv4、IPv6和IPX的小组选择而来。
4.如权利要求1所述的方法,其特征在于,在一个计算设备上执行该方法;其中,从该上协议层接收数据包括:从该计算设备上的软件部件接收数据;并且,其中,将该处理过的数据传递到该下协议层包括:将该处理过的数据传递到该计算设备上的软件部件。
5.如权利要求4所述的方法,其特征在于,从包括主机设备和路由器设备的小组中选择该计算设备。
6.如权利要求1所述的方法,其特征在于,从该上协议层接收数据包括:接收将要被发送到该目的夹层地址的数据包。
7.如权利要求6所述的方法,其特征在于,该数据包包括从小组中选择的协议的消息,这个小组包括“地址解析协议”(ARP)和“邻居发现”(ND)协议。
8.如权利要求1所述的方法,其特征在于,该目的夹层地址的格式与该目的低层地址的格式相同。
9.如权利要求1所述的方法,其特征在于,该目的夹层地址的格式不同于该目的低层地址的格式。
10.如权利要求1所述的方法,其特征在于,该目的夹层地址的格式从小组中来加以选择,这个小组包括单点传送地址、多点传送地址和广播地址。
11.如权利要求1所述的方法,其特征在于,该目的夹层地址的格式是“IEEE介质存取控制”地址的格式。
12.如权利要求1所述的方法,其特征在于,该目的夹层地址包括接口索引。
13.如权利要求1所述的方法,其特征在于,该所接收的数据包括源夹层地址。
14.如权利要求1所述的方法,其特征在于,处理该所接收的数据包括:将该目的夹层地址转换成对应的低层地址。
15.如权利要求14所述的方法,其特征在于,将目的低层地址加入该数据包括:将该目的夹层地址的转换加入该数据。
16.如权利要求14所述的方法,其特征在于,处理该所接收的数据包括:应用特别路由选择协议的各种方法。
17.如权利要求16所述的方法,其特征在于,从小组中选择该特别路由选择协议,这个小组包括“特别按需距离矢量”路由选择协议、“核心提取分布式特别路由选择”协议、“动态源路由选择”协议、“基于回路的源路由选择协议”、“多路径动态源路由选择”协议、“优化链路状态路由选择”协议、“电源意识源路由选择”协议、“安全意识自适应动态源路由选择协议”和“基于颠倒路径转送的拓扑传播”路由选择协议。
18.如权利要求16所述的方法,其特征在于,处理该接收的数据包括:定位到该目的夹层地址的源路由。
19.如权利要求18所述的方法,其特征在于,定位到该目的夹层地址的源路由包括:存取被存储的源路由。
20.如权利要求18所述的方法,其特征在于,定位到该目的夹层地址的源路由包括:通过应用该特别路由选择协议的各种方法,来发现源路由。
21.如权利要求18所述的方法,其特征在于,处理该所接收的数据包括:将这个被定位的源路由放置在夹层头部中,并将该夹层头部加入该数据。
22.如权利要求21所述的方法,其特征在于,这个被增加的夹层头部包括夹层地址。
23.如权利要求18所述的方法,其特征在于,将目的低层地址加入该数据包括:增加这个被定位的源路由上的下一个跳跃距离的低层地址。
24.如权利要求18所述的方法,其特征在于进一步包括:
使计时器与该所接收的数据相关联;以及,
如果在接收成功传递的确认之前,该关联的计时器期满,那么,通过应用该特别路由选择协议的各种方法,来执行对该源路由的维护。
25.如权利要求24所述的方法,其特征在于,该成功传递的确认证实到从小组中选择的地址的成功传递,这个小组包括该目的夹层地址和这个被定位的源路由上的下一个跳跃距离的地址。
26.如权利要求1所述的方法,其特征在于,将目的低层地址加入该数据包括:增加从小组中选择的一种格式的低层地址,这个小组包括单点传送地址、多点传送地址和广播地址。
27.如权利要求1所述的方法,其特征在于,将目的低层地址加入该数据包括:增加“IEEE介质存取控制”地址的格式的低层地址。
28.如权利要求1所述的方法,其特征在于,该多层协议包括多个下协议层,这多个下协议层逻辑地并行操作,该方法进一步包括:
选择用于传递该处理过的数据的这多个下协议层之一,该选择至少部分地基于该目的夹层地址。
29.如权利要求28所述的方法,其特征在于,该目的夹层地址包括接口索引;并且,其中,至少部分地根据该接口索引来选择这多个下协议层之一。
30.如权利要求28所述的方法,其特征在于,这多个下协议层包括多个“IEEE 802数据链路协议”。
31.一种包含计算机可执行指令的计算机可读介质,这些计算机可执行指令用于执行一种用于提供协议夹层所述的方法,该协议夹层在多层协议的上协议层与下协议层之间逻辑地进行操作,其特征在于:该方法包括:
从该上协议层接收数据,该数据包括目的夹层地址;
处理该所接收的数据,该处理包括:将该目的夹层地址放置在夹层头部中,将该夹层头部加入该数据,并将目的低层地址加入该数据;以及,
将该处理过的数据传递到该下协议层。
32.在支持多层协议的通信环境中,该多层协议包括上协议层和下协议层,一种方法用于提供协议夹层,该协议夹层在该上协议层与该下协议层之间逻辑地进行操作,其特征在于:该方法包括:
从该下协议层接收数据,该数据包括夹层头部和目的夹层地址;处理该所接收的数据,该处理包括:检查该目的夹层地址;以及,
至少部分地根据该所接收的目的夹层地址的这项检查,来决定是否将该处理过的数据传递到该上协议层。
33.如权利要求32所述的方法,其特征在于,从该下协议层接收数据包括:接收被发送到该目的夹层地址的数据包。
34.如权利要求33所述的方法,其特征在于,该数据包包括从小组中选择的协议的消息,这个小组包括ARP和ND。
35.如权利要求32所述的方法,其特征在于,该目的夹层地址包括接口索引。
36.如权利要求32所述的方法,其特征在于,检查该目的夹层地址包括:将该目的夹层地址与被分配给运用该方法的设备的夹层地址进行比较;并且,其中,如果该目的夹层地址与被分配给运用该方法的该设备的那个夹层地址相匹配,则决定将该处理过的数据传递到该上协议层。
37.如权利要求32所述的方法,其特征在于,处理该所接收的数据包括:应用特别路由选择协议的各种方法。
38.如权利要求37所述的方法,其特征在于,从小组中选择该特别路由选择协议,这个小组包括“特别按需距离矢量”路由选择协议、“核心提取分布式特别路由选择”协议、“动态源路由选择”协议、“基于回路的源路由选择协议”、“多路径动态源路由选择”协议、“优化链路状态路由选择”协议、“电源意识源路由选择”协议、“安全意识自适应动态源路由选择协议”和“基于颠倒路径转送的拓扑传播”路由选择协议。
39.如权利要求37所述的方法,其特征在于,处理该所接收的数据包括:
检查该所接收的数据中所包含的源路由。
40.如权利要求39所述的方法,其特征在于,该源路由包括夹层地址。
41.如权利要求40所述的方法,其特征在于,该源路由包括该目的夹层地址。
42.如权利要求39所述的方法,其特征在于,检查该目的夹层地址包括:将该目的夹层地址与被分配给运用该方法的设备的夹层地址进行比较;并且,其中,如果该目的夹层地址不与被分配给运用该方法的该设备的那个夹层地址相匹配,那么:
找到该源路由中的下一个跳跃距离的地址;
将该源路由中的这下一个跳跃距离的目的低层地址加入该数据;以及,
将该处理过的数据传递到该下协议层。
43.如权利要求42所述的方法,其特征在于,在一个计算设备上执行该方法;并且,其中,将该处理过的数据传递到该下协议层包括:将该处理过的数据传递到该计算设备上的软件部件。
44.如权利要求42所述的方法,其特征在于,进一步包括:
使计时器与该所接收的数据相关联;以及,
如果在接收成功传递的确认之前,该关联的计时器期满,那么,通过应用该特别路由选择协议的各种方法,来执行对该源路由的维护。
45.如权利要求44所述的方法,其特征在于,该成功传递的确认证实到从小组中选择的地址的成功传递,这个小组包括该目的夹层地址和这个被定位的源路由上的这下一个跳跃距离的该地址。
46.如权利要求42所述的方法,其特征在于,该多层协议包括多个下协议层,这多个下协议层逻辑地并行操作,该方法进一步包括:
选择用于传递该处理过的数据的这多个下协议层之一,该选择至少部分地基于该源路由中的这下一个跳跃距离的该地址。
47.如权利要求46所述的方法,其特征在于,该源路由中的这下一个跳跃距离的该地址包括接口索引;并且,其中,至少部分地根据该接口索引来选择这多个下协议层之一。
48.一种包含计算机可执行指令的计算机可读介质,这些计算机可执行指令用于执行一种用于提供协议夹层所述的方法,该协议夹层在多层协议的上协议层与下协议层之间逻辑地进行操作,其特征在于:该方法包括:
从该下协议层接收数据,该数据包括夹层头部和目的夹层地址;
处理该所接收的数据,该处理包括:检查该目的夹层地址;以及,
至少部分地根据该所接收的目的夹层地址的这项检查,来决定是否将该处理过的数据传递到该上协议层。
49.在支持多层协议的通信环境中,该多层协议包括上协议层和下协议层,一种方法供该下协议层作用于协议夹层,该协议夹层在该上协议层与该下协议层之间逻辑地进行操作,其特征在于:该方法包括:
接收数据;
处理该所接收的数据,该处理包括:为夹层头部检查该所接收的数据;以及,
如果在该所接收的数据中找到夹层头部,那么,将该处理过的数据传递到该协议夹层。
50.如权利要求49所述的方法,其特征在于,该所接收的数据包括将要被发送到该夹层地址的数据包。
51.如权利要求50所述的方法,其特征在于,该数据包包括从小组中选择的协议的消息,这个小组包括ARP和ND。
52.一种包含计算机可执行指令的计算机可读介质,这些计算机可执行指令用于执行一种供下协议层作用于协议夹层所述的方法,该协议夹层在上协议层与多层协议的该下协议层之间逻辑地进行操作,其特征在于:该方法包括:
接收数据;
处理该所接收的数据,该处理包括:为夹层头部检查该所接收的数据;以及,
如果在该所接收的数据中找到夹层头部,那么,将该处理过的数据传递到该协议夹层。
53.在支持多层协议的通信环境中,该多层协议包括上协议层和下协议层,一种方法供协议夹层分配夹层地址,该协议夹层在该上协议层与该下协议层之间逻辑地进行操作,其特征在于:该方法包括:
为具有低层地址的计算设备选择夹层地址;
联合该低层地址来存储这个所选择的夹层地址;以及,
从其他计算设备引出夹层地址/低层地址联合。
54.如权利要求53所述的方法,其特征在于,该选择至少部分地基于随机数。
55.如权利要求53所述的方法,其特征在于,该多层协议包括多个下协议层,这多个下协议层逻辑地并行操作,该方法进一步包括:
选择接口索引;以及,
联合这个所选择的夹层地址、该低层地址和这多个下协议层之一来存储这个所选择的接口索引。
56.如权利要求53所述的方法,其特征在于,引出夹层地址/低层地址联合包括:
收听所接收的数据;以及,
从该所接收的数据中提取夹层地址/低层地址联合。
57.如权利要求53所述的方法,其特征在于,引出夹层地址/低层地址联合包括:应用从小组中选择的协议的各种方法,这个小组包括ARP、ND、“邻近恳请/邻近广告”和“路由器恳请/路由器广告”。
58.一种包含计算机可执行指令的计算机可读介质,这些计算机可执行指令用于执行一种供协议夹层分配夹层地址所述的方法,该协议夹层在多层协议的上协议层与下协议层之间逻辑地进行操作,其特征在于:该方法包括:
为具有低层地址的计算设备选择夹层地址;
联合该低层地址来存储这个所选择的夹层地址;以及,
从其他计算设备引出夹层地址/低层地址联合。
59.在支持多层协议的通信环境中,该多层协议包括上协议层和下协议层,一种系统用于提供协议夹层,该协议夹层在该上协议层与该下协议层之间逻辑地进行操作,其特征在于:该系统包括:
该上协议层,它被配置成用于:将目的上层地址转换成对应的目的夹层地址,将该目的夹层地址加入一组数据,并将具有这个增加的目的夹层地址的该数据集传递到该协议夹层;
该协议夹层,它被配置成用于:从该上协议层接收该数据集,处理该所接收的数据,该处理包括将该目的夹层地址放置在夹层头部中,将该夹层头部加入该数据,并将目的低层地址加入该数据;以及,
该下协议层,它被配置成用于:接收该处理过的数据,并将该处理过的数据传递到该目的低层地址。
60.如权利要求59所述的系统,其特征在于,第一个计算设备包括该上协议层、该协议夹层和该下协议层。
61.如权利要求60所述的系统,其特征在于,将该数据集从该上协议层传递到该协议夹层包括:将该数据集从这第一个计算设备上的第一个软件部件传递到第二个软件部件;并且,其中,将该处理过的数据从该协议夹层传递到该下协议层包括:将该数据从这第一个计算设备上的第三个软件部件传递到第四个软件部件。
62.如权利要求60所述的系统,其特征在于,该下协议层被进一步配置成用于:从第二个计算设备接收数据,处理该所接收的数据,该处理包括为夹层头部检查该所接收的数据,并且,如果在该所接收的数据中找到夹层头部,则将该处理过的数据传递到该协议夹层;
其中,该协议夹层被进一步配置成用于:接收该低层处理的数据,处理该所接收的数据,该处理包括检查该夹层头部,并决定是否将该处理过的数据传递到该上协议层,该决定至少部分地基于该所接收的夹层头部的这项检查;以及,
其中,该上层协议被进一步配置成用于接收该协议夹层处理的数据。
63.如权利要求62所述的系统,其特征在于,该夹层头部包括源路由;并且,其中,该协议夹层被进一步配置成用于:将该目的夹层地址与被分配给这第一个计算设备的夹层地址进行比较,并且,如果该目的夹层地址不与被分配给这第一个计算设备的该夹层地址相匹配,则找到该源路由中的下一个跳跃距离的地址,将该源路由中的这下一个跳跃距离的目的低层地址加入该处理过的数据,并将该处理过的数据传递到该下协议层。
64.如权利要求60所述的系统,其特征在于,该协议夹层被进一步配置成用于:为这第一个计算设备选择夹层地址,这第一个计算设备具有低层地址,联合该低层地址来存储这个所选择的夹层地址,并从其他计算设备引出夹层地址/低层地址联合。
65.如权利要求59所述的系统,其特征在于进一步包括:
多个下协议层,这多个下协议层逻辑地并行操作;以及,
其中,该协议夹层被进一步配置成用于:选择用于传递该处理过的数据的这多个下协议层之一,该选择至少部分地基于该目的夹层地址。
66.如权利要求65所述的系统,其特征在于,该目的夹层地址包括接口索引;并且,其中,该协议夹层被进一步配置成用于:至少部分地根据该接口索引来选择这多个下协议层之一。
67.一种包含计算机可执行指令的计算机可读介质,这些计算机可执行指令用于提供一种用于提供协议夹层所述的系统,该协议夹层在多层协议的上协议层与下协议层之间逻辑地进行操作,其特征在于:该系统包括:
该上协议层,它被配置成用于:将目的上层地址转换成对应的目的夹层地址,将该目的夹层地址加入一组数据,并将具有这个增加的目的夹层地址的该数据集传递到该协议夹层;
该协议夹层,它被配置成用于:从该上协议层接收该数据集,处理该所接收的数据,该处理包括将该目的夹层地址放置在夹层头部中,将该夹层头部加入该数据,并将目的低层地址加入该数据;以及,
该下协议层,它被配置成用于:接收该处理过的数据,并将该处理过的数据传递到该目的低层地址。
68.一种包含地址关联数据结构的计算机可读介质,其特征在于:该地址关联数据结构包括:
第一数据区,包含表示上协议层地址的数据;
第二数据区,包含表示协议夹层地址的数据;以及,
第三数据区,包含表示下协议层地址的数据。
69.如权利要求68所述的地址关联数据结构,其特征在于,该上协议层地址是“网络互连协议”地址;并且,其中,该下协议层地址是“数据链路协议”地址。
70.如权利要求69所述的地址关联数据结构,其特征在于,该“数据链路协议”地址是“IEEE介质存取控制”地址。
71.如权利要求68所述的地址关联数据结构,其特征在于,该协议夹层地址采用与该下协议层地址相同的格式。
72.如权利要求68所述的地址关联数据结构,其特征在于,该协议夹层地址的格式不同于该下协议层地址的格式。
73.如权利要求68所述的地址关联数据结构,其特征在于,该协议夹层地址包括接口索引。
74.一种包含协议夹层消息结构的计算机可读介质,其特征在于:该协议夹层消息结构包括:
第一数据区,包含表示下协议层头部的数据;
第二数据区,包含表示协议夹层头部的数据,该第二数据区包括第三数据区和第四数据区;
该第三数据区所包含的数据表示识别该协议夹层头部的标记;以及,
该第四数据区所包含的数据表示协议夹层地址。
75.如权利要求74所述的协议夹层消息结构,其特征在于,该下协议层头部是“IEEE 802数据链路协议”头部。
76.如权利要求74所述的协议夹层消息结构,其特征在于,该协议夹层地址采用从小组中选择的格式,这个小组包括单点传送地址、多点传送地址和广播地址。
77.如权利要求74所述的协议夹层消息结构,其特征在于,该协议夹层地址采用“IEEE介质存取控制”地址的格式。
78.如权利要求74所述的协议夹层消息结构,其特征在于,该协议夹层地址包括接口索引。
79.如权利要求74所述的协议夹层消息结构,其特征在于,该协议夹层头部包括源路由。
CNA2004100632417A 2003-06-30 2004-06-30 用于提供虚拟协议夹层的方法和系统 Pending CN1578310A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/610,397 2003-06-30
US10/610,397 US20040264503A1 (en) 2003-06-30 2003-06-30 Method and system for providing a virtual protocol interlayer

Publications (1)

Publication Number Publication Date
CN1578310A true CN1578310A (zh) 2005-02-09

Family

ID=33435398

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004100632417A Pending CN1578310A (zh) 2003-06-30 2004-06-30 用于提供虚拟协议夹层的方法和系统

Country Status (6)

Country Link
US (2) US20040264503A1 (zh)
EP (1) EP1494414A3 (zh)
JP (1) JP2005027311A (zh)
KR (1) KR20050002618A (zh)
CN (1) CN1578310A (zh)
BR (1) BRPI0401950A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007025451A1 (fr) * 2005-09-01 2007-03-08 Zte Corporation Systeme et methode pour realiser une pile multiservice pour reseau local virtuel
CN101317398B (zh) * 2005-11-30 2013-03-13 讯宝科技公司 用于无线网络中的数据通信的系统和方法
CN113556275A (zh) * 2017-03-01 2021-10-26 瞻博网络公司 计算方法、计算装置和计算机可读存储介质

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024395B1 (en) 2001-09-04 2011-09-20 Gary Odom Distributed processing multiple tier task allocation
US7376122B2 (en) * 2004-02-23 2008-05-20 Microsoft Corporation System and method for link quality source routing
US20050254479A1 (en) * 2004-05-12 2005-11-17 Aiptek International Inc. Wireless digital communication system and method thereof
US7457255B2 (en) * 2004-06-25 2008-11-25 Apple Inc. Method and apparatus for providing link-local IPv4 addressing across multiple interfaces of a network node
US7933623B1 (en) * 2005-03-11 2011-04-26 Nextel Communications Inc. System and method for addressing dispatch stations
GB2426897A (en) * 2005-06-01 2006-12-06 Agilent Technologies Inc Transferring control and signalling data between protocol stack layers by inserting it into Destination Options Headers of IPv6 packets
JP4577163B2 (ja) * 2005-09-06 2010-11-10 株式会社日立製作所 インターワーキング方法及び装置
US20070115987A1 (en) * 2005-11-02 2007-05-24 Hoekstra G J Translating network addresses for multiple network interfaces
US7673061B2 (en) * 2006-03-28 2010-03-02 Tellabs San Jose, Inc. Method and apparatus for neighborhood discovery across disparate point-to-point networks
US20080194246A1 (en) * 2007-02-12 2008-08-14 Thierry Etienne Klein Apparatus and Method for Providing a Rapidly Deployable Wireless Network
US7720099B2 (en) * 2007-08-13 2010-05-18 Honeywell International Inc. Common protocol and routing scheme for space data processing networks
US8031633B2 (en) * 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing
US8458383B1 (en) * 2007-08-30 2013-06-04 Altera Corporation Flexible interface for stacked protocol in a programmable integrated circuit device
US8094634B2 (en) * 2007-09-06 2012-01-10 Polytechnic Institute Of New York University Sender and/or helper node modifications to enable security features in cooperative wireless communications
US8018873B1 (en) * 2007-11-08 2011-09-13 Juniper Networks, Inc. Enhanced link state protocol for identifying broadcast networks
US8254381B2 (en) 2008-01-28 2012-08-28 Microsoft Corporation Message processing engine with a virtual network interface
GB2457987A (en) * 2008-03-06 2009-09-09 Nokia Corp Configuring a modular radio frequency communications device
JP5292951B2 (ja) * 2008-07-03 2013-09-18 日本電気株式会社 経路制御方法、経路制御システム、経路制御装置、及び経路制御用プログラム
CN101442494B (zh) * 2008-12-16 2011-06-22 中兴通讯股份有限公司 一种实现快速重路由的方法
KR101671991B1 (ko) * 2010-06-14 2016-11-04 한국전자통신연구원 가상 프로토콜 스택 인터페이스 기반의 시뮬레이터
US9300491B2 (en) 2011-02-11 2016-03-29 Qualcomm Incorporated Frame delivery path selection in hybrid communication networks
US8897169B2 (en) 2011-03-02 2014-11-25 Qualcomm Incorporated Discovery of conventional devices and bridges in hybrid communication networks
US9025603B2 (en) * 2011-03-08 2015-05-05 Qualcomm Incorporated Addressing scheme for hybrid communication networks
US9660825B2 (en) * 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
KR102714465B1 (ko) 2019-07-10 2024-10-07 현대자동차주식회사 운송 수단의 흡음재용 섬유 및 이를 포함하는 운송 수단용 흡음재
CN112738231B (zh) * 2020-12-29 2022-10-04 成都商汤科技有限公司 布控方法及装置、电子设备和存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US39357A (en) * 1863-07-28 Improvement in apparatus for heating wagon-tires
US5303344A (en) * 1989-03-13 1994-04-12 Hitachi, Ltd. Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer
US5442633A (en) * 1992-07-08 1995-08-15 International Business Machines Corporation Shortcut network layer routing for mobile hosts
US5426637A (en) * 1992-12-14 1995-06-20 International Business Machines Corporation Methods and apparatus for interconnecting local area networks with wide area backbone networks
EP0637152A1 (en) * 1993-07-30 1995-02-01 International Business Machines Corporation Method and apparatus to speed up the path selection in a packet switching network
ATE208109T1 (de) * 1993-07-30 2001-11-15 Ibm Verfahren und gerät zur automatischen verteilung einer netztopologie in haupt- und nebentopologie
EP0736237B1 (en) * 1993-12-24 1999-06-16 International Business Machines Corporation Routing bandwidth-reserved connections in information networks
US5492690A (en) * 1994-03-03 1996-02-20 The Procter & Gamble Company Benzoylacetate esters as non-sensitizing chelating photo-protectants
US6141325A (en) * 1996-12-18 2000-10-31 International Business Machines Corporation Paradigm for enabling interoperability between different subnetworks
US5949753A (en) * 1997-04-11 1999-09-07 International Business Machines Corporation Redundant internet protocol gateways using local area network emulation
US6076168A (en) * 1997-10-03 2000-06-13 International Business Machines Corporation Simplified method of configuring internet protocol security tunnels
US6502140B1 (en) * 1999-01-29 2002-12-31 International Business Machines Corporation Multicast support for small groups
US6775258B1 (en) * 2000-03-17 2004-08-10 Nokia Corporation Apparatus, and associated method, for routing packet data in an ad hoc, wireless communication system
JP2004502024A (ja) * 2000-06-28 2004-01-22 アイジーシー ポリコールド システムズ インコーポレイテッド 極低温絞りサイクル冷凍システムに使用する不燃性混合冷媒
FI112152B (fi) * 2000-09-29 2003-10-31 Nokia Corp Osoitteistus ja reititys ad hoc-liikkuvuusverkoissa
JP2002190816A (ja) * 2000-12-20 2002-07-05 Nec Corp 無線通信システム
JP3790140B2 (ja) * 2001-08-28 2006-06-28 日本電信電話株式会社 マルチホップネットワークの中継方法および無線ノード
US7388869B2 (en) * 2002-11-19 2008-06-17 Hughes Network Systems, Llc System and method for routing among private addressing domains

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007025451A1 (fr) * 2005-09-01 2007-03-08 Zte Corporation Systeme et methode pour realiser une pile multiservice pour reseau local virtuel
CN101317398B (zh) * 2005-11-30 2013-03-13 讯宝科技公司 用于无线网络中的数据通信的系统和方法
CN113556275A (zh) * 2017-03-01 2021-10-26 瞻博网络公司 计算方法、计算装置和计算机可读存储介质
CN113556275B (zh) * 2017-03-01 2022-11-18 瞻博网络公司 计算方法、计算装置和计算机可读存储介质

Also Published As

Publication number Publication date
US20040264503A1 (en) 2004-12-30
JP2005027311A (ja) 2005-01-27
EP1494414A3 (en) 2005-08-10
BRPI0401950A (pt) 2005-02-22
EP1494414A2 (en) 2005-01-05
US20070280249A1 (en) 2007-12-06
KR20050002618A (ko) 2005-01-07

Similar Documents

Publication Publication Date Title
CN1578310A (zh) 用于提供虚拟协议夹层的方法和系统
CN1217520C (zh) 用于转换因特网协议地址的装置和使用它的家庭网络系统
CN1220356C (zh) 连接蓝牙和无线lan的装置和方法
CN102217253B (zh) 报文转发方法、装置及网络设备
CN1722729A (zh) 用于在异构网络之间通信的系统和方法
CN1254747C (zh) 自动把虚地址分配给具有相同地址的节点的设备和方法
CN1491507A (zh) 用于多个主机任意播放路由选择的方法和系统
CN1897575A (zh) 多址传送通信方法
CN1607783A (zh) 在移动ac-hoc网络中处理广播数据
CN1318241A (zh) 用于可靠的和低时延的分组传输的通信设备和方法
CN1242548A (zh) 通过传输冗余语音/媒体帧进行因特网实时媒体传输的方法
CN1839586A (zh) 基于接收到的分组的模式的路由
CN1848815A (zh) 基于网络的择路方案
CN1561624A (zh) 无线网状网内的寻址和路由
CN1592260A (zh) 路由器设备、路由信息发布方法、和通信系统
CN1408159A (zh) 作为对于路由发现的触发机制的广播
CN101047714A (zh) 一种处理网络数据的方法及系统
CN1852239A (zh) 一种通过边界网关协议实施路由策略的方法
CN101052022A (zh) 一种虚拟专用网用户访问公网的系统和方法
CN1856967A (zh) 与网络有关的设定的自动切换
CN1870568A (zh) 实现网络地址转换/防火墙穿越的方法
CN1863127A (zh) 将核心网接入多协议标记交换虚拟专用网的方法
WO2000041376A1 (en) Use of lower ip-address bits
CN1722692A (zh) 临时网络前缀分派系统与方法
CN1750493A (zh) 无线网络装置和使用该装置进行重新连接的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication