見出し画像

RUDP、UDP、P2P、TCPの違いとは?

MOBAの正式名称はマルチプレヤーオンラインバトルアリーナ(Multiplayer online battle arena)、複数のプレイヤーが同時に参加できるオンライン対戦ゲームを指します。スマホ、PC、PS5やXBOX、プラットフォームを問わずMOBAゲームに寄せられた世界各地のプレイヤーたちはインターネットを通じて競い合い、まるでコミュニティみたいに交流します。
従来の電信機から現在のオンライン通話に至るまで、実用された技術の革新・普及は目を瞠るほど飛躍的でした。その裏にはUDP、TCP、RUDP、P2Pなどといった通信プロトコルの活用があります。

FS.COM|RSシリーズ ラックサーバー

基礎のUDPとTCPから話をしよう

UDPとTCPの違い
  • UDPとは、User Data Protocolの略語で、高速通信を重視する通信プロトコルである。
    UDPはコネクションレス型通信プロトコル(事前のやり取りなしで通信を開始させる)として、動画配信、音声通話、モニター監視などのリアルタイム的な分野で活用される。

  • TCPとは、Transmission Control Protocolの略語で、高い信頼性で安定した通信を重視する通信プロトコル。
    TCPはコネクション型通信プロトコル(事前のやり取りを確認した上で通信を開始させる)として、ウェブサイト閲覧、ファイル転送などのデータ完全性が求められるアプリケーションで実用される。

UDPとTCPの仕組み

RUDPとは?UDPの進化?

RUDPとは「ReliableUDP(User Datagram Protocol)」の略で、リアルタイム通信に用いられる通信プロトコルの1つです。UDPのような高速通信を重視する特徴を持ちながら、メッセージ再送による高品質・信頼性の確保を実現できます。

RUDPの仕組み

上記の図を示すように、RUDPの場合ではシーケンス番号の順に追ってパケットロスを確認し、データパケットを再送することがあります。

RUDPの特徴

パケットの到達順序:ゲームの進行状況を守る
パケットロスが発生する際に、対象パケットが受信されるまで次のパケットを処理しない。

大容量データの分割・整合:マルチプレイヤーオンラインゲームのの最適化
分割されたパケットは1つでも失われたらまるごと使えなくなる可能性が高い。RUDPによるパケットの分割・結合は情報の信頼性を確保できる。

セキュリテイ強化:チート対策
サイバー攻撃や悪意ある行為を防ぐために、一定の通信間隔が設定されます。頻繁な再送信を避け、複数回の受送信失敗を「通信中止」と見なす。


UDP、RUDP、TCPをもとに開発されたオンラインゲームはまた様々な通信方式を利用しています。その中にP2P型とクライアント・サーバー型は主流。

UDP、RUDP、TCPを活かしたゲーム

様々な通信方式

P2P型

P2PとはPeer to Peerの略で、「サーバー経由」を飛ばしてクライアントとサーバの一体化を実現した通信方式です。ゲームに参加した全てのプレイヤーは互いに通信を行うと同時に情報交換をします。それによって、相互通信チャンネルが成り立つわけです。

P2P型

クライアント・サーバ型

クライアント・サーバ型通信とは、全てにサーバを介して通信を行うということです。利用者が操作する「クライアント(パソコン、スマホなど)」をインターネットに結び、クライアントからの要求にリアルタイムサーバが応答する形で処理を進める方式です。この場合、遠距離通信による高い遅延(タイムラグ)が現れます。

クライアント・サーバ型

P2Pとクライアント・サーバの違い(メリット・デメリット)

オンラインゲームにおいて、一見してプレイヤーは1体のキャラクターしかコントロールしていないのですが、実際に参加者が増えるほどリアルタイム通信は複雑になります。

P2Pとクライアント・サーバの違い(メリット・デメリット)

例えば、下記の図を示すように、1v1対戦ゲームの中では自分のキャラクターを操縦するだけでなく、相手のキャラクターへのダメージや影響を正しく反映させなければなりません。そうなると、端末ごとに2体のキャラクターが存在し、システム全体にはキャラクターが4体存在することになります。

 

1v1対戦ゲーム

4体ならまだしも、対戦ゲームに参加した人数が増えればそれなりにサーバーの処理負荷は重くなります。そのため、リアルタイムサーバのような低遅延・高頻度・高速通信を実現できる構成が求められます。ひいては、サーバ経由を捨て、P2Pのようなクライアントとサーバの一体化を生み出しました。

多人数、リアルタイムを特徴づけられるマルチプレイヤーのオンラインゲームから見ると、P2Pとクライアント・サーバ型の違いをいくつかにまとめます。

P2Pのメリット

  • 一体化による低遅延(低いレイテンシ)

  • 少人数(要素が少ない)はシステムに優しい

  • サーバー経由なしで、コスト削減につなぐ

P2Pのメリット

クライアント・サーバ型のメリット

  • 参加者が増えてもシステム通信はシンプルでいける

  • サーバーに繋がることでプレイーできる

  • 相互通信(対戦)を制御できる

  • 強いセキュリティ(チート)対策

クライアント・サーバ型のメリット

P2Pにおける合意問題

合意問題とは各端末に存在したある変数の値を統一する問題です。ゲームの中ではボスを倒した後に宝箱やアイテムが1つや2つ出てくるでしょ。それを参加者の誰かに渡すのかについては合意で決められます、いわゆる多数決で。

各Peerはある変数をYと設定しておいて、自分の変数値を代入します。そして自分の変数値を全てのPeerに送信します。

P2Pにおける合意問題

他のPeerから受信した変数値を記録した後に多数決を行います。多数決で決めた変数値を全てのPeerに共有して統一させます。

この記事が気に入ったらサポートをしてみませんか?