
【リリースノート（Ver.0.0.6.1）】

１．既知の不具合

　1. 稀にグラフのグルーピングが失敗します
　　同チャンネルを使うSSIDを複数検知した場合、その最大電力を発する物をグラフの高さとし、
　それ以外は、ツールチップにSSID名を表示するのが正しい挙動です。
　　恐らく電力が最大となるSSIDが入れ替わった時に発生する不具合です。
　　遭遇した場合は、マウスカーソルの位置をずらす事で見分ける事ができるはずです。

　　　発生バージョン：Ver. 0.0.2.0 〜

　2. 同一SSIDを持つネットワークが複数表示されます
　　サプリカントにプロファイルが登録されている状況において、実際にSSIDを検出した時に発生します。
　　OSから複数の要素が返却されてくる為に生じる現象ですが、その意図を計る為に現状維持としております。
　（恐らくは「プロファイル付き」と「プロファイルなし」のネットワークの両方が利用可能である旨を
　　アプリケーションへ伝える事を意図した実装と思われるが、その根拠は接続状態の変化ぐらい）

　　　発生バージョン：Ver. 0.0.2.0 〜

　3. 画面下にある一覧の列名や名前が見切れる事がある
　　Windowsの視覚効果のオプション「ドラッグ中にウィンドウ内容を表示する」を有効にしている条件下で、
　ウィンドウを左右方向へ伸縮させる操作を行うと発生する。
　　列長の比率を決定する基本値と計算アルゴリズムが安易な事に起因する。
　　この症状に遭遇しましたら、アプリケーションを再起動することで正常に戻る場合があります。

　　　発生バージョン：Ver. 0.0.3.0 〜


２．トラブルシュート、FAQ

　1. 操作説明が不十分じゃありませんか？
　　実現したい機能が一通り実装できた時点で整備する予定です。

　2. 起動しても「VC***.dllがない」旨のメッセージが表示されるだけなンですが…？
　　Microsoft Visual C++ 2010 のランタイムライブラリがインストールされておりません。
　　マイクロソフトのサイトから以下のパッケージを入手して、システムにインストールしてください。

　　※　プラットフォーム毎に別々のパッケージ（x86、又はx64）があります
　　※　システムの種類と同じ物を入手、インストールしてください

　　「Microsoft Visual C++ 2010 再頒布可能パッケージ」　※ 再頒布（さいはんぷ）

　3. 一覧の用語が分かりません（特に列名）
　　簡単に説明します。

　　＜基本サービス集合＞
　　　・SSID：　ネットワークを識別する名前
　　　・チャネル：　無線の中心周波数に定義されたチャンネル番号。
　　　　　　　　　総務省が定めたチャネル番号と一致するはずです。
　　　・中心周波数：　無線LANが使用する周波数帯域の中心周波数。
　　　　　　　　　　この前後20[MHz]〜40[MHz]を通信で使用されます。
　　　　　　　　　　カンマで区切られていない点は、単なる手抜きです。
　　　・電力：　受信電力。　単位は[dBm]。　0 〜 -100[dBm]の範囲を取る。
　　　　　　　0に達するのを観たことがありません。　大体-40[dBm]前後になると思われます。
　　　・品質：　通信品質。　百分率。　値が大きいほど品質が良い。
　　　・種類：　インフラストラクチャーとアドホックのどちらか。
　　　　　　　尚、Windows 8.1は、アドホックが非対応となっている。（Wi-Fi Directに向かうのかな？）
　　　・物理層：　一般的に言われる物理層の通信規格。　今までの所で、802.11acを観たことがありません。
　　　・MAC：　アクセスポイントのMAC アドレス（正確には、BSS-IDを表し物理的なインターフェースとは限らない）
　　　・間隔：　無線LAN アクセスポイントが定期的に発するビーコンの間隔。　単位は1,024[μ秒]
　　　　　　　[ミリ秒]単位と読み替えても差し支えないと思われます。

　　＜利用可能なネットワーク＞
　　　・近隣AP数：　近隣に存在する同一のSSIDを発するアクセスポイントの数
　　　・接続可否：　ネットワークへ接続可能か否かを示す。　接続を承認されるかは別の話です。
　　　・保護有無：　無線通信上の保護機能を有するか否かを示す。
　　　・認証方式：　ネットワークに接続する際の利用者認証の方式を示す。
　　　・秘匿方式：　通信データの暗号方式を示す。　ちなみにMAC アドレスは平文で流れます。
　　　・接続状態：　ネットワークに接続しているか否かを示す。
　　　・プロファイル名：　サプリカント（＝子機側）に事前登録されているプロファイルの名前を示す。

