JP7655384B2 - COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM - Google Patents
COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data 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.
同一物理ホスト上に複数のゲストが存在する環境において、ゲストから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
しかし、ゲスト側でホスト側と同一のトラヒック制御を行う場合、ゲスト毎に複雑なタイムスロット割り当て処理を実装する必要がある。また、設定ミスや意図的な攻撃により他ゲストの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.
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。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
<従来技術1>
従来技術1は、非特許文献1に開示されている技術である。従来技術1では、Linux(登録商標)の拡張機能であるIntermediate Functional Block device(IFB)を利用し、ゲストと接続するホストの仮想I/Fで受信したパケットをIFBに転送する。IFB上でHierarchical Token Bucket(HTB)を用いて、Pod間の最大データ送信量をkubernetesのManifestファイルから指定することにより、Pod毎の送受信帯域を制限できる。
<
従来技術1の適用により、ゲスト毎の帯域を管理できるが、HTBはジッタを犠牲に帯域を保証する方式のため、ゲスト間のトラヒックの競合によるキューイング遅延の悪化やタイムスロットのずれを解消できない。
By applying
<従来技術2>
「https://man7.org/linux/man-pages/man8/tc-etf.8.html」に開示されているとおり、Linux kernel4.19からEarliest TxTime First(以下、ETF)と呼ばれる、送信要求時刻に従って送信処理を行うキュー制御が導入されている。
<
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
ホスト100は、複数のゲストを収容する物理サーバである。TSNドメイン500は、TSN(IEEE 802.1AS,Qbvの2つを含む)をサポートした装置で構成されるネットワークである。図5には、TSNドメイン500を構成する装置の例として中継装置300、400が示されている。クライアント端末200は、ホスト100内のゲストと通信する。
ホスト100は、ゲスト110‐1~110‐n、及び仮想中継装置120を有する。複数のゲスト1~nは、ホスト100内の仮想中継装置120に接続し、ホスト100の送受信インターフェースを介してクライアント端末200と通信を行う。The
なお、本実施の形態では、ゲストと仮想中継装置を用いるが、ゲストの代わりに物理的に配線されたベアメタルサーバ、仮想中継装置の代わりに物理中継装置を利用してもよい。「ゲスト」を「サーバ」と呼んでもよい。また、「中継装置」は、「仮想中継装置」と「物理中継装置」の両方を含む広い意味を持つ。 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
(実施例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
Fig. 6 shows the configuration of the
仮想中継装置120は、各ゲスト110と接続するvNICと受信制御部121、及びクラス付与部122を備える。「vNIC+受信制御部121」を受信インターフェースと呼んでもよい。The
各ゲスト110と仮想中継装置120は、それぞれのvNICで接続され、各ゲスト110内のアプリケーションはvNICを介して、仮想中継装置120内のvNIC、受信制御部121、クラス付与部122を経由し、送信制御部140、物理NIC150を介して外部ネットワークと通信を行う。ここで、「送信制御部140+物理NIC150」を送信インターフェースと呼んでもよい。また、仮想中継装置120の中に送信制御部140と物理NIC150(つまり送信インターフェース)が含まれることとしてもよい。Each
複数の受信制御部121-1~121-3、及び送信制御部140がスケジュールDB130を参照する。
Multiple receiving control units 121-1 to 121-3 and a transmitting
標準の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
<受信制御部121、クラス付与部122>
図7に、実施例1における受信制御部121の構成例を示す。図7に示すとおり、受信制御部121は、受信判定部11、メタデータ付与部12、受信バッファ13を備える。なお、受信判定部11がメタデータ付与部12の機能を含んでいてもよい。
<
Fig. 7 shows an example of the configuration of the
受信判定部11は、vNICから受信したパケットを、スケジュールDB130の情報を元に、どのクラスに割当てるかを確認し、受信可能な時間か否かの判定をした後、当該パケットをメタデータ付与部12に渡す。受信判定方法の詳細処理は後述する。The
メタデータ付与部12は、パケットのメタデータとしてパケットにクラス情報を付与する。現在時刻が受信可能な時刻であればそのままクラス付与部122へパケットを送信し、受信不可能な時刻であれば受信バッファ13へパケットを格納し、受信可能な時刻になった際にパケットをクラス付与部122へ送信する。The
クラス付与部122は、パケットからメタデータのクラス情報を取得し、パケットにクラス識別子を付与する。標準のTSNの場合、VLANタグを付与し、VLANタグ内のPriority Code Point(PCP)領域3bitにクラスを指定する。The
<送信制御部140>
図8に、実施例1の送信制御部140の構成例を示す。図8に示すように、送信制御部140はクラス分類部141、複数の送信キュー、送信ゲート開閉部142を備え、IEEE802.1Qbvによる送信制御を行う。なお、図8の例では8クラス分の送信キューが示されているが、これは一例である。
<
Fig. 8 shows a configuration example of the
クラス分類部141は、送信制御部140に到着したパケットを、クラス毎に存在する送信キューへ振り分ける。送信ゲート開閉部142は、送信が許可された時間のみ、物理NIC150を経由して外部ネットワークへパケットを送信する。送信ゲート開閉部142の時分割送信スケジュールはスケジュールDB130を参照して行う。The
以下、実施例1における受信制御部121の受信判定方法1~3を説明する。説明において使用する各変数の時間軸上での関係は図16に示されている。なお、図16は、tbaseを使用する場合の変数を示している。
Below, we will explain
<実施例1における受信制御部121の受信判定方法1>
実施例1における受信制御部121の受信判定方法1について説明する。受信制御部120の受信判定部11は、あらかじめスケジュールDB130から、全体の送信スケジュールが繰り返される1周期の時間Tcycle、送信スケジュールが開始される基準時刻t0、受信を許可する基準時刻からのオフセット値Topen、及び許可終了のオフセット値Tcloseを取得しておく。
<
A
図9、及び図10を参照して、受信判定部11の動作例を説明する。
Referring to Figures 9 and 10, an example of operation of the
図9は、受信判定部11のパケット受信時の処理フローである。S101において、受信判定部11は、ゲスト110からパケットiを受信する。S102において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。
9 shows a process flow when a packet is received by the
S103において、受信判定部11は、現在の送信スケジュールに対するオフセット値TnowをTnow=(tnow-t0) mod Tcycleにより算出する。S104において、受信判定部11は、Tnow≧Topenかどうかを判断し、YesであればS105に進み、NoであればS107に進む。S105において、受信判定部11は、Tnow≦Tcloseかどうかを判断し、YesであればS106に進み、NoであればS108に進む。
In S103, the
S106において、受信判定部11は、パケットiをクラス付与部122へ転送する。S107において、受信判定部11は、次の受信許可時刻ti
open=tnow+(Topen-Tnow)+Topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。S108において、受信判定部11は、次の受信許可時刻ti
open=tnow+(Tcycle-Tnow)+Topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。なお、受信許可時刻は、送信制御部140で受信処理を開始できる時刻であり、これを受信開始時刻あるいは受信処理開始時刻と呼んでもよい。
In S106, the
図10は、受信バッファ13からクラス付与部122への転送フローである。S201において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。S202において、受信判定部11は、受信バッファ13内のパケット群のうち最小のti
openがtnowと等しいパケットiの有無を判断し、Yes(パケット有)であればS203に進み、NoであればS204に進む。
10 shows a transfer flow from the receiving
S203において、受信判定部11は、パケットiをクラス付与部122へ転送し、受信バッファ13から削除する。S204において、待機し、S205において、受信判定部11は、「rbtreeに新規データ挿入があり、かつ、min{ti
open}に更新あり」か否かを判断し、YesであればS206に進み、NoであればS201に戻る。S206において、min{ti
open}‐tnowの時間が経過したらS201に戻る。
In S203, the
<実施例1における受信制御部121の受信判定方法2>
実施例1における受信制御部121の受信判定方法2について説明する。受信制御部121の受信判定部11は、パケット受信時の処理演算量を削減するために、受信許可の開始と終了を示す絶対時刻topen、tcloseを別スレッドで常時計算しておき、パケット受信時は現在時刻の取得と、受信許可期間に含まれるかの判定のみを行う。
<
A second reception determination method of the
図11、図12を参照して、受信判定方法2における受信判定部11の動作例を説明する。受信バッファからの送信処理は受信判定方法1と同じである。
An example of the operation of the
図11は、受信許可時刻算出フローを示す。S301において、受信判定部11は、サイクルの開始時刻tbase=t0とする。受信判定部11は、受信開始時刻をtopen=tbase+Topenにより算出し、受信終了時刻を、tclose=tbase+Tcloseにより算出する。
11 shows a flow of calculating the permitted reception time. In S301, the
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
S403において、受信判定部11は、tnow≧topenかどうかを判断し、YesであればS404に進み、NoであればS406に進む。S404において、受信判定部11は、tnow≦tcloseかどうかを判断し、YesであればS405に進み、NoであればS407に進む。
In S403, the
S405において、受信判定部11は、パケットiをクラス付与部122へ転送する。S406において、受信判定部11は、パケットiの受信開始時刻ti
open=topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。
In S405, the
S407において、受信判定部11は、パケットiの受信開始時刻ti
open=topen+Tcycleを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。
In S407, the
<実施例1における受信制御部121の受信判定方法3>
実施例1における受信制御部121の受信判定方法3について説明する。受信判定方法3では、受信判定方法2の受信許可時刻算出フロー内で、受信可否を示すcanRcvと次の送信許可開始時刻を常時算出しておくことで、パケット受信時のフロー内の演算量を更に削減する。パケット受信時は真偽値canRcvの判定を行って、canRcv=falseの際に、受信バッファ13への格納のみを行う。
<
The
図13と図14を参照して、受信判定部11の動作例を示す。受信バッファ13からの送信処理は受信判定方法1と同じである。
An example of the operation of the
図13に、受信許可時刻算出フローを示す。S501において、受信判定部11は、topen=t0+Topen、tclose=t0+Tclose、canRcv=falseを計算する。S502において、受信判定部11は、現在のタイムスタンプ値tnowを取得する。
13 shows a flow of calculating the permitted reception time. In S501, the
S503において、受信判定部11は、tnow≧topenかどうかを判断し、YesであればS504に進み、NoであればS506に進む。S504において、受信判定部11は、tnow>tcloseかどうかを判断し、YesであればS505に進み、NoであればS507に進む。
In S503, the
S505において、受信判定部11は、canRcv=false、topen=topen+Tcycle、tclose=tclose+Tcycleを計算する。S506において、canRcv=falseとし、S507においてcanRcv=trueとする。
In S505, the
図14は、受信判定部11のパケット受信時の処理フローである。S601において、受信判定部11は、ゲスト110からパケットiを受信する。S602において、受信判定部11は、canRcv=trueか否かを判定し、YesであればS603に進み、NoであればS604に進む。
Figure 14 shows the processing flow when the
S603において、受信判定部11は、パケットiをクラス付与部122へ転送する。S604において、受信判定部11は、次の受信許可時刻ti
open=topenを基準にパケットiをrbtreeデータ構造の受信バッファ13へ格納する。
In S603, the
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=t0+Topen,i、tclose,i=t0+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
S708において、受信判定部11は、tnow≧topen,iかどうかを判断し、YesであればS709に進み、NoであればS713に進む。S709において、受信判定部11は、tnow>tclose,iかどうかを判断し、YesであればS710に進み、NoであればS714に進む。
In S708, the
S710において、受信判定部11は、canRcv=false、topen,i=topen,i+Tcycle、tclose,i=tclose,i+Tcycleを算出する。S713において、canRcv=falseとし、S714においてcanRcv=trueとする。
In S710, the
<スケジュールDB130で管理するスケジュール情報>
次に、スケジュールDB130で管理するスケジュール情報の例について説明する。スケジュールDB130では、受信制御部121と送信制御部140における、時分割送信制御のスケジュール情報を管理する。以下にスケジュール情報を3階層のデータ構造で表す例を示す。図17の(a)が第1階層を示し、(b)が第2階層を示し、(c)が第3階層を示す。
<Schedule information managed in
Next, an example of schedule information managed by the
第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.
送信開始/終了相対時刻は、送信周期が開始される基準時刻t0からの経過時間を示す。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
スケジュール情報を受信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
また受信制御部121内のメタデータ付与部12は、受信パケットの送受信IPアドレス等のflow識別子情報に基づいて第4階層のテーブルを参照し、合致する送信クラスの情報をパケットのメタデータとして受信パケットに付与する。In addition, the
ゲスト110から送信されるパケットのflow識別子が一意に定まる(ゲストから一種類の通信しか行われない場合)場合、1つのタイムスロットで送信される送信クラス及びflow識別子は一意に定まる。When the flow identifier of a packet sent from
(実施例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
図20に、実施例2における受信制御部121の構成例を示す。図20に示すように、実施例2における受信制御部121は、受信判定部11と受信バッファ13を備える。受信制御部121は、受信判定部11による受信可否の判定と、受信不可の場合のバッファ処理のみ行う。なお、「受信可否」とは、送信制御部140によるパケット受信が可か否かということである。
Figure 20 shows an example of the configuration of the
図21に、実施例2におけるクラス付与部122の構成例を示す。図21に示すように、クラス付与部122は、クラス判定部21と識別子付与部22を備える。クラス判定部21は、受信制御部121から受信したパケットのクラスを判定し、識別子付与部22は、判定したクラスに対応するVLANタグ等の識別子を付与する。クラス判定を受信制御部121ではなく、クラス付与部122で行うこと以外の処理は、実施例1と同じである。
Figure 21 shows an example of the configuration of the
(実施例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
そこで、実施例3では、ゲスト110から行う通信の数だけ中継装置にvNICを用意し、一つの通信種別は一つのvNICを用いることで、クラス判定処理を高速化する。Therefore, in Example 3, vNICs are prepared in the relay device for the number of communications performed by
図22は、ある一つのゲスト110が3つのvNIC1~3によってホスト100側の仮想中継装置120と接続されている例を示す。
Figure 22 shows an example in which a
3つのvNIC1~3はそれぞれ異なるネットワークに所属していてもよいし、同一のL2ネットワークに属していてもよい。同一のL2ネットワークに所属する場合、ゲスト110は更に所属するvNICの数だけルーティングテーブルを持ち、送信元IPのアドレスによって参照するルーティングテーブルを変更する。図22は、そのような例を示している。
The three
図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
(実施例4:受信制御部121にてタイムスロット毎に受信バッファを持つ方式)
次に実施例4を説明する。実施例4では、受信制御部121にて、予め1周期のタイムスロット分の受信バッファを用意しておくことで、パケット単位で受信判定・受信バッファから取り出す処理をするのではなく、タイムスロット単位で処理を行うことで、受信判定部11の演算量を削減する。
(Embodiment 4: A method in which the
Next, a fourth embodiment will be described. In the fourth embodiment, the
図24に、実施例4における受信制御部121の構成例を示す。図24に示すように、実施例4における受信制御部121は、受信判定部11、送信判定部15、各タイムスロット用の受信バッファを備える。
Figure 24 shows an example of the configuration of the
受信判定部11は、vNICから受信したパケットについて、どのタイムスロットで送信するかをスケジュールDB130の情報を元に判定し、パケットが送信されるタイムスロットに対応する受信バッファへパケットを格納する。The
送信判定部15は、スケジュールDB130の情報を元に、送信制御部140と同じスケジュールでそれぞれのタイムスロット用受信バッファからパケットを読み出してクラス付与部122へ送信する。Based on the information in the
(実施例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
実施例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
なお、説明の便宜上、同じ時間に一つの送信クラスを割り当てているが、同時に複数の送信クラスを割当てることも可能である。 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
実施例2同様、受信制御部121ではなく、クラス付与部122で直接判定、クラス付与まで行ってもよい。その場合、受信制御部121は不要となる。なお、この場合、クラス付与部122を受信制御部121と呼んでもよい。つまり、受信制御部121としてクラス付与部122を使用してもよい。As in the second embodiment, the
図27に、送信制御部140の構成例を示す。図27に示すとおり、送信制御部140は、クラス分類部141、送信ゲート開閉部142、及び、送信クラス毎に、複数の送信キューを備え、送信クラスと付与されたタイムスロット情報に基づいて、送信キューにパケットを振り分ける。
Figure 27 shows an example of the configuration of the
送信ゲート開閉部142は、送信キュー毎に、スケジュール情報に従って、ゲートの開閉を行う。実施例5では、送信制御部140における送信キューが受信バッファの役割を果たし、これにより、ジッタ保証を実現できる。The transmission gate opening/
(実施例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
図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
各ゲスト110は、ホストの内部処理(Linux Kernel内のNetwork処理等)をバイパスし、物理NIC150上のVFを直接利用する。これは例えばSingle Root I/O Virtualizationによって実現できる。Each
(実施例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
また、受信制御部121から送信制御部141に向けてパケットを送信する時刻は、受信制御部121から送信制御部140への転送遅延を予め算出した上で、転送遅延分早く行うこととしてもよい。In addition, the time at which a packet is transmitted from the receiving
(ハードウェア構成例)
本実施の形態において説明した装置(ホスト、ゲスト、ゲストと同様の機能を持つサーバ、中継装置、仮想中継装置、通信制御装置)はいずれも、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。当該コンピュータは、物理的なマシンであってもよいし、クラウド上の仮想マシンであってもよい。
(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
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
The program that realizes the processing on the computer is provided by a
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インターフェース装置1005は、ネットワークに接続するためのインターフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。When an instruction to start a program is received, the
(実施の形態のまとめ)
以上説明した本実施の形態においては、通信アプリケーションが動作する複数のサーバと接続する中継装置において、時分割送信制御を行う外部ネットワークと接続する送信インターフェースと同期して、各サーバと接続する中継装置側の受信インターフェースのパケット受信処理を行う。
(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
(Section 3)
The communication control device described in
(Section 4)
4. The communication control device according to
(Section 5)
5. The communication control device according to any one of
(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
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 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
140
200
1005
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ないし3のうちいずれか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.
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)
| 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)
| 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 |
-
2021
- 2021-06-14 JP JP2023528772A patent/JP7655384B2/en active Active
- 2021-06-14 WO PCT/JP2021/022579 patent/WO2022264230A1/en not_active Ceased
Patent Citations (5)
| 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 |