一种用于使上协议层与高速 串行总线匹配的方法 本发明涉及一种用于使上协议层与高速串行总线匹配的方法,更具体地说,本发明涉及一种用于使上协议层与IEEE 1394总线匹配,以便在保持数据包透明度的同时,有效地将现有通信应用的数据包传输到IEEE 1394总线的方法。
作为高速串行总线的IEEE 1394总线允许实时数据传输,以用于多媒体应用。IEEE 1394总线提供了异步服务、等时流服务和异步流服务。在此说明书中,等时流服务和异步流服务一起称为流服务。
图1显示了当包通过异步服务来传输时,为诸如文件传输协议(FTP)那样的通用数据通信应用和数据流服务的通信层。参照图1,举例来说,由现有通信应用根据诸如因特网之类的异步方法的TCP/IP形成的数据包并不规定由1394链路提供的子动作(subaction)类型。因此,上层的通信应用不能有效地与IEEE 1394总线相匹配。
为了使上层的通信应用与IEEE 1394总线相匹配,在考虑到由上层传送的所有数据包对应于异步子动作的情况下,有可能通过异步服务传输数据,或者在考虑到所有数据包对应于等时子动作的情况下,有可能通过等时流服务传输数据。
然而,在前一种情况中,难以有效地管理1394串行总线地资源。亦即,易于将诸如因特网协议(IP)那样的无连接定向服务提供的数据装载到1394异步包上。但是,在几种应用有效地使用IEEE 1394等时/异步流的情况中,1394信道不能有效地得到利用。当在等时服务被公用的情况下异步包拥挤在一起时,1394总线的基本循环(125ms)不能得到保持。因此,等时服务变成不稳定的。
在后一种情况中,由于信道被分配给所有连接,或甚至当数据量很小时也要分配信道,浪费了有限的信道资源。因此,当超过信道容量时,可能出现过载现象。
为了解决上面的问题,本发明的一个目的是提供一种使上层的通信应用与高速串行总线有效匹配的方法。
因为,为了达到上面目的,根据本发明的一个方面,本发明提供了使上协议层与高速串行总线匹配的方法,包括下列步骤:(a)校验从上层传输到高速串行总线节点的包的长度是否不小于预定长度,(b)当在步骤(a)确定出包长不小于预定长度时,分配总线信道,并利用等时传输服务通过所述信道传输数据,和(c)当在步骤(a)确定出包长小于预定长度时,利用异步传输服务传输数据。
在步骤(a)中预定长度最好是由TCP/IP协议定义的最大传输单位(MTU)。
步骤(a)最好在IP 1394层内完成,IP 1394层最好包括用于完成步骤(a)的信道Matron和地址转换协议(ARP)1394层。
高速串行总线最好满足IEEE 1394标准的要求。
根据本发明的另一个方面,本发明提供了使上协议层与高速串行总线匹配的方法,包括下列步骤:确定从上层传输到高速串行总线节点的数据包的长度是否不小于N×MTU,其中N是小于1的正数和MTU,是由TCP/IP协议定义的最大传输单位,(b)当确定出数据包的长度不小于N×MTU时,确定数据包为流数据、分配总线信道并利用等时传输方法传输数据,和当确定出数据包的长度小于N×MTU时,确定数据包不是流数据并利用异步传输方法传输数据。
根据本发明的另一个方面,本发明提供了使上协议层与高速串行总线匹配的方法,包括下列步骤:(a)确定其长度是MTU的数据包在预定时间内从上层接收到预定节点上是否不小于预定次数,(b)当在步骤(a)确定出其长度是MTU的数据包在预定时间内被接收到不小于预定次数时,确定输入数据是流数据、分配总线信道并利用等时传输方法传输数据,和(c)当在步骤(a)确定出其长度是MTU的数据包在预定时间内被接收到小于预定次数时,确定输入数据不是流数据并利用异步传输方法传输数据。
此外,上面的方法最好进一步包括下列步骤:当在步骤(a)确定出其长度是MTU的数据包在预定时间内被接收到小于预定次数时,确定输入数据不是流数据、返回被分配的信道和利用异步传输方法传输数据。
根据本发明的再有一个方面,本发明提供了使上协议层与高速串行总线匹配的方法,包括下列步骤:(a)在预定时间间隔内唤醒定时器处理过程,(b)确定当前入口是否与Matron便条的末尾相对应,(c)当入口与Matron便条的末尾相对应时,使定时器处理过程休眠,和在经过预定时间之后唤醒定时器处理过程,(d)当入口并不与Matron便条的末尾相对应时,读出显示入口状态的“状态”字段并校验“状态”字段是否是在“无效”状态,(e)当“状态”字段是在“无效”状态时,转到下一个入口,并跳跃回到步骤(b),(f)当“状态”字段不处在“无效”状态时,降低生存时间(TTL)值,(g)确定降低的TTL值是否大于0,和(h)当在步骤(g)确定TTL值不大于0时,将“状态”字段转换成“无效”状态,并返回被分配的信道。
通过结合附图详细说明本发明的优选实施例,本发明的上面目的和优点将更加明显,其中:
图1显示当包通过异步服务来传输时,为诸如文件传输协议(FTP)那样的通用数据通信协议和数据流服务的通信层;
图2显示数据通信协议堆栈和其中的数据流,以说明根据本发明的、用于使上协议层与高速串行总线匹配的方法;
图3是说明根据本发明实施例的、用于使上协议层与高速串行总线匹配的方法的主要步骤的流程图;和
图4是说明完成图3的方法所要求的表管理过程的主要步骤的流程图。
图2显示数据通过协议堆栈和其中的数据流,以便说明根据本发明的、用于使上协议层与高速串行总线匹配的方法。图3是说明根据本发明实施例的、用于使上协议层与高速串行总线匹配的方法的主要步骤的流程图。
根据本发明的、用于使上协议层与高速串行总线匹配的方法是在IP 1394层内实现的,IP 1394层是一种媒体存取控制(MAC)层。IP 1394层控制数据传输,以便有效地利用IEEE 1394串行总线的传输方法。IP 1394层包括一种下文称之为“信道Matron”或“Matron”的数据传输控制层和一个地址转换协议(APP)1394层。
从某种应用传输的数据通过TCP层或UDP层传输到IP 1394层。IP1394层识别通过TCP层或UDP层传输的数据。传输的数据是以包的形式的。以包的形式的数据包括作为目标地址的IP地址。为了实现根据本发明的匹配方法,IP 1394包括称为Matron便条的、信道信息存储其中的信息存储单元。包括记录在“目标地址”字段、“状态”字段、“生存时间(TTL)”字段和“信道号”字段的信息条目的入口信息记录在Matron便条中。“目标地址”字段保持被传输数据包的目标地址。目标地址是用于识别系统中数据传输流的信息,例如,端口地址或会话号。“状态”字段表示可以表达成‘有效’、‘无效’和‘信道_无效’的入口状态。‘有效’状态表示被传输的数据包是流数据‘无效’表示相应入口本身是无效的。‘信道_无效’表示包通过异步传输来传输。“TTL”字段表示入口停留在Matron便条中的时间间隔。“信道号”字段表示在传输流数据期间分配的信道号。当数据包从应用中接收到时,Matron利用数据包的IP地址在Matron便条中搜索与IP地址相对应的入口(步骤300)。
在步骤302,作出关于信道是否被分配到相应入口的确定。当在步骤302确定出信道包被分配到相应入口时,Matron读取存储的信道信息并将数据传输到与信道信息相对应的信道。在这种情况中,对特定节点的数据传输与此应用中的IEEE 1394总线相匹配,并进行等时传输。此外,在这种情况中,信道被分配到与从此应用输出的数据包的IP地址相对应的入口。当信道被分配到相应的入口时,继续进行等时流服务(步骤308)。
由于象因特网那样的通用通信应用并不与IEEE 1394总线相匹配,因此,信道并不被分配到对从这样的通信应用输出的数据包的IP地址相对应的入口。当在步骤302确定信道并不分配到相对入口时Matron校验从上协议层接收的数据包的长度是否不小于最大传输单位(MTU)。由于包的长度没有超过MTU,作出关于包的长度是等于还是小于MTU的确定(步骤304)。例如,在TCP/IP协议的情况下,由于MTU是1500字节,校验包的长度是否是1500字节。即,当传输到预定节点的包数据的长度是1500字节时,数据包被确定为形成信息流以实现流服务的流数据。
当数据包被确定为流数据时,Matron将信道和带宽分配给相应入口(步骤306),并利用分配的信道进行等时流服务(指图2的数据流210)(步骤308)。信道分配是考虑到可使用的总线宽度来进行的。
另一种情况是,当打算实现与多信道广播或广播有关的工作时,步骤306或308可以分别由分配信道的1394链路层的步骤和实现异步流服务(指图2的数据流220)的1394链路层的步骤来替换。在这种情况中,分配了信道,但没有分配带宽。
当确定出通过总线传输的数据小于MTU时,不分配信道,数据通过由IEEE 1394标准支持的异步传输方法来传输。亦即,在事务层和1394链路层中,传输数据被转换成适合于IEEE 1394标准的异步包的形式。1394物理层将转换的异步包传输到总线(指图2的数据流200)。
传输到IP 1394层的数据通过事务层或自适应层传输到链路层。传输到链路层的数据通过物理层传输到1394总线。
此外,尽管数据流是通过被分配的信道形成的,但更好的做法是,周期性地校验包传输率和总线的宽度和根据信道重新分配带宽或返回被分配的信道。
为了在基于IEEE 1394的高速串行总线上实现上面的数据传输,需要进行图4所示的表管理处理过程。参照图4,根据实现根据本发明的、用于使上协议层与高速串行总线匹配的方法的表管理处理过程,在一致时间间隔内唤醒定时器处理过程(步骤400)。在唤醒定时器处理过程之后,作出关于当前入口是否与Matron便条的末尾相对应的确定(步骤402)。当入口与Matron便条的末尾相对应时,让定时器处理过程休眠,并在经过某一时间之后唤醒定时器处理过程。当入口并不对应于Matron便条的末尾时,读出显示入口状态的“状态”字段,并校验“状态”字段以确定它是否“无效”(步骤404)。当“状态”字段是‘无效’时,根据下一步步骤(步骤406)完成步骤402。如果“状态”字段不是‘无效’,则降低生存时间(TTL)的值(步骤410),并作出关于其值是否大于0的确定(步骤412)。如果其值不大于0,由于与传输到Matron便条的包相对应的入口并不存在,因此,“状态”字段被转换成“无效”状态(步骤414),并且返回被分配的信道(步骤416)。
在这个特定的实施例中,作出了关于从上协议层接收的数据包的长度是否不小于MTU的确定。但是,有可能通过校验数据包的长度是否不小于预定长度来确定数据流,该预定长度不大于MTU。在这种情况中,当数据包的长度N是小于1的正数时,作出关于数据包的长度是否不小于N×MTU的确定,当确定出数据包的长度不小于N×MTU时,数据包被确定为流数据。因此,分配总线的信道,并通过等时传输方法传输数据。如果数据包的长度小于N×MTU,则确定数据包不是流数据。因此,通过异步传输方法传输数据。
此外,另一种选择是,有可能通过校验其长度对应于MTU的数据包在预定时间内是否被接收到不小于预定次数。在这种情况中,作出关于其长度对应于MTU的数据包在预定时间内从上层接收到预定节点是否不小于预定次数的确定。当确定出其长度对应于MTU的数据包在预定时间内被接收到不小于预定次数时,输入数据被确定为流数据。因此,分配总线信道并通过等时传输方法传输数据。同时,当确定出其长度对应于MTU的数据包在预定时间内被接收到小于预定次数时,确定输入数据不是流数据。因此,通过异步传输方法传输数据。此外,更好的做法是,当确定出其长度对应于MTU的数据包在预定时间内被接收到小于预定次数时,确定输入数据不是流数据。因此,返回信道并通过异步传输方法传输数据。
根据本发明的匹配方法,有可能容易地对包进行分类。因此,有可能有效地将其中没有规定IEEE 1394的服务将得到使用的现有通信应用与IEEE1394相匹配,和根据由于易于对包进行分类,因此将非常小负载装入系统的数据流,选择适当的传输方法,来有效地使用信道。
可以将本发明的实施例建成可以由计算机来执行的程序。本发明可以由一般用途的数字计算机读取和运行来自计算机可读介质的程序来具体实施。介质可以是诸如ROM之类的存储介质、诸如软盘、硬盘之类的磁存储介质、诸如CD-ROM和DVD之类的光可读介质和诸如通过因特网传输那样的载波。
在计算机中,可读介质存储可以执行下列步骤的程序代码:(a)核验从上层传输到高速串行总线节点的包的长度是否不小于预定长度;(b)当确定包长不小于预定长度时,分配总线信道并通过等时传输服务传输数据;和(c)当确定包长小于预定长度时,通过异步传输服务传输数据。
实现本发明的功能性程序、代码和代码段可以容易地被本发明所述的技术领域内的编程人员查阅到。
虽然结合本发明的优选实施例已经说明了本发明,但本领域的普通技术人员在不超出本发明的精神和范围内可以进行各种形式上和细节上的改动。