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

正文內(nèi)容

基于opnet的校園網(wǎng)建模與仿真畢業(yè)論文(編輯修改稿)

2025-07-19 01:36 本頁面
 

【文章內(nèi)容簡介】 入非強迫狀態(tài)后,將停留在此狀態(tài),等待事件、其他進程或仿真核心的觸發(fā)。在每個進程模型中都至少有一個初始狀態(tài),是進程被訪問的第一個狀態(tài),既可以是強迫狀態(tài),也可以是非強迫狀態(tài)。每個狀態(tài)都有相應的動作與其對應,在ProC中這些動作被稱為執(zhí)行代碼。狀態(tài)的執(zhí)行代碼分為兩部分,上面部分稱為進入代碼,是進程進入該狀態(tài)時執(zhí)行的動作;下面部分稱為離開代碼,是進程離開狀態(tài)時執(zhí)行的動作。非強迫狀態(tài)被認為是系統(tǒng)真正的狀態(tài),因為當進程執(zhí)行完非強迫狀態(tài)的進入代碼后,進程就處于阻塞,等待新的觸發(fā),而強迫狀態(tài)是為了實際編程和狀態(tài)控制的需要而提出的一種狀態(tài),進程不會停留在該狀態(tài)。轉(zhuǎn)移則描述了進程模型從一個狀態(tài)向另一個狀態(tài)轉(zhuǎn)移的過程和條件,包含4個部分:源狀態(tài)、目的狀態(tài)、轉(zhuǎn)移條件和轉(zhuǎn)移執(zhí)行代碼。其含義為在源狀態(tài)時,進程只要完成源狀態(tài)的離開代碼,就立即對轉(zhuǎn)移條件進行判斷,當轉(zhuǎn)移條件成立,則執(zhí)行轉(zhuǎn)移代碼,之后轉(zhuǎn)移到目的狀態(tài)。轉(zhuǎn)移分為條件轉(zhuǎn)移和無條件轉(zhuǎn)移,分別用虛線和實線表示。ProtoC語言是進程建模中支持各種算法實現(xiàn)的OPNET獨有的語言。他包括三個方面,在限狀態(tài)機,OPNET核心函數(shù),標準的C和C++。Modeler采用階層性的模擬方式,從協(xié)議間關系看,節(jié)點模塊建模完全符合OSI標準,業(yè)務層TCP層IP層IP封裝層ARP層MAC層物理層;從網(wǎng)絡物件層次關系看,提供了三層建模機制,最底層為進程模型,以狀態(tài)機來描述協(xié)議;其次為節(jié)點模型,由相應的協(xié)議模型構成,反映設備特性;最上層為網(wǎng)絡模型。三層模型和實際的協(xié)議、設備、網(wǎng)絡完全對應,全面反映了網(wǎng)絡的相關特性。在過程層次模擬單個對象的行為,在節(jié)點層次中將其互連成設備,在網(wǎng)絡層次中將這些設備互連組成網(wǎng)絡。幾個不同的網(wǎng)絡場景組成“項目”,用以比較不同的設計方案。OPNET中的建模工作在3種不同的層中完成,這3種層次也稱為3個域。Modeler采用面向?qū)ο竽M方式,每一類節(jié)點開始都采用相同的節(jié)點模型,再針對不同的對象,設置特定的參數(shù)?;谑录霭l(fā)的有限狀態(tài)機建模(Finite State Machine Modeling),避免以時間出發(fā),變成以事件出發(fā)的建模。采用離散事件驅(qū)動(Discrete Event Driven)的模擬機理,將基于包的分析方法和基于統(tǒng)計的數(shù)學建模方法結合,與時間驅(qū)動相比,計算效率得到了很大提高。例如在仿真路由協(xié)議時,如果要了解封包是否到達,不必要每隔很短時間周期性地查看一次,而是收到封包,事件到達才去看。每一時刻,F(xiàn)SM 將停留在特定狀態(tài),之后收到事件,完成事件并跳轉(zhuǎn)狀態(tài)。例如路由協(xié)議要做的事有獲取周邊節(jié)點地址,建立拓撲信息,之后路由表穩(wěn)定下來,在收到封包將其轉(zhuǎn)發(fā)到下一個節(jié)點,這些事件中斷將引起相應的狀態(tài)轉(zhuǎn)移。采用混合建模機制,把基于包的分析方法和基于統(tǒng)計的數(shù)學建模方法結合起來,既可得到非常細節(jié)的模擬結果,也大大提高了仿真效率。 離散事件仿真機制OPNET采用基于離散事件驅(qū)動的仿真機制。事件是指網(wǎng)絡狀態(tài)的變化。當網(wǎng)絡狀態(tài)發(fā)生變化時,模擬機進行仿真,狀態(tài)不發(fā)生變化的時間段,不進行仿真,即被跳過,因而仿真時間是離散的。每個仿真時間點上可以同時出現(xiàn)多個事件,事件的發(fā)生可以有疏密的區(qū)別。仿真中的各個模塊之間通過事件中斷方式傳遞事件信息。每當出現(xiàn)一個事件中斷時都會觸發(fā)一個描述網(wǎng)絡系統(tǒng)行為或者系統(tǒng)處理的進程模型的運行,通過離散事件驅(qū)動的仿真機制實現(xiàn)了在進程級描述通信的并發(fā)性和順序性,再加上事件發(fā)生時刻的任意性,決定了可以仿真計算機和通信網(wǎng)絡中的任何情況下的網(wǎng)絡狀態(tài)和行為。 仿真調(diào)度機制在OPNET中使用基于事件列表的調(diào)度機制,合理安排調(diào)度事件,以便執(zhí)行合理的進程來仿真網(wǎng)絡系統(tǒng)的行為。調(diào)度的完成通過仿真軟件的仿真核和仿真工具模塊以及模型模塊來實現(xiàn),事件列表的調(diào)度機制具體描述如下:1. 每個OPNET仿真都維持一個單獨的全局時間表,其中的每個項目和執(zhí)行都受到全局仿真時鐘的控制,仿真中以時間順序調(diào)度事件列表中的事件,需要先執(zhí)行的事件位于表的頭部。當一個事件執(zhí)行后將從事件列表中刪除該事件。2. 仿真核作為仿真的核心管理機構,采用高效的辦法管理維護事件列表,按順序通過中斷將在隊列頭的事件交給指定模塊,同時接收各個模塊送來的中斷,并把相應事件插入事件列表中間。仿真控制權伴隨中斷不斷地在仿真核與模塊之間轉(zhuǎn)移。3. 當事件同時發(fā)生時,仿真核按照下面兩種辦法來安排事件在事件列表中的位置:(1) 按照事件到達仿真核的時間先后順序,先到達先處理(first e first serve)。(2) 按照事件的重要程度,為事件設置不同的優(yōu)先權,優(yōu)先權高的先處理。 opnet通信機制1. 基于包的通信a) 包:OPNET 采用基于包的建模機制(Simulation on packet level)來模擬實際物理網(wǎng)絡中包的流動,包括在網(wǎng)絡設備間的流動和網(wǎng)絡設備內(nèi)部的處理過程;模擬實際網(wǎng)絡協(xié)議中的組包和拆包的過程,可以生成、編輯任何標準的或自定義的包格式,利用調(diào)試功能;還可以在模擬過程中察看任何特定包的包頭(Header)和凈荷(Payload)等內(nèi)容。包是OPNET 為支持基于信息源(Messageoriented)通信而定義的數(shù)據(jù)結構。包被看作是對象,可以動態(tài)創(chuàng)建、修改、檢查、拷貝、發(fā)送、接收和銷毀。每個包含有一些存儲信息的區(qū)域。包的類型可以是有格式(formatted)或無格式(unformatted)的。一個有格式包中每個域以名字標識,作為訪問(設置或者讀取)包域的依據(jù),而無格式包只為每個域指定索引號。包域可以存儲不同類型的信息,如整型和雙精度型用來存儲數(shù)字數(shù)據(jù);包結構類型用來封裝另一個包;結構體用來內(nèi)嵌用戶自定義的數(shù)據(jù)結構。b) 包流是支持包在同一節(jié)點模型的不同模塊間傳輸包的物理連接,具體來說,它是源模塊的輸出端口和目的模塊輸入端口間的物理連接。包流通常分為源模塊的輸出流(Output stream)和目的模塊的輸入流(Input stream)。雖然連接到模塊的包流(輸入流和輸出流)的個數(shù)沒有限制,但是OPNET 不允許群收(Fanin)和群發(fā)(Fanout)模式,具體來說,每個輸入流只能是一個包的唯一接收者,相對應地,每個輸出流只能是每個包的唯一發(fā)送者。c) OPNET 為目的模塊設置了一個包隊列,允許包在沒有被移除之前在隊列中積壓。包隊列是隸屬于模塊,而不隸屬于某個包流,因此連接模塊的包流可以有多個,而包隊列只有一個。仿真核心不限制該隊列的大小。隊列采用先進先出(FIFO)模式管理包,位于隊首的包才能被目的模塊通過op_pk_get(stream index)獲取并移除。2. 中斷初始狀態(tài)有以下四種:初始狀態(tài)為強制狀態(tài),beginsimulationintermpt被啟用。因為是強制狀態(tài),仿真開始就進入下一個狀態(tài)。下一個狀態(tài)的進入代碼不能包含和處理主流中斷相關的內(nèi)容。1) 初始狀態(tài)為強制狀態(tài),beginsimulationintemipt沒有被啟用。初始化仿真由主流中斷引起。除完成初始化工作外還要處理該中斷。2) 初始狀態(tài)為非強制狀態(tài),beginSimulationintemipt被啟用。此時初始化通常是放在進入執(zhí)行部分,在仿真時間為零時完成初始化。之后,進程將被阻塞,知道第一次主流中斷到達后才被激活。初始化的退出執(zhí)行代碼用于處理主流中斷,也可以將主流中斷交由下一個狀態(tài)的進入代碼或轉(zhuǎn)移代碼完成。3) 初始狀態(tài)為非強制狀態(tài),beginsimulatinninten’Upt不被啟用。主流中斷需要完成初始化,與第一主流中斷相關的進程要內(nèi)含在輸入初始化狀態(tài)中。這是不常用的初始化。初始中斷可以由仿真核心beginsimulationintenupt引發(fā),也可以由主流中斷引發(fā)。一般建議使用begin simulation inienupt作為初始中斷。其優(yōu)點是因begin simulation intenupt發(fā)生在所有中斷之前,進程以標準的方式處理所有主流中斷,并且進程在執(zhí)行第一次主流中斷之前能夠完成所有初始化的活動,這是非常重要的。通過使用begin simulation intenupt隊列和處理器對象設置可能產(chǎn)生的初始化中斷。如果包流的源模塊是進程模塊,則可以通過op_pk_send()及其演變的3 種方式將包發(fā)送至目的模塊輸入流。(一) 常用的發(fā)送方式是調(diào)用op_pk_send(),當包沿著源模塊輸出流到達目的模塊輸入流時立即向目的模塊觸發(fā)流中斷。時延由包流的“delay”屬性指定,所以包到達的時刻為包發(fā)送的時刻加上包流“delay”屬性的值。(二) 如果要模擬包在包流傳輸過程的額外延時,以此來仿真模塊有限的處理速度,這時可以調(diào)用op_pk_send_delayed()函數(shù),包將滯后指定的時間達到目的模塊。(三) op_pk_send_forced()產(chǎn)生的事件不需在仿真核心的事件列表中排隊,而是插隊到事件列表的隊首立刻執(zhí)行,并且包不需要經(jīng)歷從源模塊輸出流到目的模塊輸入流的延時,直接到達目的模塊。(四) 前面3 種傳輸方式對于目的模塊來說是被動的,因為包的到達會強加一個流中斷通知它接收。如果目的模塊希望隔一定的時間間隔主動地去從隊列中取出一個包,應當采用op_pk_send_quiet()函數(shù),采取一種靜默的方式發(fā)送包。 為了支持以上各種包傳輸模式,還必須設置相應的包流“中斷模式”(intrpt mode)屬性,它有三種可選值,分別是scheduled、forced 和quiet。選擇scheduled 對應采用op_pk_send()和op_pk_send_delayed()傳輸包,這時可以設置包流的“delay”屬性;選擇forced 對應采用op_pk_send_forced()傳輸包;選擇quiet 對應采用op_pk_send_quiet()。3. 包傳遞與包發(fā)送的四種方式op_pk_send()、op_pk_send_delayed()、op_pk_send_forced()和op_pk_send_quiet() 相對應,包傳遞也有四種方式,分別是op_pk_deliver() 、op_pk_deliver_delayed()、op_pk_deliver_forced()和op_pk_deliver_quiet(),但是與包發(fā)送不同的是包傳遞需要指定目的模塊的Objid。4. 用接口控制信息進行通信(ICI)類似于基于包的通信機制。廣義ICI 是與事件關聯(lián)的用戶自定義的數(shù)據(jù)列表。由于ICI 是以事件為載體,所以它可以用在各種有關事件調(diào)度的場合,比包的應用范圍更廣,如同一節(jié)點模型的不同模塊之間、不同節(jié)點模型之間以及同一節(jié)點模型的相同模塊內(nèi)?;贗CI的通信機制類似于數(shù)據(jù)包的通信機制,且ICI數(shù)據(jù)結構也類似數(shù)據(jù)包,但比包結構更簡單,只包含用戶自定義的域,而不存在封裝的概念。ICI的應用場合主要是:ICI是與事件關聯(lián)的用戶自定義的數(shù)據(jù)列表,ICI與事件綁定,以事件為載體,可以用在各種有關事件調(diào)度的場合,因此比包的應用范圍更廣。如需傳輸額外信息又想避免使用包本身,可以使用ICI。為將ICI與一事件關聯(lián),仿真核心采用一種稱為綁定的機制,一個進程在一個時刻只能綁定一個ICI。綁定后進程生成的新事件都自動與綁定的ICI地址相聯(lián)系?;贗CI 的通信適用于任何事件,而且常和流事件一起使用,雖然流事件源于包的傳輸,但是如果需要傳輸額外的信息又想避免使用包本身,這時可以用ICI。例如協(xié)議棧中的高層協(xié)議模塊在向底層傳輸包的同時可以通過ICI 捎帶這個包相應的服務等級和目的地址。在使用op_ici_create()創(chuàng)建ICI 之前必須先編輯其格式。屬性名是讀寫ICI 數(shù)據(jù)的依據(jù),它的作用和包域名稱一樣,以屬性名作為輸入?yún)?shù)可以對相應數(shù)據(jù)進行設置(op_ici_attr_set)讀?。╫p_ici_attr_get) 和存在性判斷(op_ici_attr_exists)等操作。當包被銷毀時,所有包域數(shù)據(jù)所占內(nèi)存會被自動清空,ICI 這點與之不同,ICI 被銷毀時,其封裝的數(shù)據(jù)所占內(nèi)存需要手動清空。 將一個ICI 與一個事件關聯(lián),仿真核心采用一種稱為綁定(Installation)的機制。在任意時刻每個進程一次最多只能綁定一個ICI,(op_ici_install()綁定ICI,最后一個起作用的)。調(diào)用op_ici_install(OPC_NIL)拆除。ICI 是仿真中進程動態(tài)創(chuàng)建的對象。以ICI 格式文件名為輸入?yún)?shù),調(diào)用op_ici_create()可以返回一個相應的ICI 指針,它作為所有后續(xù)操作的依據(jù)。5. 鏈路形式對于有線鏈路,它們都需要設定所支持的封包格式,并且要和收發(fā)信機支持的封包格式一致。有線鏈路編輯器中鏈路的類型將決定有線鏈路是點對點單工鏈路(ptsimp)、點對點雙工鏈(ptdup)、總線鏈路(bus 或bus tap)。點到點鏈路能夠在一對節(jié)點之間傳送數(shù)據(jù)包;總線鏈路可以將一個數(shù)據(jù)包自動地傳送到多個目的地,通常用來代表局域網(wǎng)、計算機總線或其他基于廣播的網(wǎng)絡;無線鏈路則用來模擬無線信道的頻率、功率、干擾等特性,其特性是廣播、時變以及節(jié)點的移動性。為描述各個特點,OPNET采用一系列管道階段來模擬鏈路的特性。例如:點到點鏈路要經(jīng)歷4個管道階段;總線鏈路共有6個管道階段;無線鏈路共有13個管道階段。6. 基于統(tǒng)計線的通信對于一些特定類型的進行少量信息通信的應用而言,利用數(shù)據(jù)包流就顯得過于復雜。因為數(shù)據(jù)包流要經(jīng)過一個完整的創(chuàng)建、傳輸、處理、銷毀等過程。OPNET提供了非常簡單的接口,用來在模塊間傳輸單獨的數(shù)字值,該接口由節(jié)點域中的對象―統(tǒng)計線來完成,待通信的值稱為統(tǒng)計量。統(tǒng)計線最普遍的應用之一是使得用戶所定義的進程能夠獲知同一節(jié)點內(nèi)其他模塊的狀態(tài)。尤其適用于動態(tài)監(jiān)控其他模塊的應用。另外,統(tǒng)計線可以作為信號量,用于實現(xiàn)不同模塊進程的底層信令機制。 opnet 仿真流程利用OPNET仿真,一般遵循以下工作流程: 定義目標問題:明確和規(guī)范化網(wǎng)絡仿真所要研究的問題和目標,提出明確的網(wǎng)絡仿真描述性能參數(shù)。如網(wǎng)絡通信吞吐量、鏈路利用率、設備利用率、端到端延遲、丟包率、隊列長度等。 建立仿真模型:根據(jù)研究的問題和目標,建立所需的網(wǎng)絡、進
點擊復制文檔內(nèi)容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1