　　＜インターフェース一覧＞
　　　・インターフェース名：　無線LAN インターフェースが宣言した名前
　　　・状態（H/W）：　無線LAN インターフェースのハードウェアスイッチのON/OFF状態
　　　・状態（S/W）：　無線LAN インターフェースのソフトウェアスイッチのON/OFF状態
　　　・接続モード：　ネットワークへの接続時に、どのようなモードを用いたのかを示す
　　　　　　　　　　事前に記録したプロファイル、一時プロファイル、保護付きの探索、保護無しの探索など
　　　　　　　　　　これらの何を用いているかを示す
　　　・802.1x：　IEEE 802.1x 規格に従った認証機能を用いているかを示す
　　　・認証方式：　ネットワークへの接続時に、どのような認証方式を用いたかを示す
　　　・秘匿方式：　ネットワークへの接続時に、どのような秘匿方式を用いたかを示す
　　　・内部状態：　インターフェースの内部状態

　　＜アソシエーション状態＞
　　　・BSS-ID：　接続しているアクセスポイントのBSS-ID を示す（※ 但し、実験不足）
　　　・信号電力：　接続している際の電力を示す。（ただ、何となく固定値が返却されているような印象）
　　　・RxRate：　受信のリンク速度。単位は[MBps]。この数字は、実測値ではない。
　　　・TxRate：　送信のリンク速度。単位は[MBps]。この数字は、実測値ではない。

　　＜無線インターフェースビューアの列＞
　　　・インターフェース名：　無線LAN インターフェースが宣言した名前
　　　・種類：　無線LAN インターフェースの種類。　エミュレートかネイティブのどちらか
　　　・11d 対応：　無線LAN が使用する電磁波周波数帯の利用に規制している地域に対する機能の有無
　　　　　　　　　実際の所、規制している旨を電波で飛ばしているのだろうか…？
　　　・5GHz帯：　インターフェースが5.0[GHz]帯を利用できるかを示す。
　　　　　　　　　対応する物理層規格に「802.11a」が含まれているかで判定。

　4. グラフの棒が赤いのですが？
　　中心周波数を共有するSSIDが存在している事を示します。
　　尚、赤くなくても前後20[MHz]は、使用する可能性がありますので、目安程度に考えてください。

　5. 偶に棒が消える
　　無線LAN アクセスポイントからのビーコンを拾えなかった事が原因です。
　　正確な所は専門家の判断に委ねますが、恐らくはアクセスポイントがビーコンの発信を諦めたと思われます。

　6. 測定方法を教えてください
　　測定する回線の端点を結ぶ２台のコンピュータが必要です。
　　次に以下の順番で操作してください。

　　　１）一方の測定モードを「サーバ」、もう一方を「クライアント」に変更します。
　　　　　これは、ウィンドウを右クリックすると表示されるポップアップメニューか、
　　　　グラフペインの右下をクリックします。
　　　２）サーバとした方の端末のポップアップメニューから「測定開始」します。
　　　３）クライアントとした方の端末のポップアップメニューから「測定開始」します。

　　以上で測定が開始されます。　予め設定された時間だけ測定を実行します。

　　測定を停止する時は、同じポップアップメニューから停止を選択してください。

　　★　尚、無線ジャミングのような使われ方を予防する為に、以下の制限を設けております。
　　　・二重起動を防止します。　これは、多重起動によるボットとしての利用の予防処置です
　　　・最大測定時間を「15秒」に制限しております。　サーバ側機能は、これに該当しません。
　　　　これも負荷攻撃の予防処置です
　　　・一回の起動で連続した測定も制限しております。　上記と同様の理由です
　　　・サーバ側機能のパケット応答は、プライベートアドレス以外からのパケットに応答しません
　　　・クライアント側機能の宛先ipアドレスは、プライベートアドレス以外を指定できません
　　　※　DMZ に設置して何らかの被害、損害などを被った場合でも、当方は一切の賠償を行いません。
　　　★　DMZ に設置して使用しないでください。　DMZ とはインターネットから応答を受け付けるネットワークを指します。

　　　以上５点。　悪用の防止と無用な被害を回避を意図する処置です。　大分不便ですが、ご了承ください。


３．実装を諦めている事柄
　１）チャネル幅の表示
　　最近のアクセスポイントは、チャネル幅を20[MHz]に限定して動作するモードを備えている節があります。
　　Wi-Fi API の仕様書を眺めた所、これに類する情報を得る手段が見当たりませんでした。

　２）制御チャネルの上下側波帯の検出
　　これも１と同様です。　ドライバレベルだと前者もこちらも認識しているように思いますが、
　ドライバの仕様が分かりません。　又、この当たりはユーザも知りたいとは思わないと考えております。
　　どちらも現象を詳細に把握する場合に役立つ話ですが、詳細に分かった所で問題解決は変化しない。
　　　「チャネルを変える」

