Programming_qualnet_mcbr
MCBR
マルチキャスト向けCBR
使用方法
- クライアントノードを設定
- アドレスグループの設定(マルチキャストアドレスは現状動作できず、ブロードキャストアドレスは動作確認)
動作フロー
[送信]
- AppLayerMCbrClient
- APP_UdpSendNewDataWithPriority
- ・・・
----------------------------------------------
- ・・・
- NetworkIpReceivePacketFromMacLayer
- NetworkIpReceivePacket
- SendToUDP
- APP_ProcessEvent
- AppLayerMCbrServer
[受信]
改造
Flow
[データ受信]
ACK -自分宛 --getACK=true Data -fowardBufに格納
[データ送信]
fowardBuf!="" -send fowardBuf transmitBuf!="" -send transmitBuf() -getACK=false else -send ""
Foward
Message
| 名称 | 変数名 | 機能 |
|---|---|---|
| データバッファ | data | 文字列のやり取り用 |
McbrClient
| 名称 | 変数名 | 機能 |
|---|---|---|
| 転送用バッファ | fowardBuf | 転送用文字列の格納用 |
| 送信用バッファ | transmitBuf | 送信用文字列 |
| 送信許可フラグ | enableTransmit | trueなら送信 |
ACK
| 名称 | 変数名 | 機能 |
|---|---|---|
| ACK受信フラグ | getACK | 送信時にfalseに、ACK受信済みでtrueに |
Control
| 名称 | 変数名 | 機能 |
|---|---|---|
| モードフラグ | isControlMode | 制御用ならtrue |
TODO
- Application level ACK
- Application level Backoff
- save payload???
- 4.5?
新規
| file | position | name | purpose |
|---|---|---|---|
| app_mcbr.cpp | top of function | AppLayerMCbrSendPacket | pack |
追加
| file | position | name | purpose |
|---|---|---|---|
| app_mcbr.cpp | AppLayerMCbrServer | AppLayerMCbrSendPacket | reply application level ack |
| app_util.cpp | APP_UdpSendNewDataWithPriority | add ack option |
置き換え
| file | position | name | new |
|---|---|---|---|
| app_mcbr.cpp | パケット送信部分 | AppLayerMCbrClient | AppLayerMCbrSendPacket |
Copyright(C) by 芝浦工業大学 工学部通信工学科, 森野研究室. All Rights Reserved.