模擬**時在otcl指令碼中建立乙個資料傳送**並繫結到乙個節點,再建立乙個資料接收**並繫結到另乙個節點,然後連線兩個**即可以在兩個節點之間建立業務聯絡,
otcl
指令碼中類似於如下的**:
set udp0 [new agent/udp] ;#建立乙個
udp資料傳送**
$ns attach-agent $n(0) $udp0 ;#將資料傳送**繫結到傳送節點
set null0 [new agent/null] ;#建立乙個資料接收**
$ns attach-agent $n(2) $null0 ;#將接收**繫結到接收節點
$ns connect $udp0 $null0 ;#連線兩個**
在此基礎上建立某種業務流並將該業務流繫結到資料傳送**上,節點之間就會以該業務流所設定的規律傳送分組。
#在udp**上建立
cbr流
ftp業務流
$cbr0 attach-agent $udp0 ;#將
ftp業務流與
udp**相繫結
cbr業務流的
c++**定時傳送訊號給
udp資料傳送**,
udp資料傳送**接收到訊號以後,分配記憶體空間生成乙個分組,
udp**將這個分組交到下一層,在
原始檔中的
sendmsg
函式中有一句**:
target_->recv(p);
target_代表下一層的物件指標,但這個
target_
物件實際上是
cmutrace
類的乙個例項物件。
cmutrace
類的功能就是專門對無線網路的分組進行跟蹤和記錄,並將該記錄寫入模擬過程中生成的".tr"檔案。因此分組從udp
**往下傳遞的活動會被記錄到跟蹤檔案中。
cmu類的
recv
函式中有一句**:
send(p,h);
呼叫的這個send
函式是connector
類的send
函式,send
函式將分組交付給
classifier
類的recv
函式。classifier
類的recv
函式中有一句**:
node->recv(p,h);
node指標呼叫的
recv
函式仍舊是
cmutrace
類的recv
函式,分組的活動被再次記錄到
trace
檔案中。
cmutrace
類呼叫connector
類的send
函式將分組傳遞給路由協議的
recv
函式。假定使用的無線路由協議是
aodv
路由協議,
aodv
類的forward
函式中有一句**:
scheduler::instance().schedule(target_,p,delay);
這句**將分組加入排程器中等待排程,排程時刻到來分組會被cmutrace
類的recv
函式所接收進行活動記錄,記錄完畢再呼叫connector類的send函式將分組傳遞給ll類的recv函式,recv函式呼叫senddown函式接收分組,senddown函式呼叫arptable類的arpresolve函式進行位址解析。senddown函式中有一句**:
s.schedule(downtarget_,p,delay_);
downtarget_指標是佇列的物件例項,分組將由佇列的recv函式接收。假定所使用的佇列是priqueue,priqueue類的recv函式呼叫recvhighpriority函式接收分組,recvhighpriority
函式中一段**:
target_->recv(q,&qh_);
這一段**將分組交給mac層的recv函式。mac層會將分組交給cmutrace類的recv函式進行活動記錄,然後再傳送給物理層。無線通道經過相應的傳播延遲,傳送給鄰居層節點的物理層接收。
CCF模擬 無線網路
無線網路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 目前在乙個很大的平面房間裡有 n 個無線路由器,每個無線路由器都固定在某個點上。任何兩個無線路由器只要距離不超過 r 就能互相建立網路連線。除此以外,另有 m 個可以擺放無線路由器的位置。你可以在這些位置中選擇至多 k 個增設新的路...
在Linux上配置無線網路
iwconfig是linux wireless extensions lwe 的使用者層配置工具之一。lwe是linux下對無線網路配置的工具,包括核心的支援 使用者層配置工具和驅動介面的支援三部分。目前很多無線網絡卡都支援lwe,而且主流的linux發布版本,比如redhat linux ubun...
常見的無線網路協議介紹 全面認識無線網路協議的作用
雖然大家對於網路方面已經很熟悉了,但是大家對於無線網路協議又了解多少,知道無線網路協議都有哪些,他們的各自的作用是什麼嗎?本文小編就帶著我們進行了解網路協議的特性,希望對大家在網路知識方面有所幫助。802smufkhamt 11b協議 說明 802.11b協議是由ieee 電氣電子工程師學會 於19...