　３）802.11acのマルチチャネル占有
　　実際に観たことがありませんので、単なる不安要素です。
　　複数チャネルを占有するアクセスポイントがあった時、ビーコンは中心周波数毎に送出されるのか？


４．おまけ

　平成27年 9月27日（日）雨天

　取り敢えず、形になったので公開しました。
　現状だと殆ど何もできません。　近傍のAPがどのチャンネルを使っているのかを把握できるぐらいです。
　前述の通り、不具合も残っております。

　グラフだと「隣接チャネルが被っていない」様に見えますが、
無線LANは中心周波数の前後20〜40[MHz]を使用しますので、実際には被っております。

　加えて、Wi-Fiのビーコンを出さないアクセスポイントは発見できません。
　代表例を挙げると、Bluetooth機器や無線マウス、キーボード、電子レンジなどは検出できません。

　通信速度を低下させる原因は、こういった物以外にもAPへぶら下がった子機の数と通信頻度にも依存します。

　今の所は、子機の数を検出する機能はありません。
　子機の数を調べたい場合は、Wireshark やtcpdump などのパケットアナライザをご利用ください。
　こういった機能を実装する事も検討しておりますが、コンピュータに対する管理者権限を必要とするので
当該ソフトウェアを狙ったウィルスやマルウェアを呼び込む可能性を孕む為に、実装にはネガティブな意識です。

　取り扱い説明書がぺらぺらな状態なので、ここで簡単に説明すると、

　・「基本サービス集合（BSS）」とは、無線LANの物理層をリストアップした情報
　・「利用可能なネットワーク」とは、無線LANのネットワーク層をリストアップした情報

　無線LANはSSID（と物理層の通信方式）で区別され、同じSSIDを発するアクセスポイントが複数あった場合に
どちらへ接続するかはサプリカントが自動的に判断するようです。（少なくともWindows 7は）
　私が確認した限り、どれに繋いだのかを知る術はないように思われます。

　ですので、利用可能なネットワークの表示で、自分のSSIDを広告するアクセスポイントが複数ある場合は、
アクセスポイントのSSIDを変える事をお勧めします。

　最後に、ウィンドウの下部に表示されるリストビューで文字が赤く表示されたネットワークは、
認証なしや平文でのネットワークアクセスを広告している無線ネットワークとなります。
　自身のSSIDでこの表示が現れた時は、一度アクセスポイントの設定を見直す事をお勧めします。


　以上、私の認識が誤っている事が有り得ますので、正確な情報と対処は専門家に確認、相談してください。

==================================

　平成27年10月 2日（金）深夜

　ドキュメントの冒頭に記載したゴールの半分に到達したような印象です。
　今後は、測定機能の実装に移る予定ですが、

==================================

　平成27年10月23日（土）深夜

　測定機能の実装と最新版公開サイトの準備が整いました。
　URL は、以下の通りです。

　最新版公開サイト：http://carina.ec-net.jp/index.html


　話は変わって、大筋の部分は完成した認識で、仕上げ部分が残っています。
　測定機能は、殆ど付録程度の代物で実用には耐えません。
　簡単に確認してみようと思ったときに使って頂ければ幸いです。

　何処にも書いていませんので、測定機能が何を測定しているのかを書いておきます。

＜クライアント側＞
　開始時刻＝クライアントからサーバへパケットを飛ばした時点
　終了時刻＝サーバから折り返されたパケットをクライアントが受け取った時点

＜サーバ側＞
　開始時刻＝クライアントからサーバへパケットを飛ばした時点
　終了時刻＝サーバがクライアントからパケットを受け取った時点

　端的に言えば、サーバ側は片道の速度で、クライアント側は往復の速度を測定しております。

　この機能を用いて無線ネットワークの速度を測ろうとした場合、
アプリケーションを起動する端末は、無線LAN のみに接続した環境に整える必要があります。
　この辺り（＝無線ネットワークインターフェースをデフォルトゲートウェイに設定する操作）を
アプリケーション側から制御しようとすると端末に対する管理者権限を必要とします。

　コンポーネントを分割して実装することも可能ですが、有線ネットワークを抜線した方が早い
ので実装を切り捨てました。　加えて、内部ネットワークの端点間の速度を測定する意義も感じ
られません。　大抵の場合は、インターネット上のサーバとの通信速度を知りたい筈ですから。

　そろそろ、この実装も飽きてきたので、何か違う物を作りたい。

==================================

　平成27年11月08日（日）深夜

　ソケット通信を追加した時にOpenSSL のコードを取り込んでおりました。
　申し訳ありません。
　これが原因で、Libeay32.dllを必要とする旨のエラーメッセージが表示されて起動不全に陥っておりました。
　Ver.0.0.6.1 で当該コードを除去しましたので、症状が改善しているはずです。

