<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/torinikudaisuki/">
    <title>NS3-UANの解説 @ ウィキ</title>
    <link>http://w.atwiki.jp/torinikudaisuki/</link>
    <atom:link href="https://w.atwiki.jp/torinikudaisuki/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>NS3-UANの解説 @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2013-01-20T14:38:29+09:00</dc:date>
    <utime>1358660309</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/9.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/8.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/torinikudaisuki/pages/7.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/17.html">
    <title>送信プロセス一つ一つ丁寧に追っていく</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/17.html</link>
    <description>
      
&lt;p&gt;アプリスタート&lt;/p&gt;
&lt;p&gt;→StartSending()→ScheduleNextTx()→{送信Bit/データ生成BitRate後に}SendPacket()&lt;/p&gt;
&lt;p&gt;↑再び実行　↓予め設定されたgap time(1sとか)　&lt;/p&gt;
&lt;p&gt;StopSending()&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;SendPacket()→{パケットを作って}UANのSendPacket&lt;/p&gt;
&lt;p&gt;
→UANTransducerHd:Transmit()(多分電気から音に変換するmodulation)→UANChannel:TxPacket()&lt;/p&gt;
&lt;p&gt;→｛delay後｝UANTransduderHd:EndTx &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
UANChannel:TxPacket()　チャネルに登録されているデバイスリストから送信ノードを同定して、自分以外のノードをすべて受信ノードと仮定して、伝搬遅延、PDP(パケット遅延なんとか)、受信電力を計算。&lt;/p&gt;
&lt;p&gt;その後、&lt;a href=&quot;http://www.nsnam.org/docs/release/3.15/doxygen/classns3_1_1_simulator.html#a63865b5c4030eca04d51b033f61ff600&quot; class=&quot;code&quot;&gt;Simulator::ScheduleWithContext&lt;/a&gt;(dstNodeId, delay,&amp;amp;&lt;a href=&quot;http://www.nsnam.org/docs/release/3.15/doxygen/classns3_1_1_uan_channel.html#af232fa9b7e8e9520a2d393149206c11a&quot; class=&quot;code&quot;&gt;UanChannel::SendUp&lt;/a&gt;,略）&lt;/p&gt;
&lt;p&gt;でdelay後に&lt;a href=&quot;http://www.nsnam.org/docs/release/3.15/doxygen/classns3_1_1_uan_channel.html#af232fa9b7e8e9520a2d393149206c11a&quot; class=&quot;code&quot;&gt;UanChannel::SendUp&lt;/a&gt;を実行している。sendupは&lt;/p&gt;
&lt;p&gt;&lt;a    </description>
    <dc:date>2013-01-20T14:38:29+09:00</dc:date>
    <utime>1358660309</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/16.html">
    <title>地形効果をとりこむプログラム</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/16.html</link>
    <description>
      地形効果を取り込んで、伝搬できない経路を音波が伝わる状況をなくすプログラムが作りたい。（海面で反射させるとか中継ノードに渡すとか。とにかく、オブジェクトがあるのに素通りする的な状況をなくしたい。）

そのためのファーストステップとして、地形を問い込むプログラムのプロトタイプを書いた…。（これだけだと単にデータを取り込むプログラムに過ぎない。）

課題は、「これをどうNS3-UANに組み込むか」及び「音波の物理伝搬性質はどうなっているかをしっかりと自分が理解できていないこと」である。

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
1/20アイデア：
79 MobilityModel::GetDistanceFrom (Ptr&lt;const MobilityModel&gt; other) const
80 {
81  Vector oPosition = other-&gt;DoGetPosition ();
82  Vector position = DoGetPosition ();
83  return CalculateDistance (position, oPosition);
84 }
85 
に、地形情報を使って、間に障害物があるか判定する関数を入れて、障害物があったら、迂回するようにする？

でも、物理現象をちゃんと考えているとは言い難い気が。

