発端
マインクラフトサーバーとして、安心・手軽
とはどのようなものだろうか。
基本的なマインクラフトサーバーの作り方は、この記事を見ている人ならば既にご存知であろう。単純なマインクラフトサーバーにおいて安全
でない部分としてポート開放
というものがある。
そしてこのポート開放を安全に行うには、ある程度の知識
や手順
が必要なことからも手軽
ではない。
本企画の目的は安全・手軽なマインクラフトサーバー
を作ることにある。
先行事例
本企画は勉強のために既存のサービスを再現
する形となる。
えずこ氏が開発したSecureShare.net
では、ポート解放を必要とせず、サーバーの公開を安全なものとすることができる。尚、プレイヤーは従来同様にアドレスとポートを入力すればサーバーにアクセスできるため、手軽さはそのままである。
詳しいロジックは上記のサイトに記載があるため、参考にしてほしい。
実現方法
SecureShareNetの説明にもあるとおり、リレーサーバーというものを間に挟むことで実現している。
よって今回は以下のように、リレーサーバー
とサーバーPCアプリケーション
を追加することで実現をしようとしている。
各セクションでの動作内容を整理する
Player層
- 各プレイヤーは通常のサーバーにアクセスするのと同様に
アドレス
、ポート番号
を入力することでサーバーにアクセスしたと認識する - だが実際には
クラウド上のリレーサーバー
にアクセスを行う
Player側からは通常の認識同様の動作が期待できるため、今回はPlayerセクションに変更は加えないこととする。
サーバーPC層
- 通常のサーバーは外部からのアクセスを許すことで通信を確立するが、本構造においてはサーバーPC上に存在するアプリケーションから、
クラウド層
に存在するリレーサーバーにアクセスすることでデータのリクエストを行う - リレーサーバーに
Player層
からの通信が存在した場合にアプリケーション
にはリレーサーバー
にリクエストした圧縮データが返ってくる - 圧縮データを解凍し、マインクラフトサーバーにアクセスすることで通信が確立する
- この際、マインクラフトサーバーからはPlayerがアクセスしてきているのと同様に見えているため、マインクラフトサーバーは通常のものと同様に動作する
クラウド層
-
リレーサーバー
は通常のサーバー同様にポートを開放
し、Playerからのアクセスを待つ - Playerからのアクセスがあった場合、動作クロック内の通信内容を
圧縮
してサーバーPCからのリクエストに応える - サーバーPCからデータの返答があった場合、Player層からのリクエストに返答する形でデータをPlayer層に返す
Part 1を終えて
Part 1は以上となる。
実現可能性および、今後必要な知識や制作範囲の決定が行えたため、目標達成とする。
次回に続く。