freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

wsns安全協(xié)議分析設(shè)計畢業(yè)設(shè)計-資料下載頁

2025-05-14 05:01本頁面
  

【正文】 OADCAST LINK_BROADCAST BYTES_ID $self instvar currentCH_ code_ set chID [$self nodeID] set currentCH_ $chID pp Cluster Head $currentCH_ broadcasting ADV at time [$ns_ now] set mac_dst $MAC_BROADCAST set link_dst $LINK_BROADCAST set msg [list $currentCH_] set datasize [expr $BYTES_ID * [llength $msg]] Send beacons opt(max_dist) meters so all nodes can hear. $self send $mac_dst $link_dst $ADV_CH $msg $datasize $opt(max_dist) $code_}廣播完簇頭信息后,普通節(jié)點(diǎn)就開始選擇其要加入的簇頭,簇首節(jié)點(diǎn)等待所有節(jié)點(diǎn)加入簇后,創(chuàng)建時間調(diào)度表: Application/LEACH instproc findBestCluster {} { global ns_ opt $self instvar now_ dist_ myADVnum_ $self instvar clusterChoices_ clusterDist_ currentCH_ set nodeID [$self nodeID] set min_dist 100000 if [$self isClusterHead?] {若節(jié)點(diǎn)是簇首節(jié)點(diǎn),則條件為真 //If node is CH, determine code and create a TDMA schedule. //opt(max_dist)是指點(diǎn)(maxX,maxY)與點(diǎn)(minX,minY)之間的距離,即包含所有節(jié)點(diǎn)的矩形的對角線 set dist_ $opt(max_dist) //若本節(jié)點(diǎn)是簇首,則設(shè)置簇首標(biāo)識符currentCH_為節(jié)點(diǎn)ID set currentCH_ $nodeID //myADVnum_初始化為0,當(dāng)接收到的消息類型為ADV_TYPE時,值加1 set myADVnum_ [[$self mac] set myADVnum_] //There are opt(spreading) 1 codes available b/c need 1 code // for munication with the base station,opt(spreading)=8 set numCodesAvail [expr 2 * $opt(spreading) 1] //int(x) 取不大于自變量x的最大整數(shù) //fmod(x,y) 用于求x/y的余數(shù),最大擴(kuò)頻碼個數(shù)僅15個,故簇首取值范圍為115 set ClusterCode [expr int(fmod($myADVnum_, $numCodesAvail)) + 1] $ns_ at [expr $now_ + $opt(ra_adv_total) + $opt(ra_join)] \ $self createSchedule } else { //若非簇首節(jié)點(diǎn)中沒有備選簇首,則直接將收集的數(shù)據(jù)發(fā)送給基站 if {$clusterChoices_ == } { puts $nodeID: Warning!!! No Cluster Head ADVs were heard! set currentCH_ $opt(nn) $self SendMyDataToBS return } //普通節(jié)點(diǎn)根據(jù)接收簇首信號的強(qiáng)度,選擇信號強(qiáng)度最大的簇首加入 foreach element $clusterChoices_ { set chID [lindex $element 0] set clustID [lindex $element 2] //在按照先后順序形成的備選簇首集中,尋找簇首對應(yīng)的下標(biāo) set ind [lsearch $clusterChoices_ $element] //從多個簇首中選取采用對應(yīng)信道模型距離最短的簇首加入 set d [lindex $clusterDist_ $ind] if {$d $min_dist} { set min_dist $d set currentCH_ $chID set numCodesAvail [expr 2 * $opt(spreading) 1] set ClusterCode [expr int(fmod($ind, $numCodesAvail)) + 1] } } set dist_ $min_dist set random_access [$self getRandomNumber 0 \ [expr $opt(ra_join) $opt(ra_delay)]] $ns_ at [expr $now_ + $opt(ra_adv_total) + $random_access] \ $self informClusterHead $self GoToSleep } $self setCode $ClusterCode puts $nodeID: Current clusterhead is $currentCH_, code is $ClusterCode, \ dist is $dist_ set clusterChoices_ set clusterDist_ }如果接收到信息的節(jié)點(diǎn)是簇頭節(jié)點(diǎn),就創(chuàng)建TDMA,否者就在普通節(jié)點(diǎn)中選擇距離某個簇頭節(jié)點(diǎn)最近的節(jié)點(diǎn)作為這個簇的成員節(jié)點(diǎn),然后普通節(jié)點(diǎn)進(jìn)入休眠狀態(tài)。 if {[expr $xmitat + $end_frm_time_] \ [expr $next_change_time_ 10 * $opt(ss_slot_time)]} { $ns_ at $xmitat $self sendData當(dāng)簇成員節(jié)點(diǎn)接收到這個消息后,查看自己在TDMA表中的位置,根據(jù)位置分配時間,如果距離下一輪選舉的時間小于10幀數(shù)據(jù)發(fā)送的時間,就可以發(fā)送數(shù)據(jù)。過一段時間后又開始重新選擇簇頭,當(dāng)節(jié)點(diǎn)數(shù)目小于簇頭節(jié)點(diǎn)數(shù)目的時候,leach協(xié)議停止運(yùn)行。 SELEACH參數(shù)設(shè)置此次實驗是在眾多的節(jié)點(diǎn)中添加一個惡意節(jié)點(diǎn),仿真模擬出其在能耗、數(shù)據(jù)傳輸和生命周期上的表現(xiàn)。實驗參數(shù)設(shè)定:監(jiān)測區(qū)域大小為100m*100m,傳感器節(jié)點(diǎn)總數(shù)為100個,基站默認(rèn)位置為(50,150),每輪期望的簇頭數(shù)為5個,傳感器節(jié)點(diǎn)初始能量為2J,無線通信消耗的能量為50Nj/bit,自由空間模型放大器的倍數(shù)為10pJ/bit/m2,數(shù)據(jù)融合所消耗的能量為2nJ/bit/signal,每輪時間為20s,消息長度為500byte,建立時間(穩(wěn)定時間)為1:19。 安全方面的性能分析惡意節(jié)點(diǎn)的設(shè)置:惡意節(jié)點(diǎn)會將普通節(jié)點(diǎn)發(fā)給他的數(shù)據(jù)包丟棄,因此在NS2中通過設(shè)置錯誤模型Error Model來實現(xiàn)分組丟失策略。(1)在leach_ ://創(chuàng)建一個loss_ module,并將其分組錯誤率置為80%set loss_ module [newErrorModel]$loss_ module set rate_ //error單位:分組(默認(rèn))$loss_ module ranvar [newRandom Variable/Uniform]//為丟失的分組設(shè)置target$loss_ module droptarget [new Agent/Null](2)根據(jù)生成的trace文件編寫GAWK腳本,然后根據(jù)生成的AWK腳本,用GNUPLOT繪圖。計算基站接收數(shù)據(jù)包量的AWK腳本如下:數(shù)據(jù)量AWK:BEGIN { countcyl=0。 packetsum=0。 //當(dāng)前時間發(fā)包且接收的總數(shù) lasttime=0。 time[0]=0。 sum[0]=0。 } { simtime = $1。 nodeid = $2。 packet = $3。 //讀取當(dāng)前時間,當(dāng)前節(jié)點(diǎn)的發(fā)包且被成功接收的數(shù)目 if (simtimelasttime ) { //具體算法 packtsum=0。 countcyl++。 lasttime=simtime。 time[countcyl]=simtime。 } if (simtime==lasttime ) { packetsum=packetsum+packet。 sum[countcyl]=packetsum。 } } END { //對應(yīng)時段,打印發(fā)包總量。 for(i=0。i=countcyl。i++) printf ( %f %f\n,time[i],sum[i])。 } EnergyawkBEGIN {countcyl=0。 //計數(shù)器,用來記錄當(dāng)前的輪數(shù) 或者當(dāng)前的時段數(shù)energysum=0。 //用來暫時儲存當(dāng)前時段的節(jié)點(diǎn)消耗能量總和lasttime=0。 //記錄當(dāng)前最后的時間time[0]=0。 //存儲每輪分段的時間sum[0]=0。 //存儲各分段時間對應(yīng)的消耗的能量}{simtime = $1。 //文件中第一字段的值,當(dāng)前時間nodeid = $2。 //第二字段的值,節(jié)點(diǎn)IDif (simtimelasttime ) { //計算每個時間段節(jié)點(diǎn)總共消耗了多少能量 energysum=0。 countcyl++。 lasttime=simtime。 time[countcyl]=simtime。}if (simtime==lasttime ) { if (nodeenergy) { energysum=energysum+nodeenergy。 sum[countcyl]=energysum。nodeenergy = $3。 //第三字段的值,當(dāng)前節(jié)點(diǎn)使用的能量}else if (nodeenergy=) { //節(jié)點(diǎn)初始的總能量為2 energysum=energysum+。 sum[countcyl]=energysum。}}}END { //對應(yīng)時間段,得出能量消耗量并打印for(i=0。i=countcyl。i++)printf ( %f %f\n,time[i],sum[i])。}生存時間AWK:BEGIN { countcyl=0。 totalleft=0。 lasttime=0。 time[0]=0。 node=0。 total[0]=100。 } { simtime = $1。 nodeid = $2。 statenode = $3。 if (simtimelasttime ) { countcyl++。 lasttime=simtime。 time[countcyl]=simtime。 totalleft=0。 } if (statenode==1) totalleft++。 total[countcyl]=totalleft。 } END { for(i=0。i=countcyl。i++) printf(
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1