Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7655384B2 - COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM - Google Patents
[go: Go Back, main page]

JP7655384B2 - COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM - Google Patents

COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM Download PDF

Info

Publication number
JP7655384B2
JP7655384B2 JP2023528772A JP2023528772A JP7655384B2 JP 7655384 B2 JP7655384 B2 JP 7655384B2 JP 2023528772 A JP2023528772 A JP 2023528772A JP 2023528772 A JP2023528772 A JP 2023528772A JP 7655384 B2 JP7655384 B2 JP 7655384B2
Authority
JP
Japan
Prior art keywords
transmission
reception
packet
time
class
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.)
Active
Application number
JP2023528772A
Other languages
Japanese (ja)
Other versions
JPWO2022264230A1 (en
Inventor
宏紀 岩澤
信博 東
貴秀 木津
仁士 益谷
健 桑原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2022264230A1 publication Critical patent/JPWO2022264230A1/ja
Application granted granted Critical
Publication of JP7655384B2 publication Critical patent/JP7655384B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、Time Sensitive Networkingなどの時分割送信を行う通信装置に関連するものである。 The present invention relates to a communication device that performs time-division transmission, such as Time Sensitive Networking.

産業・車載イーサネット(登録商標)上で遅延・ジッタを保証しつつ、ベストエフォート通信と共存可能なTime Sensitive Networking(TSN)が近年注目されている。今後、工場内、自動車内に閉じたLocal Area Network(LAN)内だけでなく、離れた工場間での閉ループ制御など、広域での確定時間通信サービスの実現が期待される。Time Sensitive Networking (TSN), which guarantees delay and jitter on industrial and automotive Ethernet (registered trademark) and can coexist with best-effort communication, has been attracting attention in recent years. In the future, it is expected that deterministic time communication services will be realized over a wide area, such as closed loop control between distant factories, as well as within closed Local Area Networks (LANs) in factories and automobiles.

TSNの適用領域拡大に向けて、柔軟にTSNサービスを提供する上で、コンテナ・Virtual Machine(VM)等の仮想環境下でTSN通信を実現することが有効である。 In order to expand the scope of application of TSN, it is effective to realize TSN communication in virtual environments such as containers and virtual machines (VMs) in order to flexibly provide TSN services.

また、TSN(特にIEEE 802.1Qbv、以後Qbv)のタイムスロットを、固定的に特定のクラスに割当てるのではなく、複数のアプリケーションで共用することで、より多くのサービスを収容可能となる。 In addition, by sharing TSN (particularly IEEE 802.1Qbv, hereafter referred to as Qbv) time slots among multiple applications rather than assigning them fixedly to specific classes, it becomes possible to accommodate a greater number of services.

一方で、同一物理ホスト上に複数のコンテナ/VM(以後ゲスト)が存在し、TSNの送信クラスを共用する場合、ゲスト間のトラヒックの衝突によるキューイング遅延の発生や、同一クラス内での順序逆転が発生し、ジッタ保証が実現できない恐れがある。On the other hand, when multiple containers/VMs (hereafter referred to as guests) exist on the same physical host and share a TSN transmission class, queuing delays may occur due to traffic collisions between guests, or order reversals may occur within the same class, making it impossible to achieve jitter guarantees.

C. Xu, K. Rajamani and W. Felter, "NBWGuard: Realizing Network QoS for Kubernetes," Computer Science Proceeding of the 19th International Middleware Conference Industry, 2018.C. Xu, K. Rajamani and W. Felter, "NBWGuard: Realizing Network QoS for Kubernetes," Computer Science Proceeding of the 19th International Middleware Conference Industry, 2018.

同一物理ホスト上に複数のゲストが存在する環境において、ゲストからTSN通信を行う際、非特許文献1等に開示されている従来技術では、ゲスト側でホストと同一のトラヒック制御を行う方法以外に、ゲスト間のトラヒック衝突を防ぎ、遅延保証を行うことができない。In an environment where multiple guests exist on the same physical host, when TSN communication is performed from a guest, the conventional technology disclosed in non-patent document 1, etc., cannot prevent traffic collisions between guests and guarantee delays other than by performing the same traffic control on the guest side as the host.

しかし、ゲスト側でホスト側と同一のトラヒック制御を行う場合、ゲスト毎に複雑なタイムスロット割り当て処理を実装する必要がある。また、設定ミスや意図的な攻撃により他ゲストのTSN通信を妨害することが可能となってしまう。すなわち、ゲスト側で複雑な時分割送信制御行うことなく、ゲスト-ホスト間の通信においてジッタ(遅延のゆらぎ)を保証する仕組みが存在しないという課題がある。 However, if the guest side were to perform the same traffic control as the host side, it would be necessary to implement a complex time slot allocation process for each guest. Also, it would be possible to disrupt the TSN communications of other guests through misconfiguration or intentional attacks. In other words, there is an issue that there is no mechanism to guarantee jitter (delay fluctuation) in guest-host communications without performing complex time-division transmission control on the guest side.

本発明は上記の点に鑑みてなされたものであり、同一物理ホスト上に複数のゲストが備えられる環境でのTSN通信において、ゲスト側で複雑な時分割送信制御行うことなく、ジッタを保証する仕組みを提供することを目的とする。 The present invention has been made in consideration of the above points, and aims to provide a mechanism for guaranteeing jitter in TSN communication in an environment where multiple guests are installed on the same physical host, without the need for complex time-division transmission control on the guest side.

開示の技術によれば、アプリケーションが動作するサーバからパケットを受信する複数の受信制御部を備え、各受信制御部は、
受信バッファと、
外部ネットワークと接続する送信インターフェースにおいて前記パケットを受信可能な時刻に、前記パケットを前記送信インターフェースに向けて送信し、前記送信インターフェースにおいて前記パケットを受信不可の時刻に、前記パケットを前記受信バッファに格納する受信判定部と、を備える通信制御装置であって、
前記送信インターフェースは、クラス分類部と複数の送信キューを有し、
前記通信制御装置は、前記複数の受信制御部と前記送信インターフェースとの間にクラス付与部を更に備え、
前記クラス付与部は、
前記送信インターフェースにおける時分割送信制御のためのスケジュール情報に基づいて、前記パケットのタイムスロットと送信クラスを判別し、前記パケットに送信クラス識別子を付与する
通信制御装置が提供される。
According to the disclosed technology, a plurality of reception control units are provided for receiving packets from a server on which an application runs, and each reception control unit:
A receive buffer;
a reception determination unit that transmits the packet to a transmission interface connected to an external network at a time when the packet can be received at the transmission interface, and stores the packet in the reception buffer at a time when the packet cannot be received at the transmission interface,
the transmission interface includes a classifier and a plurality of transmission queues;
the communication control device further includes a class assigning unit between the plurality of reception control units and the transmission interface;
The class assignment unit
A time slot and a transmission class of the packet are determined based on schedule information for time division transmission control in the transmission interface, and a transmission class identifier is assigned to the packet.
A communications control device is provided.

開示の技術によれば、同一物理ホスト上に複数のゲストが備えられる環境でのTSN通信において、ゲスト側で複雑な時分割送信制御行うことなく、ジッタを保証する仕組みを実現することができる。 According to the disclosed technology, in TSN communication in an environment where multiple guests are installed on the same physical host, a mechanism can be realized that guarantees jitter without complex time-division transmission control on the guest side.

課題を説明するための図である。FIG. 1 is a diagram for explaining a problem. 課題を説明するための図である。FIG. 1 is a diagram for explaining a problem. 課題を説明するための図である。FIG. 1 is a diagram for explaining a problem. 実施の形態の概要を説明するための図である。FIG. 1 is a diagram for explaining an overview of an embodiment. 本発明の実施の形態におけるシステムの全体構成図である。1 is an overall configuration diagram of a system according to an embodiment of the present invention; 実施例1におけるホストの構成図である。FIG. 2 is a configuration diagram of a host according to the first embodiment. 実施例1における受信制御部の構成図である。FIG. 4 is a configuration diagram of a reception control unit in the first embodiment. 実施例1における送信制御部の構成図である。FIG. 2 is a configuration diagram of a transmission control unit in the first embodiment. 受信判定方法1における受信判定部のパケット受信時の処理フローである。13 is a process flow when a packet is received by a reception determination unit in reception determination method 1. 受信判定方法1における受信バッファからクラス付与部への転送フローである。13 shows a transfer flow from a reception buffer to a class assignment unit in reception determination method 1. 受信判定方法2における受信許可時刻算出フローである。13 is a flow chart showing a flow of calculation of a reception permitted time in a reception determination method 2. 受信判定方法2における受信判定部のパケット受信時の処理フローである。13 is a process flow when a packet is received by a reception determination unit in reception determination method 2. 受信判定方法3における受信許可時刻算出フローである。13 is a flow chart showing a flow of calculation of a reception permission time in the reception determination method 3. 受信判定方法3における受信判定部のパケット受信時の処理フローである。13 is a process flow when a packet is received by a reception determination unit in reception determination method 3. 受信判定方法3における受信許可時刻算出フローである。13 is a flow chart showing a flow of calculation of a reception permission time in the reception determination method 3. 変数の関係を示す図である。FIG. 1 is a diagram illustrating the relationship between variables. スケジュール情報の例を示す図である。FIG. 11 is a diagram illustrating an example of schedule information. スケジュール情報の例を示す図である。FIG. 11 is a diagram illustrating an example of schedule information. 実施例2におけるホストの構成図である。FIG. 11 is a configuration diagram of a host according to a second embodiment. 実施例2における受信制御部の構成図である。FIG. 11 is a configuration diagram of a reception control unit in the second embodiment. 実施例2におけるクラス付与部の構成図である。FIG. 11 is a configuration diagram of a class assignment unit in the second embodiment. 実施例3におけるホストの構成図である。FIG. 13 is a configuration diagram of a host according to a third embodiment. スケジュール情報の例を示す図である。FIG. 11 is a diagram illustrating an example of schedule information. 実施例4における受信制御部の構成図である。FIG. 13 is a configuration diagram of a reception control unit in the fourth embodiment. 実施例5における送信キューの割り当て例を示す図である。FIG. 13 is a diagram illustrating an example of allocation of transmission queues in the fifth embodiment. 実施例5における受信制御部の構成図である。FIG. 13 is a configuration diagram of a reception control unit in the fifth embodiment. 実施例5における送信制御部の構成図である。FIG. 13 is a configuration diagram of a transmission control unit in the fifth embodiment. 実施例6におけるホストの構成図である。FIG. 23 is a configuration diagram of a host according to a sixth embodiment. 装置のハードウェア構成例である。2 is an example of a hardware configuration of the device.

以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。Hereinafter, an embodiment of the present invention (the present embodiment) will be described with reference to the drawings. The embodiment described below is merely an example, and the embodiment to which the present invention is applicable is not limited to the following embodiment.

以下、Time Sensitive Networkingなどの時分割送信を行うネットワーク内で時分割送信に対応していないサーバと接続する中継装置の受信インターフェースにおいて、時分割受信制御を行うことで、他のトラヒックとの衝突を防止する技術に関する実施の形態を説明する。 Below, we will explain an embodiment of a technology that prevents collisions with other traffic by performing time division reception control in the receiving interface of a relay device that connects to a server that does not support time division transmission in a network that performs time division transmission such as Time Sensitive Networking.

以下の説明に係る本実施の形態では、TSNの方式として、通信装置のポート毎に、複数の送信キューを用意し、送信可否を制御するゲート開閉を、内部クロックに基づく時間により制御するQbvの方式を想定しているが、本発明はQbvの方式に限らずに適用可能である。 In the present embodiment described below, the TSN method assumes the Qbv method, in which multiple transmission queues are prepared for each port of the communication device, and the gate opening and closing that controls whether transmission is possible is controlled by time based on an internal clock, but the present invention is applicable in ways other than the Qbv method.

また、本実施の形態では、Qbvの時分割送信スケジュールにおけるタイムスロットを、複数のゲスト(TSN Talker)にて共用する環境を前提としているが、本発明はこのような前提に限定されるわけではない。 In addition, this embodiment is based on the premise that a time slot in Qbv's time-division transmission schedule is shared by multiple guests (TSN Talkers), but the present invention is not limited to such a premise.

(課題について)
まず、後述する実施例に係る技術に対する課題についてより詳細に説明する。図1に、同一物理ホスト上に3つのゲスト(コンテナ/VM)が存在し、TSNの送信クラスを共用する構成の例を示す。このような構成では、ゲスト間のトラヒック衝突によるキューイング遅延発生や、同一送信クラス内での送信順序逆転が生じる可能性がある。なお、図1は、従来技術の課題の説明のための図であり、図1の構成自体は公開されている既存技術ではない。図2も同様である。
(Regarding the issues)
First, the problems with the technology according to the embodiment described later will be described in more detail. FIG. 1 shows an example of a configuration in which three guests (containers/VMs) exist on the same physical host and share a TSN transmission class. In such a configuration, queuing delays may occur due to traffic collisions between guests, and transmission order reversals may occur within the same transmission class. Note that FIG. 1 is a diagram for explaining the problems with the conventional technology, and the configuration of FIG. 1 itself is not a publicly available existing technology. The same is true for FIG. 2.

上記の課題に対し、図2に示すように、ゲスト側にもホストと同じQbvの送信スケジュールに従う時分割送信制御を設定することが考えらえる。これにより、トラヒックの衝突は防ぐことができる。しかし、そのためにはゲスト側でQbvを行うためのクラス付与と送信制御を行う必要がある。クラスの付与にはアプリケーション毎にL2のネットワークレイヤまで独自に実装するか、Linux(登録商標)が提供するiptables,tc等の機能を利用する必要がある。 To address the above issues, as shown in Figure 2, it is possible to set up time-division transmission control on the guest side that follows the same Qbv transmission schedule as the host. This can prevent traffic collisions. However, in order to do this, it is necessary to assign classes and perform transmission control to perform Qbv on the guest side. To assign classes, it is necessary to implement the L2 network layer independently for each application, or to use functions such as iptables and tc provided by Linux (registered trademark).

前者の独自実装に関しては、アプリケーション作成者がネットワークレイヤまで実装する必要があり、後者のiptables,tc等の機能を利用するにはゲスト側で機能を利用するための特権が必要となり、セキュリティ上の問題がある。特権をゲストに付与した場合、ゲスト側の設定ミスや意図的な攻撃による時分割送信制御の妨害が可能となってしまう。またタイムスロットを複数のゲストで共用する場合、ゲスト毎に複雑なタイムスロット割り当てを実施する必要がある。 When implementing the former on your own, the application creator must implement up to the network layer, while in order to use the latter functions such as iptables and tc, the guest needs special privileges to use the functions, which poses security issues. If special privileges are granted to the guest, it becomes possible for the guest to make configuration errors or launch deliberate attacks that could disrupt time-division transmission control. Furthermore, when sharing a time slot among multiple guests, complex time slot allocation must be implemented for each guest.

一方、ゲスト側で時分割送信制御を行わない場合、アプリケーションの送信タイミングが制限されないため、ホスト側送信インターフェース(以後I/F)へのパケットのエンキュー順序の逆転によるキューイング遅延の増加や、送信タイムスロットがずれてしまう恐れがある。On the other hand, if time-division transmission control is not performed on the guest side, the application's transmission timing is not restricted, which may result in increased queuing delays due to a reversal of the enqueuing order of packets to the host-side transmission interface (hereinafter referred to as I/F), or the transmission time slot may be shifted.

図3を参照して上記の状況の例を説明する。図3の上段は、ある送信クラスの本来のパケット送信順を示す送信スケジュールを示し、図3の下段は、ゲスト間トラヒックの割込が生じた際の送信順序を示す。A~Eはopen1及びopen2の期間で送信されるパケットを意味する。An example of the above situation will be described with reference to Figure 3. The upper part of Figure 3 shows a transmission schedule indicating the original packet transmission order of a certain transmission class, and the lower part of Figure 3 shows the transmission order when an interruption of inter-guest traffic occurs. A to E represent packets transmitted during the open1 and open2 periods.

図3に示すとおり、本来の送信スケジュールにおいてパケットDがopen2の送信タイムスロットで送信される。しかし、送信スケジュールを待たずにパケットDがenqueueされた場合、パケットDが、本来の送信タイムスロットopen2より前の、パケットCより先に到着することで、Cの送信が1タイムスロット内で間に合わなくなる。またDがタイムセンシティブなパケットであった場合、Dも想定より早く送信処理が行われ、ジッタが拡大することとなる。 As shown in Figure 3, in the original transmission schedule, packet D is transmitted in the open2 transmission timeslot. However, if packet D is enqueued without waiting for the transmission schedule, packet D will arrive before packet C, prior to the original open2 transmission timeslot, meaning that C will not be able to be transmitted within one timeslot. Furthermore, if D is a time-sensitive packet, D will also be processed for transmission earlier than expected, resulting in increased jitter.

続いて、公開されている従来技術の例として従来技術1と従来技術2を説明する。 Next, we will explain prior art 1 and prior art 2 as examples of publicly available prior art.

<従来技術1>
従来技術1は、非特許文献1に開示されている技術である。従来技術1では、Linux(登録商標)の拡張機能であるIntermediate Functional Block device(IFB)を利用し、ゲストと接続するホストの仮想I/Fで受信したパケットをIFBに転送する。IFB上でHierarchical Token Bucket(HTB)を用いて、Pod間の最大データ送信量をkubernetesのManifestファイルから指定することにより、Pod毎の送受信帯域を制限できる。
<Prior Art 1>
Prior art 1 is a technology disclosed in Non-Patent Document 1. Prior art 1 uses an Intermediate Functional Block device (IFB), which is an extension function of Linux (registered trademark), to transfer packets received at a virtual I/F of a host connecting to a guest to the IFB. By using a Hierarchical Token Bucket (HTB) on the IFB to specify the maximum data transmission amount between pods from a Kubernetes Manifest file, the transmission and reception bandwidth for each pod can be restricted.

従来技術1の適用により、ゲスト毎の帯域を管理できるが、HTBはジッタを犠牲に帯域を保証する方式のため、ゲスト間のトラヒックの競合によるキューイング遅延の悪化やタイムスロットのずれを解消できない。 By applying conventional technology 1, it is possible to manage the bandwidth for each guest, but because HTB is a method that guarantees bandwidth at the expense of jitter, it cannot eliminate the worsening queuing delays and time slot discrepancies caused by traffic contention between guests.

<従来技術2>
「https://man7.org/linux/man-pages/man8/tc-etf.8.html」に開示されているとおり、Linux kernel4.19からEarliest TxTime First(以下、ETF)と呼ばれる、送信要求時刻に従って送信処理を行うキュー制御が導入されている。
<Prior Art 2>
As disclosed in "https://man7.org/linux/man-pages/man8/tc-etf.8.html", Linux kernel 4.19 introduces queue control called Earliest TxTime First (hereinafter, ETF), which performs transmission processing according to the transmission request time.

ETFでは、通信パケットのkernel内メタデータとして送信要求時刻を付与し、Network interfaceに紐づくkernel内部のパケットバッファ(Qdisc)にて、rbtreeデータ構造を用いて、送信要求時刻が現在の時刻に近い順にパケットを整列し、送信要求時刻に間に合うようにドライバ内リングバッファへのデキュー処理を行う。In ETF, the transmission request time is added as metadata within the kernel of the communication packet, and the rbtree data structure is used to sort the packets in the packet buffer (Qdisc) within the kernel linked to the network interface in order of the transmission request time closest to the current time, and the packets are dequeued to the ring buffer within the driver so that they arrive in time for the transmission request time.

ETFを採用することで、ホストに閉じた通信に関しては、本来の送信タイミングではないパケットが送信されることは生じなくなる。しかし、ゲスト内で付与されたパケットメタデータは、通常仮想インターフェースからホストにパケットが渡された段階で失われるため、ゲスト-ホスト間の通信においては、利用できない。 By adopting ETF, packets will not be sent at the wrong time for communications closed to the host. However, packet metadata added within the guest is usually lost when the packet is passed from the virtual interface to the host, so it cannot be used in communications between the guest and the host.

<従来技術の課題>
上述したとおり、ホスト内に複数のゲストを備えた環境において、ゲストからTSN通信を行う際、ゲスト間のトラヒック衝突を防ぎ、遅延保証を行うことができない。これに対してゲスト側でホスト側と同一のトラヒック制御を行うことが考えられるが、ゲスト毎に複雑なタイムスロット割り当て処理を実装する必要があり、また設定ミスや意図的な攻撃により他ゲストのTSN通信を妨害することが可能となってしまう。
<Problems with the prior art>
As mentioned above, in an environment with multiple guests in a host, when a guest performs TSN communication, it is not possible to prevent traffic collisions between guests and guarantee delays. To address this issue, it is possible to perform the same traffic control on the guest side as on the host side, but this requires implementing a complex time slot allocation process for each guest, and it is also possible to disrupt the TSN communication of other guests due to configuration errors or intentional attacks.

すなわち、ゲスト側で複雑な時分割送信制御行うことなく、ゲスト-ホスト間の通信においてジッタを保証する仕組みが存在しない課題がある。以下、この課題を解決する本実施の形態に係る技術について説明する。 In other words, there is a problem in that there is no mechanism to compensate for jitter in communication between a guest and a host without complex time-division transmission control on the guest side. Below, we will explain the technology related to this embodiment that solves this problem.

(実施の形態の概要)
まず、図4を参照して本実施の形態の概要を説明する。図4は、3つのゲストを備えるホストの例である。なお、図4に示す各機能部の動作については後述する実施例において説明する。
(Overview of the embodiment)
First, an overview of this embodiment will be described with reference to Fig. 4. Fig. 4 shows an example of a host having three guests. The operation of each functional unit shown in Fig. 4 will be described in the examples described later.

本実施の形態では、ゲストの送信I/Fと対になるホストの受信I/Fにバッファを設け、ホスト側のQbv送信制御と同期するゲート開閉による受信制御を行う。In this embodiment, a buffer is provided in the host's receiving I/F that pairs with the guest's transmitting I/F, and receiving control is performed by opening and closing a gate in synchronization with the host's Qbv transmitting control.

このように受信I/Fにバッファを設けることで、ホストの送信タイミング以外にホスト側へ流れるトラヒックをフィルタし、ホストの送信タイミングになるまで受信I/Fにてバッファすることができる。これにより、ゲスト間のトラヒック衝突を防ぎ、ジッタを保証することができる。 By providing a buffer in the receiving I/F in this way, traffic flowing to the host side other than at the host's sending timing can be filtered and buffered in the receiving I/F until the host's sending timing arrives. This prevents traffic collisions between guests and guarantees jitter.

すなわち、図4に示すとおり、各ゲストのアプリケーション(TSN Talker)は送信タイミングやTSNの設定を意識不要であり、送信タイミングでなければ受信I/Fでパケットをバッファする制御が可能である。このように、送信制御と同期して受信制御を行うことで、送信タイミングのトラヒックのみを転送するため、パケットの衝突が生じず、ジッタ保証を実現できる。 In other words, as shown in Figure 4, each guest application (TSN Talker) does not need to be aware of the transmission timing or TSN settings, and if it is not the transmission timing, the reception I/F can be controlled to buffer packets. In this way, by performing reception control in synchronization with transmission control, only traffic at the transmission timing is transferred, so packet collisions do not occur and jitter compensation can be achieved.

以下、本実施の形態におけるシステム構成と動作について詳細に説明する。 The system configuration and operation in this embodiment are described in detail below.

(システムの全体構成例)
図5に、本実施の形態におけるシステムの全体構成例を示す。図5に示すとおり、本システムは、ホスト100、TSNドメイン500、クライアント端末200を含む。
(Example of overall system configuration)
An example of the overall configuration of the system according to this embodiment is shown in Fig. 5. As shown in Fig. 5, this system includes a host 100, a TSN domain 500, and a client terminal 200.

ホスト100は、複数のゲストを収容する物理サーバである。TSNドメイン500は、TSN(IEEE 802.1AS,Qbvの2つを含む)をサポートした装置で構成されるネットワークである。図5には、TSNドメイン500を構成する装置の例として中継装置300、400が示されている。クライアント端末200は、ホスト100内のゲストと通信する。 Host 100 is a physical server that accommodates multiple guests. TSN domain 500 is a network composed of devices that support TSN (including both IEEE 802.1AS and Qbv). Figure 5 shows relay devices 300 and 400 as examples of devices that make up TSN domain 500. Client terminal 200 communicates with guests in host 100.

ホスト100は、ゲスト110‐1~110‐n、及び仮想中継装置120を有する。複数のゲスト1~nは、ホスト100内の仮想中継装置120に接続し、ホスト100の送受信インターフェースを介してクライアント端末200と通信を行う。The host 100 has guests 110-1 to 110-n and a virtual relay device 120. The multiple guests 1 to n are connected to the virtual relay device 120 in the host 100 and communicate with the client terminal 200 via the transmission/reception interface of the host 100.

なお、本実施の形態では、ゲストと仮想中継装置を用いるが、ゲストの代わりに物理的に配線されたベアメタルサーバ、仮想中継装置の代わりに物理中継装置を利用してもよい。「ゲスト」を「サーバ」と呼んでもよい。また、「中継装置」は、「仮想中継装置」と「物理中継装置」の両方を含む広い意味を持つ。 In this embodiment, a guest and a virtual relay device are used, but a physically wired bare metal server may be used instead of the guest, and a physical relay device may be used instead of the virtual relay device. The "guest" may also be called a "server." Also, the term "relay device" has a broad meaning that includes both a "virtual relay device" and a "physical relay device."

また、「中継装置」や、「中継装置」を含む装置(例:ホスト、実施例5の物理NIC)を、「通信制御装置」と呼んでもよい。 In addition, a "relay device" or a device that includes a "relay device" (e.g., a host or a physical NIC in Example 5) may be referred to as a "communications control device."

以下、ホスト100の詳細構成と詳細動作を実施例1~6を用いて説明する。実施例1~6は任意に組み合わせて実施することが可能である。 Below, the detailed configuration and operation of the host 100 will be explained using Examples 1 to 6. Examples 1 to 6 can be implemented in any combination.

(実施例1:基本方式)
まず、基本方式を実施例1として説明する。
(Example 1: Basic method)
First, the basic method will be described as a first embodiment.

<ホスト100の構成>
図6にホスト100の構成を示す。図6に示す例において、ホスト100は、ゲスト110-1~110-3、仮想中継装置120、スケジュールDB(データベース)130、送信制御部140、物理NIC150を備える。各ゲストは、アプリケーションと、仮想送受信I/FであるvNICを備える。
<Configuration of Host 100>
Fig. 6 shows the configuration of the host 100. In the example shown in Fig. 6, the host 100 includes guests 110-1 to 110-3, a virtual relay device 120, a schedule DB (database) 130, a transmission control unit 140, and a physical NIC 150. Each guest includes an application and a vNIC which is a virtual transmission/reception I/F.

仮想中継装置120は、各ゲスト110と接続するvNICと受信制御部121、及びクラス付与部122を備える。「vNIC+受信制御部121」を受信インターフェースと呼んでもよい。The virtual relay device 120 comprises a vNIC that connects to each guest 110, a reception control unit 121, and a class assignment unit 122. The "vNIC + reception control unit 121" may be referred to as a reception interface.

各ゲスト110と仮想中継装置120は、それぞれのvNICで接続され、各ゲスト110内のアプリケーションはvNICを介して、仮想中継装置120内のvNIC、受信制御部121、クラス付与部122を経由し、送信制御部140、物理NIC150を介して外部ネットワークと通信を行う。ここで、「送信制御部140+物理NIC150」を送信インターフェースと呼んでもよい。また、仮想中継装置120の中に送信制御部140と物理NIC150(つまり送信インターフェース)が含まれることとしてもよい。Each guest 110 and virtual relay device 120 are connected by their respective vNICs, and applications in each guest 110 communicate with the external network via the vNIC, the reception control unit 121, the class assignment unit 122 in the virtual relay device 120, the transmission control unit 140, and the physical NIC 150. Here, the "transmission control unit 140 + physical NIC 150" may be called a transmission interface. Also, the transmission control unit 140 and the physical NIC 150 (i.e., the transmission interface) may be included in the virtual relay device 120.

複数の受信制御部121-1~121-3、及び送信制御部140がスケジュールDB130を参照する。 Multiple receiving control units 121-1 to 121-3 and a transmitting control unit 140 refer to the schedule DB 130.

標準のTSNでは、パケットを送信する端末(Talker)において、IEEE802.1Qbvによる送信制御を行うためのクラス識別子(VLAN(Virtual LAN)タグ)の付与を行うが、実施例1では、パケットを送信するゲスト110ではVLANタグを付与せず、スケジュールDB130の情報を元に、受信制御部121にて、パケットのメタデータとしてクラス情報が付与され、クラス付与部122にて、クラス情報を元にパケットにクラス識別子を付与する。In standard TSN, the terminal (Talker) that sends the packet assigns a class identifier (VLAN (Virtual LAN) tag) to control transmission using IEEE 802.1Qbv. In Example 1, however, the guest 110 that sends the packet does not assign a VLAN tag. Instead, based on the information in the schedule DB 130, the reception control unit 121 assigns class information as metadata for the packet, and the class assignment unit 122 assigns a class identifier to the packet based on the class information.

<受信制御部121、クラス付与部122>
図7に、実施例1における受信制御部121の構成例を示す。図7に示すとおり、受信制御部121は、受信判定部11、メタデータ付与部12、受信バッファ13を備える。なお、受信判定部11がメタデータ付与部12の機能を含んでいてもよい。
<Reception control unit 121, class assignment unit 122>
Fig. 7 shows an example of the configuration of the reception control unit 121 in Example 1. As shown in Fig. 7, the reception control unit 121 includes a reception determination unit 11, a metadata addition unit 12, and a reception buffer 13. Note that the reception determination unit 11 may include the function of the metadata addition unit 12.

受信判定部11は、vNICから受信したパケットを、スケジュールDB130の情報を元に、どのクラスに割当てるかを確認し、受信可能な時間か否かの判定をした後、当該パケットをメタデータ付与部12に渡す。受信判定方法の詳細処理は後述する。The reception determination unit 11 checks to which class the packet received from the vNIC should be assigned based on the information in the schedule DB 130, determines whether it is a time when the packet can be received, and then passes the packet to the metadata assignment unit 12. The detailed process of the reception determination method will be described later.

メタデータ付与部12は、パケットのメタデータとしてパケットにクラス情報を付与する。現在時刻が受信可能な時刻であればそのままクラス付与部122へパケットを送信し、受信不可能な時刻であれば受信バッファ13へパケットを格納し、受信可能な時刻になった際にパケットをクラス付与部122へ送信する。The metadata assignment unit 12 assigns class information to the packet as metadata for the packet. If the current time is a time when the packet can be received, the packet is sent directly to the class assignment unit 122. If the current time is a time when the packet cannot be received, the packet is stored in the reception buffer 13, and when the time when the packet can be received arrives, the packet is sent to the class assignment unit 122.

クラス付与部122は、パケットからメタデータのクラス情報を取得し、パケットにクラス識別子を付与する。標準のTSNの場合、VLANタグを付与し、VLANタグ内のPriority Code Point(PCP)領域3bitにクラスを指定する。The class assignment unit 122 obtains metadata class information from the packet and assigns a class identifier to the packet. In the case of a standard TSN, a VLAN tag is assigned and the class is specified in the 3-bit Priority Code Point (PCP) field in the VLAN tag.

<送信制御部140>
図8に、実施例1の送信制御部140の構成例を示す。図8に示すように、送信制御部140はクラス分類部141、複数の送信キュー、送信ゲート開閉部142を備え、IEEE802.1Qbvによる送信制御を行う。なお、図8の例では8クラス分の送信キューが示されているが、これは一例である。
<Transmission Control Unit 140>
Fig. 8 shows a configuration example of the transmission control unit 140 of the embodiment 1. As shown in Fig. 8, the transmission control unit 140 includes a class classification unit 141, a plurality of transmission queues, and a transmission gate opening/closing unit 142, and performs transmission control according to IEEE802.1Qbv. Note that, although the example of Fig. 8 shows transmission queues for eight classes, this is just an example.

クラス分類部141は、送信制御部140に到着したパケットを、クラス毎に存在する送信キューへ振り分ける。送信ゲート開閉部142は、送信が許可された時間のみ、物理NIC150を経由して外部ネットワークへパケットを送信する。送信ゲート開閉部142の時分割送信スケジュールはスケジュールDB130を参照して行う。The classifier 141 distributes packets arriving at the transmission controller 140 to transmission queues for each class. The transmission gate open/close unit 142 transmits packets to the external network via the physical NIC 150 only during times when transmission is permitted. The time-division transmission schedule of the transmission gate open/close unit 142 is determined by referring to the schedule DB 130.

以下、実施例1における受信制御部121の受信判定方法1~3を説明する。説明において使用する各変数の時間軸上での関係は図16に示されている。なお、図16は、tbaseを使用する場合の変数を示している。 Below, we will explain reception determination methods 1 to 3 of the reception control unit 121 in Example 1. The relationship on the time axis of each variable used in the explanation is shown in Figure 16. Note that Figure 16 shows variables when t base is used.

<実施例1における受信制御部121の受信判定方法1>
実施例1における受信制御部121の受信判定方法1について説明する。受信制御部120の受信判定部11は、あらかじめスケジュールDB130から、全体の送信スケジュールが繰り返される1周期の時間Tcycle、送信スケジュールが開始される基準時刻t、受信を許可する基準時刻からのオフセット値Topen、及び許可終了のオフセット値Tcloseを取得しておく。
<Method 1 of reception determination by the reception control unit 121 in the first embodiment>
A reception determination method 1 of the reception control unit 121 in the embodiment 1 will be described. The reception determination unit 11 of the reception control unit 120 acquires from the schedule DB 130 in advance the time T cycle for one cycle in which the entire transmission schedule is repeated, the reference time t 0 at which the transmission schedule starts, the offset value T open from the reference time at which reception is permitted, and the offset value T close at which permission ends.

図9、及び図10を参照して、受信判定部11の動作例を説明する。 Referring to Figures 9 and 10, an example of operation of the reception determination unit 11 is explained.

図9は、受信判定部11のパケット受信時の処理フローである。S101において、受信判定部11は、ゲスト110からパケットiを受信する。S102において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。 9 shows a process flow when a packet is received by the reception determination unit 11. In S101, the reception determination unit 11 receives a packet i from the guest 110. In S102, the reception determination unit 11 acquires the current timestamp value t now .

S103において、受信判定部11は、現在の送信スケジュールに対するオフセット値TnowをTnow=(tnow-t) mod Tcycleにより算出する。S104において、受信判定部11は、Tnow≧Topenかどうかを判断し、YesであればS105に進み、NoであればS107に進む。S105において、受信判定部11は、Tnow≦Tcloseかどうかを判断し、YesであればS106に進み、NoであればS108に進む。 In S103, the reception determination unit 11 calculates an offset value T now for the current transmission schedule by T now = (t now - t 0 ) mod T cycle . In S104, the reception determination unit 11 judges whether T now ≧T open , and if Yes, proceeds to S105, and if No, proceeds to S107. In S105, the reception determination unit 11 judges whether T now ≦T close , and if Yes, proceeds to S106, and if No, proceeds to S108.

S106において、受信判定部11は、パケットiをクラス付与部122へ転送する。S107において、受信判定部11は、次の受信許可時刻t open=tnow+(Topen-Tnow)+Topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。S108において、受信判定部11は、次の受信許可時刻t open=tnow+(Tcycle-Tnow)+Topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。なお、受信許可時刻は、送信制御部140で受信処理を開始できる時刻であり、これを受信開始時刻あるいは受信処理開始時刻と呼んでもよい。 In S106, the reception determination unit 11 transfers the packet i to the class assignment unit 122. In S107, the reception determination unit 11 stores the packet i in the reception buffer 13 of the rbtree data structure based on the next reception permission time t i open = t now + (T open - T now ) + T open . In S108, the reception determination unit 11 stores the packet i in the reception buffer 13 of the rbtree data structure based on the next reception permission time t i open = t now + (T cycle - T now ) + T open . The reception permission time is the time at which the transmission control unit 140 can start reception processing, and may be called the reception start time or the reception processing start time.

図10は、受信バッファ13からクラス付与部122への転送フローである。S201において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。S202において、受信判定部11は、受信バッファ13内のパケット群のうち最小のt openがtnowと等しいパケットiの有無を判断し、Yes(パケット有)であればS203に進み、NoであればS204に進む。 10 shows a transfer flow from the receiving buffer 13 to the class assignment unit 122. In S201, the receiving determination unit 11 acquires the current timestamp value t now . In S202, the receiving determination unit 11 determines whether or not there is a packet i in the packet group in the receiving buffer 13 whose smallest t i open is equal to t now . If Yes (packet present), the process proceeds to S203, and if No, the process proceeds to S204.

S203において、受信判定部11は、パケットiをクラス付与部122へ転送し、受信バッファ13から削除する。S204において、待機し、S205において、受信判定部11は、「rbtreeに新規データ挿入があり、かつ、min{t open}に更新あり」か否かを判断し、YesであればS206に進み、NoであればS201に戻る。S206において、min{t open}‐tnowの時間が経過したらS201に戻る。 In S203, the reception determination unit 11 transfers the packet i to the class assignment unit 122 and deletes it from the reception buffer 13. In S204, there is standby, and in S205, the reception determination unit 11 determines whether or not "new data has been inserted into the rbtree and min{t i open } has been updated," and if Yes, the process proceeds to S206, and if No, the process returns to S201. In S206, when the time min{t i open }-t now has elapsed, the process returns to S201.

<実施例1における受信制御部121の受信判定方法2>
実施例1における受信制御部121の受信判定方法2について説明する。受信制御部121の受信判定部11は、パケット受信時の処理演算量を削減するために、受信許可の開始と終了を示す絶対時刻topen、tcloseを別スレッドで常時計算しておき、パケット受信時は現在時刻の取得と、受信許可期間に含まれるかの判定のみを行う。
<Method 2 of determining reception by the reception control unit 121 in the first embodiment>
A second reception determination method of the reception control unit 121 in the first embodiment will now be described. In order to reduce the amount of processing calculations required when receiving a packet, the reception determination unit 11 of the reception control unit 121 constantly calculates the absolute times t open and t close , which indicate the start and end of the reception permission period, in a separate thread, and when receiving a packet, it only obtains the current time and determines whether the packet is within the reception permission period.

図11、図12を参照して、受信判定方法2における受信判定部11の動作例を説明する。受信バッファからの送信処理は受信判定方法1と同じである。 An example of the operation of the reception judgment unit 11 in reception judgment method 2 will be described with reference to Figures 11 and 12. The transmission process from the reception buffer is the same as in reception judgment method 1.

図11は、受信許可時刻算出フローを示す。S301において、受信判定部11は、サイクルの開始時刻tbase=tとする。受信判定部11は、受信開始時刻をtopen=tbase+Topenにより算出し、受信終了時刻を、tclose=tbase+Tcloseにより算出する。 11 shows a flow of calculating the permitted reception time. In S301, the reception determination unit 11 sets the cycle start time t base =t 0. The reception determination unit 11 calculates the reception start time topen =t base +T open , and calculates the reception end time toclose =t base +T close .

S303において、Tcycle経過すると、S304においてtbase=tbase+Tcycleとしてtbaseを計算し、S302に戻る。 In S303, when T cycle has elapsed, t base is calculated as t base =t base +T cycle in S304, and the process returns to S302.

図12は、受信判定部11のパケット受信時の処理フローである。S401において、受信判定部11は、ゲスト110からパケットiを受信する。S402において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。 12 shows a process flow when a packet is received by the reception determination unit 11. In S401, the reception determination unit 11 receives a packet i from the guest 110. In S402, the reception determination unit 11 acquires the current timestamp value t now .

S403において、受信判定部11は、tnow≧topenかどうかを判断し、YesであればS404に進み、NoであればS406に進む。S404において、受信判定部11は、tnow≦tcloseかどうかを判断し、YesであればS405に進み、NoであればS407に進む。 In S403, the reception determination unit 11 judges whether t now ≧t open , and if Yes, proceeds to S404, and if No, proceeds to S406. In S404, the reception determination unit 11 judges whether t now ≦t close , and if Yes, proceeds to S405, and if No, proceeds to S407.

S405において、受信判定部11は、パケットiをクラス付与部122へ転送する。S406において、受信判定部11は、パケットiの受信開始時刻t open=topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。 In S405, the reception determination unit 11 transfers the packet i to the class assignment unit 122. In S406, the reception determination unit 11 stores the packet i in the reception buffer 13 of the rbtree data structure based on the reception start time t i open =t open of the packet i.

S407において、受信判定部11は、パケットiの受信開始時刻t open=topen+Tcycleを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。 In S407, the reception determination unit 11 stores the packet i in the reception buffer 13 of the rbtree data structure based on the reception start time t i open =t open +T cycle of the packet i.

<実施例1における受信制御部121の受信判定方法3>
実施例1における受信制御部121の受信判定方法3について説明する。受信判定方法3では、受信判定方法2の受信許可時刻算出フロー内で、受信可否を示すcanRcvと次の送信許可開始時刻を常時算出しておくことで、パケット受信時のフロー内の演算量を更に削減する。パケット受信時は真偽値canRcvの判定を行って、canRcv=falseの際に、受信バッファ13への格納のみを行う。
<Method 3 of reception determination by the reception control unit 121 in embodiment 1>
The reception determination method 3 of the reception control unit 121 in the embodiment 1 will be described. In the reception determination method 3, the amount of calculations in the flow when a packet is received is further reduced by constantly calculating canRcv, which indicates whether reception is possible, and the next transmission permission start time in the reception permission time calculation flow of the reception determination method 2. When a packet is received, the truth value canRcv is determined, and if canRcv=false, the packet is only stored in the reception buffer 13.

図13と図14を参照して、受信判定部11の動作例を示す。受信バッファ13からの送信処理は受信判定方法1と同じである。 An example of the operation of the reception determination unit 11 is shown with reference to Figures 13 and 14. The transmission process from the reception buffer 13 is the same as in reception determination method 1.

図13に、受信許可時刻算出フローを示す。S501において、受信判定部11は、topen=t+Topen、tclose=t+Tclose、canRcv=falseを計算する。S502において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。 13 shows a flow of calculating the permitted reception time. In S501, the reception determination unit 11 calculates t open =t 0 +T open , t close =t 0 +T close , and canRcv =false. In S502, the reception determination unit 11 acquires the current timestamp value t now .

S503において、受信判定部11は、tnow≧topenかどうかを判断し、YesであればS504に進み、NoであればS506に進む。S504において、受信判定部11は、tnow>tcloseかどうかを判断し、YesであればS505に進み、NoであればS507に進む。 In S503, the reception determination unit 11 judges whether t now ≧t open , and if Yes, proceeds to S504, and if No, proceeds to S506. In S504, the reception determination unit 11 judges whether t now >t close , and if Yes, proceeds to S505, and if No, proceeds to S507.

S505において、受信判定部11は、canRcv=false、topen=topen+Tcycle、tclose=tclose+Tcycleを計算する。S506において、canRcv=falseとし、S507においてcanRcv=trueとする。 In S505, the reception determination unit 11 calculates canRcv=false, t open =t open +T cycle , and t close =t close +T cycle .In S506, canRcv=false is set, and in S507, canRcv=true is set.

図14は、受信判定部11のパケット受信時の処理フローである。S601において、受信判定部11は、ゲスト110からパケットiを受信する。S602において、受信判定部11は、canRcv=trueか否かを判定し、YesであればS603に進み、NoであればS604に進む。 Figure 14 shows the processing flow when the reception determination unit 11 receives a packet. In S601, the reception determination unit 11 receives packet i from the guest 110. In S602, the reception determination unit 11 determines whether canRcv = true, and if Yes, proceeds to S603, and if No, proceeds to S604.

S603において、受信判定部11は、パケットiをクラス付与部122へ転送する。S604において、受信判定部11は、次の受信許可時刻t open=topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。 In S603, the reception determination unit 11 transfers packet i to the class assignment unit 122. In S604, the reception determination unit 11 stores packet i in the reception buffer 13 of the rbtree data structure based on the next reception permission time t i open =t open .

1周期に複数回(n回)の受信許可時間が存在する場合、1回目の時刻topen,1、tclose,1からn回目の時刻topen,n、tclose,nを用意しておき、tnow>tclose,iとなった場合、次のi+1番目の受信許可時間との判定を行う。 When there are multiple (n) permitted reception times in one period, the first time t open,1 , t close,1 to the nth time t open,n , t close,n are prepared, and when t now > t close,i , a determination is made as to the next (i+1)th permitted reception time.

図15に、この場合の受信許可時刻算出フローを示す。S701においてi=1とし、S702~S704において、受信判定部11は、topen,i=t+Topen,i、tclose,i=t+Tclose,i、canRcv=falseをn回分計算する。S705においてi=1とし、S706において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。S707とS712の間で以下の処理をn回分行う。 15 shows the flow of calculation of the permitted reception time in this case. In S701, i=1, and in S702 to S704, the reception determination unit 11 calculates t open,i =t 0 +T open,i , t close,i =t 0 +T close,i , and canRcv=false n times. In S705, i=1, and in S706, the reception determination unit 11 acquires the current timestamp value t now . The following process is performed n times between S707 and S712.

S708において、受信判定部11は、tnow≧topen,iかどうかを判断し、YesであればS709に進み、NoであればS713に進む。S709において、受信判定部11は、tnow>tclose,iかどうかを判断し、YesであればS710に進み、NoであればS714に進む。 In S708, the reception determination unit 11 judges whether t now ≧t open,i , and if Yes, proceeds to S709, and if No, proceeds to S713. In S709, the reception determination unit 11 judges whether t now >t close,i , and if Yes, proceeds to S710, and if No, proceeds to S714.

S710において、受信判定部11は、canRcv=false、topen,i=topen,i+Tcycle、tclose,i=tclose,i+Tcycleを算出する。S713において、canRcv=falseとし、S714においてcanRcv=trueとする。 In S710, the reception determination unit 11 calculates canRcv=false, t open,i =t open,i +T cycle , and t close,i =t close,i +T cycle . In S713, canRcv=false is set, and in S714, canRcv=true is set.

<スケジュールDB130で管理するスケジュール情報>
次に、スケジュールDB130で管理するスケジュール情報の例について説明する。スケジュールDB130では、受信制御部121と送信制御部140における、時分割送信制御のスケジュール情報を管理する。以下にスケジュール情報を3階層のデータ構造で表す例を示す。図17の(a)が第1階層を示し、(b)が第2階層を示し、(c)が第3階層を示す。
<Schedule information managed in schedule DB 130>
Next, an example of schedule information managed by the schedule DB 130 will be described. The schedule DB 130 manages schedule information for time-division transmission control in the reception control unit 121 and the transmission control unit 140. An example of schedule information represented in a three-layer data structure is shown below. (a) in Fig. 17 shows the first layer, (b) shows the second layer, and (c) shows the third layer.

第1階層は、タイムスロットの送信開始相対時刻(Gate open)と送信終了相対時刻(Gate close)を格納し、タイムスロットごとの送信クラスを第2階層に格納する。第3階層は、送信クラス内で送信するflow情報(ホスト(中継装置)側の受信インターフェース、flow識別子、送信量)を管理する。 The first layer stores the relative time when the transmission starts (gate open) and ends (gate close) for the time slot, and the second layer stores the transmission class for each time slot. The third layer manages the flow information (receiving interface on the host (relay device) side, flow identifier, transmission amount) transmitted within the transmission class.

送信開始/終了相対時刻は、送信周期が開始される基準時刻tからの経過時間を示す。flow識別子は送受信MACアドレス、送受信IPアドレス、送受信ポート番号、プロトコル種別、VLAN番号、VLAN PCP、DSCP値等のパケットヘッダ情報のいずれか1つ、またはいずれか複数であってもよいし、それらから算出されるハッシュ値であってもよい。 The transmission start/end relative time indicates the elapsed time from the reference time t0 at which the transmission cycle starts. The flow identifier may be one or more of packet header information such as a transmitting/receiving MAC address, a transmitting/receiving IP address, a transmitting/receiving port number, a protocol type, a VLAN number, a VLAN PCP, a DSCP value, etc., or may be a hash value calculated from them.

送信制御部140は、第1、2階層の情報を元に送信クラスに紐づくキューの送信処理を時分割で変更する。The transmission control unit 140 changes the transmission processing of the queue associated with the transmission class in a time-division manner based on the information from the first and second hierarchical layers.

スケジュール情報を受信I/F毎に整理したデータ構造を図18に示す。図8において、第2~第4階層が図17の第1~第3階層に対応する。各vNICに紐づく受信制御部121は、第2階層のタイムスロットのGate open/closeの値をTopen、Tcloseとして用いる。 The data structure in which schedule information is organized for each reception I/F is shown in Fig. 18. In Fig. 8, the second to fourth hierarchical layers correspond to the first to third hierarchical layers in Fig. 17. The reception control unit 121 associated with each vNIC uses the values of Gate open/close of the time slot of the second hierarchical layer as T open and T close .

また受信制御部121内のメタデータ付与部12は、受信パケットの送受信IPアドレス等のflow識別子情報に基づいて第4階層のテーブルを参照し、合致する送信クラスの情報をパケットのメタデータとして受信パケットに付与する。In addition, the metadata assignment unit 12 within the receiving control unit 121 refers to the fourth layer table based on flow identifier information such as the sending and receiving IP addresses of the received packet, and assigns matching transmission class information to the received packet as metadata for the packet.

ゲスト110から送信されるパケットのflow識別子が一意に定まる(ゲストから一種類の通信しか行われない場合)場合、1つのタイムスロットで送信される送信クラス及びflow識別子は一意に定まる。When the flow identifier of a packet sent from guest 110 is uniquely determined (when only one type of communication is performed from the guest), the transmission class and flow identifier sent in one time slot are uniquely determined.

(実施例2:クラス付与部でクラス判定を行う方式)
次に、実施例2について説明する。実施例2では、各受信制御部121で行っていたクラス情報のメタデータ付与を、クラス付与部122にて一括して行う。クラス付与部122は、パケットのクラス判定を行う必要があるため、スケジュールDB130から、スケジュール情報を参照する。実施例2のホスト100の構成を示す図19において、クラス付与部122によりスケジュール情報を参照することを示す線が示されている。
(Example 2: Method of class determination by classifier)
Next, a second embodiment will be described. In the second embodiment, the assignment of metadata of class information, which was previously performed by each reception control unit 121, is performed collectively by the class assignment unit 122. The class assignment unit 122 needs to determine the class of a packet, so it refers to schedule information from the schedule DB 130. In Fig. 19 showing the configuration of the host 100 of the second embodiment, a line is shown indicating that the class assignment unit 122 refers to schedule information.

図20に、実施例2における受信制御部121の構成例を示す。図20に示すように、実施例2における受信制御部121は、受信判定部11と受信バッファ13を備える。受信制御部121は、受信判定部11による受信可否の判定と、受信不可の場合のバッファ処理のみ行う。なお、「受信可否」とは、送信制御部140によるパケット受信が可か否かということである。 Figure 20 shows an example of the configuration of the reception control unit 121 in Example 2. As shown in Figure 20, the reception control unit 121 in Example 2 includes a reception determination unit 11 and a reception buffer 13. The reception control unit 121 only performs the determination of whether reception is possible using the reception determination unit 11, and buffer processing when reception is not possible. Note that "reception possible" refers to whether or not a packet can be received by the transmission control unit 140.

図21に、実施例2におけるクラス付与部122の構成例を示す。図21に示すように、クラス付与部122は、クラス判定部21と識別子付与部22を備える。クラス判定部21は、受信制御部121から受信したパケットのクラスを判定し、識別子付与部22は、判定したクラスに対応するVLANタグ等の識別子を付与する。クラス判定を受信制御部121ではなく、クラス付与部122で行うこと以外の処理は、実施例1と同じである。 Figure 21 shows an example of the configuration of the class assignment unit 122 in Example 2. As shown in Figure 21, the class assignment unit 122 includes a class determination unit 21 and an identifier assignment unit 22. The class determination unit 21 determines the class of a packet received from the reception control unit 121, and the identifier assignment unit 22 assigns an identifier such as a VLAN tag corresponding to the determined class. The processing is the same as in Example 1, except that class determination is performed by the class assignment unit 122 instead of the reception control unit 121.

(実施例3:通信種別毎にインターフェースを持つ方式)
次に、実施例3を説明する。実施例1、2では、ゲスト110から複数種類の通信(宛先IPアドレス、送受信ポート番号、プロトコル種別等が異なる通信)を行う場合に、スケジュールDB130の検索量が増え、遅延が生じる。
(Embodiment 3: A method in which an interface is provided for each communication type)
Next, a description will be given of a third embodiment. In the first and second embodiments, when the guest 110 performs a plurality of types of communication (communications with different destination IP addresses, sending and receiving port numbers, protocol types, etc.), the amount of searches in the schedule DB 130 increases, causing delays.

そこで、実施例3では、ゲスト110から行う通信の数だけ中継装置にvNICを用意し、一つの通信種別は一つのvNICを用いることで、クラス判定処理を高速化する。Therefore, in Example 3, vNICs are prepared in the relay device for the number of communications performed by guest 110, and one vNIC is used for one communication type, thereby speeding up the class determination process.

図22は、ある一つのゲスト110が3つのvNIC1~3によってホスト100側の仮想中継装置120と接続されている例を示す。 Figure 22 shows an example in which a guest 110 is connected to a virtual relay device 120 on the host 100 side via three vNICs 1 to 3.

3つのvNIC1~3はそれぞれ異なるネットワークに所属していてもよいし、同一のL2ネットワークに属していてもよい。同一のL2ネットワークに所属する場合、ゲスト110は更に所属するvNICの数だけルーティングテーブルを持ち、送信元IPのアドレスによって参照するルーティングテーブルを変更する。図22は、そのような例を示している。 The three vNICs 1 to 3 may belong to different networks, or they may belong to the same L2 network. If they belong to the same L2 network, guest 110 further has a routing table for each vNIC it belongs to, and changes the routing table it references depending on the source IP address. Figure 22 shows such an example.

図23に、一つのvNICに対して、一つの通信のみを割当てることで、受信I/F毎に整理したスケジュール情報を示す。図23に示すスケジュール情報を用いることで、各vNICに対応する受信制御部121は、受信可否を判定するためのタイムスロット情報を参照するだけで、送信クラスまで特定できるため、送信クラス判定のためだけのDB参照が不要となる。これにより、検索量を削減でき、遅延を削減できる。 Figure 23 shows schedule information organized by receiving I/F by allocating only one communication to one vNIC. By using the schedule information shown in Figure 23, the receiving control unit 121 corresponding to each vNIC can identify the transmission class simply by referring to the time slot information for determining whether reception is possible, eliminating the need to refer to the DB just to determine the transmission class. This reduces the amount of searches and delays.

(実施例4:受信制御部121にてタイムスロット毎に受信バッファを持つ方式)
次に実施例4を説明する。実施例4では、受信制御部121にて、予め1周期のタイムスロット分の受信バッファを用意しておくことで、パケット単位で受信判定・受信バッファから取り出す処理をするのではなく、タイムスロット単位で処理を行うことで、受信判定部11の演算量を削減する。
(Embodiment 4: A method in which the reception control unit 121 has a reception buffer for each time slot)
Next, a fourth embodiment will be described. In the fourth embodiment, the reception control unit 121 prepares a reception buffer for one time slot in advance, and performs the process of reception determination and fetching from the reception buffer on a packet basis, but performs the process on a time slot basis, thereby reducing the amount of calculation in the reception determination unit 11.

図24に、実施例4における受信制御部121の構成例を示す。図24に示すように、実施例4における受信制御部121は、受信判定部11、送信判定部15、各タイムスロット用の受信バッファを備える。 Figure 24 shows an example of the configuration of the reception control unit 121 in Example 4. As shown in Figure 24, the reception control unit 121 in Example 4 includes a reception determination unit 11, a transmission determination unit 15, and a reception buffer for each time slot.

受信判定部11は、vNICから受信したパケットについて、どのタイムスロットで送信するかをスケジュールDB130の情報を元に判定し、パケットが送信されるタイムスロットに対応する受信バッファへパケットを格納する。The reception determination unit 11 determines which time slot to transmit a packet received from the vNIC based on information from the schedule DB 130, and stores the packet in a receiving buffer corresponding to the time slot in which the packet will be transmitted.

送信判定部15は、スケジュールDB130の情報を元に、送信制御部140と同じスケジュールでそれぞれのタイムスロット用受信バッファからパケットを読み出してクラス付与部122へ送信する。Based on the information in the schedule DB 130, the transmission determination unit 15 reads packets from the receiving buffer for each time slot on the same schedule as the transmission control unit 140 and transmits them to the class assignment unit 122.

(実施例5:タイムスロット毎に送信キューを分ける方式)
次に、実施例5を説明する。実施例5では、受信制御部121で受信バッファによる受信タイミング制御を行うのではなく、送信制御部140にて、送信スケジュールのうち、1周期内の同じクラスの通信を異なる送信キューに振り分けることで、送信スケジュールのズレを防止する。
(Embodiment 5: Method of dividing transmission queues by time slots)
Next, a fifth embodiment will be described. In the fifth embodiment, the reception control unit 121 does not control the reception timing by using a reception buffer, but the transmission control unit 140 distributes communications of the same class within one period of the transmission schedule to different transmission queues, thereby preventing deviation of the transmission schedule.

実施例5では、1周期のスケジュールに、複数回同じ送信クラスが割り当てられている場合、それぞれ別の送信キューを用意する。図25は1周期における送信許可クラスの例を示す。図25における、例えば1-3は、送信許可クラス1に対応する3番目の送信キューを示す。例えば、1-1、1-2、1-3は、同じ送信クラス1に異なる送信キューが割り当てられることを示す。 In the fifth embodiment, if the same transmission class is assigned multiple times to a schedule in one period, a separate transmission queue is prepared for each. Figure 25 shows an example of transmission permission classes in one period. In Figure 25, for example, 1-3 indicates the third transmission queue corresponding to transmission permission class 1. For example, 1-1, 1-2, and 1-3 indicate that different transmission queues are assigned to the same transmission class 1.

なお、説明の便宜上、同じ時間に一つの送信クラスを割り当てているが、同時に複数の送信クラスを割当てることも可能である。 For ease of explanation, one transmission class is assigned at the same time, but it is also possible to assign multiple transmission classes at the same time.

図26に、実施例5における受信制御部121の構成例を示す。図26に示すように、受信制御部121は、受信バッファ13を持たず、クラス判定部21を持つ。クラス判定部21は、スケジュールDB130の情報に基づいて、受信したパケットの送信クラスと、1周期内の何番目のタイムスロットに割り当てられているかを判定し、送信クラス、タイムスロット情報をパケットのメタデータとして付与し、クラス付与へ送信する。なお、受信制御部121内にクラス付与部122を含め、受信制御部121がクラス識別付与まで行ってもよい。 Figure 26 shows an example of the configuration of the reception control unit 121 in Example 5. As shown in Figure 26, the reception control unit 121 does not have a reception buffer 13, but has a class determination unit 21. Based on the information in the schedule DB 130, the class determination unit 21 determines the transmission class of the received packet and which time slot in one period it is assigned to, assigns the transmission class and time slot information as metadata for the packet, and sends it to the class assignment. Note that the class assignment unit 122 may be included in the reception control unit 121, and the reception control unit 121 may perform the class identification assignment.

実施例2同様、受信制御部121ではなく、クラス付与部122で直接判定、クラス付与まで行ってもよい。その場合、受信制御部121は不要となる。なお、この場合、クラス付与部122を受信制御部121と呼んでもよい。つまり、受信制御部121としてクラス付与部122を使用してもよい。As in the second embodiment, the class assignment unit 122 may directly perform the judgment and even the class assignment, instead of the reception control unit 121. In this case, the reception control unit 121 is unnecessary. In this case, the class assignment unit 122 may be called the reception control unit 121. In other words, the class assignment unit 122 may be used as the reception control unit 121.

図27に、送信制御部140の構成例を示す。図27に示すとおり、送信制御部140は、クラス分類部141、送信ゲート開閉部142、及び、送信クラス毎に、複数の送信キューを備え、送信クラスと付与されたタイムスロット情報に基づいて、送信キューにパケットを振り分ける。 Figure 27 shows an example of the configuration of the transmission control unit 140. As shown in Figure 27, the transmission control unit 140 includes a class classification unit 141, a transmission gate opening/closing unit 142, and a plurality of transmission queues for each transmission class, and distributes packets to the transmission queues based on the transmission class and the assigned time slot information.

送信ゲート開閉部142は、送信キュー毎に、スケジュール情報に従って、ゲートの開閉を行う。実施例5では、送信制御部140における送信キューが受信バッファの役割を果たし、これにより、ジッタ保証を実現できる。The transmission gate opening/closing unit 142 opens and closes the gate for each transmission queue according to the schedule information. In the fifth embodiment, the transmission queue in the transmission control unit 140 plays the role of a receiving buffer, thereby realizing jitter compensation.

(実施例6:一つの物理NICに本発明に係る技術を適用する例)
次に、実施例6を説明する。実施例6では、実施例1-5のいずれか1つ、またはいずれか複数の組み合わせを一つの物理NIC150内で実施する。
(Example 6: Example of applying the technology according to the present invention to one physical NIC)
Next, a description will be given of embodiment 6. In embodiment 6, any one or a combination of any two or more of embodiments 1 to 5 is implemented within one physical NIC 150.

図28に、実施例6におけるホスト100の構成例を示す。図28に示すように、物理NIC150内に複数の仮想的なNICであるVFと、VF毎に受信制御部121(実施例5以外の場合)を持ち、更にクラス付与部122、送信制御部140、スケジュールDB130を備える。スケジュールDB130はホスト側に具備してもよい。また、図28に示す構成において、VF、受信制御部121、及びクラス付与部122からなる部分を「中継装置」と呼んでもよい。 Figure 28 shows an example configuration of the host 100 in Example 6. As shown in Figure 28, the physical NIC 150 has multiple virtual NICs, VFs, and a reception control unit 121 (for cases other than Example 5), for each VF, and further includes a class assignment unit 122, a transmission control unit 140, and a schedule DB 130. The schedule DB 130 may be provided on the host side. In addition, in the configuration shown in Figure 28, the part consisting of the VFs, reception control unit 121, and class assignment unit 122 may be called a "relay device."

各ゲスト110は、ホストの内部処理(Linux Kernel内のNetwork処理等)をバイパスし、物理NIC150上のVFを直接利用する。これは例えばSingle Root I/O Virtualizationによって実現できる。Each guest 110 bypasses the host's internal processing (such as network processing within the Linux kernel) and directly uses the VF on the physical NIC 150. This can be achieved, for example, by Single Root I/O Virtualization.

(実施例1~6に共通の事項)
これまでに説明した受信制御部121、クラス付与部122、送信制御部140の機能に関して、同一の機能が他の機能も担当することとしてもよい。例えば、受信制御部121内に、クラス付与部122、送信制御部140の機能を持つことでも、本発明に係る技術の効果を発揮できる。
(Common to Examples 1 to 6)
The same functions may also be responsible for other functions as the reception control unit 121, the class assignment unit 122, and the transmission control unit 140 described above. For example, the effect of the technology according to the present invention can be achieved by having the functions of the class assignment unit 122 and the transmission control unit 140 within the reception control unit 121.

また、受信制御部121から送信制御部141に向けてパケットを送信する時刻は、受信制御部121から送信制御部140への転送遅延を予め算出した上で、転送遅延分早く行うこととしてもよい。In addition, the time at which a packet is transmitted from the receiving control unit 121 to the transmitting control unit 141 may be set earlier by the amount of the transfer delay from the receiving control unit 121 to the transmitting control unit 140, after calculating the transfer delay in advance.

(ハードウェア構成例)
本実施の形態において説明した装置(ホスト、ゲスト、ゲストと同様の機能を持つサーバ、中継装置、仮想中継装置、通信制御装置)はいずれも、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。当該コンピュータは、物理的なマシンであってもよいし、クラウド上の仮想マシンであってもよい。
(Hardware configuration example)
Any of the devices described in this embodiment (host, guest, server having the same function as the guest, relay device, virtual relay device, communication control device) can be realized by, for example, having a computer execute a program describing the processing contents described in this embodiment. The computer may be a physical machine or a virtual machine on the cloud.

上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。The above program can be recorded on a computer-readable recording medium (such as a portable memory) and can be stored or distributed. The above program can also be provided via a network such as the Internet or e-mail.

図29は、上記コンピュータのハードウェア構成例を示す図である。図29のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インターフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。 Figure 29 is a diagram showing an example of the hardware configuration of the computer. The computer in Figure 29 has a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, etc., which are all connected to each other via a bus B.

当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。 The program that realizes the processing on the computer is provided by a recording medium 1001, such as a CD-ROM or a memory card. When the recording medium 1001 storing the program is set in the drive device 1000, the program is installed from the recording medium 1001 via the drive device 1000 into the auxiliary storage device 1002. However, the program does not necessarily have to be installed from the recording medium 1001, but may be downloaded from another computer via a network. The auxiliary storage device 1002 stores the installed program as well as necessary files, data, etc.

メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インターフェース装置1005は、ネットワークに接続するためのインターフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。When an instruction to start a program is received, the memory device 1003 reads out and stores the program from the auxiliary storage device 1002. The CPU 1004 realizes the functions related to the device in accordance with the program stored in the memory device 1003. The interface device 1005 is used as an interface for connecting to a network. The display device 1006 displays a GUI (Graphical User Interface) based on a program, etc. The input device 1007 is composed of a keyboard and mouse, buttons, a touch panel, etc., and is used to input various operational instructions. The output device 1008 outputs the results of calculations.

(実施の形態のまとめ)
以上説明した本実施の形態においては、通信アプリケーションが動作する複数のサーバと接続する中継装置において、時分割送信制御を行う外部ネットワークと接続する送信インターフェースと同期して、各サーバと接続する中継装置側の受信インターフェースのパケット受信処理を行う。
(Summary of the embodiment)
In the present embodiment described above, in a relay device connected to multiple servers on which communication applications are running, packet reception processing is performed at the receiving interface on the relay device side connected to each server in synchronization with a transmitting interface connected to an external network that performs time-division transmission control.

より具体的には、前記受信インターフェースにおいて、受信パケットのフロー情報と受信時刻から、受信パケットが前記送信インターフェースにて送信されるタイムスロットとクラスを判別し、送信クラス識別子をパケットに付与する。More specifically, at the receiving interface, the flow information and reception time of the received packet are used to determine the time slot and class in which the received packet will be transmitted at the transmitting interface, and a transmission class identifier is assigned to the packet.

また、実施例1で説明したように、判別した受信パケットと、前記送信インターフェースにおける受信パケットの送信時刻から算出した受信処理開始時刻を対応づけることで、受信処理開始時刻までパケットを一時的にバッファし、前記送信インターフェースで送信処理を行う直前に前記受信インターフェースから前記物理インターフェースへ受信パケットを転送する。 Furthermore, as described in Example 1, by matching the determined received packet with the reception processing start time calculated from the transmission time of the received packet at the transmitting interface, the packet is temporarily buffered until the reception processing start time, and the received packet is transferred from the receiving interface to the physical interface immediately before transmission processing is performed at the transmitting interface.

実施例4で説明したように、前記受信インターフェースにおいて、送信インターフェースが行う時分割送信スケジュール1周期に含まれるタイムスロット分の独立した受信バッファを具備し、送信インターフェースが行う時分割送信スケジュールと同期して受信バッファからパケットを転送することとしてもよい。As described in Example 4, the receiving interface may be provided with an independent receiving buffer for the number of time slots included in one period of the time division transmission schedule performed by the transmitting interface, and packets may be transferred from the receiving buffer in synchronization with the time division transmission schedule performed by the transmitting interface.

実施例3で説明したとおり、ゲスト-ホスト間を複数の仮想送受信インターフェースで接続し、1対の送受信インターフェースに1種類の通信を割当てることで、前記受信インターフェースにおけるクラスの判別処理を高速化することとしてもよい。As described in Example 3, the guest and host may be connected via multiple virtual transmitting/receiving interfaces, and one type of communication may be assigned to each pair of transmitting/receiving interfaces, thereby speeding up the class determination process in the receiving interfaces.

また、実施例5で説明したように、前記送信インターフェースにおいて、1周期分のタイムスロット毎の仮想送信キューを具備し、前記受信インターフェースにおいて、どのタイムスロットで送信するパケットかを判別し、識別子の付与を行うことで、本来のタイムスロットとは異なる時間に受信したパケットでも本来の送信タイムスロットに対応する送信キューへ振り分けることとしてもよい。 As described in Example 5, the transmitting interface may be provided with a virtual transmitting queue for each time slot of one period, and the receiving interface may determine which time slot a packet is to be transmitted in and assign an identifier, so that even packets received at a time other than the original time slot can be assigned to a transmitting queue corresponding to the original transmission time slot.

また、実施例6で説明したように、上記の構成のいずれか1つ又はいずれか複数を組み合わせた通信方式を一つの物理NIC内で完結して実施することとしてもよい。 Furthermore, as described in Example 6, a communication method that combines any one or more of the above configurations may be implemented entirely within a single physical NIC.

上述した通信方式は従来技術にはないものである。 The above-mentioned communication method does not exist in conventional technology.

すなわち、通常スイッチ等でボトルネックとなるのは、複数のトラヒックが合流する送信側のため、既存のLinux(登録商標)や市販スイッチ等では受信側におけるトラヒック制御を行う仕組みは用意されておらず、Qbvの仕様についても同様に送信側の制御のみを規定している。 In other words, since the bottleneck in switches is usually the sending side where multiple traffic streams converge, existing Linux (registered trademark) and commercially available switches do not provide a mechanism for controlling traffic on the receiving side, and the Qbv specifications similarly only stipulate control on the sending side.

一方、本発明に係る技術のように、複数の受信インターフェースにおいてトラヒック制御を行い、かつ複数受信インターフェースおよび送信インターフェースが協調してトラヒック制御を行う方式は従来技術には存在しない。On the other hand, the prior art does not provide a method for performing traffic control at multiple receiving interfaces and for multiple receiving interfaces and a transmitting interface to perform traffic control in cooperation with each other, as in the technology of the present invention.

また、QbvはVLANタグのCoS値により制御するため、仮想環境下におけるホスト内部のVLANタグが付いていなネットワーク内部の遅延保証や、複数の異なるユーザが利用するマルチテナントデータセンタの遅延保証は、既存のQbvや送信側の制御だけではできず、本発明に係る技術によって解決できるものである。 In addition, since Qbv is controlled by the CoS value of the VLAN tag, delay guarantees within networks without VLAN tags inside hosts in virtual environments, or delay guarantees in multi-tenant data centers used by multiple different users, cannot be achieved by existing Qbv or control on the sending side alone, but can be solved by the technology of the present invention.

(実施の形態の効果)
以上説明した本実施の形態により、ゲストマシン側で複雑な時分割送信制御をすることなく、他のゲストマシンとのトラヒック衝突によるキューイング遅延の増加や送信スケジュールのずれを防ぎ、ジッタを保証することが可能となる。また、ゲストマシン側の設定ミスやDoS攻撃によるTSN送信スケジュールへの影響を無効にすることができる。
(Effects of the embodiment)
According to the embodiment described above, it is possible to prevent an increase in queuing delay and a shift in the transmission schedule due to traffic collision with other guest machines and to guarantee jitter without performing complicated time-division transmission control on the guest machine side. In addition, it is possible to nullify the influence of setting errors on the guest machine side and DoS attacks on the TSN transmission schedule.

(付記)
本明細書には、少なくとも下記各項の通信制御装置、通信制御方法、及びプログラムが開示されている。
(第1項)
アプリケーションが動作するサーバからパケットを受信する複数の受信制御部を備え、各受信制御部は、
受信バッファと、
外部ネットワークと接続する送信インターフェースにおいて前記パケットを受信可能な時刻に、前記パケットを前記送信インターフェースに向けて送信し、前記送信インターフェースにおいて前記パケットを受信不可の時刻に、前記パケットを前記受信バッファに格納する受信判定部と
を備える通信制御装置。
(第2項)
前記送信インターフェースにおける時分割送信制御のためのスケジュール情報に基づいて、前記パケットのタイムスロットと送信クラスを判別し、前記パケットに送信クラス識別子を付与するクラス付与部
を備える第1項に記載の通信制御装置。
(第3項)
前記受信判定部は、前記送信インターフェースにおける時分割送信制御のためのスケジュール情報に基づいて、前記受信可能な時刻の開始及び終了を常時計算し、現在時刻と前記受信可能な時刻の開始及び終了とを比較することにより、現在時刻が前記送信インターフェースにおいて前記パケットを受信可能な時刻であるか否かを判定する
第1項又は第2項に記載の通信制御装置。
(第4項)
前記通信制御装置は、前記サーバとの通信における通信種別毎に前記受信制御部を備える
第1項ないし第3項のうちいずれか1項に記載の通信制御装置。
(第5項)
前記受信制御部は、前記送信インターフェースにおける時分割送信スケジュールの1周期に含まれるタイムスロット毎に前記受信バッファを備える
第1項ないし第4項のうちいずれか1項に記載の通信制御装置。
(第6項)
アプリケーションが動作するサーバからパケットを受信する複数の受信制御部と、
外部ネットワークと接続し、送信クラス毎に複数の送信キューを持つ送信制御部と、を備え、
前記受信制御部は、前記送信制御部における時分割送信制御のためのスケジュール情報に基づいて、前記パケットの送信クラスとタイムスロットを判定し、送信クラスとタイムスロット情報を前記パケットに付加して前記送信制御部に送信し、
前記送信制御部は、前記パケットに付与された送信クラスとタイムスロット情報に基づいて、前記パケットを1つの送信キューに振り分ける
通信制御装置。
(第7項)
アプリケーションが動作するサーバからパケットを受信する複数の受信制御部を備える通信制御装置における通信制御方法であって、
各受信制御部は、受信バッファを備え、外部ネットワークと接続する送信インターフェースにおいて前記パケットを受信可能な時刻に、前記パケットを前記送信インターフェースに向けて送信し、前記送信インターフェースにおいて前記パケットを受信不可の時刻に、前記パケットを前記受信バッファに格納する
通信制御方法。
(第8項)
コンピュータを、第1項ないし第6項のうちいずれか1項に記載の通信制御装置における各部として機能させるためのプログラム。
(Additional Note)
This specification discloses at least the following communication control device, communication control method, and program.
(Section 1)
The system includes a plurality of reception control units for receiving packets from a server on which an application is running, and each reception control unit
A receive buffer;
a reception determination unit that transmits the packet to a transmission interface connected to an external network at a time when the packet can be received at the transmission interface, and stores the packet in the reception buffer at a time when the packet cannot be received at the transmission interface.
(Section 2)
2. The communication control device according to claim 1, further comprising: a class assignment unit that determines a time slot and a transmission class of the packet based on schedule information for time division transmission control in the transmission interface, and assigns a transmission class identifier to the packet.
(Section 3)
The communication control device described in claim 1 or 2, wherein the reception determination unit constantly calculates the start and end of the reception time based on schedule information for time-division transmission control in the transmission interface, and determines whether the current time is a time when the packet can be received in the transmission interface by comparing the current time with the start and end of the reception time.
(Section 4)
4. The communication control device according to claim 1, further comprising the reception control unit for each communication type in communication with the server.
(Section 5)
5. The communication control device according to any one of claims 1 to 4, wherein the reception control unit includes the reception buffer for each time slot included in one period of a time division transmission schedule in the transmission interface.
(Section 6)
A plurality of reception control units for receiving packets from a server on which an application runs;
a transmission control unit connected to an external network and having a plurality of transmission queues for each transmission class;
the reception control unit determines a transmission class and a time slot of the packet based on schedule information for time division transmission control in the transmission control unit, adds transmission class and time slot information to the packet, and transmits the packet to the transmission control unit;
The transmission control unit distributes the packets to one transmission queue based on the transmission class and time slot information assigned to the packets.
(Section 7)
A communication control method in a communication control device having a plurality of reception control units for receiving packets from a server on which an application runs, comprising:
A communication control method in which each reception control unit has a reception buffer, transmits the packet to a transmission interface connected to an external network at a time when the packet can be received at the transmission interface, and stores the packet in the reception buffer at a time when the packet cannot be received at the transmission interface.
(Section 8)
A program for causing a computer to function as each unit in the communication control device according to any one of claims 1 to 6.

以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and variations are possible within the scope of the gist of the present invention as described in the claims.

11 受信判定部
12 メタデータ付与部
13 受信バッファ
15 送信判定部
21 クラス判定部
22 識別子付与部
100 ホスト
110 ゲスト
120 仮想中継装置
121 受信制御部
122 クラス付与部
130 スケジュールDB
140 送信制御部
141 クラス分類部
142 送信ゲート開閉部
150 物理NIC
200 クライアント端末
300、400 中継装置
500 TSNドメイン
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インターフェース装置
1006 表示装置
1007 入力装置
11 Reception determination unit 12 Metadata assignment unit 13 Reception buffer 15 Transmission determination unit 21 Class determination unit 22 Identifier assignment unit 100 Host 110 Guest 120 Virtual relay device 121 Reception control unit 122 Class assignment unit 130 Schedule DB
140 Transmission control unit 141 Classification unit 142 Transmission gate opening/closing unit 150 Physical NIC
200 Client terminal 300, 400 Relay device 500 TSN domain 1000 Drive device 1001 Recording medium 1002 Auxiliary storage device 1003 Memory device 1004 CPU
1005 Interface device 1006 Display device 1007 Input device

Claims (7)

アプリケーションが動作するサーバからパケットを受信する複数の受信制御部を備え、各受信制御部は、
受信バッファと、
外部ネットワークと接続する送信インターフェースにおいて前記パケットを受信可能な時刻に、前記パケットを前記送信インターフェースに向けて送信し、前記送信インターフェースにおいて前記パケットを受信不可の時刻に、前記パケットを前記受信バッファに格納する受信判定部と、を備える通信制御装置であって、
前記送信インターフェースは、クラス分類部と複数の送信キューを有し、
前記通信制御装置は、前記複数の受信制御部と前記送信インターフェースとの間にクラス付与部を更に備え、
前記クラス付与部は、
前記送信インターフェースにおける時分割送信制御のためのスケジュール情報に基づいて、前記パケットのタイムスロットと送信クラスを判別し、前記パケットに送信クラス識別子を付与する
通信制御装置。
The system includes a plurality of reception control units for receiving packets from a server on which an application is running, and each reception control unit
A receive buffer;
a reception determination unit that transmits the packet to a transmission interface connected to an external network at a time when the packet can be received at the transmission interface, and stores the packet in the reception buffer at a time when the packet cannot be received at the transmission interface,
the transmission interface includes a classifier and a plurality of transmission queues;
the communication control device further includes a class assigning unit between the plurality of reception control units and the transmission interface;
The class assignment unit
A time slot and a transmission class of the packet are determined based on schedule information for time division transmission control in the transmission interface, and a transmission class identifier is assigned to the packet.
Communications control device.
前記受信判定部は、前記送信インターフェースにおける時分割送信制御のためのスケジュール情報に基づいて、前記受信可能な時刻の開始及び終了を常時計算し、現在時刻と前記受信可能な時刻の開始及び終了とを比較することにより、現在時刻が前記送信インターフェースにおいて前記パケットを受信可能な時刻であるか否かを判定する
請求項1に記載の通信制御装置。
2. The communication control device according to claim 1, wherein the reception determination unit constantly calculates the start and end of the reception time based on schedule information for time division transmission control in the transmission interface, and determines whether the current time is a time when the packet can be received in the transmission interface by comparing the current time with the start and end of the reception time.
前記通信制御装置は、前記サーバとの通信における通信種別毎に前記受信制御部を備える
請求項1又は2に記載の通信制御装置。
The communication control device according to claim 1 , further comprising a reception control unit for each communication type in communication with the server.
前記受信制御部は、前記送信インターフェースにおける時分割送信スケジュールの1周期に含まれるタイムスロット毎に前記受信バッファを備える
請求項1ないしのうちいずれか1項に記載の通信制御装置。
The communication control device according to claim 1 , wherein the reception control unit includes the reception buffer for each time slot included in one period of a time division transmission schedule in the transmission interface.
アプリケーションが動作するサーバからパケットを受信する複数の受信制御部と、
外部ネットワークと接続し、送信クラス毎に複数の送信キューを持つ送信制御部と、を備え、
前記受信制御部は、前記送信制御部における時分割送信制御のためのスケジュール情報に基づいて、前記パケットの送信クラスとタイムスロットを判定し、送信クラスとタイムスロット情報を前記パケットに付加して前記送信制御部に送信し、
前記送信制御部は、前記パケットに付与された送信クラスとタイムスロット情報に基づいて、前記パケットを1つの送信キューに振り分ける
通信制御装置。
A plurality of reception control units for receiving packets from a server on which an application runs;
a transmission control unit connected to an external network and having a plurality of transmission queues for each transmission class;
the reception control unit determines a transmission class and a time slot of the packet based on schedule information for time division transmission control in the transmission control unit, adds transmission class and time slot information to the packet, and transmits the packet to the transmission control unit;
The transmission control unit distributes the packets to one transmission queue based on the transmission class and time slot information assigned to the packets.
アプリケーションが動作するサーバからパケットを受信する複数の受信制御部を備える通信制御装置における通信制御方法であって、
各受信制御部は、受信バッファを備え、外部ネットワークと接続する送信インターフェースにおいて前記パケットを受信可能な時刻に、前記パケットを前記送信インターフェースに向けて送信し、前記送信インターフェースにおいて前記パケットを受信不可の時刻に、前記パケットを前記受信バッファに格納する通信制御方法であり、
前記送信インターフェースは、クラス分類部と複数の送信キューを有し、
前記通信制御装置は、前記複数の受信制御部と前記送信インターフェースとの間にクラス付与部を更に備え、
前記クラス付与部は、
前記送信インターフェースにおける時分割送信制御のためのスケジュール情報に基づいて、前記パケットのタイムスロットと送信クラスを判別し、前記パケットに送信クラス識別子を付与する
通信制御方法。
A communication control method in a communication control device having a plurality of reception control units for receiving packets from a server on which an application runs, comprising:
a communication control method in which each reception control unit has a reception buffer, transmits the packet to a transmission interface connected to an external network at a time when the packet can be received at the transmission interface, and stores the packet in the reception buffer at a time when the packet cannot be received at the transmission interface,
the transmission interface includes a classifier and a plurality of transmission queues;
the communication control device further includes a class assigning unit between the plurality of reception control units and the transmission interface;
The class assignment unit
A time slot and a transmission class of the packet are determined based on schedule information for time division transmission control in the transmission interface, and a transmission class identifier is assigned to the packet.
Communications control method.
コンピュータを、請求項1ないしのうちいずれか1項に記載の通信制御装置における各部として機能させるためのプログラム。 A program for causing a computer to function as each unit in the communication control device according to any one of claims 1 to 5 .
JP2023528772A 2021-06-14 2021-06-14 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM Active JP7655384B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/022579 WO2022264230A1 (en) 2021-06-14 2021-06-14 Communication control device, communication control method, and program

Publications (2)

Publication Number Publication Date
JPWO2022264230A1 JPWO2022264230A1 (en) 2022-12-22
JP7655384B2 true JP7655384B2 (en) 2025-04-02

Family

ID=84526663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023528772A Active JP7655384B2 (en) 2021-06-14 2021-06-14 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM

Country Status (2)

Country Link
JP (1) JP7655384B2 (en)
WO (1) WO2022264230A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12568052B2 (en) * 2023-06-27 2026-03-03 Western Digital Technologies, Inc. Data transmission scheduling for disaggregated memory systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019054350A (en) 2017-09-13 2019-04-04 株式会社東芝 Transfer device, transfer method, and program
JP2019053591A (en) 2017-09-15 2019-04-04 株式会社東芝 Notification control apparatus, notification control method, and program
WO2019224860A1 (en) 2018-05-21 2019-11-28 三菱電機株式会社 Communication device, communication method, and communication program
WO2020031908A1 (en) 2018-08-06 2020-02-13 オムロン株式会社 Communication system, communication device, and communication method
JP2020048045A (en) 2018-09-18 2020-03-26 株式会社東芝 Switching device, switching method, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019054350A (en) 2017-09-13 2019-04-04 株式会社東芝 Transfer device, transfer method, and program
JP2019053591A (en) 2017-09-15 2019-04-04 株式会社東芝 Notification control apparatus, notification control method, and program
WO2019224860A1 (en) 2018-05-21 2019-11-28 三菱電機株式会社 Communication device, communication method, and communication program
WO2020031908A1 (en) 2018-08-06 2020-02-13 オムロン株式会社 Communication system, communication device, and communication method
JP2020048045A (en) 2018-09-18 2020-03-26 株式会社東芝 Switching device, switching method, and program

Also Published As

Publication number Publication date
JPWO2022264230A1 (en) 2022-12-22
WO2022264230A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
CN114731337B (en) System and method for supporting target groups for congestion control in a private architecture in a high performance computing environment
US10986041B2 (en) Method and apparatus for virtual network functions and packet forwarding
US9360885B2 (en) Fabric multipathing based on dynamic latency-based calculations
AU2012270085B2 (en) Data transfer
CN113811858A (en) Enabling access to dedicated resources in a virtual network using a top of chassis switch
US20150124644A1 (en) Stage upgrade of image versions on devices in a cluster
US8095661B2 (en) Method and system for scaling applications on a blade chassis
US9893874B2 (en) Fabric multipathing based on dynamic latency-based calculations
JP4663761B2 (en) Packet relay device
EP3720069A1 (en) Method, device and system for sending message
US7359387B2 (en) Systems and methods for implementing virtual router
US9461938B2 (en) Large distributed fabric-based switch using virtual switches and virtual controllers
JP7513113B2 (en) CONTROL DEVICE, RESOURCE ALLOCATION METHOD, AND PROGRAM
JP7655384B2 (en) COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM
JP2020191621A (en) Control method of virtual machine network qos and device of the same
US10581738B2 (en) Efficient inter-VLAN routing in openflow networks
Kamizuru et al. Dynamic IP-VPN architecture for cloud computing
CN119766647B (en) A method, apparatus, electronic device, and storage medium for tenant gateway migration.
KR20180085592A (en) Virtual router system and method to integrate with openstack based orchestration
KR20180085475A (en) Virtual router api interface to integrate with openstack based orchestration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230919

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20240701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241127

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: 20250218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250303

R150 Certificate of patent or registration of utility model

Ref document number: 7655384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350