ベルホップだと地形効果を考えていないのかな?
いなくても、それを拡張するのは筋が良さそう。
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

初期構想
１：送信ノードと受信ノードと地形から、伝達可能性を判定し、中間ダミーノードを設置するモジュールを作る
２：ダミーノードに送り、ダミーノードから受信ノードへ送る

以下ソースコード

mapreader2.cc
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;utility&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;
    </description>
    <dc:date>2013-01-20T14:53:06+09:00</dc:date>
    <utime>1358661186</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/14.html">
    <title>伝搬プロセス</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/14.html</link>
    <description>
      伝搬モデルとしては、uan-prop-model-ideal.ccが使われている。（標準出力を仕込んで確認。実行ログにも書いてある。）

idealモデルは、伝搬ロスが0と考えるモデル。

疑問：伝搬時間はどこで計算されている？    </description>
    <dc:date>2013-01-06T11:11:39+09:00</dc:date>
    <utime>1357438299</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/13.html">
    <title>このプログラムがやっていること</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/13.html</link>
    <description>
      送信ノードが複数、受信ノードが一つという状況で、送信ノードから受信ノードへのパケット送信を実行するというシナリオのプログラムです。ただし、contention windowを用意し、チャネルが空いてからランダムな時間（contention windowより小さな）だけ待ってから各ノードはパケットの送信を実行するようになっています。そして、contention windowのサイズを変えたときにthroughputがどうなるかを出力するようになっています。各throughputは何回かのデータの平均を取っています。

