満月 
 TOP > 講座 > ネットワーク講座 > 通信データ最適化って何?



 

 通信データ最適化って何?

前章で取り上げたプログラムを以下のように変更し、通信データを最適化しても、変更前と同じ結果を出力することができます。


共通ヘッダ(common.h)

サーバ

クライアント

 やり取りされるメッセージの内容は固定的に決まっており、たかだか数個です。そのため、メッセージを文字列としてそのまま送るのではなくメッセージを識別できる情報(MESSAGE_TYPE)をやりとりするだけでメッセージの交換は可能です。
 例えば、「今何時。」というメッセージは、8バイト必要でしたが、これを4バイト(MESSAGE_TYPE型のみ)にして送信しています。
 また、「今何時。」に対する返答や、「はーい、△がいます。」といったメッセージのように、変動する情報に関しては、MESSAGE_TYPEの後に付加するような形で送れば、受信側でメッセージを再構成することができます。


 今回の変更は、送受信するデータのサイズを小さくすることに重きを置いて変更しました。しかしながら、メッセージによって処理が異なり(一回受信するだけのメッセージや二回受信が必要なメッセージがあったり、、、)、分かりやすさはいまいちです。
 例えば、送受信されるメッセージの最大サイズがたかだか8バイト程度なので、どのメッセージタイプのデータ構造も持つ共用体を一つ作成し、全てのメッセージをこの共用体データで送信することで、共用体をまるごと受信し、あとは共用体内のメッセージタイプ、詳細データの順に解析する、というシンプルな仕組みにすることもできます。

 また、今回は計測はしていませんし、この程度の小さいプログラムでは大して差はないのかもしれませんが、処理速度も通信データ構造次第で変化してくるものです。


 往々にして、処理速度・メモリ使用量・わかりやすさが、トレードオフの関係にあり、プログラム開発では何に重きを置いてプログラムを作るのか分析し開発することが必要です。分析には多種多様な経験が必要となってきます。
 今回の講座が、その多種多様な経験を積む上で、有用な基礎となり、貢献できることを祈って、本講座を締めたいとおもいます。

 ありがとうございました。


 TOP
 Copyright (c) 2013 Studio Four Dimension. All Rights Reserved.