• 超低遅延ネットワーク 0秒への挑戦

 
 
Print Friendly, PDF & Email

はじめに

皆さんはマイケル・ルイス原作のフラッシュ・ボーイズを読んだことはあるでしょうか?

極めて短い時間で株の売買を行うHFT(High Frequency Trading:高頻度取引)に焦点を当てた小説で、なぜHFTのネットワークで超低遅延が必要となるのかを理解出来るネットワークエンジニアにとっても非常に興味深い内容になっています。

株式取引システムとHFT(High Frequency Trading:高頻度取引)システム

非常に簡単ですが株式取引システムを図示しました。

  • 投資家は証券会社に注文を行います。
  • 証券取引所で注文の付け合せを行い売買が成立します。

例えば、ある投資家が1000円でA社の株を1万株買おうとしていた。買おうとした瞬間に株価が1003円に値上がりしていた。もし1000円で購入出来ていれば、1003円で売れていたかもしれない。つまり一瞬の判断により、3万円の損をした。

これをアルゴリズムを使って、高速に処理をさせるのが、HFT(高頻度取引)システムになります。

HFTシステムには下記の様な特徴があります。

  • 一定のアルゴリズムに基づき自動的に発注
  • コロケーションエリアから自動実行
  • トランザクションが高頻度に行われる

つまり少しの遅延が大損害になります。

これら取引を行っている投資家達をフラッシュ・ボーイズと呼んでいます。

ネットワーク機器への要件

アルゴリズムを実施する機器から考えて、ネットワーク機器にはどの様な遅延要素があるでしょうか?
パケットが入力ポートに到達し、一定の処理を行い出力ポートに到達する処理時間:機器内遅延

ネットワーク機器同士を接続するケーブル遅延

これらが積み重ねる事により遅延は大きくなります。

ネットワークアドレス変換機能の統合

特にNAT(ネットワークアドレス変換)をする装置では一般的に遅延が大きくなると言われてます。

この為、高速スイッチングをするスイッチでNAT機能をもたせ、機器内遅延やケーブル遅延を最小限度にするという事が考えられます。

HFTネットワークでよく使われている7150SでNAT機能を備えてる理由はこういったお客様の要求背景があります。

Arista 7150 Series Hardware Based NAT For Unicast Traffic

少し余談ではありますが、データセンターにおけるクラウド接続などでもNAT要件が必要になる事があります。Leafスイッチとしてよく使用される7050シリーズでのNATも開始しています。

NAT Support on 7050X3

 

スイッチング方式の追求(ストア&フォワード vs カットスルー)

イーサネットの転送方式にはストア&フォワード方式とカットスルー方式があります。

  •  ストア&フォワード方式

宛先MACアドレスを見て、送信先を確認し、FCSをチェックする事でフレームの正常性を確認した後に転送します。

  • カットスルー方式

宛先MACアドレスを見て、即座に送信先を決定し転送します。送信元MACアドレスやイーサタイプさらにIPヘッダーなど固定長部分のみを見るものもあります。

カットスルー方式で動作するとフレーム長に影響されず、伝送遅延は一定になります。

例えば7150Sはフレーム長に関わらず350ナノ秒になります。

上記グラフはRFC2544 パケットサイズで遅延時間を測定した結果になります。

ストア&フォワードは当然ですがパケットサイズが長くなるにつれて、遅延時間が大きくなります。

一方カットスルーモードはフレーム長に影響されず即座に転送される為、どんなパケットサイズであってもほぼ一定である事がわかります。

L1+スイッチングという考え方

イーサネットフレームはもともとはただのビット列です。これをスイッチはフレームとして理解し、転送先を決定します。

入力ポートと出力ポートが決まってる様な場合、つまり投資家から証券取引所への距離をひたすら延長する為に存在するHFTネットワークにおいては、この処理時間すら無駄になるかもしれません。

ここで登場するのが、L1+スイッチングという考え方です。

つまりあるポートで入力されたら、あるポートで出力する。(緑の例):ユニキャスト

もしくはあるポートで入力されたら、複数のポートで出力する(オレンジの例):マルチキャスト

