Diarkis Cloudにおけるパケット数とコストの計算

 
リアルタイム通信エンジンを使う場合、同時接続数がどれくらいかでリソース量などのコストを考えることが一般的ですが、Diarkis Cloudでは送受信パケット数を課金対象としております。
本記事では、同時接続数からパケット数をどう計算すればよいかについて取り上げます。

パケットとは

元々は「小包」という意味の単語で、ネットワークでは一回の通信によるデータ送受信の単位となります。
Diarkisの指す「パケット」は一般的なTCP/IPにおけるパケットとは別に、当社が実装するDiarkisのサーバとクライアントでやり取りされるデータの単位をいいます。

パケットのデータサイズ

1パケットで送信できるデータサイズは各種環境により上限がありますが、Diarkisでは約1400バイトとしております。
(詳細は弊社ブログ「DiarkisとC#によるRUDP通信の実装」を参照して下さい)

Diarkis Cloudにおけるパケット数(コスト)の試算

マルチユーザー間通信では同時接続されているクライアントに対し、各々でデータ交換を行います。
よって100接続の場合は一人の情報を99人に対して送信しますので送信1+受信99の100パケットとなります。
つまり100人のデータをお互いにやり取りする場合は100 x 100 = 10,000パケット必要となります。
アプリケーションの性質によりますが、どのような場合にデータ交換をするかによりパケット(総)数が決まります。
例えばチャットなどの場合に10人のグループで各々が5秒に1回発言を行い、1時間使った場合は下記のようになります。
60 x 60 / 5 x 10 x 10(受信) = 72,000パケット
ただし、純粋なデータのみでなく応答確認のパケットも発生しますので倍の回数となります。
72,000 x 2 = 144,000パケット*パケットサイズ(パケット分割)やネットワーク状況による再送回数などで変動しますが基本的な考え方となります

おわりに

Diarkis Cloudはパケット数での課金ですが、10億パケットまでは基本料金に含まれています。
10億パケットを超える見通しがある際に本記事で挙げた計算方法で試算することができますので、参考にしてみてください。