迷宮剣舞(PC):遅い遅すぎる

最初は割とサクサク動いていたのですが、メンテの度にクソ化していくレスポンスが気になり、とりあえず、パケットキャプチャしてみた。
画面クリックしながら、Wiresharkで適当に当たりを付けていくと…いわゆるwellknownでは無い範囲ですが、TCPで通信してそうなのを発見。さらに、ポートはwellkownでは無いのですが中身自体は平文のHTTPらしい…。


GET /serveventset?id=147xx&pass=xxxx&user_key=xxxx==&stzxxx=dmm&rd01=quest_battle_comdec&rd02=110604&rd03=100&rd04=110205&rd05=100&rd06=100&rd30=153633486xxxx&acc=3540¶m=dummy HTTP/1.1\r\n

うぉおいい。なんか、平文でidとかパスとか付いているタグを毎回送ってんぞこれ(念のため怪しそうなところは一部伏せてます)。
そして、戦闘の行動1ターン毎にこうしてHTTPでやりとりしてるし…。おいらは、あくまで通信屋であり、アプリ屋じゃないのでそこまで詳しくは無いのですが…予想はしていたけど実装タコ過ぎない?


他にもこんなのとか。(念のため一部改変しています)

Expert Info (Chat/Sequence): GET /snd/voice/xx_100001/0000xxx.mp3 HTTP/1.1\r\n

これ戦闘開始のボイスかしら?マジかー、mp3で直に取りに行って再生してるのかー。これ、同じようなメソッドですっぱ抜けるんじゃ無いのか…。いや、まあ、その価値があるかどうかは別として。他にも参照先がなんかゲームの名前のURLで、pngファイルを取りに行ってる部分もありました。


んで、通信の方でエラーとか出てる?と言うのが気になったのですが…。
このhttpベースの平文のリクエストはとりあえず、サクッと届いており、それに対するACKが、100msec以内には返ってきているのが確認できます。そして、遅いのはその後のレスポンスであることも確認。つまり、コマンド入力の受付はしているけど、その答えを返すの5秒とか10秒かかっていると言うこと。もし、リクエストを受け付ける回線の方が混み合っていてパケットロスが発生しているのだとすると、ACKが遅れたり、返ってこなかったりするケースが見られるはずですが、そういった様子は一切ないです。つまり、純粋に、ゲーム部分を処理するサーバが遅い…。というか、実装がタコ過ぎて性能が出ないだけだと思うのですが…。
さらに、もう少し言うと、まとめて送られてくるtcpの断片化されたパケットは、ウィンドウサイズギリギリまで送ってきているように見えるし、こちらのACKを受けると即座にまた続きを送っている様子が見えます。このACKを返してから新たなまとまりが送られてくるまでがおおよそ15msecで、これも有線回線で言えば、非常に現実的かつ特に通信遅延に問題などが発生していない数値です。なので、通信回線も問題無ければ、サーバの、少なくともTCPソケット辺りも非常に元気で、性能問題を抱えていないと推測されます。
結局、処理系かDBか、その辺の性能設計の問題なんだろうなぁ、と。そして、こうもずさんな何かを見せられると続けてプレーしようという気は起きないデスにゃあ。SSLで送ると性能が出なかったので平文にした!という可能性もあるとは思いますが…。多分根本的にノウハウが無い新人さんか何かのお仕事なんじゃ無いかと思うのですが…。