この様にプログラムする事で、最小の遅延時間でフレームを転送する事が出来ます。

7130シリーズではこのL1+スイッチングというの方式をサポートし、ポート間の遅延時間4ナノ秒を実現します。

7130設定例

hostname#conf
hostname(conf)#interface et7
hostname(conf-if-et7)#source et3
hostname(conf)#interface et10-15
hostname(conf-if-et10-15)#source et5

各インターフェースでソースポートを設定します。Ethernet7はEthernet3を送信元のアドレスになります。また、Ethernet10-15の送信元はEthernet5になります。この様にユニキャスト/マルチキャストの設定も簡単に可能です。

hostname#show matrix
16 ->
15 ->
14 ->
13 ->
12 ->
11 ->
10 ->
9 ->
8 -> -----------------------------+
7 ->                              |
6 ->                              |
5 ->                              |
4 ->                              |
3 -> --------------------+--+     |
2 ->                     |  |     |
1 ->                     |  |     |
                         |  |     |
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

またshowコマンドなどで各ポート設定をわかりやすく表示する事も可能です。

7130のL1機能に関して興味のある方は下記をご参照下さい。

How to evaluate Arista 7130 Layer 1 features

どの様に4ナノ秒を測定するのか?

4ナノ秒というのは1メートルのファイバーの伝送遅延とほぼ同様になります。

つまり既存のRFC2544の様な測定方法ではとても測定が出来ないほどの低遅延になります。

Measuring the latency of a 4ns switch

こちらの資料ではどの様にこの低遅延を測定したのかを記載しています。

        

カプラーとファイバーを接続します。

ハードウェアタイムスタンプをつけて、遅延時間を測定

少しずつカプラーを外し、7130に接続する

回線遅延に対しての追求

注文システムと証券取引所の間は同じデータセンターにコロケーションされる事が好まれます。

近いラック位置、TORに一番近いサーバーなどフラッシュ・ボーイズ達の遅延に対する要求は果てしないです。

特定の株式の動きを察知した場合には関連株へのオーダーなど他の証券取引所に対してのすぐオーダーをしなければいけません。

Spread Networks

シカゴとNASDAQのデータセンターニュージャージーを 1331kmをダークファイバーで接続しています。上記を見ただけると分かるようにほぼ一直線でファイバールートを構築しているのが分かると思います。既存の基線を使い、迂回をした方が効率の良いファイバー経路である事が考えられますが、HFTにかけるフラッシュボーイズにとってはとにかく遅延が生命線で在るために、とにかく直線で引いてます。

ラウンドトリップタイムが約12.98msecと言われてます。

 

https://www.zayo.com/services/spread-networks/

マイクロウェーブの利用

マイクロウェーブを利用して、空気中で伝送を行うと、ファイバーを通すよりも50%ほど遅延は改善され、7.5-8msecにする事が出来ます。

下記の様な記事で確認する事ができます。

1215095 – The Flash Boys Mystery Solved

https://www.itworld.com/article/2827482/high-frequency-traders-use-50-year-old-wireless-tech.html

アルゴリズムサーバーでの遅延

ネットワークの遅延のみでは無く、サーバー処理での遅延時間も重要になります。

この為、FPGAを積んだNICなどでアプリケーションロジックを用いてパースし遅延を削減させるためには必要となります。

更にスイッチでFPGA乗せることでスイッチ側でアプリケーションロジックを乗せる事も可能です。

この為、7130では最大3つのFPGAを搭載する事が可能です。

タイムスタンプの重要性

これまで述べてきた様にフラッシュ・ボーイズ達にとってネットワーク遅延情報は最重要事項になります。

これらの遅延情報を提供するためにTap Aggregationでのハードウェアタイムスタンプが利用されます。

Packet Time Stamping on the 7500R/7280R/7500E/7280E

 

まとめ

本記事ではフラッシュ・ボーイズを題材にHFT(High Frequency Trading:高頻度取引)システムの遅延要求をまとめてみました。

HFTといった特別なネットワークで無くても、これらの要素技術は皆さんのネットワークでも必要になる時が来るかもしれません。

 

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: