![]() ![]() ![]() | 投稿するにはまず登録を |

題名 | 投稿者 | 日時 |
---|---|---|
» ![]() |
tya | 2012/12/20 18:11 |
![]() |
hina | 2013/1/9 10:56 |
![]() |
tya | 2013/1/16 8:22 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
tya | 投稿日時: 2012/12/20 18:11 |
半人前 ![]() ![]() 登録日: 2010/11/30 居住地: 投稿: 21 |
NAV期間を設定する際の処理について こんにちは。
当方、QualNet5.0.2を使っています。 現在、MAC層における処理について検証しているのですが mac_dot11.cpp内にあるMacDot11ProcessNotMyFrame関数における処理において、分からない点があるので教えて下さい。 例として、以下のようなオムニノードが配置してあるとします. A B C ○ ○→○ BがCに対してRTSの制御メッセージを送信した場合、当然、Aも受信することができます。この時、MacDot11ProcessNotMyFrame関数においてAはNAVを設定するための処理を以下の通り行います。 NewNAV = currentTime + duration + EPSILON_DELAY; if (NewNAV > dot11->NAV) { dot11->NAV = NewNAV; navHasChanged = TRUE; } この場合、NewNAVに代入された値がdot11->NAVに代入されることで、その時間までのNAV期間として処理されると認識しています。 しかし、BがCからのCTSを受信後、DATAパケットを送信した際に、AはDATAパケットを受信することになりますが、再びMacDot11ProcessNotMyFrame関数で上記の処理を行う際に、dot11->NAVが先程のRTSで設定したdot11->NAVの値よりも大きくなることで上書きする処理を行うことになります。これは、おかしな動作だと個人的には思うのですが、処理的に問題ないのでしょうか? 私が認識しているのは、RTSを受信した際にNAV期間を設定(t1とします)し、そのNAV期間が切れるのはt1にも関わらず、上記の処理によってt2にNAV期間が切れるといったことになっているように感じます。 DATAパケット自体にNAVを設定する機構はないと思いますので、この処理は不可解です。 この処理を意図的に行わせることによって、整合性などを図っているのでしょうか? もしくは、dot11->NAVに対する考え方(NAV期間が切れる時間)が間違っているのでしょうか? それとも、この質問自体がおかしなことを言っている?? よろしくお願いします。 |
フラット表示 | 前のトピック | 次のトピック |