（注意）このwikiにのっているログについては、ログの見やすさを考えて、cwの大きさを固定し、平均もとっていません。またノードの数を送信受信ノードともに1個にしてあります。    </description>
    <dc:date>2012-12-24T13:50:42+09:00</dc:date>
    <utime>1356324642</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/12.html">
    <title>Uan-cw-exampleの理解</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/12.html</link>
    <description>
      [[１：このプログラムがやっていること&gt;http://www52.atwiki.jp/torinikudaisuki/pages/13.html]]
[[２：送信プロセス&gt;http://www52.atwiki.jp/torinikudaisuki/pages/11.html]]
[[３：伝搬プロセス&gt;http://www52.atwiki.jp/torinikudaisuki/pages/14.html]]
４：受信プロセス

[[Uan-cw-exampleの実行ログ&gt;http://www52.atwiki.jp/torinikudaisuki/pages/8.html]]    </description>
    <dc:date>2013-01-06T11:06:46+09:00</dc:date>
    <utime>1357438006</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/11.html">
    <title>送信プロセス</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/11.html</link>
    <description>
      [[送信プロセスを一つ一つ丁寧に追っていく&gt;http://www52.atwiki.jp/torinikudaisuki/pages/17.html]]


送信のプロセスのメインとなっている部分は以下のようになっています。

0.5s OnOffApplication:StartApplication() //socketが設定されていない場合、ソケットの設定を行う関数
～
0.5s OnOffApplication:StartSending()
～

関数StartSending ()は以下の内容で、
197 void OnOffApplication::StartSending ()
198 {
199  NS_LOG_FUNCTION_NOARGS ();
200  m_lastStartTime = Simulator::Now ();
201  ScheduleNextTx (); // Schedule the send packet event
202  ScheduleStopEvent ();
203 }

ここで、
214 void OnOffApplication::ScheduleNextTx ()
215 {
216  NS_LOG_FUNCTION_NOARGS ();
217 
218  if (m_maxBytes == 0 || m_totBytes &lt; m_maxBytes)
219  {
220  uint32_t bits = m_pktSize * 8 - m_residualBits;
221  NS_LOG_LOGIC (&quot;bits = &quot; &lt;&lt; bits);
222  Time nextTime (Seconds (bits /
223  static_cast&lt;double&gt;(m_cbrRate.GetBitRate ()))); // Time till next packet
224  NS_LOG_LOGIC (&quot;nextTime = &quot; &lt;&lt; nextTime);
225  m_sendEvent = Simulator::Schedule (nextTime,
226  &amp;OnOffApplication::SendPacket, this)    </description>
    <dc:date>2013-01-07T21:11:54+09:00</dc:date>
    <utime>1357560714</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/10.html">
    <title>WIKI管理人プロフィール</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/10.html</link>
    <description>
          </description>
    <dc:date>2012-12-24T10:52:33+09:00</dc:date>
    <utime>1356313953</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/9.html">
    <title>研究計画</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/9.html</link>
    <description>
      まず、NS3-UANのコードを解読し、既存シミュレータの仕組みを理解すると共にその問題点を具体化します。（コードを詳しく見る前に問題だと推測しているのは、ノイズモデルが単純であること（確率的性質を考えていない、海洋生物の存在の無視、地形効果を考えていない）、サポートしているモデルの不足（海中での可視光、超長電波）、実装できるプロトコルの不足（geo-cast等）です。）
それが終わったら、問題だと考えた点を解決するプログラムを書いて、それを評価する方法を考え（例えば先行研究におけるfield testのデータを再現するかを見る）評価を実行し、NS3の開発メーリスに「こういうプログラムを作りました」との情報を投げて最新バージョンに組み入れてもらえればと考えています。    </description>
    <dc:date>2012-12-24T10:46:33+09:00</dc:date>
    <utime>1356313593</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/8.html">
    <title>Uan-cw-exampleの実行ログ</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/8.html</link>
    <description>
      Waf: Entering directory `/home/joe/repos/ns-3-allinone/ns-3.15/build&#039;
[1546/1924] cxx: src/uan/examples/uan-cw-example.cc -&gt; build/src/uan/examples/uan-cw-example.cc.1.o
[1800/1924] cxxprogram: build/src/uan/examples/uan-cw-example.cc.1.o -&gt; build/src/uan/examples/ns3.15-uan-cw-example-debug
Waf: Leaving directory `/home/joe/repos/ns-3-allinone/ns-3.15/build&#039;
&#039;build&#039; finished successfully (5.968s)

ObjectBase:ConstructSelf(): construct tid=ns3::UanNoiseModelDefault, params=2
ObjectBase:ConstructSelf(): try to construct &quot;ns3::UanNoiseModelDefault::Wind&quot;
AttributeConstructionList:Find(0x8e85020)
ObjectBase:ConstructSelf(): construct &quot;ns3::UanNoiseModelDefault::Wind&quot; from initial value.
ObjectBase:ConstructSelf(): try to construct &quot;ns3::UanNoiseModelDefault::Shipping&quot;
AttributeConstructionList:Find(0x8e84f08)
ObjectBase:ConstructSelf(): construct &quot;ns3::UanNoiseModelDefault::Shipping&quot; from initial value.
ObjectBase:ConstructSelf(): construct tid=ns3::Object, params=0
ObjectBa    </description>
    <dc:date>2012-12-24T10:34:40+09:00</dc:date>
    <utime>1356312880</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/torinikudaisuki/pages/7.html">
    <title>参考ページリンク</title>
    <link>https://w.atwiki.jp/torinikudaisuki/pages/7.html</link>
    <description>
      [[UAN Framework&gt;http://www.nsnam.org/docs/release/3.15/models/html/uan.html]]: NS3-UAN Modelに関しての概説。作った人の解説（と思われる）なので参考になります。（ただ、大雑把なことしか書いていませんが。）

[[NS3 Documentation&gt;http://www.nsnam.org/ns-3-15/documentation/]]：NS3のdocumentaion。tutorialは初めてNS3を動かすうえで参考になりますし、API documentaionを使えば、さまざまな関数、及びクラスの説明や引用関係が見れます。NS3を理解するうえで必須のページだと思います。    </description>
    <dc:date>2012-12-24T10:24:14+09:00</dc:date>
    <utime>1356312254</utime>
  </item>
  </rdf:RDF>
