JP4446166B2 - Transmitting apparatus and method, recording medium, program, and controller - Google Patents

Transmitting apparatus and method, recording medium, program, and controller Download PDF

Info

Publication number
JP4446166B2
JP4446166B2 JP2004300352A JP2004300352A JP4446166B2 JP 4446166 B2 JP4446166 B2 JP 4446166B2 JP 2004300352 A JP2004300352 A JP 2004300352A JP 2004300352 A JP2004300352 A JP 2004300352A JP 4446166 B2 JP4446166 B2 JP 4446166B2
Authority
JP
Japan
Prior art keywords
packet
transmission
buffer
packets
step
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.)
Expired - Fee Related
Application number
JP2004300352A
Other languages
Japanese (ja)
Other versions
JP2006115197A (en
Inventor
宏 久曽神
Original Assignee
ソニー株式会社
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 ソニー株式会社 filed Critical ソニー株式会社
Priority to JP2004300352A priority Critical patent/JP4446166B2/en
Publication of JP2006115197A publication Critical patent/JP2006115197A/en
Application granted granted Critical
Publication of JP4446166B2 publication Critical patent/JP4446166B2/en
Application status is Expired - Fee Related legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/24Flow control or congestion control depending on the type of traffic, e.g. priority or quality of service [QoS]
    • H04L47/2416Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/29Using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/30Flow control or congestion control using information about buffer occupancy at either end or transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/32Packet discarding or delaying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Delay aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first

Description

本発明は送信装置および方法、記録媒体、プログラム、並びに制御装置に関し、特に、パケットを送信する送信装置および方法、記録媒体、プログラム、並びに制御装置に関する。 The present invention is the transmitting apparatus and method, recording medium, program, and a control device, in particular, the transmission apparatus and method for transmitting a packet, recording medium, program, and a control device.

インターネットの普及にともない、ビデオ会議やIP(Internet Protocol)電話などのリアルタイムアプリケーションプログラムが利用されるようになってきている。 With the spread of the Internet, real-time application programs, such as video conferencing and IP (Internet Protocol) phone has come to be used. これらのリアルタイムアプリケーションプログラムを利用する場合、通信装置は、画像や音声などのデータをパケットに格納し、データが格納されたパケットを、ネットワークまたはインターネットを介して受信側の端末装置あてに送信する。 When utilizing these real-time application program, the communication device stores the data such as images and audio to the packet, transmits the packet data is stored, the terminal device destined for the receiving side via a network or the Internet.

図1は、パケットを送信する通信装置が、アプリケーションプログラムおよびオペレーティングシステムのカーネルの機能を呼び出すことにより実現される、機能の構成を示すブロック図である。 Figure 1 is a communication apparatus for transmitting a packet is achieved by calling the kernel functions of the application programs and operating systems, is a block diagram showing a configuration of functions.

アプリケーション層11において、ユーザによって送信が指示されたデータは、アプリケーション層11から、ネットワーク層12に供給される。 The application layer 11, the data transmission has been instructed by the user from the application layer 11, are supplied to the network layer 12. ネットワーク層12において、アプリケーション層11から供給されたデータは、パケットに格納される。 In the network layer 12, data supplied from the application layer 11 is stored in the packet. そして、データが格納されたパケットは、ネットワーク層12において、ルーティングテーブル13を参照することにより、そのパケットの宛先(送信先)によって定まるデバイスドライバ14−1またはデバイスドライバ14−2に供給される。 Then, the packet data is stored, the network layer 12, by referring to the routing table 13, is supplied to the device driver 14-1 or device driver 14-2 determined by the destination (transmission destination) of the packet.

ここで、ルーティングテーブル13には、ネットワークに接続されている端末装置(通信装置)のアドレスと、ネットワークおよびインターネットにおける、端末装置までの経路(ゲートウェイ)を示す情報が含まれている。 Here, the routing table 13, the address of the terminal connected to the network device (communication device) in the network and the Internet, includes information indicating a route (gateway) to the terminal device. したがって、パケットの送信先である端末装置が特定されることで、ネットワークおよびインターネットにおける、端末装置までの経路が定まり、これにより、送信するパケットを処理する出力インターフェースが定まるので、パケットは、出力インターフェースに対応するデバイスドライバ14−1またはデバイスドライバ14−2に供給される。 Therefore, by the terminal apparatus which is the destination of the packet is identified, the network and the Internet, Sadamari the route to the terminal apparatus, thereby, the output interface processes the packet to be transmitted is determined, the packet, the output interface It is supplied to the device driver 14-1 or device driver 14-2 corresponds to.

デバイスドライバ14−1およびデバイスドライバ14−2は、物理的なデバイス(物理層16−1または物理層16−2)を制御し、またOS(Operating System)と、物理的なデバイス(物理層16−1または物理層16−2)との間における処理の同期を取る役割を担っている。 Device drivers 14-1 and device drivers 14-2 controls the physical device (a physical layer 16-1 or physical layer 16-2), also the OS (Operating System), a physical device (a physical layer 16 It plays a synchronizing role of processing between the -1 or physical layer 16-2).

デバイスドライバ14−1に供給されたパケットは、デバイスドライバ14−1の入力処理部31−1によって、バッファ15に格納され、記憶されて、FIFO(First In First Out)キューに配置される。 Packet supplied to the device driver 14-1, the input processing section 31-1 of the device driver 14-1 stored in the buffer 15, is stored, FIFO (First In First Out) are placed in a queue. 物理層16−1から、物理層16−1におけるパケットの送信が終了した旨の割り込み信号が、デバイスドライバ14−1に供給されると、バッファ15に格納されたパケットは、FIFOキュー上の配置の順に、デバイスドライバ14−1の出力処理部32−1によって取得され、物理層16−1に供給される。 From the physical layer 16-1, an interrupt signal indicating that transmission of a packet in the physical layer 16-1 is completed, when it is supplied to the device driver 14-1, the packet stored in the buffer 15, placed on the FIFO queue in the order of, it is acquired by the output processing section 32-1 of the device driver 14-1 is supplied to the physical layer 16-1.

物理層16−1に供給されたパケットは、物理層16−1において、通信のための電気信号に変換され、ネットワークまたはインターネットを介して、パケットの送信先である端末装置あてに送信される。 Packet supplied to the physical layer 16-1, the physical layer 16-1 is converted into an electric signal for communication via a network or the Internet, is transmitted to the terminal device addressed as the destination of the packet.

同様に、デバイスドライバ14−2に供給されたパケットは、デバイスドライバ14−2の入力処理部31−2によって、バッファ15に格納され、記憶されて、他のFIFOキューに配置される。 Similarly, packets supplied to the device driver 14-2, the input processing section 31-2 of the device driver 14-2 stored in the buffer 15, is stored, it is disposed on the other of the FIFO queue. 物理層16−2から、物理層16−2におけるパケットの送信が終了した旨の割り込み信号が、デバイスドライバ14−2に供給されると、バッファ15に格納されたパケットは、FIFOキュー上の配置の順に、デバイスドライバ14−2の出力処理部32−2によって取得され、物理層16−2に供給される。 From the physical layer 16-2, an interrupt signal indicating that transmission of a packet in the physical layer 16-2 is completed, when it is supplied to the device driver 14-2, the packet stored in the buffer 15, placed on the FIFO queue in the order of, it is acquired by the output processing section 32-2 of the device driver 14-2 is supplied to the physical layer 16-2.

物理層16−2に供給されたパケットは、物理層16−2において、電気信号に変換され、ネットワークまたはインターネットを介して、パケットの送信先である端末装置あてに送信される。 Supplied packet to the physical layer 16-2, the physical layer 16-2 is converted into an electrical signal, via a network or the Internet, it is transmitted to the terminal device addressed as the destination of the packet.

ところで、この通信装置においては、ネットワークまたはインターネットを介して、端末装置あてに送信されるパケットの送信間隔の調整などは行われていない。 Meanwhile, in the communication apparatus, via a network or the Internet, such as adjustment of the transmission interval of packets transmitted to the terminal device addressed is not performed. そのため、リアルタイムアプリケーションプログラムが、バースト転送により、アプリケーション層11からネットワーク層12にパケットを供給した場合、パケットは、物理層16−1または物理層16−2において、バースト転送により、送信先である端末装置あてに送信される。 Terminal Therefore, real-time application programs, the burst transfer, the case of supplying a packet from the application layer 11 to the network layer 12, a packet, the physical layer 16-1 or the physical layer 16-2, a burst transfer, which is the destination It is sent to the device addressed.

しかしながら、リアルタイムアプリケーションプログラムを利用する場合、遅延の少ないデータ(パケット)転送が要求されるため、ネットワークまたはインターネットにおいてデータがバースト転送される、いわゆるバーストトラフィックの発生を、送信側の通信装置において、パケットを送信する間隔を調整することによって、回避しなければならないという課題があった。 However, when using a real-time application program, since less data delay (packet) transfer is required, data is burst transfer in a network or the Internet, the development of so-called burst traffic, in the communication apparatus on the transmission side, a packet by adjusting the interval for sending, there is a problem that must be avoided.

すなわち、Sally Floyd氏が述べているように、バーストトラフィックは、各端末装置における輻輳の検知、使用帯域の減少、および使用帯域の増加の周期が同期するグローバルシンクロナイゼーションや、予想外のパケットロス、端末装置間におけるデータ転送の遅延の上昇など、多くの好ましくない事態を引き起こす要因となるため、このような事態の発生を回避するためには、送信側の通信装置(端末装置)において、トラフィック量を制御する、トラフィックシェーピングの技術が必要とされる(Sally Floyd and Van Jacobson,“Random Early Detection Gateways for Congestion Avoidance”,IEEE/ACM Transactions on Networking Vol.1 No.4,Aug,1993参照)。 That is, as said Sally Floyd has stated, burst traffic, the detection of congestion at each of the terminal devices, and global synchronization reduction in the usable band, and the period of increase in the usable band is synchronized, unexpected packet loss , and rising delay in data transfer between the terminal device, it becomes a factor that causes many undesirable situation, in order to avoid the occurrence of such a situation, in the transmitting-side communication device (terminal device), traffic controlling the amount of traffic shaping techniques are needed (Sally Floyd and Van Jacobson, "Random Early Detection Gateways for Congestion Avoidance", IEEE / ACM Transactions on Networking Vol.1 No.4, Aug, see 1993).

そこで、デバイスドライバにおいて、トラフィック量の制御を行うことも提案されているが、デバイスドライバは、ネットワークカード、またはそこで用いられているハードウェア(チップ)の種類の数だけ存在するため、デバイスドライバにトラフィックシェーピングを行う機能を直接追加すると、膨大な量の作業が必要となってしまうという問題があった。 Therefore, in the device driver, but it has also been proposed to control the traffic volume, the device driver, since the number of types of network cards, or where using its dependent hardware (chips) are present, the device driver adding the ability to perform traffic shaping directly, a huge amount of work there is a problem that becomes necessary.

この問題を解決する方法として、Alan Cox氏は、Linux(商標)のRed Hat(商標)ディストリビューションで公開したSimple Traffic Shaperにおいて、仮想の出力インターフェースを考え、対応する仮想のデバイスドライバ(以下、仮想デバイスドライバと称する)を設け、トラフィック量の制御を行う方法を提案している。 As a method for solving this problem, Alan Cox said in Simple Traffic Shaper was exposed by Red Hat (TM) distribution of Linux (TM), consider a virtual output interface, corresponding virtual device driver (hereinafter, virtual provided a device driver hereinafter) has proposed a method for controlling the traffic volume.

図2は、仮想デバイスドライバにおいて、トラフィック量の制御を行う通信装置の機能の構成を示すブロック図である。 Figure 2 is the virtual device driver, is a block diagram showing a configuration of functions of the communication device for controlling the traffic volume. なお、図中、図1における場合と対応する部分については、同一の符号を付してあり、その説明は、適宜、省略する。 Note that in the drawing, the portions corresponding to those in FIG. 1 are denoted by the same reference numerals, and description thereof will be appropriately omitted.

ネットワーク層51において、アプリケーション層11から供給されたデータは、パケットに格納され、ルーティングテーブル52を参照することにより、パケットの宛先(送信先)によって定まるインターネット上の経路を特定し、仮想デバイスドライバ53に供給される。 In the network layer 51, the data supplied from the application layer 11, stored in the packet, by referring to the routing table 52, to identify the route on the Internet defined by the destination of the packet (the destination), the virtual device driver 53 It is supplied to.

すなわち、ルーティングテーブル52は、アプリケーション層11からネットワーク層51に供給されたデータ(パケット)が、デバイスドライバ56−1またはデバイスドライバ56−2を介して送信される場合、パケットの宛先によって定まる出力インターフェースが、図示せぬ仮想出力インターフェースとなるようになされており、送信されるパケットは、仮想出力インターフェースに対応する、仮想デバイスドライバ53に供給される。 That is, the routing table 52, data supplied from the application layer 11 to the network layer 51 (packets), if transmitted via a device driver 56-1 or device driver 56-2, an output interface determined by the destination of the packet There has been made so that the virtual output interface (not shown), packets to be transmitted, corresponding to the virtual output interface, is supplied to the virtual device driver 53.

仮想デバイスドライバ53に供給されたパケットは、仮想デバイスドライバ53の入力処理部71によって、バッファ55に格納され、FIFOキューに配置される。 Packet supplied to the virtual device driver 53, the input processing unit 71 of the virtual device driver 53, stored in the buffer 55 are placed in the FIFO queue. バッファ55に格納されたパケットは、所定の時間間隔で、仮想デバイスドライバ53の出力処理部72に取得され、デバイスドライバ56−1またはデバイスドライバ56−2に供給される。 Packets stored in the buffer 55 at a predetermined time interval, is obtained in the output processing unit 72 of the virtual device driver 53, it is supplied to the device driver 56-1 or device driver 56-2.

すなわち、仮想デバイスドライバ53の出力処理部72は、所定の時間間隔で、カーネルタイマ54から、パケットを取得する旨の割り込み信号が供給されるごとに、バッファ55からパケットを取得し、取得したパケットをデバイスドライバ56−1またはデバイスドライバ56−2に供給する。 That is, the output processing unit 72 of the virtual device driver 53, at a predetermined time interval, from the kernel timer 54 every time the interrupt signal to the effect that to obtain the packet is supplied, acquires a packet from the buffer 55, and obtains packets the supplied device driver 56-1 or device driver 56-2.

デバイスドライバ56−1に供給されたパケットは、デバイスドライバ56−1の入力処理部73−1によって、バッファ55に格納される。 Packet supplied to the device driver 56-1, the input processing section 73-1 of the device driver 56-1, it is stored in the buffer 55. 物理層16−1から、物理層16−1におけるパケットの送信が終了した旨の割り込み信号が、デバイスドライバ56−1に供給されると、バッファ55に格納されたパケットは、デバイスドライバ56−1の出力処理部74−1によって取得され、物理層16−1に供給される。 From the physical layer 16-1, an interrupt signal indicating that transmission of the packet is completed at the physical layer 16-1 and supplied to the device driver 56-1, the packet stored in the buffer 55, the device driver 56-1 is obtained by the output processing unit 74-1 is supplied to the physical layer 16-1.

同様に、デバイスドライバ56−2に供給されたパケットは、デバイスドライバ56−2の入力処理部73−2によって、バッファ55に格納される。 Similarly, packets supplied to the device driver 56-2, the input processing section 73-2 of the device driver 56-2, is stored in the buffer 55. 物理層16−2から、物理層16−2におけるパケットの送信が終了した旨の割り込み信号が、デバイスドライバ56−2に供給されると、バッファ55に格納されたパケットは、デバイスドライバ56−2の出力処理部74−2によって取得され、物理層16−2に供給される。 From the physical layer 16-2, an interrupt signal indicating that transmission of the packet is completed at the physical layer 16-2 and supplied to the device driver 56-2, the packet stored in the buffer 55, the device driver 56-2 is obtained by the output processing unit 74-2 is supplied to the physical layer 16-2.

図3のフローチャートを参照して、仮想デバイスドライバ53による、パケットのエンキューの処理を説明する。 With reference to the flowchart of FIG. 3, according to the virtual device driver 53, the processing of the enqueue the packet.

仮想デバイスドライバ53は、ネットワーク層51からパケットが供給されるごとに、所定の関数を呼び出し、パケットのエンキューの処理を行う。 The virtual device driver 53, each time a packet from the network layer 51 is provided, calls a predetermined function to process the enqueue the packet.

ステップS11において、仮想デバイスドライバ53は、バッファ55に格納するパケットの最大キュー長の設定を行う。 In step S11, the virtual device driver 53, to set the maximum queue length for packets stored in the buffer 55. 例えば、ステップS11において、仮想デバイスドライバ53は、バッファ55に格納するパケットの最大キュー長Qmに“5”を設定する。 For example, in step S11, the virtual device driver 53 sets "5" to the maximum queue length Qm of packets stored in the buffer 55. ここで、最大キュー長Qmとは、バッファ55に格納することができるパケットの最大数をいう。 Here, the maximum queue length Qm, refers to the maximum number of packets that can be stored in the buffer 55. したがって、最大キュー長Qmに、“5”が設定されている場合、バッファ55には、パケットを5つまで格納することができる。 Therefore, the maximum queue length Qm, if "5" is set, the buffer 55 can store packets up to five.

ステップS12において、仮想デバイスドライバ53は、バッファ55に格納されているパケットのキュー長の設定を行う。 In step S12, the virtual device driver 53, and sets the queue length of the packet stored in the buffer 55. この場合、バッファ55にはパケットが格納されていないので、仮想デバイスドライバ53は、パケットのキュー長Qに“0”を設定する。 In this case, since the buffer 55 is not stored packets, the virtual device driver 53 sets "0" to the queue length Q of packets. ここで、キュー長Qとは、バッファ55に格納されているパケットの数をいう。 Here, the queue length Q, refers to the number of packets stored in the buffer 55.

ステップS13において、仮想デバイスドライバ53は、格納パケット番号の設定を行う。 In step S13, the virtual device driver 53, and sets the storage packet number. ここで、格納パケット番号とは、仮想デバイスドライバ53がバッファ55に格納したパケットのうち、最後に格納したパケットのパケット番号をいう。 Here, the storage packet number, the virtual device driver 53 of the packet stored in the buffer 55 refers to the packet number of the packet storing the last. 仮想デバイスドライバ53は、ネットワーク層51からパケットが供給されると、供給されたパケットに、各パケットを識別するためのパケット番号iを付す。 The virtual device driver 53, a packet from the network layer 51 is supplied, the supplied packet, marked with the packet number i for identifying each packet. パケット番号iは、“1”から昇順に付される。 Packet number i is assigned in ascending order from "1". なお、パケット番号iが“0”である場合、仮想デバイスドライバ53には、まだ、パケットが供給されていないことを示している。 In the case the packet number i is "0", the virtual device driver 53, yet, the packet indicates that it has not been supplied.

したがって、この場合、バッファ55にはパケットが格納されていないので、仮想デバイスドライバ53は、格納パケット番号に“0”を設定する。 Therefore, in this case, since the buffer 55 is not stored packets, the virtual device driver 53 sets "0" to the storage packet number.

ステップS14において、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51からパケットを取得する。 In step S14, the input processing unit 71 of the virtual device driver 53 acquires a packet from the network layer 51.

ステップS15において、仮想デバイスドライバ53の入力処理部71は、キュー長Qが、最大キュー長Qmよりも小さいか否かを判定する。 In step S15, the input processing unit 71 of the virtual device driver 53, the queue length Q is determined whether less than the maximum queue length Qm. ここで、仮想デバイスドライバ53の入力処理部71は、式(1)を計算し、キュー長Qおよび最大キュー長Qmが、式(1)を満たすか否かを判定することにより、キュー長Qが、最大キュー長Qmよりも小さい否かを判定する。 Here, the input processing unit 71 of the virtual device driver 53, by then computing the formula (1), the queue length Q and the maximum queue length Qm is, to determine whether they meet the formula (1), the queue length Q but it determines less not than the maximum queue length Qm.

Q<Qm ・・・(1) Q <Qm ··· (1)

したがって、例えば、キュー長Qが“1”でああり、最大キュー長Qmが“5”である場合、キュー長Qおよび最大キュー長Qmは、式(1)を満たすので、キュー長Qが、最大キュー長Qmよりも小さいと判定される。 Thus, for example, there queue length Q is "1" der, when the maximum queue length Qm is "5", the queue length Q and the maximum queue length Qm, so satisfying the equation (1), the queue length Q is, It is determined to be smaller than the maximum queue length Qm.

ステップS15において、キュー長Qが、最大キュー長Qmよりも小さくないと判定された場合、バッファ55には、これ以上、パケットを格納することができないので、ステップS16に進み、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から取得したパケットを破棄し、処理は、ステップS14に戻る。 In step S15, the queue length Q is, when it is determined that not less than the maximum queue length Qm, the buffer 55, further, it is not possible to store the packet, the process proceeds to step S16, the virtual device driver 53 input processing unit 71 discards the packet obtained from the network layer 51, and the process returns to step S14.

一方、ステップS15において、キュー長Qが、最大キュー長Qmよりも小さいと判定された場合、バッファ55にパケットを格納することができるので、ステップS17に進み、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から供給されたパケットに、パケット番号iを付す。 On the other hand, in step S15, the queue length Q is, if it is determined to be smaller than the maximum queue length Qm, it is possible to store the packet in the buffer 55, the process proceeds to step S17, the input processing unit of the virtual device driver 53 71 is the packet supplied from the network layer 51, subjecting the packet number i.

ステップS18において、仮想デバイスドライバ53の入力処理部71は、送信時刻算出の処理を行う。 In step S18, the input processing unit 71 of the virtual device driver 53 performs processing of transmission time calculation. なお、送信時刻算出の処理の詳細は、後述するが、送信時刻算出の処理において、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から供給されたパケットの送信時刻を算出する。 The details of the processing of the transmission time calculating, will be described later, in the process of the transmission time calculation, input processing unit 71 of the virtual device driver 53 calculates the transmission time of the packets supplied from the network layer 51. ここで、パケットの送信時刻とは、パケットが物理層16−1または物理層16−2において、送信先の端末装置に送信される時刻をいう。 Here, the transmission time of the packet, the packet in the physical layer 16-1 or the physical layer 16-2, refers to a time to be sent to the destination terminal device.

ステップS19において、仮想デバイスドライバ53の入力処理部71は、格納パケット番号をインクリメントする。 In step S19, the input processing unit 71 of the virtual device driver 53 increments the stored packet number.

ステップS20において、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から供給されたパケットをエンキューする。 In step S20, the input processing unit 71 of the virtual device driver 53 enqueues the packet supplied from the network layer 51. ここで、エンキューとは、パケットをFIFOキューに配置する処理(キューイング処理)をいう。 Here, the enqueue refers process of placing a packet into FIFO queue (queuing processing). すなわち、ステップS20において、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から供給されたパケットをバッファ55に供給する。 That is, in step S20, the input processing unit 71 of the virtual device driver 53 supplies a packet supplied from the network layer 51 to the buffer 55. そして、仮想デバイスドライバ53から供給されたパケットは、バッファ55に記憶され、FIFOキューに配置される。 The packet supplied from the virtual device driver 53 stored in the buffer 55 are placed in the FIFO queue.

ステップS21において、仮想デバイスドライバ53の入力処理部71は、キュー長Qをインクリメントし、処理は、ステップS14に戻り、上述した処理を繰り返す。 In step S21, the input processing unit 71 of the virtual device driver 53 increments the queue length Q, the process returns to step S14, and repeats the above processing.

図4のフローチャートを参照して、スケジューリングアルゴリズムとしてLeaky Bucketアルゴリズム(JSTurner,“New Directions in Communications(or Which Way to the Information Age)”,IEEE Communication Magazine Vol.24 pp.8-15,Oct,1986参照)が用いられている場合における、図3のステップS18の処理に対応する送信時刻算出の処理を説明する。 With reference to the flowchart of FIG. 4, Leaky Bucket algorithm (JSTurner as the scheduling algorithm, "New Directions in Communications (or Which Way to the Information Age)", IEEE Communication Magazine Vol.24 pp.8-15, Oct, 1986 reference ) it is in the case which has been used, the processing of the transmission time calculating corresponding to the process of step S18 in FIG.

ステップS41において、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から供給されたパケットのパケット番号iが、“0”であるか否かを判定する。 In step S41, the input processing unit 71 of the virtual device driver 53, the packet number i of the packet supplied from the network layer 51, determines whether or not "0".

ステップS41において、ネットワーク層51から供給されたパケットのパケット番号iが、“0”でないと判定された場合、ステップS42に進み、仮想デバイスドライバ53の入力処理部71は、ネットワーク層51から供給されたパケットの送信時刻を算出する。 In step S41, the packet number i of the packet supplied from the network layer 51, "0" not equal when it is determined, the process proceeds to step S42, the input processing unit 71 of the virtual device driver 53 is supplied from the network layer 51 to calculate the transmission time of the packet. ここで、仮想デバイスドライバ53の入力処理部71は、式(2)を計算することにより、パケットの送信時刻を算出する。 Here, the input processing unit 71 of the virtual device driver 53, by calculating equation (2), calculates the transmission time of the packet.

(Ti)=(T(i−1))+(L(i−1))/r ・・・(2) (Ti) = (T (i-1)) + (L (i-1)) / r ··· (2)

ここで、Tiは、パケット番号が“i”であるパケットの送信時刻であり、T(i−1)は、パケット番号が“i−1”であるパケットの送信時刻である。 Here, Ti is the transmission time of the packet is a packet number "i", T (i-1) is the transmission time of the packet is a packet number "i-1". また、L(i−1)は、パケット番号が“i−1”であるパケットの大きさ(サイズ(データ量))であり、rは、予め定められている、通信装置が送信するパケットの送信速度(以下、シェーピングレートと称する)である。 Moreover, L (i-1) is the size of the packet is a packet number "i-1" (size (data amount)), r is the packet are predetermined, communication device transmits transmission rate (hereinafter, shaping rate and referred).

ステップS43において、仮想デバイスドライバ53の入力処理部71は、キュー長Qが“0”であるか否かを判定する。 In step S43, the input processing unit 71 of the virtual device driver 53 determines whether the queue length Q is "0". ステップS43において、キュー長Qが“0”でないと判定された場合、ステップS45に進む。 In step S43, if the queue length Q is determined not "0", the process proceeds to step S45.

一方、ステップS43において、キュー長Qが“0”であると判定された場合、ステップS44に進み、仮想デバイスドライバ53の入力処理部71は、算出した送信時刻Tiが、現在時刻よりも後の時刻であるか否かを判定する。 On the other hand, in step S43, if the queue length Q is determined to be "0", the process proceeds to step S44, the input processing unit 71 of the virtual device driver 53, the calculated transmission time Ti is later than the current time It determines whether or not it is time.

ステップS44において、算出した送信時刻Tiが、現在時刻よりも後の時刻であると判定された場合、ステップS45に進み、仮想デバイスドライバ53の入力処理部71は、パケット番号が“i”であるパケットの送信時刻に、算出した送信時刻Tiを設定し、処理は終了する。 In step S44, the calculated transmission time Ti is, when it is determined that a time after the current time, the process proceeds to step S45, the input processing unit 71 of the virtual device driver 53, the packet number is "i" the transmission time of the packet, and sets the calculated transmission time Ti, the process ends.

ステップS44において、算出した送信時刻Tiが、現在時刻よりも後の時刻でないと判定された場合、算出した送信時刻Tiは、すでに、過ぎてしまっているので、ステップS46に進む。 In step S44, the calculated transmission time Ti is, when it is determined that it is not time later than the current time, the calculated transmission time Ti is already since has passed, the process proceeds to step S46.

また、ステップS41において、ネットワーク層51から供給されたパケットのパケット番号iが、“0”であると判定された場合、ステップS46に進み、仮想デバイスドライバ53の入力処理部71は、パケット番号が“i”であるパケットの送信時刻に、現在時刻を設定し、処理は終了する。 Further, in step S41, if the packet number i of the packet supplied from the network layer 51 is determined to be "0", the process proceeds to step S46, the input processing unit 71 of the virtual device driver 53, packet number the transmission time of the "i" is a packet, and set the current time, the process ends.

次に、図5のフローチャートを参照して、仮想デバイスドライバ53による、パケットのデキューの処理を説明する。 Next, with reference to the flowchart of FIG. 5, by the virtual device driver 53, the processing of the dequeue packet.

仮想デバイスドライバ53は、カーネルタイマ54からパケットを取得する旨の割り込み信号が供給されるごとに、所定の関数を呼び出し、パケットのデキューの処理を行う。 The virtual device driver 53, each time the interrupt signal to the effect that to obtain the packet from the kernel timer 54 is supplied, calling a predetermined function to process the dequeue packet.

ステップS61において、仮想デバイスドライバ53は、送信パケット番号の設定を行う。 In step S61, the virtual device driver 53 performs setting of the transmission packet number. ここで、送信パケット番号とは、物理層16−1または物理層16−2において、送信先である端末装置に送信されたパケットのうち、最後に送信されたパケットのパケット番号をいう。 Here, the transmission packet number, the physical layer 16-1 or the physical layer 16-2, among which is transmitted to the terminal device which is the destination packet refers to a packet number of the last transmitted packet. 換言すれば、送信パケット番号とは、物理層16−1または物理層16−2において、送信先である端末装置に送信されたパケットのパケット番号のうち、最も大きいパケット番号をいう。 In other words, the transmission packet number, the physical layer 16-1 or the physical layer 16-2, among the packet numbers of the transmitted to the terminal device which is the destination packet, refers to the highest packet number. この場合、まだパケットが送信されていないので、仮想デバイスドライバ53は、送信パケット番号に“0”を設定する。 In this case, it has not been transmitted yet packet, the virtual device driver 53 sets "0" in the transmit packet number. なお、送信パケット番号が“0”である場合、まだ、送信されたパケットがないことを示している。 Incidentally, when the transmission packet number is "0", still shows no packets sent.

ステップS62において、仮想デバイスドライバ53の出力処理部72は、カーネルタイマ54から割り込み信号が供給されたか否かを判定する。 In step S62, the output processing unit 72 of the virtual device driver 53 determines whether the interrupt signal from the kernel timer 54 is supplied. ステップS62において、割り込み信号が供給されていないと判定された場合、割り込み信号が供給されるまでステップS62の処理が繰り返される。 In step S62, if the interrupt signal is determined to not supplied, the processing of step S62 until an interrupt signal is supplied is repeated.

ステップS62において、割り込み信号が供給されたと判定された場合、ステップS63に進み、仮想デバイスドライバ53の出力処理部72は、現在時刻が、送信パケット番号と同じパケット番号のパケットに付された送信時刻を過ぎたか否かを判定する。 In step S62, if the interrupt signal is determined to have been supplied, the process proceeds to step S63, the output processing unit 72 of the virtual device driver 53, current time, transmission time that is attached to the packet of the same packet number and the transmission packet number It determines whether or not the past. ステップS63において、現在時刻が、送信時刻を過ぎたと判定された場合、パケットを送信するので、ステップS64に進み、仮想デバイスドライバ53の出力処理部72は、送信時刻となったパケットをデキューする。 In step S63, the current time, if it is determined that only the transmission time, and transmits the packet, the process proceeds to step S64, the output processing unit 72 of the virtual device driver 53, dequeues became transmission time packet.

ここで、パケットのデキューとは、バッファ55に格納されているパケットであって、送信パケット番号と同じパケット番号のパケットを取得し、デバイスドライバ56−1またはデバイスドライバ56−2に供給(出力)する処理をいう。 Here, the dequeued packet, a packet stored in the buffer 55, obtains the packet with the same packet number and the transmission packet number, supplied to the device driver 56-1 or device driver 56-2 (output) a process to say. すなわち、ステップS64において、仮想デバイスドライバ53の出力処理部72は、FIFOキューの先頭(出口側)に配置されている送信時刻となったパケットを、バッファ55から取得し、取得したパケットをデバイスドライバ56−1またはデバイスドライバ56−2に供給する。 That is, in step S64, the output processing unit 72 of the virtual device driver 53, a packet that transmission time is placed at the top (outlet side) of the FIFO queue, retrieves from the buffer 55, the acquired packet to the device driver 56-1 or supplied to the device driver 56-2.

ステップS65において、仮想デバイスドライバ53の出力処理部72は、送信パケット番号をインクリメントする。 In step S65, the output processing unit 72 of the virtual device driver 53 increments the transmit packet number.

ステップS66において、仮想デバイスドライバ53の出力処理部72は、キュー長Qをデクリメントし、処理はステップS62に戻る。 In step S66, the output processing unit 72 of the virtual device driver 53, it decrements the queue length Q, the process the procedure goes back to step S62.

一方、ステップS63において、現在時刻が、送信時刻を過ぎていないと判定された場合、パケットを送信しないので、ステップS62に戻り、上述した処理を繰り返す。 On the other hand, in step S63, the current time, if it is determined not past the transmission time, does not transmit the packet, the process returns to step S62, and repeats the above processing.

ところで、カーネルタイマ54のタイマイベントの発生周期は、通常100Hzであるので、カーネルタイマ54は、10msecごとに割り込み信号を仮想デバイスドライバ53に供給する。 Meanwhile, generation cycle of the timer event kernel timer 54 is because it is usually 100 Hz, the kernel timer 54 supplies an interrupt signal to the virtual device driver 53 every 10 msec. したがって、トラフィックシェーピングの制御の粒度は、10msecとなる。 Therefore, the granularity of control of traffic shaping, the 10 msec.

例えば、パケットの大きさ(パケットサイズ)が固定長で1Kbyteであるパケットを、10Mbpsのシェーピングレートで送信した場合、通信装置は、カーネルタイマ54が、割り込み信号を仮想デバイスドライバ53に供給するごとに、100Kbitのデータを送信することになる。 For example, the size of the packet a packet (packet size) is 1Kbyte a fixed length if it is transmitted at a shaping rate of 10Mbps, the communication device, the kernel timer 54 is, for each supply an interrupt signal to the virtual device driver 53 It will transmit the data of 100 kbit. すなわち、100Kbitのデータは、パケットサイズが1Kbyteであるパケットの約12個分に相当するので、通信装置は、カーネルタイマ54が、割り込み信号を仮想デバイスドライバ53に供給するごとに、12個のパケットをバースト転送することになる。 That is, the data of 100Kbit, because packet size is equivalent to about 12 pieces of packets are 1 Kbyte, communication devices, each supplied kernel timer 54, an interrupt signal to the virtual device driver 53, 12 packets It will burst transfer.

また、High-resolution timerでは、インテル社のペンティアム(登録商標)プロセッサ上のAPIC(Advanced Programmable Interrupt Controller)を用いて、トラフィックシェーピングを行っている(Luca Abeni,Ashvin Goel,Charles Krasic,Jim Snow and Jonathan Walpole,“A Measurement-Based Analysis of the Real-Time Performance of Linux”,IEEE RTAS 02,Sep,2002参照)。 Also, the High-resolution timer, using Intel Pentium on (TM) processor APIC a (Advanced Programmable Interrupt Controller), is carried out traffic shaping (Luca Abeni, Ashvin Goel, Charles Krasic, Jim Snow and Jonathan Walpole, "A Measurement-Based Analysis of the Real-Time Performance of Linux", see IEEE RTAS 02, Sep, 2002). このAPICは、OSに任意の時間経過後にハードウェア割り込みを発生させることにより、パケットの送信間隔を調整している。 The APIC is by generating a hardware interrupt after any time OS, which adjusts the transmission interval of the packet.

さらに、また、ATM(Asynchronous Transfer Mode)方式の通信網において、ハードウェアによるトラフィックシェーピングを行う通信装置もある。 Further, also in the communication network for an ATM (Asynchronous Transfer Mode) system, there is also a communication device that performs traffic shaping hardware.

さらに、また、ネットワークカード上のプロセッサが、トラフィックシェーピングを行う通信装置もある(例えば、特許文献1参照)。 Further, also, the processor on the network card, there is also a communication apparatus for performing traffic shaping (e.g., see Patent Document 1).

特開2001−211207号公報 JP 2001-211207 JP

しかしながら、上述した技術においては、トラフィックシェーピングを行う専用のハードウェアを用いることなく、ソフトウェア制御により、パケットの送信間隔を制御することはできなかった。 However, in the above technique, without using a dedicated hardware which performs the traffic shaping, under software control, it was not possible to control the transmission interval of the packet.

また、ハードウェアによるパケットの送信間隔の制御は、OSに対する負荷が大きいため、高頻度での使用には適していないという課題があった。 The control of the transmission interval of packets by hardware, since load on the OS is large, there is a problem that they are not suitable for use in high frequency.

したがって、パケット伝送の遅延ゆらぎ(ジッタ)を減少させ、遅延の少ないデータ転送を実現することができなかった。 Therefore, reducing delay jitter of packet transmission (the jitter), it has not been possible to achieve less data transfer delay.

本発明は、このような状況に鑑みてなされたものであり、ソフトウェア制御によって、より小さい負荷で、かつより短い時間間隔でパケットの送信を制御できるようにするものである。 The present invention has been made in view of such circumstances, the software control, a smaller load, and is intended to be able to control the transmission of packets in a shorter time interval. また、ソフトウェア制御によって、より短い時間間隔で処理を制御することができるようにするものである。 Further, the software control, is to be able to control the process in a shorter time interval.

本発明の送信装置は、要求手段からパケットの送信が要求された場合、バッファに格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かを判定する、プログラムの実行により実現される判定手段と、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求手段から送信が要求されたパケットをバッファに格納し、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求手段から送信が要求されたパケットをバッファに格納しないように、バッファへのパケットの格納を制御する、プログラムの実行により実現される格納制御手段と、要求手段からパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケットの、ハ Transmitting apparatus of the present invention, when transmitting from the requesting means of the packet is requested, the number of packets stored in the buffer is equal to or less than the first threshold value is smaller than the second threshold value, If the determination means is realized by execution of the program, the number of packets stored in the buffer is equal to or less than the second threshold value, and stores the transmission from the request means is requested packet in a buffer, the buffer the number of packets stored if it is determined to exceed the second threshold value, the transmission from the request means is requested packet not to store in the buffer, for controlling the storage of packets to buffer, and storage control means implemented by executing a program, when a transmission from the request means of the packet is requested, based on the queue, the packet stored in the buffer, c ドウェアによるパケットの送信を制御する制御プログラムへの出力を制御する、プログラムの実行により実現される出力制御手段とを備えることを特徴とする。 It controls the output of the control program for controlling the transmission of a packet by adware, characterized in that it comprises an output control means which is realized by executing the program.

出力制御手段は、要求手段からパケットの送信が要求された場合、送信する時刻となったパケットを、バッファから取得し、取得したパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御するようにすることができる。 Output control means, if transmission of the packet is requested from the request unit, the became time to transmit a packet, retrieves from the buffer, the acquired packet, output to the control program for controlling the transmission of packets by hardware It may be adapted to control the.

出力制御手段は、予め定められた所定の時間間隔で割り込み処理が要求された場合、送信する時刻となったパケットを、バッファから取得し、取得したパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御するようにすることができる。 Output control means, when the interrupt processing is requested at a predetermined time interval predetermined to become the time to transmit a packet, retrieves from the buffer, the acquired packet, and controls the transmission of packets by hardware It may be adapted to control the output to the control program.

本発明の送信方法は、パケットの送信を要求する要求ステップにおいてパケットの送信が要求された場合、バッファに格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップと、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納し、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納しないように、バッファへのパケットの格納を制御する格納制御ステップと、要求ステップにおいてパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケットの、ハード Or transmission method of the present invention, when transmission of the packet in the request step of requesting transmission of the packet is requested, the number of packets stored in the buffer is equal to or less than a first threshold value smaller than the first threshold value storing a determination step of whether, if the number of packets stored in the buffer is determined to be smaller than the second threshold value, and stores the packet transmission has been requested in the request step in the buffer, the buffer If the number of packets being is determined to exceed the second threshold, the packet transmission has been requested in the request step not to store in the buffer, storing control step of controlling storage of packets in the buffer If, when the transmission of the packet is requested in the request step, based on the queue, the packet stored in the buffer, hard ェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップとを含むことを特徴とする。 Characterized in that it comprises an output control step of controlling the output of the control program for controlling the transmission of a packet by E A.

本発明の記録媒体のプログラムは、パケットの送信を要求する要求ステップにおいてパケットの送信が要求された場合、バッファに格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップと、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納し、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納しないように、バッファへのパケットの格納を制御する格納制御ステップと、要求ステップにおいてパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケッ A program of a recording medium of the present invention, when the transmission of the packet is requested in the request step of requesting transmission of a packet, the number of packets stored in the buffer, the following first threshold is smaller than the second threshold value of whether determination step of determining whether, when the number of packets stored in the buffer is determined to be smaller than the second threshold value, and stores the transmission in the request step is requested packet in a buffer, the buffer If the number of packets stored is determined to exceed the second threshold, the packet transmission has been requested in the request step not to store in the buffer, for controlling the storage of packets to buffer storage in a control step, if the transmission of the packet is requested in the request step, based on the queue, are stored in the buffer packet の、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップとを含むことを特徴とする。 Of, characterized in that it comprises an output control step of controlling the output of the control program for controlling the transmission of packets by the hardware.

本発明のプログラムは、パケットの送信を要求する要求ステップにおいてパケットの送信が要求された場合、バッファに格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップと、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納し、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納しないように、バッファへのパケットの格納を制御する格納制御ステップと、要求ステップにおいてパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケットの、ハー Program of the present invention, when transmission of the packet in the request step of requesting transmission of the packet is requested, whether the number of packets stored in the buffer is equal to or less than a first threshold value smaller than the first threshold value a determination step of determining, when the number of packets stored in the buffer is determined to be smaller than the second threshold value, and stores the transmission in the request step is requested packet in a buffer, stored in the buffer If you number of packets which have been determined to exceed the second threshold, the packet transmission has been requested in the request step not to store in the buffer, and storage control step of controlling storage of packets in the buffer If the transmission of the packet is requested in the request step, based on the queue, the packet stored in the buffer, hard ウェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップとをコンピュータに実行させることを特徴とする。 Characterized in that to execute an output control step of controlling the output of the control program for controlling the transmission of a packet to the computer by wear.

送信装置は、独立した装置であってもよいし、通信装置の送信処理を行うブロックであってもよい。 Transmitting device may be an independent device, or may be a block that performs transmission processing of the communication device.

本発明の制御装置は、処理の実行を要求し、要求した処理が実行されなかった場合、繰り返し同じ処理の実行を要求する、プログラムの実行により実現される要求手段と、要求手段から処理の実行が要求された場合、要求手段に継続して処理の実行を要求させるように、要求された処理の実行を制御する、プログラムの実行により実現される第1の実行制御手段と、要求手段から処理の実行が要求された場合、他の処理の実行を制御する、プログラムの実行により実現される第2の実行制御手段とを備えることを特徴とする。 Control device of the present invention, requests execution of a process, when the requested processing has not been executed, repeatedly requesting the execution of the same processing, a request unit realized by executing a program, execution requesting means of the processing If There is requested, continue to the requesting means so as to request the execution of a process, to control the execution of the requested processing, a first execution control means is realized by execution of the program, the process from the request means If the execution is requested, and controls the execution of other processes, characterized in that it comprises a second execution control means is realized by execution of the program.

本発明の送信装置および方法、記録媒体、並びにプログラムにおいては、要求手段からパケットの送信が要求された場合、バッファに格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かが判定され、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求手段から送信が要求されたパケットがバッファに格納され、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求手段から送信が要求されたパケットがバッファに格納されないように、バッファへのパケットの格納が制御され、要求手段からパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制 Transmitting apparatus and method of the present invention, a recording medium, and the program, if the transmission of the packet is requested from the request unit, the number of packets stored in the buffer, less than or equal to a first threshold is smaller than the second threshold value it is determined whether or not If the number of packets stored in the buffer is determined to be smaller than the second threshold value, a packet transmitted from the requesting unit is requested is stored in the buffer, buffered If the number of which packets are is determined to exceed the second threshold value, so that packets sent from the requesting unit is requested is not stored in the buffer, stores the packet in the buffer is controlled, the request means If the transmission of the packet is requested from, based on the queue, the packet stored in the buffer, to control the transmission of packets by hardware constraints プログラムへの出力が制御される。 Output to the program is controlled.

本発明の制御装置においては、処理の実行が要求され、要求された処理が実行されなかった場合、繰り返し同じ処理の実行が要求され、要求手段から処理の実行が要求された場合、要求手段に継続して処理の実行を要求させるように、要求された処理の実行が制御され、要求手段から処理の実行が要求された場合、他の処理の実行が制御される。 In the control apparatus of the present invention, execution of the processing is requested, if the requested processing has not been performed, is repeatedly requested execution of the same process, if the execution from the request means of the processing is requested, the request means so as to request execution of continuous processing, it is controlled execution of the requested processing, if performed from the request means of the processing is requested, the execution of the other processing is controlled.

ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。 Network and is at least two devices are connected, from one device to another, means a mechanism that allow the transmission of information. ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。 Devices communicating via the network may be independent apparatuses each other or may be internal blocks making up one device.

また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。 Further, communication may, of course wireless communication and wired communication, communication and radio communication and wire communication are mixed, i.e., at a certain interval wireless communication is performed, be as wired communication may be performed in another section and it may be. さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。 Furthermore, communication from one device to another is performed in wired communication, communication to device from another device may be such as is done in wireless communications.

本発明によれば、データを送信することができる。 According to the present invention, it is possible to transmit the data. また、本発明によれば、ソフトウェア制御によって、より小さい負荷で、かつより短い時間間隔でパケットの送信を制御することができる。 Further, according to the present invention, by software control, a smaller load, and can control the transmission of packets in a shorter time interval. さらに、また、本発明によれば、ソフトウェア制御によって、より短い時間間隔で処理を制御することができる。 Furthermore, also according to the present invention, the software control, it is possible to control the process in a shorter time interval.

以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。 Before describing an embodiment of the present invention below, the invention described herein, the correspondence between the embodiment of the invention, as follows. この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。 This description is intended to assure that embodiments supporting the invention described herein are described herein. 従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。 Thus have been described in the embodiments of the invention, as corresponding to the invention, herein even if the embodiments are not described, that matter, the embodiments thereof, the It does not mean that the embodiment does not correspond to the invention. 逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。 Conversely, even if an element is described herein as an embodiment corresponding to an invention, the example in question, also meant to be one which does not correspond to the invention other than that invention Absent.

さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。 Furthermore, this description should not be construed as restricting that all the inventions described herein. 換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。 That is, the description is the invention described herein, the presence of the invention which is not claimed in this application, i.e., future may be claimed by a divisional application, through amendments of the added invention It does not deny the presence.

請求項1に記載の送信装置は、要求手段(例えば、図7のネットワーク層172において実行されるプログラム)からパケットの送信が要求された場合、バッファ(例えば、図7のバッファ176)に格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かを判定する、プログラムの実行により実現される判定手段(例えば、図8の判定部232)と、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求手段から送信が要求されたパケットをバッファに格納し、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求手段から送信が要求されたパケットをバッファに格納しないように、バッファへのパケットの格納を制御する、プログラム Transmitting apparatus according to claim 1, requesting means (for example, a program to be executed in the network layer 172 of FIG. 7) if the transmission of the packet is requested from, stored in the buffer (e.g., buffer 176 in FIG. 7) the number of that packet, and equal to or smaller than the first threshold value is smaller than the second threshold value, the determination means is realized by execution of the program (for example, the determination unit 232 of FIG. 8), the buffer If the number of packets stored is determined to be smaller than the second threshold value, and stores the transmission from the request means is requested packet in a buffer, the number of packets stored in the buffer is a second threshold value If it is determined to exceed the the transmission from the request means is requested packet not to store in the buffer, for controlling the storage of packet into the buffer, the program 実行により実現される格納制御手段(例えば、図8の入力制御部231)と、要求手段からパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する、プログラムの実行により実現される出力制御手段(例えば、図8の出力制御部236)とを備えることを特徴とする。 And storage control means is realized by execution (e.g., input control unit 231 of FIG. 8), if the transmission of the packet is requested from the request unit, based on the queue, the packet stored in the buffer, packet by hardware controls the output of the control program for controlling the transmission output control means is realized by execution of the program (e.g., the output control unit 236 of FIG. 8), characterized in that it comprises a.

請求項2に記載の送信装置は、出力制御手段(例えば、図8の出力制御部236)は、要求手段(例えば、図7のネットワーク層172において実行されるプログラム)からパケットの送信が要求された場合、送信する時刻となったパケットを、バッファから取得し、取得したパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御するようにすることができる。 Transmitting apparatus according to claim 2, the output control means (e.g., the output control unit 236 of FIG. 8), the request means (e.g., a program to be executed in the network layer 172 of FIG. 7) is transmitted from the packet is requested It was the case, was a time to transmit a packet, retrieves from the buffer, the acquired packet, may be adapted to control the output to the control program for controlling the transmission of packets by the hardware.

請求項3に記載の送信装置は、出力制御手段(例えば、図8の出力制御部236)は、予め定められた所定の時間間隔で割り込み処理が要求された場合、送信する時刻となったパケットを、バッファから取得し、取得したパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御するようにすることができる。 Packet transmission apparatus according to claim 3, the output control means (e.g., the output control unit 236 of FIG. 8), when the interrupt processing is requested at a predetermined time interval predetermined became time to send the, obtained from the buffer, the acquired packet, may be adapted to control the output to the control program for controlling the transmission of packets by the hardware.

請求項4に記載の送信方法は、パケットの送信を要求する要求ステップ(例えば、図7のネットワーク層172において実行されるプログラムが、入力要求信号を仮想デバイスドライバ174に供給する処理)においてパケットの送信が要求された場合、バッファ(例えば、図7のバッファ176)に格納されているパケットの数が、第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップ(例えば、図9のステップS85の処理)と、バッファに格納されているパケットの数が第2の閾値以下であると判定された場合、要求ステップにおいて送信が要求されたパケットをバッファに格納し、バッファに格納されているパケットの数が第2の閾値を超えていると判定された場合、要求ステップにおいて送信が要求されたパ The transmission method according to claim 4, requesting step of requesting transmission of packet (e.g., a program to be executed in the network layer 172 of FIG. 7, the input request signal processing is supplied to the virtual device driver 174) of the packets in If the transmission is requested, a buffer (e.g., buffer 176 in FIG. 7) the number of packets stored in the, determining whether or not it is less than a first threshold value smaller than the second threshold value (e.g. , the processing in step S85) in FIG. 9, is stored if the number of packets stored in the buffer is equal to or less than a second threshold, the transmission in the request step is requested packet in a buffer, the buffer If the number of packets stored in is determined to exceed the second threshold value, Pa where transmission in the request step is requested ットをバッファに格納しないように、バッファへのパケットの格納を制御する格納制御ステップ(例えば、図9のステップS89の処理またはステップS92の処理)と、要求ステップにおいてパケットの送信が要求された場合、キューに基づき、バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップ(例えば、図11のステップS134の処理)とを含むことを特徴とする。 The Tsu bets not to store in the buffer, storing control step of controlling storage of packets in the buffer (e.g., processing of the processing or step S92 in step S89 of FIG. 9) and the transmission of the packet is requested in the request step If, based on the queue, the packet stored in the buffer, the output control step of controlling the output of the control program for controlling the transmission of packets by hardware (for example, step S134 in FIG. 11) and to include the features.

なお、請求項5に記載の記録媒体および請求項6に記載のプログラムも、上述した請求項4に記載の送信方法と基本的に同様の処理であるため、繰り返しになるのでその説明は省略する。 Since the program according to the recording medium and claim 6 according to claim 5 is also transmitting method basically the same processing as claimed in claim 4 mentioned above, a duplicated explanation thereof is omitted herein .

請求項7に記載の制御装置は、処理の実行を要求し、要求した処理が実行されなかった場合、繰り返し同じ処理の実行を要求する、プログラムの実行により実現される要求手段(例えば、図7のネットワーク層172において実行されるプログラム)と、要求手段から処理の実行が要求された場合、要求手段に継続して処理の実行を要求させるように、要求された処理の実行を制御する、プログラムの実行により実現される第1の実行制御手段(例えば、図8の入力処理部211)と、要求手段から処理の実行が要求された場合、他の処理の実行を制御する、プログラムの実行により実現される第2の実行制御手段(例えば、図8の出力処理部214)とを備えることを特徴とする。 The control device according to claim 7, requests execution of a process, when the requested processing has not been executed, repeatedly requesting the execution of the same processing, the request means is realized by execution of the program (e.g., Fig. 7 with a program) to be executed at the network layer 172, if the execution from the request means of the processing is requested, continue to the requesting means so as to request the execution of a process, to control the execution of the requested processing, the program the first execution control means is realized by execution (e.g., input processing unit 211 in FIG. 8) and, when the execution from the request means of the processing is requested, and controls the execution of other processes by executing the program the second execution control means implemented (e.g., the output processing unit 214 of FIG. 8), characterized in that it comprises a.

本発明は、例えば、インターネット電話、遠隔テレビ会議システム、ライブ映像ストリーミング配信システム、またはテレビ電話などのリアルタイムにストリーミングデータを伝送する通信システムに適用できる。 The present invention is, for example, Internet telephone, can be applied to a remote video conference system, live video streaming system or communication system for transmitting streaming data in real time, such as video phone.

以下、図を参照して、本発明を適用した実施の形態について説明する。 Referring to FIG., A description will be given of an embodiment according to the present invention.

図6は、本発明を適用した通信装置の構成の例を示すブロック図である。 Figure 6 is a block diagram showing an example of the configuration of the applied communication apparatus of the present invention.

CPU(Central Processing Unit)101は、ROM(Read Only Memory)102、または記録部108に記録されているプログラムに従って各種の処理を実行する。 CPU (Central Processing Unit) 101 executes various processes in accordance with ROM (Read Only Memory) 102 or a program recorded in the recording unit 108. RAM(Random Access Memory)103には、CPU101が実行するプログラムやデータなどが適宜記憶される。 The RAM (Random Access Memory) 103, programs and data CPU101 executes are stored appropriately. これらのCPU101、ROM102、およびRAM103は、バス104により相互に接続されている。 These CPU 101, ROM 102, and RAM103 are connected to each other via a bus 104.

CPU101にはまた、バス104を介して入出力インターフェース105が接続されている。 Also the CPU 101, output interface 105 is connected via a bus 104. 入出力インターフェース105には、キーボード、マウス、スイッチなどよりなる入力部106、ディスプレイ、スピーカ、ランプなどよりなる出力部107が接続されている。 Output interface 105, a keyboard, a mouse, an input unit 106 composed of a switch, a display, a speaker, an output unit 107 including a lamp is connected. CPU101は、入力部106から入力される指令に対応して各種の処理を実行する。 CPU101, in response to instructions input from the input unit 106 to execute various processes.

入出力インターフェース105に接続されている記録部108は、例えばハードディスクなどで構成され、CPU101が実行するプログラムや各種のデータを記録する。 Output interface 105 recording unit 108 connected to is constituted by, for example, a hard disk, and records programs and various data CPU101 executes. 通信部109は、例えば、ネットワークカードなどからなり、インターネット、その他のネットワークなどの通信網を介して、外部の装置と通信する。 The communication unit 109 includes, for example, a network card, the Internet, via a communication network such as other network, communicates with an external device.

また、通信部109は、通信網を介してプログラムを取得し、記録部108に記録させるようにしてもよい。 The communication unit 109 acquires the program via a communication network, it may be made to the recording unit 108.

入出力インターフェース105に接続されているドライブ110は、磁気ディスク131、光ディスク132、光磁気ディスク133、或いは半導体メモリ134などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。 Drive 110 connected to the output interface 105, magnetic disk 131, optical disk 132, a magneto-optical disk 133, or when the semiconductor memory 134 is attached to the drive 30, the program or data recorded thereon to get the like. 取得されたプログラムやデータは、必要に応じて記録部108に転送され、記録される。 The acquired program and data are transferred to the recording unit 108 if necessary and recorded.

図7は、プログラムを実行するCPU101の機能の構成を示すブロック図である。 Figure 7 is a block diagram showing a configuration of functions of the CPU101 for executing a program.

アプリケーション層171において、ユーザによって送信が指示されたデータは、アプリケーション層171から、ネットワーク層172に供給される。 In the application layer 171, the data transmission has been instructed by the user from the application layer 171, it is supplied to the network layer 172. ネットワーク層172において、アプリケーション層171から供給されたデータは、パケットに格納される。 In the network layer 172, data supplied from the application layer 171 is stored in the packet.

データがパケットに格納されると、ネットワーク層172において、パケットのエンキューを要求する旨の入力要求信号が生成される。 Once the data is stored in the packet, the network layer 172, an input request signal requesting the enqueue packets are generated. 生成された入力要求信号は、ネットワーク層172において、ルーティングテーブル173を参照することによって、パケットの送信先によって定まる通信網における経路を特定し、仮想デバイスドライバ174に供給される。 Generated input request signal, the network layer 172, by referring to the routing table 173 to identify the path in a communication network determined by the destination of the packet is supplied to the virtual device driver 174.

すなわち、ルーティングテーブル173には、通信網に接続されている端末装置(通信装置)のアドレスと、通信網における、端末装置までの経路(ゲートウェイ)を示す情報が含まれている。 That is, the routing table 173, the address of the connected terminal device to the communication network (communication device), in a communication network, includes information indicating a route (gateway) to the terminal device. アプリケーション層171からネットワーク層172に供給されたデータ(パケット)が、デバイスドライバ177−1乃至デバイスドライバ177−Nのいずれかを介して送信される場合、パケットの宛先によって定まる出力インターフェースが、図示せぬ仮想出力インターフェースとなるようになされており、入力要求信号は、仮想出力インターフェースに対応する、仮想デバイスドライバ174に供給される。 Data supplied from the application layer 171 to the network layer 172 (packet), if transmitted via one of the device driver 177-1 to device driver 177-N, an output interface determined by the destination of the packet, shown unexpected have been made so that the virtual output interface, the input request signal, corresponding to the virtual output interface, is supplied to the virtual device driver 174. また、ルーティングテーブル173は、アプリケーション層171において実行されるプログラムによって、更新される。 The routing table 173, by a program executed in the application layer 171, is updated.

仮想デバイスドライバ174からネットワーク層172に、パケットがエンキューされない旨の信号が供給されると、ネットワーク層172において、エンキューされなかったパケットのエンキューを要求する旨の入力要求信号が生成される。 From the virtual device driver 174 to the network layer 172, the signal indicating that the packet is not enqueued is supplied, the network layer 172, an input request signal requesting the enqueue not enqueued packet is generated. 生成された入力要求信号は、仮想デバイスドライバ174に供給される。 Generated input request signal is supplied to the virtual device driver 174. すなわち、ネットワーク層172において実行されるプログラムは、例えば、パケットのエンキュー処理などの所定の処理を要求し、要求した処理が実行されなかった場合、繰り返し同じ処理の実行を要求する。 That is, the program executed in the network layer 172, for example, requests a predetermined process, such as enqueue processing of the packet, when the requested processing has not been executed, repeatedly requesting the execution of the same process.

また、ネットワーク層172から仮想デバイスドライバ174にデータが格納されたパケットが供給される。 Further, the packet data from the network layer 172 in the virtual device driver 174 is stored is supplied.

仮想デバイスドライバ174は、ネットワーク層172から、入力要求信号が供給されると、バッファ176に記憶されているパケットのキュー長Qおよび最大キュー長Qmを基に、パケットをエンキューすることができるか否かを判定する。 Virtual device driver 174, a network layer 172, the input request signal is supplied, whether based on queue length Q and the maximum queue length Qm of packets stored in the buffer 176, it is possible to enqueue a packet determines whether or not.

ここで、最大キュー長Qmとは、バッファ176に格納することができるパケットの最大数をいう。 Here, the maximum queue length Qm, refers to the maximum number of packets that can be stored in the buffer 176. また、キュー長Qとは、バッファ176に格納されているパケットの数をいう。 Further, the queue length Q, refers to the number of packets stored in the buffer 176.

仮想デバイスドライバ174は、パケットをエンキューすることができると判定された場合、ネットワーク層172からパケットを取得し、取得したパケットをバッファ176に供給し、FIFOキューなどのキューに配置する。 Virtual device driver 174, when it is determined that it is possible to enqueue a packet, obtains the packet from the network layer 172, and supplies the acquired packet in the buffer 176 is placed in a queue, such as a FIFO queue. そして、仮想デバイスドライバ174は、パケットがエンキューされた旨の信号を生成し、生成した、パケットがエンキューされた旨の信号をネットワーク層172に供給する。 Then, the virtual device driver 174 supplies generates a signal indicating that a packet is enqueued, the generated, a signal indicating that a packet is enqueued to the network layer 172.

仮想デバイスドライバ174は、パケットをエンキューすることができないと判定された場合、ネットワーク層172からパケットを取得しない。 Virtual device driver 174, when it is determined that it is difficult to enqueue packets, do not get packets from the network layer 172. 仮想デバイスドライバ174は、パケットがエンキューされない旨の信号を生成し、生成したパケットがエンキューされない旨の信号を、ネットワーク層172に供給する。 Virtual device driver 174 generates a signal indicating that the packet is not enqueued, a signal indicating that the generated packet is not enqueued, and supplies to the network layer 172.

仮想デバイスドライバ174は、カーネルタイマ175から、パケットを取得する旨の割り込み信号が供給された場合、またはネットワーク層172からパケットのエンキューを要求する旨の入力要求信号が供給された場合、バッファ176に記憶(格納)されているパケットのうち、送信時刻となったパケットを取得し、取得したパケットをデバイスドライバ177−1乃至デバイスドライバ177−Nの何れかに供給する。 Virtual device drivers 174, the kernel timer 175, if the interrupt signal to the effect that to obtain the packet is supplied, or when an input request signal requesting the enqueue a packet from the network layer 172 is fed to the buffer 176 storage (storage) has been among the packets are to acquire became transmission time packet, supplies the obtained packet to one of the device drivers 177-1 to device driver 177-N.

カーネルタイマ175は、所定の時間間隔(例えば、10msec)で、パケットを取得する旨の割り込み信号を生成し、生成した割り込み信号を、仮想デバイスドライバ174に供給する。 The kernel timer 175 at a predetermined time interval (e.g., 10 msec), and generates an interrupt signal indicating that acquires a packet, the generated interrupt signal is supplied to the virtual device driver 174. すなわち、カーネルタイマ175は、タイマイベントが発生するごとに、パケットを取得する旨の割り込み信号を生成し、生成した割り込み信号を、仮想デバイスドライバ174に供給する。 That is, the kernel timer 175 each time the timer event occurs, generates an interrupt signal indicating that acquires a packet, the generated interrupt signal is supplied to the virtual device driver 174.

バッファ176は、例えば、RAM103の所定の記憶領域などからなり、FIFOキューなどのキューとしての記憶領域に、デバイスドライバ177−1乃至デバイスドライバ177−Nの何れか、または仮想デバイスドライバ174から供給されたパケットを格納し、記憶する。 Buffer 176 includes, for example, a predetermined storage area of ​​the RAM 103, the storage area of ​​the queue, such as FIFO queues, one of the device drivers 177-1 to device driver 177-N, or supplied from the virtual device driver 174 storing the packet, and stores. バッファ176は、記憶しているパケットを、デバイスドライバ177−1乃至デバイスドライバ177−Nの何れか、または仮想デバイスドライバ174に供給する。 Buffer 176 supplies the packet stored therein, the device driver 177-1 to any of the device drivers 177-N, or the virtual device driver 174.

デバイスドライバ177−1乃至デバイスドライバ177−N(デバイスドライバ177−2乃至デバイスドライバ177−(N−1)は図示せず)のそれぞれは、物理的なデバイス(物理層178−1乃至物理層178−N(物理層178−2乃至物理層178−(N−1)は図示せず)のそれぞれを制御し、OSと、物理的なデバイス(物理層178−1乃至物理層178−N)のそれぞれとの間における処理の同期を取る役割を担っている。 Each device driver 177-1 to device driver 177-N (device driver 177-2 to device driver 177- (N-1) is not shown), a physical device (a physical layer 178-1 to the physical layer 178 -N (physical layer 178-2 to the physical layer 178-(N-1) are not shown) controls the respective, OS and physical devices (physical layer 178-1 to the physical layer 178-N) It plays a synchronizing role of processing in between each.

デバイスドライバ177−1乃至デバイスドライバ177−Nのそれぞれは、入力処理部191−1乃至入力処理部191−Nのそれぞれ、および出力処理部192−1乃至出力処理部192−Nのそれぞれを備えている。 Each device driver 177-1 to device driver 177-N, includes a respective each of the input processing unit 191-1 to an input processing section 191-N, and the output processing unit 192-1 to the output processing section 192-N there.

デバイスドライバ177−1の入力処理部191−1乃至デバイスドライバ177−Nの入力処理部191−Nのそれぞれは、仮想デバイスドライバ174から供給されたパケットをバッファ176に供給する。 Each of the input processing section 191-N of the input processing unit 191-1 to the device driver 177-N device driver 177-1 supplies the packet supplied from the virtual device driver 174 to the buffer 176.

デバイスドライバ177−1の出力処理部192−1乃至デバイスドライバ177−Nの出力処理部192−Nのそれぞれは、物理層178−1乃至物理層178−Nのそれぞれから、パケットの送信が終了した旨の割り込み信号が供給されると、バッファ176からパケットを取得し、取得したパケットを物理層178−1乃至物理層178−Nのそれぞれに供給する。 Each of the output processing section 192-N of the output processing unit 192-1 to the device driver 177-N device drivers 177-1, from the respective physical layer 178-1 to the physical layer 178-N, the transmission of the packet is completed When effect of the interrupt signal is supplied, it acquires a packet from the buffer 176, supplies the acquired packet to the respective physical layers 178-1 through physical layer 178-N.

より具体的には、例えば、仮想デバイスドライバ174、およびデバイスドライバ177−1乃至デバイスドライバ177−Nは、パケットが記憶されているバッファ176のアドレスを示すポインタをキューに配置することにより、バッファ176においてパケットを移動させることなく、キューに基づく順序で、パケットを入力したり、パケットを出力したりする。 More specifically, for example, the virtual device driver 174, and the device driver 177-1 to device driver 177-N, by placing the pointer indicating the address of a buffer 176 a packet is stored in the queue, the buffer 176 without moving the packet in, in an order based on the queue, or enter the packet, and outputs the packet.

以下、デバイスドライバ177−1乃至デバイスドライバ177−Nのそれぞれを個々に区別する必要のない場合、単に、デバイスドライバ177と称する。 Hereinafter, when it is not necessary to distinguish each of the device driver 177-1 to device driver 177-N are simply referred to as the device driver 177. また、以下、入力処理部191−1乃至入力処理部191−Nのそれぞれを、個々に区別する必要のない場合、単に、入力処理部191と称する。 Also, hereinafter, each of the input processing unit 191-1 to an input processing section 191-N, unless otherwise distinguished individually, simply referred to as the input processing section 191. さらに、以下、出力処理部192−1乃至出力処理部192−Nのそれぞれを、個々に区別する必要のない場合、単に、出力処理部192と称する。 Furthermore, hereinafter, each of the output processing unit 192-1 to the output processing section 192-N, unless otherwise distinguished individually, simply referred to as the output processing unit 192.

物理層178−1乃至物理層178−Nのそれぞれは、例えば、ベースバンド通信網またはブロードバンド通信網などのイーサネット(登録商標)や光通信網に接続するためのネットワークカードなどにより構成さる。 Each of the physical layer 178-1 to the physical layer 178-N, for example, an Ethernet, such as baseband communications network or broadband communication network (registered trademark) or monkey configured of a network card for connecting to the optical communication network. 物理層178−1乃至物理層178−Nのそれぞれは、デバイスドライバ177から供給されたパケットを、電気信号または光信号に変換し、電気信号または光信号に変換したパケットを、ネットワークまたはインターネットなどの通信網を介して、送信先の端末装置あてに送信する。 Each of the physical layer 178-1 to the physical layer 178-N, a packet supplied from the device driver 177, converted into an electric signal or an optical signal, was converted into an electric signal or an optical signal packets, such as a network or the Internet via the communication network to the terminal device addressed destination. また、物理層178−1乃至物理層178−Nのそれぞれは、デバイスドライバ177から供給されたパケットを送信してから、パケットの送信が終了した旨の割り込み信号を生成し、生成した割り込み信号を、デバイスドライバ177に供給する。 Also, each of the physical layer 178-1 to the physical layer 178-N, from the transmission of the packet supplied from the device driver 177, generates an interrupt signal indicating that transmission of the packet is completed, the generated interrupt signal , supplied to the device driver 177.

以下、物理層178−1乃至物理層178−Nのそれぞれを、個々に区別する必要のない場合、単に、物理層178と称する。 Hereinafter, the respective physical layer 178-1 to the physical layer 178-N, unless otherwise distinguished individually, simply referred to as the physical layer 178.

図8は、仮想デバイスドライバ174の機能の構成を示すブロック図である。 Figure 8 is a block diagram showing a configuration of a function of the virtual device driver 174.

仮想デバイスドライバ174は、入力処理部211、キュー情報保持部212、出力情報保持部213、出力処理部214、および時刻保持部215を含むように構成される。 Virtual device driver 174 is configured to include an input processing unit 211, queue information holding unit 212, an output information storage unit 213, the output processing unit 214 and the time holding unit 215,.

入力処理部211は、ネットワーク層172からパケットを取得し、取得したパケットを、バッファ176に供給する。 Input processing unit 211 acquires a packet from the network layer 172, the acquired packet, and supplies the buffer 176. 入力処理部211は、入力制御部231、判定部232、算出部233、および要求信号生成部234を備えている。 Input processing unit 211, input control unit 231, and a determination unit 232, calculation unit 233 and the request signal generator 234,.

入力制御部231は、ネットワーク層172から、パケットのエンキューを要求する旨の入力要求信号が供給されると、パケットがエンキュー可能であるか否かの判定を要求する旨の判定要求信号を生成し、生成した判定要求信号を、判定部232に供給する。 Input control unit 231, a network layer 172, an input request signal requesting the enqueue packet is supplied, generates a determination request signal to the effect that packet requests a determination of whether it is possible enqueued , the generated determination request signal, and supplies to the determination unit 232.

入力制御部231は、判定部232から、エンキューが可能である旨の信号が供給されると、ネットワーク層172からパケットを取得し、取得したパケットにパケット番号iを付す。 Input control unit 231, the determination unit 232, the signal indicating that the possible enqueued is supplied, acquires a packet from the network layer 172, given the packet number i in the acquired packet. 入力制御部231は、パケット番号iを付してから、取得したパケットの大きさ、パケット番号iなどを示す情報が含まれるパケット情報を生成し、生成したパケット情報を、算出部233に供給する。 Input control unit 231 supplies the denoted by the packet number i, the magnitude of the acquired packet, generates a packet information includes information indicating, for example, packet number i, the generated packet information to the calculation unit 233 .

ここで、パケット番号iとは、パケットを識別する番号であり、パケット番号は、“1”から昇順に付される。 Here, the packet number i, a number identifying the packet, the packet number is assigned in ascending order from "1". なお、パケット番号iが“0”である場合、入力制御部231には、まだ、パケットが供給されていないことを示している。 Incidentally, when the packet number i is "0", the input control unit 231, still indicate that the packet is not supplied.

入力制御部231は、算出部233から、送信時刻を設定した旨の信号が供給されると、取得したパケットをバッファ176に供給する。 Input control unit 231, the calculating unit 233, the signal indicating that setting the transmission time is supplied, and supplies the acquired packet in the buffer 176. なお、以下、入力制御部231が、パケットをエンキューする処理を、パケットの入力処理とも称する。 Hereinafter, the input control unit 231, a process that enqueues a packet, referred to input process both packet. 入力制御部231は、パケットをバッファ176に供給してから、パケットがエンキューされた旨の信号を生成し、生成したパケットがエンキューされた旨の信号を、ネットワーク層172に供給する。 Input control unit 231 supplies the packet from the supply to the buffer 176, and generates a signal indicating that a packet is enqueued, a signal indicating that generated packet is enqueued, the network layer 172.

入力制御部231は、判定部232からエンキューが不可能である旨の信号が供給されると、パケットがエンキューされない旨の信号を生成し、生成したパケットがエンキューされない旨の信号を、ネットワーク層172に供給する。 Input control unit 231, the signal indicating that the determination unit 232 is impossible enqueued is supplied, generates a signal indicating that the packet is not enqueued, a signal indicating that the generated packet is not enqueued, the network layer 172 supplied to. すなわち、入力制御部231は、パケットがエンキューされた旨の信号またはパケットがエンキューされない旨の信号を生成し、生成したパケットがエンキューされた旨の信号またはパケットがエンキューされない旨の信号を、ネットワーク層172に供給することにより、パケットのバッファ176への格納を制御する。 That is, the input control unit 231 generates a signal indicating that the signal or packet indicating that the packet was enqueued is not enqueued, a signal indicating that the signal or packet indicating that generated packet is enqueued is not enqueued, the network layer by supplying to 172, to control the storage in the buffer 176 of the packet.

入力制御部231は、ネットワーク層172からパケットのエンキューが要求されると、すなわち、パケットがエンキューされた旨の信号、またはパケットがエンキューされない旨の信号を、ネットワーク層172に供給すると、パケットのデキューを要求するために、出力要求信号を生成する旨の信号を生成し、生成した出力要求信号を生成する旨の信号を、要求信号生成部234に供給する。 Input control unit 231, the enqueue a packet from the network layer 172 is required, i.e., the signal indicating that the packet is enqueued or a signal indicating that the packet is not enqueued, and is supplied to the network layer 172, dequeue packet in order to request, and generates a signal indicating that generates an output request signal, and supplies a signal to the effect that generating the generated output request signal, the request signal generating unit 234.

判定部232は、入力制御部231から、判定要求信号が供給されると、キュー情報保持部212が保持している、最大キュー長Qmおよびキュー長Qを基に、バッファ176にパケットのエンキューが可能であるか否かを判定する。 Judging unit 232, the input control unit 231, the determination request signal is supplied, queue information holding unit 212 holds, based on the maximum queue length Qm and queue length Q, the enqueue the packet in the buffer 176 determining possible whether.

ここで、最大キュー長Qmとは、バッファ176に格納することができるパケットの最大数をいう。 Here, the maximum queue length Qm, refers to the maximum number of packets that can be stored in the buffer 176. また、キュー長Qとは、バッファ176に格納されているパケットの数をいう。 Further, the queue length Q, refers to the number of packets stored in the buffer 176. さらに、パケットのキュー長Qに“0”が設定されている場合、バッファ176には、パケットが格納されていないことを示している。 Further, if the queue length Q of the packet "0" is set, the buffer 176, the packet indicates that it has not been stored.

判定部232は、パケットのエンキューが可能であると判定された場合、エンキューが可能である旨の信号を生成し、生成したエンキューが可能である旨の信号を、入力制御部231に供給する。 Determination unit 232, when it is determined that it is possible to enqueue the packet, and generates a signal indicating that can enqueue, a signal indicating the generated enqueue is possible to supply to the input control unit 231. また、判定部232は、パケットのエンキューが可能でないと判定された場合、エンキューが不可能である旨の信号を生成し、生成したエンキューが不可能である旨の信号を、入力制御部231に供給する。 The determination unit 232, if it is determined not to be possible enqueued packets, and generates a signal indicating it is impossible to enqueue, a signal indicating the generated enqueue is impossible, the input control unit 231 supplies.

算出部233は、入力制御部231からパケット情報が供給されると、供給されたパケット情報、出力情報保持部213に保持されているシェーピングレート、1つ前のパケット番号のパケットの送信時刻、1つ前のパケット番号のパケットのパケットサイズ、および時刻保持部215から供給された現在時刻を基に、パケットの送信時刻を算出し、算出した送信時刻およびパケット情報を出力情報保持部213に供給する。 Calculating unit 233, the packet information is supplied from the input control unit 231, the supplied packet information, a shaping rate, which is held in the output information storage unit 213, one transmission time of the packet of the previous packet number 1 One supplies the previous packet size of the packet of packet number, and the time holding unit 215 based on the current time supplied, calculates the transmission time of the packet, the calculated transmission time and packet information to the output information storage unit 213 . ここで、1つ前のパケット番号のパケットとは、例えば、パケット番号が“2”であるパケットに対して、パケット番号が“1”であるパケットをいう。 Here, the packet of the previous packet number, for example, the packet is a packet number is "2", the packet number refers to a packet is "1".

算出部233は、パケットの送信時刻を算出すると、キュー情報保持部212に、キュー情報保持部212が保持しているキュー長Qをインクリメントさせる。 Calculator 233 calculating the transmission time of the packet, the queue information holding unit 212, queue information holding unit 212 increments the queue length Q held. また、算出部233は、パケットの送信時刻を算出すると、出力情報保持部213に、出力情報保持部213が保持している格納パケット番号をインクリメントさせる。 Further, calculator 233 calculating the transmission time of the packet, the output information storage unit 213, an output information storage unit 213 increments the stored packet number held. ここで、格納パケット番号とは、入力制御部231がバッファ176に格納したパケットのうち、最後に格納したパケットのパケット番号をいう。 Here, the storage packet number, the input control unit 231 of the packet stored in the buffer 176, refers to the packet number of the packet storing the last. また、格納パケット番号が“0”である場合、まだ、バッファ176には、パケットが格納されていないことを示している。 Also, if the stored packet number is "0", yet, the buffer 176, the packet indicates that it has not been stored.

算出部233は、パケットの送信時刻を算出すると、送信時刻を設定した旨の信号を生成し、生成した送信時刻を設定した旨の信号を、入力制御部231に供給する。 Calculator 233 calculating the transmission time of the packet, and generates a signal indicating that setting the transmission time, the generated signal indicating that setting the transmission time was supplied to the input control unit 231.

要求信号生成部234は、入力制御部231から、出力要求信号を生成する旨の信号が供給されると、パケットのデキューを要求する旨の出力要求信号を生成し、生成した出力要求信号を、出力処理部214に供給する。 Request signal generating unit 234, the input control unit 231, the signal indicating that produces an output request signal is supplied, generates an output request signal for requesting the dequeue packet, the generated output request signal, It is supplied to the output processing unit 214.

キュー情報保持部212は、バッファ176に記憶されているパケットのキュー長Q、および予め定められている、最大キュー長Qmを保持している。 Queue information holding unit 212 holds the queue length Q of packets stored in the buffer 176, and are predetermined, the maximum queue length Qm.

キュー情報保持部212は、入力処理部211による制御のもと、保持しているキュー長Qをインクリメントする。 Queue information holding unit 212, under the control of the input processing unit 211 increments the queue length Q held. また、キュー情報保持部212は、出力処理部214による制御のもと、保持しているキュー長Qをデクリメントする。 Also, queue information holding unit 212, under the control of the output processing unit 214 decrements the queue length Q held.

出力情報保持部213は、予め定められたシェーピングレート、入力処理部211から供給された、パケットの送信時刻、パケット情報、格納パケット番号、および送信パケット番号を保持する。 Output information holding section 213, predetermined shaping rate, supplied from the input processing unit 211, transmission time of the packet, the packet information, and holds the storage packet number, and the transmission packet number. ここで、送信パケット番号とは、物理層178において、送信先である端末装置に送信されたパケットのうち、最後に送信されたパケットのパケット番号をいう。 Here, the transmission packet number, the physical layer 178, among which is transmitted to the terminal device which is the destination packet refers to a packet number of the last transmitted packet. 換言すれば、送信パケット番号とは、物理層178において、送信先である端末装置に送信されたパケットのパケット番号のうち、最も大きいパケット番号をいう。 In other words, the transmission packet number, the physical layer 178, among the packet numbers of the transmitted to the terminal device which is the destination packet, refers to the highest packet number. なお、送信パケット番号が“0”である場合、まだ、送信されたパケットがないことを示している。 Incidentally, when the transmission packet number is "0", still shows no packets sent.

出力情報保持部213は、入力処理部211による制御のもと、保持している格納パケット番号をインクリメントする。 Output information holding unit 213, under the control of the input processing unit 211 increments the stored packet number held. また、出力情報保持部213は、出力処理部214による制御のもと、保持している送信パケット番号をインクリメントする。 Further, the output information holding unit 213, under the control of the output processing section 214 increments the transmit packet number held.

出力処理部214は、所定のタイミングで、バッファ176からパケットを取得し、取得したパケットを、デバイスドライバ177に供給する。 Output processing unit 214 at a predetermined timing, acquires the packet from the buffer 176, the acquired packet, and supplies the device driver 177. 出力処理部214は、信号処理部235および出力制御部236を備えている。 Output processing unit 214, and a signal processing unit 235 and the output control unit 236.

信号処理部235は、入力処理部211から出力要求信号が供給されるか、またはカーネルタイマ175から割り込み信号が供給されると、パケットをデキューする旨の信号を生成し、生成したパケットをデキューする旨の信号を、出力制御部236に供給する。 The signal processing unit 235, whether the output request signal from the input processing unit 211 is supplied, or when the interrupt signal from the kernel timer 175 is supplied, generates a signal indicating that dequeues packets, dequeues the generated packet the effect of the signal, to the output control unit 236.

出力制御部236は、信号処理部235から、パケットをデキューする旨の信号が供給されると、出力情報保持部213が保持している、パケットの送信時刻およびパケット情報と、時刻保持部215から供給された現在時刻とを基に、次に送信するパケットであって、送信時刻になったパケットがあるか否かを判定し、次に送信する送信時刻になったパケットを、バッファ176から取得する。 The output control unit 236, from the signal processing unit 235, the signal indicating that dequeues the packet is supplied, the output information holding unit 213 holds a transmission time and packet information of a packet, from the time holding unit 215 obtaining on the basis of the supplied current time, a next packet to be transmitted, the determination whether or not there has become transmission time packet, then became a transmission time for transmitting packets from the buffer 176 to. 出力制御部236は、バッファ176から取得したパケットを、デバイスドライバ177に供給する。 The output control unit 236, a packet obtained from the buffer 176, and supplies the device driver 177.

換言すれば、出力制御部236は、信号処理部235から、パケットをデキューする旨の信号が供給されると、パケットのキューに基づき、バッファ176から取得したパケットを、デバイスドライバ177に供給することによって、バッファ176に格納されているパケットの、ハードウェア(デバイス(物理層178−1乃至物理層178−N))によるパケットの送信を制御する制御プログラムへの出力を制御する。 In other words, the output control unit 236, from the signal processing unit 235, the signal indicating that dequeues the packet is supplied, based on the queue of the packet, a packet obtained from the buffer 176, to supply to the device driver 177 by controlling the output to the control program for controlling the packet stored in the buffer 176, the transmission of packets by the hardware (devices (physical layer 178-1 to the physical layer 178-N)).

なお、以下、出力制御部236が、パケットをデキューする処理を、パケットの出力処理とも称する。 Hereinafter, the output control section 236, a process to dequeue a packet, referred to the output processing both packet.

出力制御部236は、キュー情報保持部212に、キュー情報保持部212が保持しているキュー長Qをデクリメントさせる。 The output control unit 236, the queue information holding unit 212, queue information holding unit 212 to decrement the queue length Q held. また、出力制御部236は、出力情報保持部213に、出力情報保持部213が保持している送信パケット番号をインクリメントさせる。 Further, the output control unit 236, the output information holding unit 213, the output information holding section 213 increments the transmit packet number held.

時刻保持部215は、カーネルタイマ175のもと、時計し、現在時刻を保持する。 Time holding unit 215, the original kernel timer 175, to watch, to retain the current time. 時刻保持部215は、保持している現在時刻を入力処理部211または出力処理部214に供給する。 Time holding unit 215 supplies the current time held in the input processing unit 211 or the output processing unit 214. また、時刻保持部215は、例えば、RTC(Real Time Clock)などとすることも可能である。 The time holding unit 215, for example, it is also possible, and the like RTC (Real Time Clock).

次に、図9のフローチャートを参照して、仮想デバイスドライバ174による、パケットのエンキューの処理を説明する。 Next, with reference to the flowchart of FIG. 9, by the virtual device driver 174, the processing of the enqueue the packet.

仮想デバイスドライバ174は、ネットワーク層172から入力要求信号が供給されるごとに、例えば、インプット関数などの所定の関数を呼び出し、パケットのエンキューの処理(入力処理)を行う。 Virtual device driver 174 is carried out each time the input request signal is supplied from the network layer 172, for example, calling a predetermined function such as input function, the process of enqueuing packets (input process).

ステップS81において、仮想デバイスドライバ174は、バッファ176に格納するパケットの最大キュー長Qmの設定を行う。 In step S81, the virtual device driver 174, to set the maximum queue length Qm of packets stored in the buffer 176. 例えば、ステップS81において、仮想デバイスドライバ174は、キュー情報保持部212が保持している最大キュー長Qmに“5”を設定する。 For example, in step S81, the virtual device driver 174 sets the "5" to the maximum queue length Qm queue information holding unit 212 holds.

ステップS82において、仮想デバイスドライバ174は、バッファ176に格納されているパケットのキュー長Qの設定を行う。 In step S82, the virtual device driver 174, to set the queue length Q of packets stored in the buffer 176. 例えば、この場合、まだバッファ176にはパケットが格納されていないので、仮想デバイスドライバ174は、キュー情報保持部212が保持しているキュー長Qに“0”を設定する。 For example, in this case, it has not yet been stored packets in the buffer 176, the virtual device driver 174 sets "0" to the queue length Q to queue information holding unit 212 holds.

ステップS83において、仮想デバイスドライバ174は、格納パケット番号の設定を行う。 In step S83, the virtual device driver 174, and sets the storage packet number. 例えば、この場合、まだバッファ176にはパケットが格納されていないので、仮想デバイスドライバ174は、出力情報保持部213が保持している格納パケット番号に“0”を設定する。 For example, in this case, it has not yet been stored packets in the buffer 176, the virtual device driver 174, output information holding unit 213 sets "0" to the storage packet number held.

ステップS84において、入力制御部231は、ネットワーク層172から入力要求信号を取得する。 In step S84, the input control unit 231 acquires an input request signal from the network layer 172. 入力制御部231は、入力要求信号を取得すると、パケットがエンキュー可能であるか否かの判定を要求する旨の判定要求信号を生成し、生成した判定要求信号を、判定部232に供給する。 Input control unit 231 obtains the input request signal, and generates a determination request signal to the effect that packet requests a determination of whether it is possible enqueue, the generated determination request signal, and supplies to the determination unit 232.

入力制御部231から、判定要求信号が供給されると、ステップS85において、判定部232は、キュー情報保持部212に保持されている、キュー長Qおよび最大キュー長Qmを基に、キュー長Qが、所定の値よりも大きいか否かを判定する。 From the input control unit 231, the determination request signal is supplied, in step S85, the determination unit 232 is held in the queue information holding unit 212, based on the queue length Q and the maximum queue length Qm, queue length Q It is equal to or greater than a predetermined value.

例えば、ステップS85において、判定部232は、キュー情報保持部212に保持されている、キュー長Qおよび最大キュー長Qmを基に、式(3)を計算し、キュー長Qおよび最大キュー長Qmが、式(3)を満たすか否かを判定することにより、キュー長Qが、所定の値よりも大きいか否かを判定する。 For example, in step S85, the determination unit 232 is held in the queue information holding unit 212, based on the queue length Q and the maximum queue length Qm, calculates the equation (3), the queue length Q and the maximum queue length Qm but by determining whether satisfy equation (3), the queue length Q is determined whether greater than a predetermined value.

(Qm/2)≦Q+1 ・・・(3) (Qm / 2) ≦ Q + 1 ··· (3)

すなわち、判定部232は、バッファ176に記憶されているパケットのキュー長Qが、最大キュー長Qmの半分の値よりも大きいか否かを判定することによって、キュー長Qが、所定の値よりも大きいか否かを判定する。 That is, the determination unit 232, the queue length Q of packets stored in the buffer 176, by determining whether greater than half the value of the maximum queue length Qm, queue length Q is than a predetermined value It determines whether or not also large.

したがって、例えば、判定部232は、キュー長Q、および最大キュー長Qmが、式(3)を満たす場合、キュー長Qが、所定の値よりも大きいと判定する。 Thus determined, for example, the determination unit 232, the queue length Q, and the maximum queue length Qm is, if satisfying the expression (3), the queue length Q is greater than the predetermined value.

例えば、LinuxなどのUNIX(登録商標)オペレーティングシステムにおいては、エンキューされたパケットが最大キュー長に達すると、上位のネットワーク層のプログラムは、エンキュー処理をさせるためのパケットの供給を一時的に中断する。 For example, in UNIX (registered trademark) operating system, such as Linux, the enqueued packets reaches the maximum queue length, the program of the higher network layer, temporarily suspend the supply of the packet to be enqueued process . 中断されたパケットの供給は、キューにあるパケットが送信され、キュー長が最大キュー長の半分を下回ると再開される。 Supply of the interrupted packet, the packet in the queue is sent, the queue length is resumed to be below the half of the maximum queue length. すなわち、キュー長が、常に最大キュー長の半分未満に保たれていると、ネットワーク層のプログラムは、可能な限りエンキュー処理を実行させようとする。 That is, the queue length is always being kept below half of the maximum queue length, the program of the network layer, to try to execute the enqueue process as much as possible. したがって、例えば、キュー長Qが、常に最大キュー長Qmの半分以下に保たれるようにすることで、入力要求信号が取得される回数を増やし、その結果、パケットの出力処理が行われる回数を増やすことができる。 Thus, for example, the queue length Q is always possible to be kept to less than half of the maximum queue length Qm, increasing the number of times that the input request signal is acquired, as a result, the number of times that the output process of the packet is it can be increased.

換言すれば、入力処理部211は、ネットワーク層172からパケットのエンキュー処理などの処理が要求された場合、例えば、常に最大キュー長の半分未満に保つようにすることで、ネットワーク層172において実行されるプログラムに継続して処理の実行を要求させるように、要求された処理の実行を制御し、パケットの出力処理などの、他の処理が実行される回数を増やしている。 In other words, the input processing unit 211, when the processing from the network layer 172 such as enqueue process of the packet is requested, for example, by always to keep below half of the maximum queue length, it is performed at the network layer 172 that so as to request execution of continuously processing a program to control the execution of the requested processing, such as the output processing of the packet, which increases the number of times that other processes are executed.

ステップS85において、キュー長Qが、所定の値よりも大きくないと判定された場合、バッファ176にパケットを格納することができるので、判定部232は、エンキューが可能である旨の信号を生成する。 In step S85, the queue length Q is, if it is not greater than the predetermined value, it is possible to store packets in the buffer 176, the determination unit 232 generates a signal indicating that can be enqueued . そして、判定部232は、生成したエンキューが可能である旨の信号を、入力制御部231に供給し、処理はステップS86に進む。 Then, the determination unit 232, a signal indicating the generated enqueue is possible, is supplied to the input control unit 231, processing proceeds to step S86.

判定部232から、エンキューが可能である旨の信号が供給されると、ステップS86において、入力制御部231は、ネットワーク層172から、パケットを取得し、取得したパケットにパケット番号iを付す。 From the determination unit 232, the signal indicating that the possible enqueued is supplied, in step S86, the input control unit 231, a network layer 172, acquires the packet, given the packet number i in the acquired packet. 入力制御部231は、パケット番号iを付してから、取得したパケットの大きさ、パケット番号iなどを示す情報が含まれるパケット情報を生成し、生成したパケット情報を、算出部233に供給する。 Input control unit 231 supplies the denoted by the packet number i, the magnitude of the acquired packet, generates a packet information includes information indicating, for example, packet number i, the generated packet information to the calculation unit 233 .

なお、より詳細には、この場合、入力制御部231は、ネットワーク層172から、パケットが記憶されている記憶領域のアドレスを示すポインタを取得する。 Incidentally, more specifically, in this case, the input control unit 231, a network layer 172, obtains a pointer to the address of the storage area in which packets are stored. そして、仮想デバイスドライバ174において、パケットの授受を行う処理は、ポインタを用いて行われる。 Then, the virtual device driver 174, the processing for exchanging packets is carried out using a pointer.

ステップS87において、算出部233は、送信時刻算出の処理を行う。 In step S87, calculation unit 233 performs processing of transmission time calculation. なお、送信時刻算出の処理の詳細は、後述するが、送信時刻算出の処理において、算出部233は、入力制御部231から供給された、パケット情報、出力情報保持部213に保持されているシェーピングレート、1つ前のパケット番号のパケットの送信時刻、1つ前のパケット番号のパケットのパケットサイズ、および時刻保持部215から供給された現在時刻を基に、ネットワーク層172から供給されたパケットの送信時刻を算出する。 The details of the processing of the transmission time calculating, will be described later, in the process of the transmission time calculating, computing unit 233, supplied from the input control unit 231, is held packet information, the output information holding section 213 Shaping rate, transmission time of the packet of the previous packet number, packet size of the packet of the previous packet number, and based on the current time supplied from the time holding unit 215, a packet supplied from the network layer 172 to calculate the transmission time.

ステップS88において、出力情報保持部213は、算出部233による制御のもと、保持している格納パケット番号をインクリメントする。 In step S88, the output information holding unit 213, under the control of the calculation unit 233 increments the stored packet number held. 例えば、ステップS88において、出力情報保持部213は、保持している格納パケット番号が“1”であった場合、算出部233による制御のもと、保持している格納パケット番号が“2”となるように、格納パケット番号をインクリメントする。 For example, in step S88, the output information holding unit 213, if the held stored packet number is "1", under the control of the calculating unit 233, the held stored packet number "2" so as to be incremented stored packet number.

ステップS89において、入力制御部231は、ネットワーク層172から取得したパケットをエンキューする。 In step S89, the input control unit 231 enqueues the packet obtained from the network layer 172. すなわち、ステップS89において、入力制御部231は、ネットワーク層172から取得したパケットをバッファ176に供給し、FIFOキューなどのキューに配置する。 That is, in step S89, the input control unit 231, a packet obtained from the network layer 172 and supplied to the buffer 176 is placed in a queue, such as a FIFO queue. そして、バッファ176は、仮想デバイスドライバ174から供給されたパケットを記憶する。 The buffer 176 stores the supplied from the virtual device driver 174 packets.

ステップS90において、キュー情報保持部212は、算出部233による制御のもと、保持しているキュー長Qをインクリメントする。 In step S90, queue information holding unit 212, under the control of the calculation unit 233 increments the queue length Q held. 例えば、ステップS90において、キュー情報保持部212は、保持しているキュー長Qが“2”であった場合、算出部233による制御のもと、保持しているキュー長Qが“3”となるように、キュー長Qをインクリメントする。 For example, in step S90, queue information holding unit 212, if the held queue length Q is "2", under the control of the calculating unit 233, the queue length Q is held as "3" so as to, it increments the queue length Q.

ステップS91において、入力制御部231は、パケットがエンキューされた旨の信号を生成し、生成したパケットがエンキューされた旨の信号を、ネットワーク層172に供給する。 In step S91, the input control unit 231 generates a signal indicating that a packet is enqueued, the generated signal indicating that a packet is enqueued, and supplies to the network layer 172. 入力制御部231は、出力要求信号を生成する旨の信号を生成し、生成した出力要求信号を生成する旨の信号を、要求信号生成部234に供給する。 Input control unit 231 generates a signal indicating that generates an output request signal, a signal indicating that generates the generated output request signal, and supplies the request signal generator 234.

一方、ステップS85において、キュー長Qが、所定の値よりも大きいと判定された場合、これ以上、バッファ176にパケットを格納することができないので、判定部232は、エンキューが不可能である旨の信号を生成する。 On the other hand, in step S85, the queue length Q is, if it is determined to be greater than the predetermined value, further, that it is not possible to store packets in the buffer 176, the determination unit 232, it is impossible to enqueue to generate a signal. そして、判定部232は、生成したエンキューが不可能である旨の信号を、入力制御部231に供給し、処理はステップS92に進む。 Then, the determination unit 232, a signal indicating the generated enqueue is not possible, then supplied to the input control unit 231, the process proceeds to step S92.

判定部232から、エンキューが不可能である旨の信号が供給されると、ステップS92において、入力制御部231は、パケットがエンキューされない旨の信号を生成し、生成したパケットがエンキューされない旨の信号を、ネットワーク層172に供給する。 From the determination unit 232, the signal indicating it is impossible to enqueue is supplied, in step S92, the input control unit 231 generates a signal indicating that the packet is not enqueued, that the signal generated packet is not enqueued and supplies to the network layer 172. 入力制御部231は、出力要求信号を生成する旨の信号を生成し、生成した出力要求信号を生成する旨の信号を、要求信号生成部234に供給する。 Input control unit 231 generates a signal indicating that generates an output request signal, a signal indicating that generates the generated output request signal, and supplies the request signal generator 234.

入力制御部231から、出力要求信号を生成する旨の信号が供給されると、ステップS93において、要求信号生成部234は、パケットのデキューを要求する旨の出力要求信号を生成する。 From the input control unit 231, the signal indicating that produces an output request signal is supplied, in step S93, the request signal generator 234 generates an output request signal for requesting the dequeue packet. 要求信号生成部234は、生成した出力要求信号を、出力処理部214に供給し、ステップS84に戻り、上述した処理を繰り返す。 Request signal generating unit 234, the generated output request signal is supplied to output processing unit 214 returns to step S84, the processing is repeated as described above.

このようにして、仮想デバイスドライバ174は、キュー長が所定の値よりも大きいか否かを判定することにより、パケットのエンキューが可能であるか否かを判定する。 In this way, the virtual device driver 174 is checked by the queue length to determine whether greater than a predetermined value, whether it is possible to enqueue the packet. そして、パケットのエンキューが可能であると判定された場合、仮想デバイスドライバ174は、パケットを取得し、取得したパケットをバッファ176にエンキューする。 When it is determined that it is possible to enqueue the packet, the virtual device driver 174 acquires the packet, enqueue the acquired packet in the buffer 176. また、パケットのエンキューが可能でないと判定された場合、仮想デバイスドライバ174は、パケットを取得しない。 Also, if it is determined not to be possible enqueued packets, the virtual device driver 174 does not acquire the packet.

このように、パケットのエンキューが可能でないと判定された場合、仮想デバイスドライバ174は、エンキューされない旨の信号を、ネットワーク層172に供給するので、パケットはエンキューされず、また、破棄もされないため、ネットワーク層172には、キューの排他制御問題が発生したように見える。 Thus, since if it is determined not to be possible enqueued packets, the virtual device driver 174, a signal indicating that not enqueued, since feeding to the network layer 172, the packet is enqueued Sarezu also not be discarded, network layer 172 appear to exclusively control problem of the queue has occurred. すなわち、ハードウェア割り込みなどにより、パケットの出力処理(パケットのデキュー)が行われているために、パケットが格納されているキュー(バッファ176におけるパケットが記憶されている領域)にアクセスができなかったと判定する。 That is, due to a hardware interrupt, since the output process of the packet (dequeue packet) is being performed, the packet could not access the queue stored (area packet in the buffer 176 is stored) judge.

この場合、仮想デバイスドライバ174から、エンキューされない旨の信号が供給されるので、ネットワーク層172において、エンキューされなかったパケットのエンキューを要求する旨の入力要求信号が生成され、仮想デバイスドライバ174に供給される。 In this case, the virtual device driver 174, the signal indicating that no enqueued is supplied, the network layer 172, an input request signal requesting the enqueue not enqueued packet is generated, supplied to the virtual device driver 174 It is. 換言すれば、ネットワーク層172において、パケットのエンキューが再試行される。 In other words, the network layer 172, enqueue the packet is retried. したがって、仮想デバイスドライバ174に、繰り返し入力要求信号が供給されることになり、その結果、繰り返し入力処理部211から、出力処理部214に出力要求信号が供給される。 Accordingly, the virtual device driver 174, will be repeated input request signal is supplied, as a result, the repetitive input processing unit 211, an output request signal is supplied to the output processing unit 214. これにより、パケットの出力処理が行われる回数(機会)が増え、より短い間隔(より小さい粒度)で、パケットの送信間隔を制御することができる。 Accordingly, the number (opportunity) increases the output processing of the packet is performed at shorter intervals (smaller particle size), it is possible to control the transmission interval of the packet.

なお、パケットのエンキューの再試行を行う処理は、OSの負荷を増加させることになるが、エンキューの再試行を行う処理は、他の処理よりも優先度が低いため、システム内において実行される他の処理が、エンキューの再試行を行う処理の影響を受けることはほとんど無い。 The processing for performing retry enqueue packets is comprised in an increase in the load of the OS, processing for enqueue retries has a lower priority than other processes are performed in the system other processes, it is little affected by the process of performing the enqueue of retries. したがって、エンキューの再試行を行う処理の負荷を調整するための特別な処理は、特に必要とされない。 Therefore, special processing for adjusting the load of processing for enqueue retry is not particularly required.

図10のフローチャートを参照して、図9のステップS87の処理に対応する、送信時刻算出の処理を説明する。 With reference to the flowchart of FIG. 10 corresponds to the process in step S87 in FIG. 9, the processing of the transmission time calculating.

ステップS111において、算出部233は、入力制御部231から供給されたパケット情報を基に、入力制御部231が、ネットワーク層172から取得したパケットのパケット番号iが、“0”であるか否かを判定する。 In step S111, the calculation unit 233, based on the packet information supplied from the input control unit 231, the input control unit 231, whether the packet number i of the packet obtained from the network layer 172 is a "0" the judges.

ステップS111において、ネットワーク層172から取得したパケットのパケット番号iが、“0”でないと判定された場合、ステップS112に進み、算出部233は、ネットワーク層172から取得したパケットの送信時刻を算出する。 In step S111, the packet number i of the packet obtained from the network layer 172 is "0" not equal when it is determined, the process proceeds to step S112, calculation unit 233 calculates the transmission time of the packet obtained from the network layer 172 . 例えば、ステップS112において、算出部233は、式(4)を計算することにより、パケットの送信時刻を算出する。 For example, in step S112, calculation unit 233, by calculating equation (4), calculates the transmission time of the packet.

(Ti)=(T(i−1))+(L(i−1))/r ・・・(4) (Ti) = (T (i-1)) + (L (i-1)) / r ··· (4)

ここで、Tiは、パケット番号が“i”であるパケットの送信時刻であり、T(i−1)は、出力情報保持部213に保持されている、パケット番号が“i−1”であるパケットの送信時刻である。 Here, Ti is the transmission time of the packet is a packet number "i", T (i-1) is held in the output information storage unit 213, the packet number is "i-1" which is the transmission time of the packet. また、L(i−1)は、出力情報保持部213に保持されている、パケット番号が“i−1”であるパケットの大きさ(サイズ(データ量))であり、rは、出力情報保持部213に保持されている、予め定められたシェーピングレートである。 Moreover, L (i-1) is held in the output information storage unit 213, the size of the packet is a packet number "i-1" (size (data amount)), r is used as an output information It held in the holding section 213, a shaping rate determined in advance.

ステップS113において、算出部233は、キュー情報保持部212に保持されているキュー長Qが“0”であるか否かを判定する。 In step S113, the calculation unit 233 determines whether or not the queue length Q is "0" held in the queue information holding unit 212. ステップS113において、キュー長Qが“0”でないと判定された場合、ステップS115に進む。 In step S113, if the queue length Q is determined not "0", the flow proceeds to step S115.

一方、ステップS113において、キュー長Qが“0”であると判定された場合、ステップS114に進み、算出部233は、算出した送信時刻Tiが、時刻保持部215から供給された現在時刻よりも後の時刻であるか否かを判定する。 On the other hand, in step S113, if it is determined that the queue length Q is "0", the process proceeds to step S114, calculation unit 233, the calculated transmission time Ti is the current time supplied from the time holding unit 215 It determines whether or not it is time after.

例えば、ステップS114において、算出部233は、算出した送信時刻Tiおよび時刻保持部215から供給された現在時刻Tが、式(5)を満たすか否かを判定することにより、算出した送信時刻Tiが、時刻保持部215から供給された現在時刻よりも後の時刻であるか否かを判定する。 For example, in step S114, calculation unit 233, the calculated transmission time Ti and the current time T supplied from the time holding unit 215, by determining whether satisfy equation (5), the calculated transmission time Ti it is equal to or a time after the current time supplied from the time holding unit 215.

T<Ti ・・・(5) T <Ti ··· (5)

したがって、この場合、算出した送信時刻Tiおよび時刻保持部215から供給された現在時刻Tが、式(5)を満たすと判定されたとき、算出した送信時刻Tiが、時刻保持部215から供給された現在時刻よりも後の時刻であると判定される。 Therefore, in this case, the calculated current time T supplied from the transmission time Ti and time holding unit 215 is, when it is determined to satisfy the equation (5), the calculated transmission time Ti is supplied from the time holding unit 215 and it is determined to be a time later than the current time.

ステップS114において、算出した送信時刻Tiが、現在時刻よりも後の時刻であると判定された場合、ステップS115に進み、算出部233は、パケット番号が“i”であるパケットの送信時刻に、算出した送信時刻Tiを設定し、設定した送信時刻Tiおよびパケット情報を、出力情報保持部213に供給する。 In step S114, the calculated transmission time Ti is, when it is determined that a time after the current time, the process proceeds to step S115, calculation unit 233, the transmission time of the packet is a packet number "i", set the calculated transmission time Ti, the transmission time Ti and packet information set, to the output information storage unit 213. 出力情報保持部213は、算出部233から供給された送信時刻Tiおよびパケット情報を保持する。 Output information holding section 213 holds the transmission time Ti and packet information supplied from the calculation unit 233. そして、算出部233は、送信時刻を設定した旨の信号を生成する。 The calculator 233 generates a signal indicating that setting the transmission time. 算出部233は、生成した送信時刻を設定した旨の信号を、入力制御部231に供給し、処理は終了する。 Calculator 233, a signal indicating that setting the generated transmission time is supplied to the input control unit 231, the process ends.

ステップS114において、算出した送信時刻Tiが、現在時刻よりも後の時刻でないと判定された場合、算出した送信時刻Tiは、すでに、過ぎてしまっているので、ステップS116に進む。 In step S114, the calculated transmission time Ti is, when it is determined that it is not time later than the current time, the calculated transmission time Ti is already since has passed, the process proceeds to step S116.

また、ステップS111において、ネットワーク層172から供給されたパケットのパケット番号iが、“0”であると判定された場合、ステップS116に進み、算出部233は、パケット番号が“i”であるパケットの送信時刻Tiに、現在時刻Tを設定し、設定した送信時刻Tiおよびパケット情報を、出力情報保持部213に供給する。 Further, in step S111, the packet number i of the packet supplied from the network layer 172 is "0" when it is determined that the, the process proceeds to step S116, calculation unit 233, the packet number is "i" packet the transmission time Ti of, sets the current time T, the transmission time Ti and packet information set, to the output information storage unit 213. 出力情報保持部213は、算出部233から供給された送信時刻Tiおよびパケット情報を保持する。 Output information holding section 213 holds the transmission time Ti and packet information supplied from the calculation unit 233. そして、算出部233は、送信時刻を設定した旨の信号を生成する。 The calculator 233 generates a signal indicating that setting the transmission time. 算出部233は、生成した送信時刻を設定した旨の信号を、入力制御部231に供給し、処理は終了する。 Calculator 233, a signal indicating that setting the generated transmission time is supplied to the input control unit 231, the process ends.

このようにして、算出部233は、パケットの送信時刻を算出し、算出した送信時刻または現在時刻を、パケットの送信時刻として設定する。 In this way, the calculation unit 233 calculates the transmission time of the packet, the calculated transmission time or the current time is set as the transmission time of the packet. なお、図10のフローチャートを参照して、Leaky Bucketアルゴリズムと称されるスケジューリングアルゴリズムに基づいて、パケットの送信間隔を調整する方法を説明したが、Leaky Bucketアルゴリズムに限らず、他のスケジューリングアルゴリズムに基づいて、パケットの送信間隔を調整することも、もちろん可能である。 Incidentally, with reference to the flowchart of FIG. 10, based on the Leaky Bucket algorithm called scheduling algorithm has been described a process for adjusting a transmission interval of the packet is not limited to the Leaky Bucket algorithm, based on other scheduling algorithms Te, it is of course also possible to adjust the transmission interval of the packet.

図11のフローチャートを参照して、仮想デバイスドライバ174による、パケットのデキューの処理を説明する。 With reference to the flowchart of FIG. 11, by the virtual device driver 174, the processing of the dequeue packet.

仮想デバイスドライバ174は、カーネルタイマ175からパケットを取得する旨の割り込み信号が供給されるか、または入力処理部211から出力要求信号が供給されるごとに、例えば、割り込みハンドラ関数などの所定の関数を呼び出し、パケットのデキューの処理(出力処理)を行う。 Virtual device driver 174, each time the output request signal or from the input processing unit 211 an interrupt signal to the effect that to obtain the packet from the kernel timer 175 is supplied is supplied, for example, a predetermined function such as an interrupt handler function calls, performs processing dequeue packet (output processing).

ステップS131において、仮想デバイスドライバ174は、送信パケット番号の設定を行う。 In step S131, the virtual device driver 174, and sets the transmission packet number. 例えば、ステップS131において、仮想デバイスドライバ174は、まだパケットが送信されていないので、出力情報保持部213が保持している送信パケット番号に“0”を設定する。 For example, in step S131, the virtual device driver 174, because it is not transmitted yet packet output information holding unit 213 sets "0" in the transmit packet number held.

ステップS132において、信号処理部235は、割り込み信号または出力要求信号が供給されたか否かを判定する。 In step S132, the signal processing unit 235, an interrupt signal or the output request signal determines whether supplied. すなわち、信号処理部235は、カーネルタイマ175から割り込み信号が供給されたか、または入力処理部211から出力要求信号が供給されたか否かを判定する。 That is, the signal processing unit 235 determines whether the output request signal from either an interrupt signal from the kernel timer 175 is supplied or input processing unit 211, is supplied. ステップS132において、割り込み信号または出力要求信号が供給されていないと判定された場合、パケットをデキューしないので、割り込み信号または出力要求信号が供給されたと判定されるまで、判定の処理を繰り返す。 In step S132, if the interrupt signal or the output request signal is determined not to be supplied, since no dequeue packet, until the interrupt signal or the output request signal is determined to have been supplied, the process is repeated determination.

ステップS132において、割り込み信号または出力要求信号が供給されたと判定された場合、パケットをデキューするので、信号処理部235は、パケットをデキューする旨の信号を生成し、生成したパケットをデキューする旨の信号を、出力制御部236に供給して、処理はステップS133に進む。 In step S132, if the interrupt signal or the output request signal is determined to have been supplied, so it dequeues a packet, the signal processing unit 235 generates a signal indicating to dequeue a packet, indicating that dequeues generated packet the signal is supplied to the output control section 236, the process proceeds to step S133.

ここで、カーネルタイマ175のタイマイベントの発生周期は、通常100Hzであるので、信号処理部235には、例えば、少なくとも10msecごとに割り込み信号が供給される。 Here, generation cycle of the timer event kernel timer 175, since it is usually 100 Hz, the signal processing unit 235, for example, an interrupt signal at least every 10msec is supplied. また、信号処理部235には、入力処理部211が、ネットワーク層172から入力要求信号を取得するごとに、入力処理部211から、出力要求信号が供給されるので、例えば、信号処理部235には、ほぼ15μsecごとに、入力処理部211から出力要求信号が供給される。 Further, the signal processing unit 235, an input processing unit 211, each time to obtain the input request signal from the network layer 172, from the input processing unit 211, the output request signal is supplied, for example, the signal processing unit 235 is approximately every 15 .mu.sec, the output request signal is supplied from the input processing unit 211. そして、このとき、出力処理部214の信号処理部235は、入力処理部211が、ネットワーク層172から入力要求信号を取得するごとに、すなわち、ネットワーク層172からパケットのエンキューなどの処理が要求されるごとに、ネットワーク層172から要求された処理とは異なる、パケットのデキューなどの処理の実行を制御する。 At this time, the signal processing unit 235 of the output processing unit 214, the input processing unit 211, each time to obtain the input request signal from the network layer 172, i.e., the processing of the network layer 172 such as enqueue packets are required the Rugoto differs from requested processing from the network layer 172, and controls the execution of processing such dequeue packet.

信号処理部235から、パケットをデキューする旨の信号が供給されると、ステップS133において、出力制御部236は、現在時刻が、送信パケット番号と同じパケット番号のパケットの送信時刻を過ぎたか否かを判定する。 From the signal processing unit 235, the signal indicating that dequeues the packet is supplied, in step S133, the output control unit 236, current time, whether past the transmission time of the packet of the same packet number and the transmission packet number the judges. 例えば、ステップS133において、出力制御部236は、出力情報保持部213に保持されている送信パケット番号およびパケットの送信時刻、並びに時刻保持部215から供給された現在時刻を基に、式(6)を計算することにより、現在時刻が送信時刻を過ぎたか否かを判定する。 For example, in step S133, the output control unit 236, transmission time of the transmission packet number and packet held in the output information storage unit 213, and based on the current time supplied from the time holding unit 215, the formula (6) by calculating, it determines whether or not the current time has passed the transmission time.

Ti<T ・・・(6) Ti <T ··· (6)

ここで、Tiは、出力情報保持部213に保持されている、パケット番号が“i”であるパケットの送信時刻であり、Tは、時刻保持部215から供給された現在時刻である。 Here, Ti is held in the output information storage unit 213, a transmission time of the packet is a packet number "i", T is the current time supplied from the time holding unit 215. したがって、例えば、送信パケット番号が“i”であり、送信時刻Tiおよび現在時刻Tが、式(6)を満たす場合、出力制御部236は、現在時刻が、送信パケット番号と同じパケット番号のパケットの送信時刻を過ぎたと判定する。 Thus, for example, a transmission packet number is "i", transmission time Ti and the current time T is, if satisfying the expression (6), the output control unit 236, the current time is a packet of the same packet number and the transmission packet number determines that only a transmission time of the.

ステップS133において、現在時刻が送信時刻を過ぎたと判定された場合、パケットを送信するので、ステップS134に進み、出力制御部236は、送信時刻となったパケットをデキューする。 In step S133, if it is determined that the current time is past the transmission time, and transmits the packet, the process proceeds to step S134, the output control unit 236 dequeues became transmission time packet. すなわち、ステップS134において、出力制御部236は、送信時刻になったパケットを、バッファ176から取得し、取得したパケットをデバイスドライバ177に供給する。 That is, in step S134, the output control section 236 supplies the became transmission time packets obtained from the buffer 176, the acquired packet to the device driver 177.

ステップS135において、出力情報保持部213は、出力制御部236による制御のもと、保持している送信パケット番号をインクリメントする。 In step S135, output information holding unit 213 under the control of the output control section 236 increments the transmit packet number held. 例えば、出力情報保持部213に保持されている送信パケット番号が、“1”であった場合、ステップS135において、出力情報保持部213は、出力制御部236による制御のもと、送信パケット番号が“2”となるように、送信パケット番号をインクリメントする。 For example, when the transmission packet number are held in the output information storage unit 213, is "1", in step S135, output information holding unit 213 under the control of the output control section 236, a transmission packet number as the "2", it increments the transmission packet number.

ステップS136において、キュー情報保持部212は、出力制御部236による制御のもと、保持しているキュー長Qをデクリメントし、処理はステップS132に戻る。 In step S136, the queue information retaining section 212, under the control by the output control unit 236, and decrements the queue length Q that holds, the process returns to step S132. 例えば、キュー情報保持部212に保持されているキュー長Qが“3”であった場合、ステップS136において、キュー情報保持部212は、出力制御部236による制御のもと、キュー長Qが“2”となるようにキュー長Qをデクリメントする。 For example, if the queue length Q is held on the queue information holding unit 212 is "3", in step S136, the queue information retaining section 212, under the control by the output control section 236, the queue length Q is " in such a way that 2 "decrements the queue length Q.

一方、ステップS133において、現在時刻が送信時刻を過ぎていないと判定された場合、パケットは送信しないので、ステップS132に戻り、上述した処理を繰り返す。 On the other hand, in step S133, if it is determined that the current time is not past the transmission time, because the packet is not transmitted, the process returns to step S132, and repeats the above processing.

このようにして、仮想デバイスドライバ174は、割り込み信号または出力要求信号が供給されるたびに、パケットの出力処理を行う。 In this way, the virtual device driver 174, each time an interrupt signal or the output request signal is supplied, and the output process is performed for the packet.

このように、出力処理部が、割り込み信号または出力要求信号が供給されるたびに、パケットの出力処理を行うことで、ソフトウェア制御によって、より小さい負荷でパケットの送信を制御することができる。 Thus, the output processing unit, each time an interrupt signal or the output request signal is supplied, by performing the output processing of the packet, the software control, it is possible to control the transmission of packets at lower load.

また、出力処理部が、割り込み信号または出力要求信号が供給されるたびに、パケットの出力処理を行うことで、より短い時間間隔で、パケットの送信を制御することができ、その結果、通信網におけるバーストトラフィックの発生をより少なくすることができる。 Further, the output processing unit, each time an interrupt signal or the output request signal is supplied, by performing the output processing of the packet, in a shorter time interval, it is possible to control the transmission of packets, a result, the communication network it is possible to reduce the occurrence of burst traffic in. これにより、通信経路上のルータなどにおいて、破棄されるパケットの数を減少させることができる。 Thus, in such a router on a communication path, it is possible to reduce the number of packets to be discarded.

さらに、また、出力処理部が、割り込み信号または出力要求信号が供給されるたびに、パケットの出力処理を行うことで、より短い時間間隔で、パケットの送信を制御することができ、その結果、ジッタが減少し、ジッタによる遅延のゆらぎを調整するために要する、受信側の端末装置におけるバッファの大きさを減少させることができる。 Further, also, the output processing unit, each time an interrupt signal or the output request signal is supplied, by performing the output processing of the packet, in a shorter time interval, it is possible to control the transmission of the packet, as a result, jitter is reduced, required to adjust the fluctuation of the delay caused by jitter, it is possible to reduce the size of the buffer in the receiving terminal apparatus.

したがって、受信側の端末装置において、バッファリングするデータサイズ(大きさ)を小さくすることができる。 Thus, the recipient terminal, it is possible to reduce the data size to be buffered (size). また、送信側の通信装置においても、パケットのキュー長を短く保つことができるため、バッファリングによる遅延を減少させることができ、これにより、低遅延のリアルタイムアプリケーションプログラムを実現することができる。 Also in the communication device on the transmitting side, it is possible to maintain short queue length of the packet, it is possible to reduce the delay due to buffering, thereby, it is possible to realize a real-time application program low latency.

さらに、また、ネットワーク層から処理が要求されるたびに、他の処理を行うようにしたので、ソフトウェア制御によって、より短い時間間隔で処理を制御することができる。 Furthermore, also, every time the processing from the network layer is required, because to perform the other processing, the software control, it is possible to control the process in a shorter time interval.

以上のように、ネットワーク層から入力要求信号が供給されるたびに、パケットの出力処理を行うことで、ソフトウェア制御によって、より小さい負荷でパケットの送信を制御することができる。 As described above, each time the input request signal is supplied from the network layer, by performing the output processing of the packet, the software control, it is possible to control the transmission of packets at lower load. また、ネットワーク層から入力要求信号が供給されるか、またはカーネルタイマから割り込み信号が供給されるたびに、パケットの出力処理を行うことで、より短い時間間隔で、パケットの送信を制御することができる。 Also, whenever either input request signal from the network layer is provided, or an interrupt signal from the kernel timer is supplied, by performing the output processing of the packet, in a shorter time interval, to control the transmission of the packet it can.

さらに、また、ネットワーク層から処理が要求されるたびに、他の処理を行うようにしたので、ソフトウェア制御によって、より短い時間間隔で処理を制御することができる。 Furthermore, also, every time the processing from the network layer is required, because to perform the other processing, the software control, it is possible to control the process in a shorter time interval.

本発明によれば、パケットを記憶するようにしたので、パケットを送信することができる。 According to the present invention, since the stored packets it can transmit a packet. また、本発明によれば、ネットワーク層から入力要求信号が供給されるたびに、パケットの出力処理を行うようにしたので、ソフトウェア制御によって、より小さい負荷でパケットの送信を制御することができる。 Further, according to the present invention, each time the input request signal is supplied from the network layer, since the carry out output processing of the packet, the software control, it is possible to control the transmission of packets at lower load.

さらに、本発明によれば、ネットワーク層から入力要求信号が供給されるか、またはカーネルタイマから割り込み信号が供給されるたびに、パケットの出力処理を行うようにしたので、より短い時間間隔で、パケットの送信を制御することができる。 Furthermore, according to the present invention, whenever either input request signal from the network layer is provided, or an interrupt signal from the kernel timer is supplied, because to perform the output processing of the packet, in a shorter time interval, it is possible to control the transmission of the packet.

さらに、また、本発明によれば、ネットワーク層から処理が要求されるたびに、他の処理を行うようにしたので、ソフトウェア制御によって、より短い時間間隔で処理を制御することができる。 Furthermore, also according to the present invention, each time the processing from the network layer is required, because to perform the other processing, the software control, it is possible to control the process in a shorter time interval.

なお、本発明は、パケットの送信間隔を制御する通信装置だけでなく、所定の処理を実行する時間間隔を制御する制御装置にも適用することが可能である。 The present invention is not only a communication device for controlling a transmission interval of the packet, it is also possible to apply a control device for controlling a time interval for performing a predetermined process. この場合、制御装置は、ネットワーク層から処理の実行が要求されるか、またはカーネルタイマから割り込み信号が供給されるたびに、他の処理の実行を制御する。 In this case, the control device or execution of the processing from the network layer is required, or whenever the interrupt signal from the kernel timer is supplied, controls the execution of other processes.

上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。 The series of processes described above, can be executed by hardware, it may otherwise be executed by software. 一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。 When the series of processes is executed by software, a program constituting the software is installed into a computer embedded in dedicated hardware, or by installing various programs, you can execute various functions possible, for example, a general-purpose personal computer by installing the recording medium.

この記録媒体は、図6に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク131(フレキシブルディスクを含む)、光ディスク132(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク133(MD(Mini-Disc)(商標)を含む)、若しくは半導体メモリ134などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM102や、記録部108に含まれるハードディスクなどで構成される。 The recording medium is, as shown in FIG. 6 (including a flexible disk), separate from the computer is distributed to provide the program to a user, the magnetic disk 131 in which the program is recorded, the optical disk 132 (CD- ROM (Compact disc-Read Only memory), comprises a DVD (Digital Versatile disc)), magneto-optical disk 133 (MD (Mini-disc) (trademark)), or is constituted by a package medium such as semiconductor memory 134 not only that, it is provided to the user in a state of being stored in advance in a computer, program or ROM102 that is recorded, and a hard disk included in the recording unit 108.

なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。 Installation The program of executing the series of processes described above, the router if necessary, via an interface, such as a modem, a local area network, the Internet, or digital satellite broadcasting, to the computer via a wired or wireless communication medium it may be as is.

また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。 Further, the steps describing the program stored in the recording medium may include processes that are executed sequentially in the order described, without being processed in a time series, parallel or but also the processing operations to be performed separately.

なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。 In the present specification, the system represents the entire apparatus including a plurality of devices.

従来の通信装置が、アプリケーションプログラムおよびオペレーティングシステムのカーネルの機能を呼び出すことにより実現される、機能の構成を示すブロック図である。 Conventional communication device is implemented by invoking the function of the kernel of the application programs and operating systems, is a block diagram showing a configuration of functions. トラフィック量の制御を行う従来の通信装置の機能の構成を示すブロック図である。 It is a block diagram showing a configuration of functions of a conventional communication apparatus for control of traffic. パケットのエンキューの処理を説明するフローチャートである。 It is a flowchart illustrating the process of enqueuing packets. 送信時刻算出の処理を説明するフローチャートである。 Is a flowchart describing the processing of the transmission time calculating. パケットのデキューの処理を説明するフローチャートである。 It is a flowchart illustrating a process of dequeue packet. 本発明を適用した通信装置の構成の例を示すブロック図である。 Is a block diagram showing an example of the configuration of the applied communication apparatus of the present invention. プログラムを実行するCPUの機能の構成を示すブロック図である。 It is a block diagram showing a configuration of functions of a CPU that executes the program. 仮想デバイスドライバの機能の構成を示すブロック図である。 It is a block diagram showing a configuration of a function of the virtual device driver. パケットのエンキューの処理を説明するフローチャートである。 It is a flowchart illustrating the process of enqueuing packets. 送信時刻算出の処理を説明するフローチャートである。 Is a flowchart describing the processing of the transmission time calculating. パケットのデキューの処理を説明するフローチャートである。 It is a flowchart illustrating a process of dequeue packet.

符号の説明 DESCRIPTION OF SYMBOLS

101 CPU, 102 ROM, 103 RAM, 108 記録部, 131 磁気ディスク, 132 光ディスク, 133 光磁気ディスク, 134 半導体メモリ, 174 仮想デバイスドライバ, 175 カーネルタイマ, 176 バッファ, 211 入力処理部, 212 キュー情報保持部, 213 出力情報保持部, 214 出力処理部, 215 時刻保持部, 231 入力制御部, 232 判定部, 233 算出部, 236 出力制御部 101 CPU, 102 ROM, 103 RAM, 108 recording unit, 131 a magnetic disk, 132 disc, 133 a magneto-optical disk, 134 a semiconductor memory, 174 a virtual device driver, 175 kernel timer, 176 a buffer, 211 an input processing unit, 212 queue information held Department, 213 output information holding unit, 214 output unit, 215 time holding unit, 231 input control unit, 232 determination unit, 233 calculation unit, 236 output control unit

Claims (7)

  1. 通信網を介してパケットを送信する送信装置であって、アプリケーションプログラムからパケットの送信が指示された場合、または送信を要求したパケットが、送信のためのキューに配置されたパケットを格納するバッファに格納されなかった場合、前記バッファに格納されているパケットの数が第1の閾値より小さいとき、前記通信網上の経路を特定した相手へのパケットの送信を要求する要求手段を備える送信装置において、 A transmission apparatus for transmitting a packet via a communication network, when the transmission of a packet from the application program is instructed, or packets that requested the transmission, the buffer storing the arranged packets in a queue for transmission If not stored, when the number of packets stored in the buffer is less than the first threshold value, the transmission device comprising a requesting means for requesting the transmission of a packet to the destination identified a route on the communication network ,
    前記要求手段からパケットの送信が要求された場合、前記バッファに格納されているパケットの数が、前記第1の閾値より小さい第2の閾値以下であるか否かを判定する、プログラムの実行により実現される判定手段と、 If the transmission of the packet is requested from said request unit, the number of packets stored in the buffer, determining if the first whether the threshold is less than or equal to less than the second threshold value, the execution of the program a determining means implemented,
    前記バッファに格納されているパケットの数が前記第2の閾値以下であると判定された場合、前記要求手段から送信が要求されたパケットを前記バッファに格納し、前記バッファに格納されているパケットの数が前記第2の閾値を超えていると判定された場合、前記要求手段から送信が要求されたパケットを前記バッファに格納しないように、前記バッファへのパケットの格納を制御する、プログラムの実行により実現される格納制御手段と、 If the number of packets stored in the buffer is determined to be equal to or less than the second threshold value, and stores the packets requested transmitted from the requesting unit to the buffer is stored in the buffer packet If the number of is determined to exceed the second threshold value, a packet requested transmitted from the requesting unit not to store in the buffer, for controlling the storage of packets to the buffer, program a storage control means which is realized by executing,
    前記要求手段からパケットの送信が要求された場合、前記キューに基づき、前記バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する、プログラムの実行により実現される出力制御手段と を備えることを特徴とする送信装置。 When the transmission from the requesting unit of the packet is requested, based on the queue, the packet stored in the buffer, controls the output of the control program for controlling the transmission of packets by the hardware, the execution of the program transmitting device, characterized in that it comprises an output control means implemented.
  2. 前記出力制御手段は、前記要求手段からパケットの送信が要求された場合、送信する時刻となった前記パケットを、前記バッファから取得し、取得した前記パケットの、ハードウェアによる前記パケットの送信を制御する前記制御プログラムへの出力を制御する ことを特徴とする請求項1に記載の送信装置。 The output control means, if transmission of the packet is requested from said requesting unit, the packet that time to be transmitted, obtained from the buffer, the acquired the packet, control the transmission of the packet by the hardware transmitting apparatus according to claim 1, characterized in that the control output to the control program.
  3. 前記出力制御手段は、予め定められた所定の時間間隔で割り込み処理が要求された場合、送信する時刻となった前記パケットを、前記バッファから取得し、取得した前記パケットの、ハードウェアによる前記パケットの送信を制御する前記制御プログラムへの出力を制御する ことを特徴とする請求項1に記載の送信装置。 The output control means, when the interrupt processing is requested at a predetermined time interval to a predetermined, the packet that time to be transmitted, obtained from the buffer, of the acquired packet; the hardware packet transmitting apparatus according to claim 1, characterized in that the control output to the control program for controlling the transmission.
  4. 通信網を介してパケットを送信する送信方法であって、アプリケーションプログラムからパケットの送信が指示された場合、または送信を要求したパケットが、送信のためのキューに配置されたパケットを格納するバッファに格納されなかった場合、前記バッファに格納されているパケットの数が第1の閾値より小さいとき、前記通信網上の経路を特定した相手へのパケットの送信を要求する要求ステップを含む送信方法において、 A transmission method for transmitting a packet via a communication network, when the transmission of a packet from the application program is instructed, or packets that requested the transmission, the buffer storing the arranged packets in a queue for transmission If not stored, when the number of packets stored in the buffer is less than the first threshold value, the transmission method including a request step of requesting transmission of a packet to the destination identified a route on the communication network ,
    前記要求ステップにおいてパケットの送信が要求された場合、前記バッファに格納されているパケットの数が、前記第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップと、 If the transmission of the packet is requested in the requesting step, the number of packets stored in the buffer, a determination step of determining said first whether the threshold is less than or equal to less than the second threshold value,
    前記バッファに格納されているパケットの数が前記第2の閾値以下であると判定された場合、前記要求ステップにおいて送信が要求されたパケットを前記バッファに格納し、前記バッファに格納されているパケットの数が前記第2の閾値を超えていると判定された場合、前記要求ステップにおいて送信が要求されたパケットを前記バッファに格納しないように、前記バッファへのパケットの格納を制御する格納制御ステップと、 If the number of packets stored in the buffer is determined to be equal to or less than the second threshold value, and stores the packet transmission has been requested in the requesting step to said buffer, it is stored in the buffer packet If the number of is determined to exceed the second threshold, the packet transmission has been requested in the requesting step not to store in the buffer, storing control step of controlling storing of packets to the buffer When,
    前記要求ステップにおいてパケットの送信が要求された場合、前記キューに基づき、前記バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップと を含むことを特徴とする送信方法。 If the transmission of the packet is requested in the requesting step, based on the queue, the packet stored in the buffer, and an output control step of controlling the output of the control program for controlling the transmission of packets by hardware transmission method, which comprises.
  5. アプリケーションプログラムからパケットの送信が指示された場合、または送信を要求したパケットが、送信のためのキューに配置されたパケットを格納するバッファに格納されなかった場合、前記バッファに格納されているパケットの数が第1の閾値より小さいとき、通信網上の経路を特定した相手へのパケットの送信を要求する要求ステップを含む、前記通信網を介してパケットを送信する送信処理用のプログラムであって、 When the transmission from the application program of the packet is instructed, or packets that requested the transmission, if not stored in a buffer for storing queue placement packets for transmission, the packet stored in the buffer when the number is less than the first threshold value, including a request step of requesting transmission of a packet to the destination identifying the path on the network, a program for transmission processing of transmitting the packet via the communication network ,
    前記要求ステップにおいてパケットの送信が要求された場合、前記バッファに格納されているパケットの数が、前記第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップと、 If the transmission of the packet is requested in the requesting step, the number of packets stored in the buffer, a determination step of determining said first whether the threshold is less than or equal to less than the second threshold value,
    前記バッファに格納されているパケットの数が前記第2の閾値以下であると判定された場合、前記要求ステップにおいて送信が要求されたパケットを前記バッファに格納し、前記バッファに格納されているパケットの数が前記第2の閾値を超えていると判定された場合、前記要求ステップにおいて送信が要求されたパケットを前記バッファに格納しないように、前記バッファへのパケットの格納を制御する格納制御ステップと、 If the number of packets stored in the buffer is determined to be equal to or less than the second threshold value, and stores the packet transmission has been requested in the requesting step to said buffer, it is stored in the buffer packet If the number of is determined to exceed the second threshold, the packet transmission has been requested in the requesting step not to store in the buffer, storing control step of controlling storing of packets to the buffer When,
    前記要求ステップにおいてパケットの送信が要求された場合、前記キューに基づき、前記バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップと を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 If the transmission of the packet is requested in the requesting step, based on the queue, the packet stored in the buffer, and an output control step of controlling the output of the control program for controlling the transmission of packets by hardware recording medium from which a computer readable program is recorded, which comprises.
  6. 通信網を介してパケットを送信する送信処理であって、アプリケーションプログラムからパケットの送信が指示された場合、または送信を要求したパケットが、送信のためのキューに配置されたパケットを格納するバッファに格納されなかった場合、前記バッファに格納されているパケットの数が第1の閾値より小さいとき、前記通信網上の経路を特定した相手へのパケットの送信を要求する要求ステップを含む送信処理を、コンピュータに行わせるプログラムにおいて、 A transmission process of transmitting the packet via the communication network, when the transmission of a packet from the application program is instructed, or packets that requested the transmission, the buffer storing the arranged packets in a queue for transmission If not stored, when the number of packets stored in the buffer is less than the first threshold value, the transmission process including a request step of requesting transmission of a packet to the destination identified a route on the communication network , in the program to be performed by the computer,
    前記要求ステップにおいてパケットの送信が要求された場合、前記バッファに格納されているパケットの数が、前記第1の閾値より小さい第2の閾値以下であるか否かを判定する判定ステップと、 If the transmission of the packet is requested in the requesting step, the number of packets stored in the buffer, a determination step of determining said first whether the threshold is less than or equal to less than the second threshold value,
    前記バッファに格納されているパケットの数が前記第2の閾値以下であると判定された場合、前記要求ステップにおいて送信が要求されたパケットを前記バッファに格納し、前記バッファに格納されているパケットの数が前記第2の閾値を超えていると判定された場合、前記要求ステップにおいて送信が要求されたパケットを前記バッファに格納しないように、前記バッファへのパケットの格納を制御する格納制御ステップと、 If the number of packets stored in the buffer is determined to be equal to or less than the second threshold value, and stores the packet transmission has been requested in the requesting step to said buffer, it is stored in the buffer packet If the number of is determined to exceed the second threshold, the packet transmission has been requested in the requesting step not to store in the buffer, storing control step of controlling storing of packets to the buffer When,
    前記要求ステップにおいてパケットの送信が要求された場合、前記キューに基づき、前記バッファに格納されているパケットの、ハードウェアによるパケットの送信を制御する制御プログラムへの出力を制御する出力制御ステップと を含むことを特徴とするプログラム。 If the transmission of the packet is requested in the requesting step, based on the queue, the packet stored in the buffer, and an output control step of controlling the output of the control program for controlling the transmission of packets by hardware program, characterized in that it comprises.
  7. 処理の実行を要求し、要求した処理が実行されなかった場合、繰り返し同じ処理の実行を要求する、プログラムの実行により実現される要求手段と、 Requesting execution of the process, when the requested processing has not been executed, repeatedly requesting the execution of the same processing, a request unit realized by executing a program,
    前記要求手段から処理の実行が要求された場合、前記要求手段に継続して処理の実行を要求させるように、要求された処理の実行を制御する、プログラムの実行により実現される第1の実行制御手段と、 If execution of the processing from the request means is requested, so as to request execution of continuously processing the request unit, to control the execution of the requested processing, first execution realized by executing a program and control means,
    前記要求手段から処理の実行が要求された場合、他の処理の実行を制御する、プログラムの実行により実現される第2の実行制御手段と を備えることを特徴とする制御装置。 If execution of the processing is requested from said requesting unit, and controls the execution of other processing, the control device characterized in that it comprises a second execution control means is realized by execution of the program.
JP2004300352A 2004-10-14 2004-10-14 Transmitting apparatus and method, recording medium, program, and controller Expired - Fee Related JP4446166B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004300352A JP4446166B2 (en) 2004-10-14 2004-10-14 Transmitting apparatus and method, recording medium, program, and controller

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004300352A JP4446166B2 (en) 2004-10-14 2004-10-14 Transmitting apparatus and method, recording medium, program, and controller
TW94135207A TWI292992B (en) 2004-10-14 2005-10-07
US11/248,466 US7626993B2 (en) 2004-10-14 2005-10-12 Transmission device and method, recording medium, program, and control device
CN 200510112860 CN100484096C (en) 2004-10-14 2005-10-14 Transmission device, method and control device

Publications (2)

Publication Number Publication Date
JP2006115197A JP2006115197A (en) 2006-04-27
JP4446166B2 true JP4446166B2 (en) 2010-04-07

Family

ID=36316206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004300352A Expired - Fee Related JP4446166B2 (en) 2004-10-14 2004-10-14 Transmitting apparatus and method, recording medium, program, and controller

Country Status (4)

Country Link
US (1) US7626993B2 (en)
JP (1) JP4446166B2 (en)
CN (1) CN100484096C (en)
TW (1) TWI292992B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7733894B1 (en) * 2005-12-14 2010-06-08 Juniper Networks, Inc. Dynamic queue management
JP4274229B2 (en) * 2006-11-10 2009-06-03 ダイキン工業株式会社 Air conditioner
WO2010089886A1 (en) * 2009-02-06 2010-08-12 富士通株式会社 Packet buffer device and packet discarding method
CN101656682B (en) * 2009-06-12 2011-09-21 中兴通讯股份有限公司 Method and system for processing mobile multimedia data broadcasting services
JP5497541B2 (en) * 2010-06-04 2014-05-21 株式会社メガチップス Communication control device and a shaping device
WO2012056537A1 (en) * 2010-10-27 2012-05-03 三菱電機株式会社 Programmable controller
JP5303593B2 (en) * 2011-03-16 2013-10-02 株式会社コア A packet transmission control apparatus and a packet transmission control method
JP5591892B2 (en) * 2012-09-14 2014-09-17 株式会社東芝 The content distribution server apparatus and a method of controlling the same
US20140086258A1 (en) * 2012-09-27 2014-03-27 Broadcom Corporation Buffer Statistics Tracking

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2897711B2 (en) 1996-02-05 1999-05-31 日本電気株式会社 Transmission control system
JP2001211207A (en) 2000-01-26 2001-08-03 Sony Corp Packet transmission method, packet transmitter and band ensuring method
JP4403348B2 (en) 2000-12-14 2010-01-27 ソニー株式会社 A communication apparatus and communication method
EP1253736A3 (en) 2001-04-26 2003-12-10 NTT DoCoMo, Inc. Data link transmission control for mobile communications
US7672685B2 (en) 2001-10-17 2010-03-02 Sony Corporation Transmitter and transmission control method, and receiver and reception control method
JP3925234B2 (en) 2002-02-18 2007-06-06 ソニー株式会社 Data communication system, data communication management apparatus and method, and computer program
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

Also Published As

Publication number Publication date
TWI292992B (en) 2008-01-21
JP2006115197A (en) 2006-04-27
CN100484096C (en) 2009-04-29
CN1761243A (en) 2006-04-19
US7626993B2 (en) 2009-12-01
TW200637265A (en) 2006-10-16
US20060098584A1 (en) 2006-05-11

Similar Documents

Publication Publication Date Title
Nahrstedt et al. Resource management in networked multimedia systems
US7027457B1 (en) Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches
US7698461B2 (en) Method and apparatus for queuing data flows
CN100544243C (en) Method and system for throttling network transmissions at the application layer of the transmitting server
US6456590B1 (en) Static and dynamic flow control using virtual input queueing for shared memory ethernet switches
US5712851A (en) Adaptive time slot scheduling apparatus and method utilizing a linked list mechanism
Loeser et al. Low-latency hard real-time communication over switched Ethernet
Stiliadis et al. Latency-rate servers: a general model for analysis of traffic scheduling algorithms
JP3792631B2 (en) Packet transmission method and apparatus, the base station apparatus using the radio lan terminal device, the wireless lan system
CN1085916C (en) Multimedia multiplexing device and method using dynamic packet segmentation
EP1345365A2 (en) Weighted fair queuing (WFQ) shaper
US6959002B2 (en) Traffic manager for network switch port
EP1083709A2 (en) Method and apparatus for scheduling traffic to meet quality of service requirements in a communication network
CN100508493C (en) Priority handling of voice over data in voice-over-internet protocol processor
CN1981484B (en) Hierarchal scheduler with multiple scheduling lanes and scheduling method
US8169909B2 (en) Optimization of a transfer layer protocol connection
US7292530B2 (en) Method and apparatus to manage packet fragmentation
US20060020702A1 (en) Methods and systems for a receiver to allocate bandwidth among incoming communications flows
JP4338285B2 (en) Packet scheduling methods and apparatus
US6198724B1 (en) ATM cell scheduling method and apparatus
JP3715098B2 (en) Delivery device and method for a packet in a communication network
US20030223428A1 (en) Method and apparatus for scheduling aggregated resources
US20030202517A1 (en) Apparatus for controlling packet output
CN101354664B (en) Multi-core processor interrupt load balancing method and apparatus
US6876952B1 (en) Methods and apparatus for maintaining queues

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100106

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140129

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees