CN1761243A - 传输设备和方法、记录介质、程序和控制设备 - Google Patents
传输设备和方法、记录介质、程序和控制设备 Download PDFInfo
- Publication number
- CN1761243A CN1761243A CNA2005101128605A CN200510112860A CN1761243A CN 1761243 A CN1761243 A CN 1761243A CN A2005101128605 A CNA2005101128605 A CN A2005101128605A CN 200510112860 A CN200510112860 A CN 200510112860A CN 1761243 A CN1761243 A CN 1761243A
- Authority
- CN
- China
- Prior art keywords
- grouping
- request
- transmission
- buffer
- control
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
- H04L47/564—Attaching a deadline to packets, e.g. earliest due date first
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Selective Calling Equipment (AREA)
Abstract
提供了一种传输设备和方法、记录介质、程序和控制设备。传输设备包括:通过执行程序实现的确定装置,用于确定当请求装置请求传输分组时,存储在缓冲器中的分组数目是否等于或小于比第一阈值小的第二阈值;通过执行程序实现的存储控制装置,用于控制缓冲器中的分组存储,以便在确定装置确定缓冲器中存储的分组数目等于或小于第二阈值时,将由请求装置请求传输的分组存储在缓冲器中,并且在确定装置确定缓冲器中存储的分组数目超过第二阈值时,不将由请求装置请求传输的分组存储在缓冲器中;和通过执行程序实现的输出控制装置,用于在请求装置请求传输分组时,基于队列,控制将存储在缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
Description
技术领域
本发明涉及传输设备和传输方法、记录介质、程序和控制设备,具体而言,涉及用于传输分组的传输设备和传输方法、记录介质、程序和控制设备。
背景技术
随着因特网的普及,用于视频会议、IP(因特网协议)电话等的实时应用程序已经投入使用。当这些实时应用程序被使用时,通信装置以分组形式存储诸如视频、音频等的数据,并经由网络或因特网将存储了数据的分组发送到接收端的终端设备。
图1示出了由调用操作系统内核的功能和应用程序的分组传输通信装置所实现的功能配置的框图。
在应用层11中由用户指定发送的数据被从应用层11提供到网络层12。在网络层12中,从应用层11提供的数据被存储在分组中。存储了数据的分组通过参考网络层12中的路由表13而被提供到通过分组的目的地(传输目的地)而确定的设备驱动器14-1或设备驱动器14-2。
路由表13包括指示被连接到网络的终端设备(通信设备)的地址以及去往网络和因特网上的终端设备的路由(网关)的信息。因此,当识别出作为分组的传输目的地的终端设备时,去往该终端设备的路由被确定。
从而,用于处理将被发送的分组的输出接口被确定。分组于是被提供到对应于输出接口的设备驱动器14-1或设备驱动器14-2。
设备驱动器14-1和设备驱动器14-2控制物理设备(物理层16-1或物理层16-2)。设备驱动器14-1和设备驱动器14-2具有同步OS(操作系统)和物理设备(物理层16-1或物理层16-2)之间的处理的功能。
设备驱动器14-1的输入处理单元31-1将被提供到设备驱动器14-1的分组存储到缓冲器15中,并将分组放置到FIFO(先进先出)队列中。当指示物理层16-1中的分组传输完成的中断信号被从物理层16-1提供到设备驱动器14-1时,设备驱动器14-1的输出处理单元32-1以FIFO队列中的排列顺序获取存储在缓冲器15中的分组,并将分组提供到物理层16-1。
在物理层16-1中,被提供到物理层16-1的分组被转换成用于通信的电信号,并且该电信号经由网络或因特网被传送到作为分组的传输目的地的终端设备。
类似地,设备驱动器14-2的输入处理单元31-2将被提供到设备驱动器14-2的分组存储到缓冲器15中,并将分组放置到另一FIFO队列中。当指示物理层16-2中的分组传输完成的中断信号被从物理层16-2提供到设备驱动器14-2时,设备驱动器14-2的输出处理单元32-2以FIFO队列中的排列顺序获取存储在缓冲器15中的分组,并将分组提供到物理层16-2。
在物理层16-2中,被提供到物理层16-2的分组被转换成用于通信的电信号,并且该电信号经由网络或因特网被传送到作为分组的传输目的地的终端设备。
该通信装置例如不执行对经由网络或因特网传送到终端设备的分组的传输间隔的调整。因此,当实时应用程序通过突发传输将分组从应用层11提供到网络层12时,物理层16-1或物理层16-2通过突发传输将分组发送到作为传输目的地的终端设备。
但是,当使用实时应用程序时,需要几乎无延迟的数据(分组)传输。因此在发送端的通信装置需要通过调整发送分组的间隔来避免所谓突发流量的发生,所述突发流量来源于网络或因特网上的数据的突发传输。
就是说,如Sally Floyd所述,突发流量是导致很多不良情况的一个因素,这些不良情况例如是全局同步、不希望的分组丢失以及终端设备之间的数据传输延迟增大,其中在全局同步中,终端设备的拥塞检测、使用频带减小和使用频带增大的周期彼此同步。为了避免这些情况,在发送端的通信装置(终端设备)需要用于控制流量的量的流量成形(trafficshaping)技术(参见Sally Floyd和Van Jacobson的“Random EarlyDetection Gateways for Congestion Avoidance”,IEEE/ACM Transactions onNetworking Vol.1 No.4,1993年8月)。
因此,设备驱动器中的流量的量的控制被提出。但是,由于其中使用多少种网络卡或硬件(芯片),就会有多少种设备驱动器,因此向设备驱动器直接添加流量成形功能将需要大量工作。
作为用于解决这个问题的方法,Alan Cox在Linux(商标)的Red Hat(商标)发布中所公开的Simple Traffic Shaper中提出了一种用于控制流量的量的方法,在该方法中,考虑了虚拟输出接口,并提供了向对应的虚拟设备驱动器(在下文中被称为虚拟设备驱动器)。
图2示出了在虚拟设备驱动器中,控制流量的量的通信装置的功能性配置的框图。顺便提及,在该图中,对应于图1的部件被标以相同的标号,并且将适当地省略其描述。
在网络层51中,从应用层11提供的数据被存储在分组中。其路由由分组的目的地(传输目的地)确定的因特网上的路由通过参考路由表52而被设置,并且分组被提供到虚拟设备驱动器53。
具体而言,当从应用层11提供到网络层51的数据(分组)经由设备驱动器56-1或设备驱动器56-2被发送时,图中未示出的虚拟输出接口被设置为由分组的目的地所确定的输出接口。要被发送的分组被提供到对应于虚拟输出接口的虚拟设备驱动器53。
虚拟设备驱动器53的输入处理单元71将提供到设备驱动器53的分组存储在缓冲器15中,并将分组放置在FIFO队列中。虚拟设备驱动器53的输出处理单元72以预定时间间隔获取存储在缓冲器15中的分组,并将分组提供到设备驱动器56-1或设备驱动器56-2。
就是说,在每次从内核定时器54提供用于获取分组的中断信号时,虚拟设备驱动器53的输出处理单元72以预定时间间隔从缓冲器15获取分组,并将获取的分组提供到设备驱动器56-1或设备驱动器56-2。
设备驱动器56-1的输入处理单元73-1将被提供到设备驱动器56-1的分组存储在缓冲器55中。当指示物理层16-1中的分组传输已完成的中断信号被从物理层16-1提供到设备驱动器56-1时,设备驱动器56-1的输出处理单元74-1获取存储在缓冲器55中的分组,并将分组提供到物理层16-1。
类似地,设备驱动器56-2的输入处理单元73-2将被提供到设备驱动器56-2的分组存储在缓冲器55中。当指示物理层16-2中的分组传输已完成的中断信号被从物理层16-2提供到设备驱动器56-2时,设备驱动器56-2的输出处理单元74-2获取存储在缓冲器55中的分组,并将分组提供到物理层16-2。
下面将参考图3的流程图来描述利用虚拟设备驱动器53的分组入队过程。
每次从网络层51向虚拟设备驱动器53提供分组时,虚拟设备驱动器53调用预定功能,并执行分组入队过程。
在步骤S11中,虚拟设备驱动器53设置将被存储在缓冲器55中的分组的最大队列长度。例如,在步骤S11中,虚拟设备驱动器53设置将被存储在缓冲器55中的分组的最大队列长度Qm为“5”。最大队列长度Qm指的是可以存储在缓冲器55中的最大分组数目。因此,当“5”被设置为最大队列长度Qm时,缓冲器55最多可以存储五个分组。
在步骤S12中,虚拟设备驱动器53设置存储在缓冲器55中的分组的队列长度。在这种情况下,没有分组被存储在缓冲器55中,因此虚拟设备驱动器53将分组队列长度Q设置为“0”。队列长度Q指的是存储在缓冲器55中的分组数目。
在步骤S13中,虚拟设备驱动器53设置已存储分组号。已存储分组号指的是由虚拟设备驱动器53存储在缓冲器55中的分组之中最后被存储的分组的分组号。当一个分组被从网络层51提供到虚拟设备驱动器53时,虚拟设备驱动器53将用于标识每个分组的分组号i附加到所提供的分组。分组号i以开始于“1”的递增顺序被附加。顺便提及,当分组号为“0”时,该分组号指示还没有分组被提供到虚拟设备驱动器53。
因此,在这种情况下,没有分组被存储在缓冲器55中,因此,虚拟设备驱动器53将已存储分组号设置为“0”。
在步骤S14中,虚拟设备驱动器53中的输入处理单元71从网络层51获取分组。
在步骤S15中,虚拟设备驱动器53中的输入处理单元71判断队列长度Q是否小于最大队列长度Qm。在这种情况下,虚拟设备驱动器53中的输入处理单元71通过计算等式(1),并且判断队列长度Q和最大队列长度Qm是否满足等式(1),来判断队列长度Q是否小于最大队列长度Qm。
Q<Qm …(1)
因此,例如当队列长度Q为“1”并且最大队列长度Qm为“5”时,队列长度Q和最大队列长度Qm满足等式(1),因此确定队列长度Q小于最大队列长度Qm。
当在步骤S15中确定队列长度Q不小于最大队列长度Qm时,缓冲器55不能再存储分组。因此,过程前进至步骤S16,其中虚拟设备驱动器53中的输入处理单元71丢弃从网络层51获取的分组。该过程返回到步骤S14。
另一方面,当在步骤S15中确定队列长度Q小于最大队列长度Qm时,缓冲器55可以存储分组。因此,过程前进至步骤S17,其中虚拟设备驱动器53中的输入处理单元71将分组号i附加到从网络层51提供的分组。
在步骤S18中,虚拟设备驱动器53中的输入处理单元71执行传输时间计算过程。虽然传输时间计算过程的细节将随后描述,但是虚拟设备驱动器53中的输入处理单元71在传输时间计算过程中计算出从网络层51提供的分组的传输时间。分组的传输时间指的是分组在物理层16-1或物理层16-2中被传输到作为传输目的地的终端设备的时间。
在步骤S19中,虚拟设备驱动器53中的输入处理单元71使已存储分组号加1。
在步骤S20中,虚拟设备驱动器53中的输入处理单元71将从网络层51提供的分组入队。入队指的是将分组放置在FIFO队列中的过程(排队过程)。具体而言,在步骤S20中,虚拟设备驱动器53中的输入处理单元7l将从网络层51获得的分组提供到缓冲器55。从虚拟设备驱动器53提供的分组被存储在缓冲器55中,并被放置在FIFO队列中。
在步骤S21中,虚拟设备驱动器53中的输入处理单元71使队列长度Q加1。然后过程返回到步骤S14,以重复上述过程。
参考图4的流程图,将描述当Leaky Bucket算法(参见J.S.Turner,“New Directions in Communications(or Which Way to the InformationAge)”,IEEE通信杂志,Vol.24,第8-15页,1986年10月)被用作调度算法时,对应于图3中的步骤S18的过程的传输时间计算过程。
在步骤S41中,虚拟设备驱动器53中的输入处理单元71判断从网络层51提供的分组的分组号i是否是“0”。
当虚拟设备驱动器53中的输入处理单元71在步骤S41中确定从网络层51提供的分组的分组号i不是“0”时,过程前进至步骤S42,其中,虚拟设备驱动器53中的输入处理单元71计算从网络层51提供的分组的传输时间。在这种情况下,虚拟设备驱动器53中的输入处理单元71通过计算等式(2)来计算分组的传输时间。
(Ti)=(T(i-1))+(L(i-1))/r …(2)
其中Ti是具有分组号i的分组的传输时间;T(i-1)是具有分组号“i-1”的分组的传输时间;L(i-1)是具有分组号“i-1”的分组的尺寸(数据量);并且r是由通信装置发送的分组的预定传输速度(在下文中被称为成形速率)。
在步骤S43中,虚拟设备驱动器53中的输入处理单元71判断队列长度Q是否为“0”。当虚拟设备驱动器53中的输入处理单元71在步骤S43中确定队列长度Q不为“0”时,过程前进至步骤S45。
另一方面,当虚拟设备驱动器53中的输入处理单元71在步骤S43中确定队列长度Q为“0”时,过程前进至步骤S44,其中虚拟设备驱动器53中的输入处理单元71判断计算出的传输时间Ti是否晚于当前时间。
当虚拟设备驱动器53中的输入处理单元71在步骤S44中确定计算出的传输时间Ti晚于当前时间时,过程前进至步骤S45,其中虚拟设备驱动器53中的输入处理单元71将计算出的传输时间Ti设置为具有分组号“i”的分组的传输时间。从而过程结束。
当虚拟设备驱动器53中的输入处理单元71在步骤S44中确定计算出的传输时间Ti不晚于当前时间时,计算出的传输时间Ti已经过去,因此过程前进至步骤S46。
而且,当虚拟设备驱动器53中的输入处理单元71在步骤S41中确定从网络层51提供的分组的分组号i为“0”时,过程前进至步骤S46,其中虚拟设备驱动器53中的输入处理单元71将当前时间设置为具有分组号“i”的分组的传输时间。从而过程结束。
下面将参考图5的流程图来描述利用虚拟设备驱动器53的分组出队过程。
在每次将用于获取分组的中断信号从内核定时器54提供到虚拟设备驱动器53时,虚拟设备驱动器53调用预定功能,并执行分组出队过程。
在步骤S61中,虚拟设备驱动器53设置已发送分组号。已发送分组号指的是在物理层16-1或物理层16-2中被发送到作为传输目的地的终端设备的分组之中最后发送的分组的分组号。换句话说,已发送分组号指的是在物理层16-1或物理层16-2中被发送到作为传输目的地的终端设备的分组的分组号之中的最大号。在这种情况下,还未发送分组,因此虚拟设备驱动器53将已发送分组号设置为“0”。顺便提及,当已发送分组号为“0”时,表示还未发送分组。
在步骤S62中,虚拟设备驱动器53中的输出处理单元72判断是否从内核定时器54提供了中断信号。当虚拟设备驱动器53中的输出处理单元72在步骤S62中确定未提供中断信号时,重复步骤S62的过程,直到中断信号被提供。
当虚拟设备驱动器53中的输出处理单元72在步骤S62中确定中断信号被提供时,过程前进至步骤S63,其中虚拟设备驱动器53中的输出处理单元72判断当前时间是否晚于具有与已发送分组号相同分组号的分组的传输时间。当虚拟设备驱动器53中的输出处理单元72在步骤S63中确定当前时间晚于传输时间时,分组被发送。过程因而前进至步骤S64,其中虚拟设备驱动器53中的输出处理单元72使已到达传输时间的分组出队。
分组出队指的是如下过程:获得存储在缓冲器55中的具有与已发送分组号相同分组号的分组,并将该分组提供(输出)到设备驱动器56-1或设备驱动器56-2。具体而言,在步骤S64中,虚拟设备驱动器53中的输出处理单元72从缓冲器55中获得被放置在FIFO队列的头部(退出端)并且其传输时间已经到达的分组,并将获得的分组提供到设备驱动器56-1或设备驱动器56-2。
在步骤S65中,虚拟设备驱动器53中的输出处理单元72使已发送分组号加1。
在步骤S66中,虚拟设备驱动器53中的输出处理单元72使队列长度减1。然后过程返回到步骤S62。
另一方面,当虚拟设备驱动器53中的输出处理单元72在步骤S63中确定当前时间不晚于传输时间时,分组不被发送。从而返回到步骤S62以重复上述过程。
由于内核定时器54的定时器事件的发生频率通常为100Hz,因此内核定时器54每10毫秒向虚拟设备驱动器53提供一次中断信号。流量成形控制的颗粒度(granularity)为10毫秒。
例如,当具有1K字节的固定分组尺寸的分组以10Mbps的成形速率被发送时,通信装置在每次内核定时器54向虚拟设备驱动器53提供中断信号时发送100K比特的数据。就是说,由于100K比特的数据对应于大约12个分组尺寸为1K字节的分组,因此通信装置在每次内核定时器54向虚拟设备驱动器53提供中断信号时执行12个分组的突发传输。
在高分辨率的定时器中,流量成形是使用Intel的Pentium(注册商标)处理器上的APIC(高级可编程中断控制器)来执行的(参见LucaAbeni、Ashvin Goel、Charles Krasic、Jim Snow和Jonathan Walpole,“AMeasurement-Based Analysis of the Real-Time Performance of Linux”,IEEERTAS 02,2002年9月)。这种APIC通过使OS在经过任意时间之后产生硬件中断来调整分组传输间隔。
此外,存在如下的通信装置:该通信装置利用ATM(异步传输模式)系统的通信网络中的硬件来执行流量成形。
此外,存在如下的通信装置:在该通信装置中,网络卡上的处理器执行流量成形(例如参见专利文献1)。
[专利文献1]
日本专利申请早期公开No.2001-211207
发明内容
但是,利用上述技术,不能在不使用用于流量成形的专用硬件的情况下,利用软件控制来控制分组传输间隔。
另外,利用硬件的分组传输间隔控制会给OS带来沉重负担,并因此不适于高频率时的使用。
从而,它不能减少分组传输中的延迟波动(抖动),并且无法实现几乎无延迟的数据传输。
本发明是鉴于这些状况而研制的。其希望在利用较轻负担并在较短时间间隔的情况下,利用软件控制来实现分组传输控制。另外,本发明想要以较短时间间隔而利用软件来控制过程。
根据本发明的实施例,提供了一种传输设备,其包括:通过执行程序实现的确定装置,用于确定当请求装置请求传输分组时,存储在缓冲器中的分组数目是否等于或小于比第一阈值小的第二阈值;通过执行程序实现的存储控制装置,用于控制缓冲器中的分组存储,以便在确定装置确定缓冲器中存储的分组数目等于或小于第二阈值时,将由请求装置请求传输的分组存储在缓冲器中,并且在确定装置确定缓冲器中存储的分组数目超过第二阈值时,不将由请求装置请求传输的分组存储在缓冲器中;以及通过执行程序实现的输出控制装置,用于在请求装置请求传输分组时,基于队列,控制将存储在缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
当请求装置请求传输分组时,输出控制装置可以从缓冲器获取其传输时间已经到达的分组,并控制将获取的分组输出到用于控制通过硬件的分组传输的控制程序。
当以预定的时间间隔请求中断过程时,输出控制装置可以从缓冲器获取其传输时间已经到达的分组,并控制将获取的分组输出到用于控制通过硬件的分组传输的控制程序。
根据本发明的实施例,提供了一种传输方法,其包括:确定步骤,该步骤用于确定当在请求步骤中请求传输分组时,存储在缓冲器中的分组数目是否等于或小于比第一阈值小的第二阈值;存储控制步骤,该步骤用于控制缓冲器中的分组存储,以便在确定缓冲器中存储的分组数目等于或小于第二阈值时,将在请求步骤中请求传输的分组存储在缓冲器中,并且在确定缓冲器中存储的分组数目超过第二阈值时,不将在请求步骤中请求传输的分组存储在缓冲器中;以及输出控制步骤,该步骤用于在请求步骤中请求传输分组时,基于队列控制将存储在缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
根据本发明的实施例,提供了一种记录介质上的程序,该程序包括:确定步骤,该步骤用于确定当在请求步骤中请求传输分组时,存储在缓冲器中的分组数目是否等于或小于比第一阈值小的第二阈值;存储控制步骤,该步骤用于控制缓冲器中的分组存储,以便在确定缓冲器中存储的分组数目等于或小于第二阈值时,将在请求步骤中请求传输的分组存储在缓冲器中,并且在确定缓冲器中存储的分组数目超过第二阈值时,不将在请求步骤中请求传输的分组存储在缓冲器中;以及输出控制步骤,该步骤用于在请求步骤中请求传输分组时,基于队列控制将存储在缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
根据本发明的实施例,提供了一种用于使计算机执行以下步骤的程序:确定步骤,该步骤用于确定当在请求步骤中请求传输分组时,存储在缓冲器中的分组数目是否等于或小于比第一阈值小的第二阈值;存储控制步骤,该步骤用于控制缓冲器中的分组存储,以便在确定缓冲器中存储的分组数目等于或小于第二阈值时,将在请求步骤中请求传输的分组存储在缓冲器中,并且在确定缓冲器中存储的分组数目超过第二阈值时,不将在请求步骤中请求传输的分组存储在缓冲器中;以及输出控制步骤,该步骤用于在请求步骤中请求传输分组时,基于队列控制将存储在缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
传输设备可以是独立设备,或者执行通信装置的传输过程的模块。
根据本发明的实施例,提供了一种控制设备,包括:通过执行过程实现的请求装置,其用于请求将被执行的过程,并且在被请求的过程未被执行时重复请求执行上述过程;通过执行过程实现的第一执行控制装置,其用于控制被请求过程的执行,以便在请求装置请求执行该过程时,使请求装置持续请求执行该过程;以及通过执行过程实现的第二执行控制装置,其用于在请求装置请求执行该过程时,控制另一过程的执行。
在根据本发明的实施例的传输设备和传输方法、记录介质和程序中,当请求装置请求传输分组时,确定存储在缓冲器中的分组数目是否等于或小于比第一阈值小的第二阈值,控制缓冲器中的分组存储,以便在确定缓冲器中存储的分组数目等于或小于第二阈值时,将由请求装置请求传输的分组存储在缓冲器中,并且在确定缓冲器中存储的分组数目超过第二阈值时,不将由所述请求装置请求传输的分组存储在缓冲器中,并且在请求装置请求传输分组时,基于队列控制将存储在缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
在根据本发明实施例的控制设备中,请求执行过程,并且在被请求的过程未被执行时重复请求执行该过程,被请求过程的执行被控制,以便致使请求装置在请求执行该过程时持续请求执行该过程,并且当请求装置请求执行该过程时,控制另一过程的执行。
网络是一种这样的机制:其中至少两个设备被彼此连接,以使信息可以从一个设备发送到另一设备。经由网络通信的设备可以是独立设备,或者也可以是构成一个装置的内部模块。
通信当然可以是无线通信和有线通信,或者是无线通信和有线通信彼此混合的通信,就是说,在一个装置中执行无线通信,而在另一装置中执行有线通信的通信。此外,可以是这样的通信:从一个设备向另一设备执行有线通信,而从其他设备向这一个设备执行无线通信。
根据本发明,可以传输数据。另外,根据本发明,可以利用软件控制而以较轻负担和较短时间间隔来控制分组传输。此外,根据本发明,可以利用软件控制而以较短时间间隔来控制一个过程。
附图说明
图1是示出了由传统通信装置实现的功能配置的框图,该传统通信装置调用操作系统内核的功能和应用程序;
图2是示出了控制流量的量的传统通信装置的功能性配置的框图;
图3是帮助解释分组入队过程的流程图;
图4是帮助解释传输时间计算过程的流程图;
图5是帮助解释分组出队过程的流程图;
图6是示出了应用本发明的通信装置的配置示例的框图;
图7是示出了执行程序的CPU的功能性配置的框图;
图8是示出了虚拟设备驱动器的功能性配置的框图;
图9是帮助解释分组入队过程的流程图;
图10是帮助解释传输时间计算过程的流程图;以及
图11是帮助解释分组出队过程的流程图。
具体实施方式
在下文中将描述本发明的优选实施例。本说明书中描述的发明与发明的实施例之间的对应关系如下。此描述用于确认:支持本说明书描述的发明的实施例被描述在本说明书中。因此,即使存在被描述在发明的实施例中,但在这里未被描述为对应于一个发明的一个实施例,也不意味着该实施例不对应于该发明。相反,即使一个实施例在这里被描述为对应于一个发明,也不意味着该实施例不对应于除该发明之外的发明。
此外,此描述不代表本说明书中描述的所有发明。换句话说,此描述并未否定存在被描述在本说明书中,但在本申请中未要求保护的发明,就是说,存在未来将通过分案申请或修改而被呈现或添加的发明。
如在权利要求1中所提出的传输设备包括:通过执行程序实现的确定装置(例如图8中的确定单元232),用于确定当请求装置(例如在图7中的网络层172中执行的程序)请求传输分组时,存储在缓冲器(例如图7中的缓冲器176)中的分组数目是否等于或小于比第一阈值小的第二阈值;通过执行程序实现的存储控制装置(例如图8中的输入控制单元231),用于控制缓冲器中的分组存储,以便在确定装置确定缓冲器中的分组数目等于或小于第二阈值时,将由请求装置请求传输的分组存储在缓冲器中,并且在确定装置确定缓冲器中存储的分组数目超过第二阈值时,不将由请求装置请求传输的分组存储在缓冲器中;以及通过执行程序实现的输出控制装置(例如图8中的输出控制单元236),用于在请求装置请求传输分组时,基于队列控制存储在缓冲器中的分组向控制程序的输出,控制程序用于控制通过硬件的分组传输。
如在权利要求2中所提出的传输设备中,当请求装置(例如在图7中的网络层172中执行的程序)请求传输分组时,输出控制装置(例如图8中的输出控制单元236)可以从缓冲器获取其传输时间已经到达的分组,并控制将获取的分组输出到用于控制通过硬件的分组传输的控制程序。
如在权利要求3中所提出的传输设备中,当以预定的时间间隔请求中断过程时,输出控制装置(例如图8中的输出控制单元236)可以从缓冲器获取其传输时间已经到达的分组,并控制将获取的分组输出到用于控制通过硬件的分组传输的控制程序。
如在权利要求4中所提出的传输方法包括:确定步骤(例如图9中的步骤S85的过程),该步骤确定当在请求传输分组的请求步骤(例如利用在图7中的网络层172中执行的程序将输入请求信号提供到虚拟设备驱动器174的过程)中请求传输分组时,存储在缓冲器(例如图7中的缓冲器176)中的分组数目是否等于或小于比第一阈值小的第二阈值;存储控制步骤(例如图9中的步骤S89的过程或步骤S92的过程),该步骤控制缓冲器中的分组的存储,以便在确定缓冲器中存储的分组数目等于或小于第二阈值时,将在请求步骤中请求传输的分组存储在缓冲器中,并且在确定缓冲器中存储的分组数目超过第二阈值时,不将在请求步骤中请求传输的分组存储在缓冲器中;以及输出控制步骤(例如图11中的步骤S134的过程),该步骤在请求步骤中请求传输分组时,基于队列控制将存储在缓冲器中的分组输出到控制程序,该控制程序用于控制通过硬件的分组传输。
顺便提及,如在权利要求5中所提出的记录介质和如在权利要求6中所提出的程序基本上具有与如在权利要求4中所提出的传输方法相同的过程,因此将省略其重复描述。
如在权利要求7中所提出的控制设备包括:通过执行过程实现的请求装置(例如在图7中的网络层172中执行的程序),其用于请求执行一个过程,并且在所请求的过程未被执行时重复请求执行同一过程;通过执行过程实现的第一执行控制装置(例如图8中的输入处理单元211),其用于控制所请求的过程的执行,以便在请求装置请求执行该过程时,使得请求装置持续请求执行该过程;以及通过执行过程实现的第二执行控制装置(例如图8中的输出处理单元214),其用于在请求装置请求执行该过程时,控制另一过程的执行。
本发明可应用于以实时方式发送流数据的通信系统,例如因特网电话、电话会议系统、现场视频流分配系统或电视电话。
在下文中将参考附图来描述应用本发明的实施例。
图6的框图示出了应用本发明的通信装置的配置示例。
CPU(中央处理单元)101根据记录在ROM(只读存储器)102或记录单元108中的程序执行各种过程。RAM(随机访问存储器)103按需存储被CPU 101执行的程序、数据等等。CPU 101、ROM 102和RAM 103经由总线104互连。
CPU 101还经由总线104与输入-输出接口105相连。输入-输出接口105与输入单元106和输出单元107相连,输入单元106包括键盘、鼠标、开关等等,输出单元107包括显示器、扬声器、灯等等。CPU 101响应于从输入单元106输入的命令来执行各种过程。
连接到输入-输出接口105的记录单元108例如由硬盘构成。记录单元108记录将被CPU 101执行的程序以及各种数据。通信单元109例如由网卡构成。通信单元109经由诸如因特网或其他网络的通信网络,与外部装置通信。
通信单元109还可以经由通信网络获取程序,并将程序记录在记录单元108中。
连接到输入-输出接口105的驱动器110在磁盘131、光盘132、磁光盘133、半导体存储器134等被加载到驱动器110时驱动它们,并获取记录在其上的程序、数据等。被获取的程序或数据按需传输到记录单元108以记录在其中。
图7的框图示出了执行程序的CPU 101的功能性配置。
在应用层171中由用户指定发送的数据被从应用层171提供到网络层172。在网络层172中,从应用层171提供的数据被存储在分组中。
在将数据存储在分组中之后,在网络层172中产生请求分组入队的输入请求信号。在网络层172中,其路由由分组的传输目的地确定的通信网络中的路由通过参考路由表173而被设置,并且所产生的输入请求信号被提供到虚拟设备驱动器174。
具体而言,路由表173包括指示被连接到通信网络的终端设备(通信设备)的地址以及去往通信网络中的终端设备的路由(网关)的信息。当从应用层171提供到网络层172的数据(分组)经由设备驱动器177-1到177-N之一被发送时,图中未示出的虚拟输出接口被设置为由分组的目的地所确定的输出接口。输入请求信号被提供到对应于虚拟输出接口的虚拟设备驱动器174。路由表173被在应用层171中执行的程序更新。
当指示该分组未入队的信号被从虚拟设备驱动器174提供到网络层172时,在网络层172中产生请求还未入队的分组入队的输入请求信号。
产生的输入请求信号被提供到虚拟设备驱动器174。就是说,在网络层172中执行的程序请求诸如使分组入队的过程之类的预定过程,并在被请求过程未被执行时重复请求上述过程的执行。
而且,存储了数据的分组被从网络层172提供到虚拟设备驱动器174。
当输入请求信号被从网络层172提供到虚拟设备驱动器174时,虚拟设备驱动器174基于存储在缓冲器176中的分组的队列长度Q和最大队列长度Qm,确定分组是否可以入队。
最大队列长度Qm指的是可以存储在缓冲器176中的分组的最大数目。队列长度Q指的是存储在缓冲器176中的分组数目。
当虚拟设备驱动器174确定分组可以入队时,虚拟设备驱动器174从网络层172获取分组,将获取的分组提供到缓冲器176,并将分组放置在诸如FIFO队列等的队列中。然后,虚拟设备驱动器174产生指示分组已入队的信号,并将产生的指示分组已入队的信号提供到网络层172。
当虚拟设备驱动器174确定分组不能入队时,虚拟设备驱动器174不从网络层172获取分组。虚拟设备驱动器174产生指示分组未入队的信号,并将产生的指示分组未入队的信号提供到网络层172。
当用于获取分组的中断信号被从内核定时器175提供到虚拟设备驱动器174时,或当请求分组入队的输入请求信号被从网络层172提供到虚拟设备驱动器174时,虚拟设备驱动器174从存储在缓冲器176中的分组中获取其传输时间已经到达的分组,并将获取的分组提供到设备驱动器177-1到177-N之一。
内核定时器175以预定的时间间隔(例如10毫秒)产生用于获取分组的中断信号,并将产生的中断信号提供到虚拟设备驱动器174。就是说,内核定时器175在每次定时器事件发生时产生用于获取分组的中断信号,并将产生的中断信号提供到虚拟设备驱动器174。
缓冲器176例如由RAM 103中的预定存储区域构成。缓冲器176将从设备驱动器177-1到177-N之一或者虚拟设备驱动器174提供的分组存储在存储区域中,作为诸如FIFO队列之类的队列。缓冲器176将存储在其中的分组提供到设备驱动器177-1到177-N之一或虚拟设备驱动器174。
设备驱动器177-1到177-N(设备驱动器177-2到177-(N-1)在图中未示出)分别控制物理设备(物理层178-1到178-N(物理层178-2到178-(N-1)在图中未示出))。设备驱动器177-1到177-N具有使OS和各个物理设备(物理层178-1到178-N)之间的过程同步的功能。
设备驱动器177-1到177-N分别具有输入处理单元191-1到191-N,并分别具有输出处理单元192-1到192-N。
设备驱动器177-1到177-N的输入处理单元191-1到191-N中的每一个将从虚拟设备驱动器174提供的分组提供到缓冲器176。
当指示分组传输完成的中断信号被分别从物理层178-1到178-N提供到设备驱动器177-1到177-N的输出处理单元192-1到192-N时,输出处理单元192-1到192-N从缓冲器176获取分组,并将获取的分组提供到各个物理层178-1到178-N。
更具体而言,例如,虚拟设备驱动器174和设备驱动器177-1到177-N以队列方式排列指针,所述指针指示分组所存储的缓冲器176的地址。虚拟设备驱动器174和设备驱动器177-1到177-N于是在不移动缓冲器176中的分组的情况下,基于队列来按顺序输入分组和输出分组。
当设备驱动器177-1到177-N不需要单独地彼此区分时,设备驱动器177-1到177-N将在下文中被简称为设备驱动器177。并且,当输入处理单元191-1到191-N不需要单独地彼此区分时,输入处理单元191-1到191-N将在下文中被简称为输入处理单元191。此外,当输出处理单元192-1到192-N不需要单独地彼此区分时,输出处理单元192-1到192-N将在下文中被简称为输出处理单元192。
物理层178-1到178-N每个例如由网卡等构成,用于连接到以太网(注册商标),或光学通信网络,诸如基带通信网络或宽带通信网络。物理层178-1到178-N将从设备驱动器177提供的分组转换成电信号或光信号,然后将被转换成电信号或光信号的分组经由网络或通信网络(例如因特网等)发送到传输目的地的终端设备。在发送出从设备驱动器177提供的分组之后,物理层178-1到178-N每个产生指示分组传输完成的中断信号,并将产生的中断信号提供到设备驱动器177。
当物理层178-1到178-N不需要单独地彼此区分时,物理层178-1到178-N将在下文中被简称为物理层178。
图8的框图示出了虚拟设备驱动器174的功能性配置。
虚拟设备驱动器174包括输入处理单元211、队列信息保存单元212、输出信息保存单元213、输出处理单元214和时间保存单元215。
输入处理单元211获取来自网络层172的分组,并将获取的分组提供到缓冲器176。输入处理单元211具有输入控制单元231、确定单元232、计算单元233和请求信号产生单元234。
当请求分组入队的输入请求信号被从网络层172提供到输入控制单元231时,输入控制单元231产生请求确定分组是否可以入队的确定请求信号,并将产生的确定请求信号提供到确定单元232。
当指示分组可以入队的信号被从确定单元232提供到输入控制单元231时,输入控制单元231从网络层172获取分组,并将分组号i附加到所获取的分组。在添加了分组号i之后,输入控制单元231产生包括指示所获取的分组的尺寸、分组号i等的信息的分组信息,并将产生的分组信息提供到计算单元233。
分组号i是用于识别分组的号码。分组号以从“1”开始的递增顺序被附加。顺便提及,当分组号i为“0”时,该分组号表示还没有分组被提供到输入控制单元231。
当指示传输时间被设置的信号被从计算单元233提供到输入控制单元231时,输入控制单元231将获取的分组提供到缓冲器176。顺便提及,利用输入控制单元231使分组入队的过程在下文中将被也称为分组输入过程。在将分组提供到缓冲器176之后,输入控制单元231产生指示分组已入队的信号,并将产生的指示分组已入队的信号提供到网络层172。
当指示分组无法入队的信号被从确定单元232提供到输入控制单元231时,输入控制单元231产生指示分组未入队的信号,并将产生的指示分组未入队的信号提供到网络层172。
就是说,输入控制单元231通过产生指示分组已入队的信号或指示分组未入队的信号,并且将指示分组已入队的信号或指示分组未入队的信号提供到网络层172,来控制缓冲器176中的分组的存储。
在网络层172请求分组入队之后,就是说,在指示分组已入队的信号或指示分组未入队的信号被提供到网络层172之后,为了请求分组出队,输入控制单元231产生用于产生输出请求信号的信号,并将产生的用于产生输出请求信号的信号提供到请求信号产生单元234。
当确定请求信号被从输入控制单元231提供到确定单元232时,确定单元232基于由队列信息保存单元212保存的队列长度Q和最大队列长度Qm来确定分组是否可以入队到缓冲器176中。
最大队列长度Qm指的是可以存储在缓冲器176中的分组的最大数目。队列长度Q指的是存储在缓冲器176中的分组数目。当“0”被设置为分组队列长度Q时,该队列长度Q表示缓冲器176中未存储分组。
当确定单元232确定分组可以入队时,确定单元232产生指示分组可以入队的信号,并将产生的指示分组可以入队的信号提供到输入控制单元231。当确定单元232确定分组不能入队时,确定单元232产生指示分组不能入队的信号,并将产生的指示分组不能入队的信号提供到输入控制单元231。
当从输入控制单元231提供分组信息时,计算单元233基于所提供的分组信息、保存在输出信息保存单元213中的具有前一分组号的分组的分组尺寸以及具有前一分组号的分组的传输时间、成形速率,以及从时间保存单元215提供的当前时间,来计算分组的传输时间。计算单元233将计算出的传输时间和分组信息提供到输出信息保存单元213。例如对于具有分组号“2”的分组,具有前一分组号的分组指的是具有分组号“1”的分组。
在计算出分组的传输时间之后,计算单元233使得队列信息保存单元212将队列信息保存单元212所保存的队列长度Q加1。而且,在计算出分组的传输时间之后,计算单元233使得输出信息保存单元213将输出信息保存单元213所保存的已存储分组号加1。已存储分组号指的是由输入控制单元231存储于缓冲器176中的分组之中最后的分组的分组号。当已存储分组号为“0”时,表示缓冲器176中还未存储分组。
在计算出分组的传出时间之后,计算单元233产生指示传输时间已被设置的信号,并将指示传输时间已被设置的信号提供到输入控制单元231。
当用于产生输出请求信号的信号被从输入控制单元231提供到请求信号产生单元234时,请求信号产生单元234产生请求分组出队的输出请求信号,并将产生的输出请求信号提供到输出处理单元214。
队列信息保存单元212保存着在缓冲器176中存储的分组的队列长度Q以及预定的最大队列长度Qm。
在输入处理单元211的控制下,队列信息保存单元212使保存的队列长度加1。在输出处理单元214的控制下,队列信息保存单元212使保存的队列长度减1。
输出信息保存单元213保存着预定的成形速率、从输入处理单元211提供的分组传输时间和分组信息、已存储分组号和已发送分组号。已发送分组号指的是在物理层178中发送到作为传输目的地的终端设备的分组之中的最后发送的分组的分组号。换句话说,已发送分组号指的是在物理层178中发送到作为传输目的地的终端设备的分组的分组号中的最大号。顺便提及,当已发送分组号为“0”时,表示还没有已发送的分组。
在输入处理单元211的控制下,输出信息保存单元213使输出信息保存单元213所保存的已存储分组号加1。而且,在输出处理单元214的控制下,输出信息保存单元213使输出信息保存单元213所保存的已发送分组号加1。
输出处理单元214以预定定时从缓冲器176获取分组,并将获取的分组提供到设备驱动器177。输出处理单元214具有信号处理单元235和输出控制单元236。
当输出请求信号被从输入处理单元211提供到信号处理单元235时,或当中断信号被从内核定时器175提供到信号处理单元235时,信号处理单元235产生用于使分组出队的信号,并将产生的用于使分组出队的信号提供到输出控制单元236。
当用于使分组出队的信号被从信号处理单元235提供到输出控制单元236时,输出控制单元236基于由输出信息保存单元213保存的分组信息和分组传输时间,以及从时间保存单元215提供的当前时间,来确定是否存在其传输时间已到达的下一个将被发送的分组。输出控制单元236从缓冲器176获取其传输时间已到达的下一个将被发送的分组。输出控制单元236将从缓冲器176获取的分组提供到设备驱动器177。
换句话说,当用于使分组出队的信号被从信号处理单元235提供到输出控制单元236时,输出控制单元236基于分组队列,提供从缓冲器176获取的分组,由此输出控制单元236控制将存储在缓冲器176中的分组输出到用于控制通过硬件(设备(物理层178-1到178-N))的分组传输的控制程序。
顺便提及,利用输出控制单元236使分组出队的过程在下文中将也被称为分组输出过程。
输出控制单元236使得队列信息保存单元212使由队列信息保存单元212保存的队列长度Q减1。输出控制单元236还使得输出信息保存单元213使由输出信息保存单元213保存的已发送分组号加1。
时间保存单元215基于内核定时器175来测量时间,并保存当前时间。时间保存单元215将保存的当前时间提供到输入处理单元211或输出处理单元214。时间保存单元215例如也可以是RTC(实时时钟)。
下面将参考图9的流程图来描述利用虚拟设备驱动器174使分组入队的过程。
在每次将输入请求信号从网络层172提供到虚拟设备驱动器174时,虚拟设备驱动器174调用诸如输入功能之类的预定功能,并执行使分组入队的过程(输入过程)。
在步骤S81中,虚拟设备驱动器174设置用于要存储在缓冲器176中的分组的最大队列长度Qm。例如,在步骤S81中,虚拟设备驱动器174将“5”设置为由队列信息保存单元212保存的最大队列长度Qm。
在步骤S82中,虚拟设备驱动器174设置存储在缓冲器176中的分组的队列长度Q。例如,在这种情况下,在缓冲器176中还未存储分组,因此虚拟设备驱动器174将“0”设置为由队列信息保存单元212保存的队列长度Q。
在步骤S83中,虚拟设备驱动器174设置已存储分组号。例如,在这种情况下,还未在缓冲器176中存储分组,因此虚拟设备驱动器174将“0”设置为由输出信息保存单元213保存的已存储分组号。
在步骤S84中,输入控制单元231从网络层172获取输入请求信号。
获取了输入请求信号,输入控制单元231产生请求确定分组是否可以入队的确定请求信号,并且将产生的确定请求信号提供到确定单元232。
当确定请求信号被从输入控制单元231提供时,确定单元232在步骤S85中基于在队列信息保存单元212中保存的队列长度Q和最大队列长度Qm,确定队列长度Q是否大于预定值。
例如,在步骤S85中,确定单元232基于在队列信息保存单元212中保存的队列长度Q和最大队列长度Qm来计算等式(3),并且通过确定队列长度Q和最大队列程度Qm是否满足等式(3)来确定队列长度Q是否大于预定值。
(Qm/2)≤Q+1 …(3)
就是说,通过确定存储在缓冲器176中的分组的队列长度Q是否大于最大队列长度Qm的一半的值,确定单元232确定队列长度Q是否大于预定值。
因此,当队列长度Q和最大队列长度Qm满足等式(3)时,确定单元232确定队列长度Q大于预定值。
例如在诸如Linux等的UNIX(注册商标)操作系统中,当已入队的分组达到最大队列长度时,在更高网络层172中的程序暂时停止提供要入队的分组。当队列中的分组被发送,并且队列长度变得小于最大队列长度的一半时,恢复已停止的分组供应。就是说,当队列长度总是保持在小于最大队列长度的一半时,只要可能,网络层中的程序就尝试执行入队过程。因此,例如通过在所有时间将队列长度Q保持在小于最大队列长度Qm的一半,可以增大获取输入请求信号的次数,并因此增大执行分组输出过程的次数。
换句话说,当诸如分组入队过程等的过程被网络层172请求时,输入处理单元211例如控制被请求过程的执行,以便通过在所有时间将队列长度保持在小于最大队列长度的一半,而使得在网络层172中执行的程序持续请求该过程的执行。从而,输入处理单元211增大执行诸如分组输出过程等的另一过程的次数。
当确定单元232在步骤S85中确定队列长度Q不大于预定值时,分组可以被存储在缓冲器176中,从而确定单元232产生指示分组可以入队的信号。然后,确定单元232将产生的指示分组可以入队的信号提供到输入控制单元231。过程前进至步骤S86。
当指示分组可以入队的信号被从确定单元232提供时,输入控制单元231在步骤S86中从网络层172获取分组,并将分组号i附加到所获取的分组。在将分组号i附加到所获取的分组之后,输入控制单元231产生分组信息,并将产生的分组信息提供到计算单元233,所述分组信息包括指示所获取分组的尺寸、分组号i等的信息。
顺便提及,更具体而言,在这种情况下,输入控制单元231从网络层172获取指示分组被存储到的存储区域地址的指针。使用该指针,在虚拟设备驱动器174中执行发送和接收分组的过程。
在步骤S87中,计算单元233执行传输时间计算过程。虽然传输时间计算过程的细节将随后描述,但是计算单元233在传输时间计算过程中基于从输入控制单元231提供的分组信息、保存在输出信息保存单元213中的具有前一分组号的分组的分组尺寸以及具有前一分组号的分组的传输时间、成形速率和从时间保存单元215中提供的当前时间,来计算从网络层172提供的分组的传输时间。
在步骤S88中,输出信息保存单元213在计算单元233的控制下,使由输出信息保存单元213保存的已存储分组号加1。例如,当由输出信息保存单元213保存的已存储分组号为“1”时,在计算单元233的控制下,输出信息保存单元213在步骤S88中使已存储分组号加1,以便使得由输出信息保存单元213保存的已存储分组号变为“2”。
在步骤S89中,输入控制单元231使从网络层172获取的分组入队。具体而言,在步骤S89中,输入控制单元231将从网络层172获取的分组提供到缓冲器176,并且将分组放置在诸如FIFO队列等的队列中。缓冲器176存储从虚拟设备驱动器174提供的分组。
在步骤S90中,队列信息保存单元212在计算单元233的控制下,使由队列信息保存单元212保存的队列长度Q加1。例如,当由队列信息保存单元212保存的队列长度Q为“2”时,在计算单元233的控制下,队列信息保存单元212在步骤S90中使队列长度Q加1,以便使由队列信息保存单元212保存的队列长度Q变为“3”。
在步骤S91中,输入控制单元231产生指示分组已入队的信号,并将产生的指示分组已入队的信号提供到网络层172。输入控制单元231产生用于产生输出请求信号的信号,并将产生的用于产生输出请求信号的信号提供到请求信号产生单元234。
另一方面,当确定单元232在步骤S85中确定队列长度Q大于预定值时,不再有分组能够被存储在缓冲器176中,因此确定单元232产生指示不能入队的信号。然后,确定单元232将产生的指示不能入队的信号提供到输入控制单元231。过程前进至步骤S92。
当指示不能入队的信号被从确定单元232提供时,输入控制单元231在步骤S92中产生指示分组未入队的信号,并将产生的指示分组未入队的信号提供到网络层172。输入控制单元231产生用于产生输出请求信号的信号,并将产生的用于产生输出请求信号的信号提供到请求信号产生单元234。
当用于产生输出请求信号的信号被从输入控制单元231提供时,请求信号产生单元234在步骤S93中产生请求分组出队的输出请求信号。请求信号产生单元234将产生的输出请求信号提供到输出处理单元214。然后返回到步骤S84以重复上述过程。
因此,虚拟设备驱动器174通过确定队列长度是否大于预定值,来确定分组是否可以入队。然后,当虚拟设备驱动器174确定分组可以入队时,虚拟设备驱动器174获取分组,并将获取的分组入队到缓冲器176中。当虚拟设备驱动器174确定分组不能入队时,虚拟设备驱动器174不获取分组。
当虚拟设备驱动器174如此确定分组不能入队时,虚拟设备驱动器174将指示分组无法入队的信号提供到网络层172。由于分组既未入队,也未被丢弃,因此网络层172得知已经遇到队列独占控制的问题。就是说,网络层172确定其中存储分组的队列(缓冲器176中存储分组的区域)由于响应于硬件中断等执行分组输出过程(分组的出队)而无法被访问。
在这种情况下,由于指示分组不能入队的信号被从虚拟设备驱动器174提供到网络层172,因此网络层172产生请求使还未入队的分组入队的输入请求信号,并将输入请求信号提供到虚拟设备驱动器174。换句话说,网络层172再次尝试使分组入队。因此,输入请求信号被重复地提供到虚拟设备驱动器174。结果,输出请求信号被重复地从输入处理单元211提供到输出处理单元214。从而,执行分组输出过程的次数(机会)增大,因此分组传输间隔可以被控制得更短(更小颗粒度)。
顺便提及,重新尝试使分组入队的过程增大了OS的负担。但是,由于重新尝试使分组入队的过程具有比其他过程更低的优先级,因此在系统中执行的其他过程几乎不会被重新尝试使分组入队的过程所影响。因此,并不特别需要用于调整重新尝试使分组入队的过程负担的特殊过程。
下面将参考图10的流程图来描述对应于图9中的步骤S87的过程的传输时间计算过程。
在步骤S111中,计算单元233基于从输入控制单元231提供的分组信息,确定由输入控制单元231从网络层172获取的分组的分组号i是否为“0”。
当计算单元233在步骤S111中确定从网络层172获取的分组的分组号i不为“0”时,过程前进至步骤S112,其中计算单元233计算从网络层172获取的分组的传输时间。例如,在步骤S112中,计算单元233通过计算等式(4)来计算分组的传输时间。
(Ti)=(T(i-1))+(L(i-1))/r …(4)
其中Ti是具有分组号i的分组的传输时间;T(i-1)是具有分组号“i-l”的分组的传输时间,该传输时间被保存在输出信息保存单元213中;L(i-1)是具有分组号“i-l”的分组的尺寸(数据量),该尺寸被保存在输出信息保存单元213中;并且r是保存在输出信息保存单元213中的预定成形速率。
在步骤S113中,计算单元233确定保存在队列信息保存单元212中的队列长度Q是否为“0”。当计算单元233在步骤S113中确定队列长度不为“0”时,过程前进至步骤S115。
另一方面,当计算单元233在步骤S113中确定队列长度Q为“0”时,过程前进至步骤S114,其中计算单元233确定计算出的传输时间Ti是否晚于从时间保存单元215提供的当前时间。
例如,在步骤S114中,计算单元233通过确定计算出的传输时间Ti和从时间保存单元215提供的当前时间T是否满足等式(5),来确定计算出的传输时间Ti是否晚于从时间保存单元215提供的当前时间。
T<Ti …(5)
因此,在这种情况下,当计算单元233确定计算出的传输时间Ti和从时间保存单元215提供的当前时间T满足等式(5)时,计算单元233确定计算出的传输时间Ti晚于从时间保存单元215提供的当前时间。
当计算单元233在步骤S114中确定计算出的传输时间Ti晚于从时间保存单元215提供的当前时间时,过程前进至步骤S115,其中计算单元233将计算出的传输时间Ti设置为具有分组号“i”的分组的传输时间。计算单元233将设置的传输时间Ti和分组信息提供到输出信息保存单元213。输出信息保存单元213保存从计算单元233提供的传输时间Ti和分组信息。然后,计算单元233产生指示传输时间已被设置的信号。计算单元233将产生的指示传输时间已被设置的信号提供到输入控制单元231,由此过程结束。
当计算单元233在步骤S114中确定计算出的传输时间Ti不晚于当前时间时,计算出的传输时间Ti已经过去,因此过程前进至步骤S116。
而且,当计算单元233在步骤S111中确定从网络层172提供的分组的分组号i为“0”时,过程前进至步骤S116,其中计算单元233将当前时间T设置为具有分组号“i”的分组的传输时间Ti。计算单元233将设置的传输时间Ti和分组信息提供到输出信息保存单元213。输出信息保存单元213保存从计算单元233提供的传输时间Ti和分组信息。然后,计算单元233产生指示传输时间已被设置的信号。计算单元233将产生的指示传输时间已被设置的信号提供到输入控制单元231,由此过程结束。
这样,计算单元233计算分组的传输时间,并将计算出的传输时间或当前时间设置为分组的传输时间。注意,虽然已经参考图10的流程图描述了基于被称为Leaky Bucket算法的调度算法来调整分组传输间隔的方法,但是当然不仅可以基于Leaky Bucket算法,还可以基于其他调度算法来调整分组传输间隔。
下面将参考图11的流程图来描述利用虚拟设备驱动器174使分组出队的过程。
在每次从内核定时器175向虚拟设备驱动器174提供用于获取分组的中断信号时,或在每次从输入处理单元211提供输出请求信号时,虚拟设备驱动器174调用例如中断处理程序功能之类的预定功能,并执行使分组出队的过程(输出过程)。
在步骤S131中,虚拟设备驱动器174设置已发送分组号。例如,在步骤S131中,由于还未发送分组,因此虚拟设备驱动器174将“0”设置为由输出信息保存单元213所保存的已发送分组号。
在步骤S132中,信号处理单元235确定中断信号或输出请求信号是否被提供。具体而言,信号处理单元235确定是否从内核定时器175提供了中断信号,或者是否从输入处理单元211提供了输出请求信号。当信号处理单元235在步骤S132中确定未提供中断信号或输出请求信号时,没有分组出队,并且因此重复确定过程,直到信号处理单元235确定中断信号或输出请求信号被提供。
当信号处理单元235在步骤S132中确定中断信号或输出请求信号被提供时,分组出队,因此信号处理单元235产生用于使分组出队的信号,并将产生的用于使分组出队的信号提供到输出控制单元236。过程前进至步骤S133。
由于内核定时器175的定时器事件的发生频率一般为100Hz,因此中断信号例如至少每隔10毫秒被提供到信号处理单元235。另外,在每次输入处理单元211从网络层172获取输入请求信号时,输出请求信号从输入处理单元211被提供。因此,例如,输出请求信号大约每15微秒被从输入处理单元211提供到信号处理单元235。这时,在每次输入处理单元211从网络层172获取输入请求信号时,就是说,在每次由网络层172请求使分组入队等的过程时,在输出处理单元214中的信号处理单元235控制不同于网络层172所请求过程的使分组出队过程的执行。
当用于使分组出队的信号被从信号处理单元235提供时,输出控制单元236在步骤S133中确定当前时间是否晚于具有与已发送分组号相同分组号的分组的传输时间。例如,在步骤S133中,输出控制单元236通过基于保存在输出信息保存单元213中的已发送分组号和分组传输时间以及从时间保存单元215提供的当前时间,计算等式(6),来确定当前时间是否晚于传输时间。
Ti<T …(6)
其中Ti是具有分组号“i”的分组的传输时间,该传输时间被保存在输出信息保存单元213中;并且T是从时间保存单元215提供的当前时间。因此,例如,当已发送分组号为“i”并且传输时间Ti和当前时间T满足等式(6)时,输出控制单元236确定当前时间晚于具有与已发送分组号相同的分组号的分组的传输时间。
当输出控制单元236在步骤S133中确定当前时间晚于传输时间时,分组被发送。从而过程前进至步骤S134,其中输出控制单元236使其传输时间已到达的分组出队。具体而言,在步骤S134中,输出控制单元236从缓冲器176获取其传输时间已到达的分组,并将所获取的分组提供到设备驱动器177。
在步骤S135中,输出信息保存单元213在输出控制单元236的控制下,使保存在输出信息保存单元213中的已发送分组号加1。例如,当保存在输出信息保存单元213中的已发送分组号为“1”时,输出信息保存单元213在步骤S135中在输出控制单元236的控制下使已发送分组号加1,以便使已发送分组号变为“2”。
在步骤S136中,队列信息保存单元212在输出控制单元236的控制下,使保存在队列信息保存单元212中的队列长度Q减1。然后过程返回到步骤S132。例如,当保存在队列信息保存单元212中的队列长度Q为“3”时,队列信息保存单元212在步骤136中在输出控制单元236的控制下使队列长度Q减1,以便使队列长度Q变为“2”。
另一方面,当输出控制单元236在步骤S133中确定当前时间不晚于传输时间时,分组不被发送。从而返回到步骤S132,以重复上述过程。
因此,虚拟设备驱动器174在每次中断信号或输出请求信号被提供时执行分组输出过程。
因此,输出控制单元在每次中断信号或输出请求信号被提供时执行分组输出过程,由此可以利用软件控制而以更小负担来控制分组传输。
另外,输出控制单元在每次中断信号或输出请求信号被提供时执行分组输出过程,由此可以以更短时间间隔来控制分组传输,并因此可以减少通信网络中突发流量的出现。从而,可以减少在通信路径上的路由器等处丢弃的分组数目。
另外,输出控制单元在每次中断信号或输出请求信号被提供时执行分组输出过程,由此可以以更短时间间隔来控制分组传输。从而可以减少抖动,并且可以减小在接收端的终端设备中用于调整由于抖动引起的延迟波动的缓冲器的尺寸。
从而可以减小在接收端的终端设备中被缓冲的数据尺寸。另外,可以保持发送端的通信设备中的分组队列长度较短。从而,可以减小由于缓冲而引起的延迟,并因而可以实现低延迟的实时应用程序。
此外,在每次由网络层请求一个过程时,另一过程被执行,从而通过软件控制,可以以更短时间间隔来控制该过程。
如上所述,分组输出过程在每次从网络层提供输入请求信号时被执行,由此可以利用软件控制以更小负担控制分组传输。另外,分组输出过程在每次从网络层提供输入请求信号时被执行,或在每次从内核定时器提供中断信号时被执行,由此可以以更短时间间隔来控制分组传输。
此外,在每次由网络层请求一个过程时,另一过程被执行,从而可以通过软件控制而以更短时间间隔来控制该过程。
根据本发明,分组被存储,并因此分组可以被发送。根据本发明,分组输出过程在每次从网络层提供输入请求信号时被执行,由此可以通过软件控制而以更小负担来控制分组传输。
此外,根据本发明,分组输出过程在每次从网络层提供输入请求信号时被执行,或在每次从内核定时器提供中断信号时被执行,由此,可以以更短时间间隔来控制分组传输。
此外,根据本发明,在每次由网络层请求一个过程时,另一过程被执行,从而可以通过软件控制而以更短时间间隔来控制该过程。
注意,本发明不仅可应用于控制分组传输间隔的通信装置,还可应用于控制执行预定过程的时间间隔的控制设备。在这种情况下,在每次由网络层请求一个过程的执行时,或者在每次从内核定时器提供中断信号时,控制设备执行另一过程。
上述过程序列不仅可以利用硬件,还可利用软件来执行。当利用软件执行这些过程序列时,构成软件的程序例如被从记录介质安装到能够通过在其上安装各种程序来执行各种功能的结合到专用硬件中的计算机中,或通用个人计算机中。
如图6所示,记录介质不仅可以由分配给用户的提供与计算机分开的程序并在其上记录了程序的密封式介质构成,也可以由以预先结合到计算机中的状态具有记录在其中的提供给用户的程序的ROM 102、包括在记录单元108中的硬盘等等构成,其中所述密封式介质包括磁盘131(包括软盘)、光盘132(包括CD-ROM(压缩盘-只读存储器)和DVD(数字多功能盘))、磁光盘133(包括MD(迷你盘)(商标))、半导体存储器134等等。
顺便提及,用于执行这些过程序列的程序可以经由诸如路由器、调制解调器等的接口,以及经由诸如局域网、因特网、数字卫星广播等的有线或无线通信介质而被安装在计算机上。
此外,在本说明书中,描述存储在记录介质上的程序的步骤不仅包括以所述顺序按时间序列执行的过程,还包括被并行或单独执行的过程,而不一定按时间序列。
注意,在本说明书中,系统指的是由多个设备构成的作为整体的装置。
本领域技术人员应该理解,可以根据设计需求和其他因素来执行各种修改、组合、替换和变化,它们落入所附权利要求书或其等同物的范围内。
Claims (9)
1.一种用于经由通信网络传输分组的传输设备,所述传输设备具有请求装置,所述请求装置用于在从应用程序提供传输分组的指令时,或在被请求传输的分组未被存储在存储被放置在用于传输的队列中的分组的缓冲器中时,当存储在所述缓冲器中的分组数目小于第一阈值时,请求将分组传输到被确定了在所述通信网络上对其的路由的目的地设备,所述传输设备包括:
通过执行程序实现的确定装置,用于在所述请求装置请求传输分组时,确定存储在所述缓冲器中的分组数目是否等于或小于比所述第一阈值小的第二阈值;
通过执行程序实现的存储控制装置,用于控制所述缓冲器中的分组存储,以便在所述确定装置确定所述缓冲器中存储的分组数目等于或小于所述第二阈值时,将由所述请求装置请求传输的分组存储在所述缓冲器中,并且在所述确定装置确定所述缓冲器中存储的分组数目超过所述第二阈值时,不将由所述请求装置请求传输的分组存储在所述缓冲器中;以及
通过执行程序实现的输出控制装置,用于在所述请求装置请求传输分组时,基于所述队列,控制将存储在所述缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
2.如权利要求1所述的传输设备,
其中,当所述请求装置请求传输分组时,所述输出控制装置从所述缓冲器获取其传输时间已经到达的所述分组,并控制将获取的所述分组输出到用于控制通过硬件的所述分组传输的所述控制程序。
3.如权利要求1所述的传输设备,
其中,当以预定时间间隔请求中断过程时,所述输出控制装置从所述缓冲器获取其传输时间已经到达的所述分组,并控制将获取的所述分组输出到用于控制通过硬件的所述分组传输的所述控制程序。
4.一种用于经由通信网络传输分组的传输方法,所述传输方法具有请求步骤,所述请求步骤用于在从应用程序提供传输分组的指令时,或在被请求传输的分组未被存储在存储被放置在用于传输的队列中的分组的缓冲器中时,当存储在所述缓冲器中的分组数目小于第一阈值时,请求将分组传输到被确定了在所述通信网络上对其的路由的目的地设备,所述传输方法包括:
确定步骤,确定当在所述请求步骤中请求传输分组时,存储在所述缓冲器中的分组数目是否等于或小于比所述第一阈值小的第二阈值;
存储控制步骤,控制所述缓冲器中的分组存储,以便在确定所述缓冲器中存储的分组数目等于或小于所述第二阈值时,将在所述请求步骤中请求传输的分组存储在所述缓冲器中,并且在确定所述缓冲器中存储的分组数目超过所述第二阈值时,不将在所述请求步骤中请求传输的分组存储在所述缓冲器中;以及
输出控制步骤,在所述请求步骤中请求传输分组时,基于所述队列,控制将存储在所述缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
5.一种其上记录有用于传输过程的计算机可读程序的记录介质,所述传输过程用于经由通信网络传输分组,所述程序包括请求步骤,所述请求步骤用于在从应用程序提供传输分组的指令时,或在被请求传输的分组未被存储在存储被放置在用于传输的队列中的分组的缓冲器中时,当存储在所述缓冲器中的分组数目小于第一阈值时,请求将分组传输到被确定了在所述通信网络上对其的路由的目的地设备,所述程序包括:
确定步骤,确定当在所述请求步骤中请求传输分组时,存储在所述缓冲器中的分组数目是否等于或小于比所述第一阈值小的第二阈值;
存储控制步骤,控制所述缓冲器中的分组存储,以便在确定所述缓冲器中存储的分组数目等于或小于所述第二阈值时,将在所述请求步骤中请求传输的分组存储在所述缓冲器中,并且在确定所述缓冲器中存储的分组数目超过所述第二阈值时,不将在所述请求步骤中请求传输的分组存储在所述缓冲器中;以及
输出控制步骤,在所述请求步骤中请求传输分组时,基于所述队列,控制将存储在所述缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
6.一种用于使计算机执行传输过程的程序,所述传输过程用于经由通信网络传输分组,所述传输过程包括请求步骤,所述请求步骤用于在从应用程序提供传输分组的指令时,或在被请求传输的分组未被存储在存储被放置在用于传输的队列中的分组的缓冲器中时,当存储在所述缓冲器中的分组数目小于第一阈值时,请求将分组传输到被确定了在所述通信网络上对其的路由的目的地设备,所述程序包括:
确定步骤,确定当在所述请求步骤中请求传输分组时,存储在所述缓冲器中的分组数目是否等于或小于比所述第一阈值小的第二阈值;
存储控制步骤,控制所述缓冲器中的分组存储,以便在确定所述缓冲器中存储的分组数目等于或小于所述第二阈值时,将在所述请求步骤中请求传输的分组存储在所述缓冲器中,并且在确定所述缓冲器中存储的分组数目超过所述第二阈值时,不将在所述请求步骤中请求传输的分组存储在所述缓冲器中;以及
输出控制步骤,在所述请求步骤中请求传输分组时,基于所述队列,控制将存储在所述缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
7.一种控制设备,包括:
通过执行过程实现的请求装置,用于请求执行过程,并且在被请求的过程未被执行时重复请求执行相同过程;
通过执行过程实现的第一执行控制装置,用于控制被请求过程的执行,以便在所述请求装置请求执行所述过程时,使所述请求装置持续请求执行所述过程;以及
通过执行过程实现的第二执行控制装置,其用于在所述请求装置请求执行所述过程时,控制另一过程的执行。
8.一种用于经由通信网络传输分组的传输设备,所述传输设备具有请求单元,所述请求单元用于在从应用程序提供传输分组的指令时,或在被请求传输的分组未被存储在存储被放置在用于传输的队列中的分组的缓冲器中时,当存储在所述缓冲器中的分组数目小于第一阈值时,请求将分组传输到被确定了在所述通信网络上对其的路由的目的地设备,所述传输设备包括:
通过执行程序实现的确定器,所述确定单元确定当所述请求单元请求传输分组时,存储在所述缓冲器中的分组数目是否等于或小于比所述第一阈值小的第二阈值;
通过执行程序实现的存储控制器,所述存储控制器控制所述缓冲器中的分组存储,以便在所述确定单元确定所述缓冲器中存储的分组数目等于或小于所述第二阈值时,将由所述请求单元请求传输的分组存储在所述缓冲器中,并且在所述确定单元确定所述缓冲器中存储的分组数目超过所述第二阈值时,不将由所述请求单元请求传输的分组存储在所述缓冲器中;以及
通过执行程序实现的输出控制器,所述输出控制器在所述请求单元请求传输分组时,基于所述队列,控制将存储在所述缓冲器中的分组输出到用于控制通过硬件的分组传输的控制程序。
9.一种控制设备,包括:
通过执行过程实现的请求单元,所述请求单元请求执行过程,并且在被请求的过程未被执行时重复请求执行相同过程;
通过执行过程实现的第一执行控制器,所述第一执行控制器控制被请求过程的执行,以便在所述请求单元请求执行所述过程时,使所述请求单元持续请求执行所述过程;以及
通过执行过程实现的第二执行控制器,所述第二执行控制器在所述请求单元请求执行所述过程时,控制另一过程的执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004300352 | 2004-10-14 | ||
JP2004300352A JP4446166B2 (ja) | 2004-10-14 | 2004-10-14 | 送信装置および方法、記録媒体、プログラム、並びに制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1761243A true CN1761243A (zh) | 2006-04-19 |
CN100484096C CN100484096C (zh) | 2009-04-29 |
Family
ID=36316206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101128605A Expired - Fee Related CN100484096C (zh) | 2004-10-14 | 2005-10-14 | 传输设备、方法和控制设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7626993B2 (zh) |
JP (1) | JP4446166B2 (zh) |
CN (1) | CN100484096C (zh) |
TW (1) | TW200637265A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102271083B (zh) * | 2010-06-04 | 2015-12-09 | 株式会社巨晶片 | 通信控制装置和整形装置 |
CN109709905A (zh) * | 2017-10-25 | 2019-05-03 | 横河电机株式会社 | 通信处理装置、存储介质和通信处理方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7733894B1 (en) * | 2005-12-14 | 2010-06-08 | Juniper Networks, Inc. | Dynamic queue management |
JP4274229B2 (ja) * | 2006-11-10 | 2009-06-03 | ダイキン工業株式会社 | 空気調和機 |
WO2010089886A1 (ja) * | 2009-02-06 | 2010-08-12 | 富士通株式会社 | パケットバッファ装置及びパケット廃棄方法 |
CN101656682B (zh) * | 2009-06-12 | 2011-09-21 | 中兴通讯股份有限公司 | 一种移动多媒体数据广播业务处理的方法及系统 |
WO2012056537A1 (ja) * | 2010-10-27 | 2012-05-03 | 三菱電機株式会社 | プログラマブルコントローラ |
JP5303593B2 (ja) * | 2011-03-16 | 2013-10-02 | 株式会社コア | パケット送信制御装置及びパケット送信制御方法 |
US20140086258A1 (en) * | 2012-09-27 | 2014-03-27 | Broadcom Corporation | Buffer Statistics Tracking |
JP5591892B2 (ja) * | 2012-09-14 | 2014-09-17 | 株式会社東芝 | コンテンツ配信サーバ装置及びその制御方法 |
KR102560594B1 (ko) * | 2016-05-03 | 2023-07-27 | 삼성전자주식회사 | 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법 |
JP7473870B2 (ja) * | 2020-03-25 | 2024-04-24 | 京セラドキュメントソリューションズ株式会社 | データ連携システムおよびapiプラットフォーム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001211207A (ja) | 2000-01-26 | 2001-08-03 | Sony Corp | パケット送信方法、パケット送信装置並びに帯域保証方法 |
JP4403348B2 (ja) | 2000-12-14 | 2010-01-27 | ソニー株式会社 | 通信装置及び通信方法 |
JP3925234B2 (ja) | 2002-02-18 | 2007-06-06 | ソニー株式会社 | データ通信システム、データ通信管理装置、および方法、並びにコンピュータ・プログラム |
US20030174650A1 (en) * | 2002-03-15 | 2003-09-18 | Broadcom Corporation | Weighted fair queuing (WFQ) shaper |
US7286549B2 (en) * | 2002-10-30 | 2007-10-23 | Intel Corporation | Method, system, and program for processing data packets in packet buffers |
-
2004
- 2004-10-14 JP JP2004300352A patent/JP4446166B2/ja not_active Expired - Fee Related
-
2005
- 2005-10-07 TW TW094135207A patent/TW200637265A/zh not_active IP Right Cessation
- 2005-10-12 US US11/248,466 patent/US7626993B2/en not_active Expired - Fee Related
- 2005-10-14 CN CNB2005101128605A patent/CN100484096C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102271083B (zh) * | 2010-06-04 | 2015-12-09 | 株式会社巨晶片 | 通信控制装置和整形装置 |
CN109709905A (zh) * | 2017-10-25 | 2019-05-03 | 横河电机株式会社 | 通信处理装置、存储介质和通信处理方法 |
CN109709905B (zh) * | 2017-10-25 | 2022-07-29 | 横河电机株式会社 | 通信处理装置、存储介质和通信处理方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI292992B (zh) | 2008-01-21 |
US20060098584A1 (en) | 2006-05-11 |
CN100484096C (zh) | 2009-04-29 |
US7626993B2 (en) | 2009-12-01 |
JP4446166B2 (ja) | 2010-04-07 |
JP2006115197A (ja) | 2006-04-27 |
TW200637265A (en) | 2006-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1761243A (zh) | 传输设备和方法、记录介质、程序和控制设备 | |
CN1863168A (zh) | 发射和接收系统,发射器,发射发法,接收器,接收方法 | |
CN1374781A (zh) | 分组通信方法与分组通信系统并分组发送装置和分组接收装置以及分组接发装置 | |
CN1914862A (zh) | 集群系统、集群成员、故障恢复方法及程序 | |
CN1713617A (zh) | 通信统计收集装置 | |
CN1586063A (zh) | 流数据处理器、流数据处理方法、程序和媒体 | |
CN1475910A (zh) | 程序执行装置 | |
CN1906909A (zh) | 数据接收装置 | |
CN1842060A (zh) | 会话中继设备、会话中继方法及程序 | |
CN1855889A (zh) | 发射和接收系统,发射设备和方法,接收设备和方法 | |
CN1905530A (zh) | 组播点播方法及系统 | |
CN1608366A (zh) | 用于交换数据分组或帧的装置和方法 | |
CN1929422A (zh) | 通信处理设备、通信控制方法及计算机程序 | |
CN1118992C (zh) | 数据通信设备和方法 | |
CN1732664A (zh) | iSCSI的服务质量 | |
CN1188998C (zh) | 数据传输控制装置和电子设备 | |
CN1674560A (zh) | 基站、通信装置和通信系统 | |
CN1525784A (zh) | 无线电数据通信方法、服务器及无线电网络控制器 | |
CN1119001C (zh) | 数据发送装置及其方法 | |
CN1265597C (zh) | 本地代理器 | |
CN1140091C (zh) | 通信设备和通信方法 | |
CN1243314C (zh) | 传送装置和传送方法 | |
CN1219389C (zh) | 服务控制网络及其控制方法 | |
CN1479485A (zh) | 话单合并处理方法 | |
CN1269341C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090429 Termination date: 20151014 |
|
EXPY | Termination of patent right or utility model |