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

正文內(nèi)容

基于dv算法的路由器模擬設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告-展示頁

2025-06-13 21:56本頁面
  

【正文】 秒后如果 收不到這個(gè)路由器發(fā)來的路由表信息,就將其路由表中的與其對應(yīng)的相應(yīng)路由表的值進(jìn)行修改成不可達(dá),逐漸通知到整個(gè)網(wǎng)絡(luò)。 五.程序描述 端口號(hào): 5001 2021 端口號(hào): 2021 端口號(hào): 5002 端口號(hào): 5004 端口號(hào): 5003 端口號(hào): 2021 2021 2021 2021 2021 2021 華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 7 為完成所要求功能,程序首先實(shí)現(xiàn)了 二維數(shù)組維數(shù) 個(gè)路由器線程 ,每一個(gè)路由器線程下面又實(shí)現(xiàn)了 發(fā)送線程、接收線程和 轉(zhuǎn)發(fā) 數(shù)據(jù)線程 三個(gè)子線程;接收線程下面實(shí)現(xiàn)了 定時(shí)器子線程 。 3.?dāng)?shù)據(jù)格式: 各個(gè)路由器實(shí)例之間通過 UDP 來交換路由表,路由器之間還需要進(jìn)行數(shù)據(jù)的傳輸。 2.路由表初始化: 在程序的 mainManager/ 類中初始化了留個(gè)路由器,這六個(gè)路由器的每一個(gè)實(shí)現(xiàn)都是在 mainManager/ 類中, 。網(wǎng)絡(luò)的初始拓?fù)浣Y(jié)構(gòu)如 圖 2 所示 : 華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 6 圖 2 此處,路由表的 端口號(hào) 和路由器號(hào)全是來自 entity/ 文件的整個(gè)程 序的全局變量,路由器初始值為 2021,而端口初始值為 5001,分別是數(shù)組初始化時(shí)的維數(shù) 個(gè) 。實(shí)驗(yàn)中 路由表的數(shù)據(jù)結(jié)構(gòu) 相比真實(shí)的 DV算法 發(fā)生了變化 ,所以 程序 在實(shí)現(xiàn)過程當(dāng)中盡量的按照實(shí)驗(yàn)所用的路由表結(jié)構(gòu)來完成功能, 但是這 不影響其主要思想的實(shí)現(xiàn)。 5. 關(guān)于拓?fù)浣Y(jié)構(gòu) : 路由器必須具備路由器故障和恢復(fù)的能力 ; 這里假設(shè)鏈路不會(huì)出現(xiàn)故障,分組不會(huì)丟失和出錯(cuò) ;如果路由器在給定時(shí)間內(nèi) 未運(yùn)行,表示路由器故障, 如果重啟運(yùn)行,則認(rèn)為路由器故障恢復(fù) ; 當(dāng)然,假設(shè)通信是雙向的 。 3. 關(guān)于時(shí)間定時(shí) : 每個(gè)路由器每 1 秒鐘發(fā)出它們的路由表 ; 每個(gè)路由器根據(jù)收到的路由表更新它們自己的路由表 ;路由器必須具備檢測鄰居是否活動(dòng)的能力, 如果路由器在 10 秒鐘沒有收到鄰居發(fā)來的更新,則認(rèn)為鄰居不可達(dá) 。 分組經(jīng)過每個(gè)中間結(jié)點(diǎn)時(shí),將其 TTL 減 1。 2. 發(fā)送 數(shù)據(jù): 數(shù)據(jù)分組 必須有數(shù)據(jù),且在如圖 1 中的點(diǎn)擊提交按鈕 之前,必須在文本框中輸入正確的數(shù)據(jù)格式(傳送的目的路由和要傳送的數(shù)據(jù)之間必須要有“ ”號(hào)分割),如: 2021DDDDDDD,表示目的路由是 2021,傳送的數(shù)據(jù)是DDDDDDD。 每一個(gè)路由器都給自己相鄰的路由器設(shè)置了一個(gè)計(jì)時(shí)器,如果 10 秒鐘沒有收到相鄰路由器的信息,就將下一跳設(shè)置成 0,距離設(shè)置成 16(表示不可達(dá))。 收到數(shù)據(jù)分組的結(jié)點(diǎn)必須輸出一行,顯示該分華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 4 組的目的 , 在圖 1 中的右上角顯示了每一秒的路由表的更新情況, 每一個(gè)路由器都有三個(gè)轉(zhuǎn)發(fā)進(jìn)程,發(fā)送進(jìn)程和接收進(jìn)程。 三. 實(shí)驗(yàn)要求 1. 輸出 路由表 : 在此實(shí)驗(yàn)當(dāng)中為了實(shí)現(xiàn)方便,所有拓?fù)浣Y(jié)構(gòu)中的路由器都給以顯示(可達(dá)的,不可達(dá)的 16 以及自己的路由編號(hào)) : 要求對這個(gè)連接圖的二維數(shù)組解析,進(jìn)行 DV 算法的模擬。轉(zhuǎn)發(fā)分 組時(shí), 嚴(yán)格按照路由表進(jìn)行轉(zhuǎn)發(fā)。 在此實(shí)驗(yàn)當(dāng)中,為了實(shí)現(xiàn)和模擬的方便, 剛開始初始化生成一個(gè)網(wǎng)絡(luò)連接圖的 二 維 數(shù) 組 ( 見 mainManager/ , 初 始 化 的 二 維 數(shù) 組 是entity/); 每個(gè)路由器類包括了路由器 ID,端口, routerTable 對象,還有兩個(gè) HashMap(一個(gè)存儲(chǔ)為每一個(gè)相鄰路由器的計(jì)時(shí)器,一個(gè)存儲(chǔ)每一個(gè)相鄰路由器的上一次交流時(shí)間 )。 2. 發(fā)現(xiàn)了一條到達(dá)某目的的、距離 更短的新路由,則用該路由替換原有的路由 。 DV算法工作方式:每個(gè)路由器維護(hù)一張路由表,表中分為三個(gè)表項(xiàng):目的地址,列出了當(dāng)前可達(dá)的目的網(wǎng)絡(luò)地址;到達(dá)目的地址下一跳,列出了下一跳的IP 地址;到達(dá)目的地址 的代價(jià),以距離或跳數(shù)為表征。華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 1 基于 DV算法的路由器設(shè)計(jì)與實(shí)現(xiàn) 實(shí)驗(yàn)報(bào)告 學(xué) 院 : 姓 名: 日 期: 華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 2 一. 實(shí)驗(yàn)?zāi)康? 1. 深入理解分布式路由選擇算法 ,以最簡單的 DV 算法來增強(qiáng)對路由算法的 認(rèn)識(shí) 2. 理解、掌握和利用距離向量算法 3. 所實(shí)現(xiàn)的路由器模擬 Inter 上的 IP 路由器。它能確定網(wǎng)絡(luò)的最短路由,并在這些利用上傳輸分組 二. DV 算法描述 距離矢量算法, 也稱為 BellmanFord shortest path algorithm, 每個(gè)路由器都定期 或拓?fù)浣Y(jié)構(gòu)突發(fā)變化時(shí) 與其相鄰的所有路由器交換路由表,據(jù)此更新它們自己的路由表 。 路由表更新規(guī)則: 1. 發(fā)現(xiàn)了一條到達(dá)某目的的新路由,而該路由在原來的路由表中不存在(即發(fā)現(xiàn)了一條新路由),則在路由表中增加該路由 。 3. 到達(dá)某目的的一條路由,其后繼結(jié)點(diǎn)到達(dá)該目的地的距離發(fā)生了變化,則需要更新該路由的距離 。路由表 采用 了兩個(gè)數(shù)組來實(shí)現(xiàn),一個(gè)數(shù)組存儲(chǔ)到各個(gè)網(wǎng)絡(luò)的下一跳,一個(gè)數(shù)組存儲(chǔ)到各個(gè)網(wǎng)絡(luò)的跳數(shù), 如下結(jié)構(gòu) , 以路由器一為例,(路由表的默認(rèn)數(shù)組和兩個(gè)真是數(shù)組的顯示信息 ,其中下一跳是 0 表示不可達(dá)的下一跳,不是 0 如 2021 表示下一跳是 2021,在距離數(shù)組里,如果是 16 表示不可達(dá),如果是 0,表示到本身路由,不是 0 或 16 表示可達(dá)且跳數(shù)為該數(shù)值 ) ,如下 圖 路由表 左邊方框中的 信息 所示 : 華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 3 在路由表中, 只 登記 下一跳 而不是 完整路由 ,以 真實(shí)模擬路由器的 DV 算法處理。 如上圖,路由器的連接信息在上面圖片的左部區(qū)域,右部區(qū)域分為兩部分(一個(gè)是路由器接到相鄰路由器發(fā)來的路由表的實(shí)時(shí) 我設(shè)置的是每 1 秒 更新 一次 信息,一個(gè)是發(fā)送或者轉(zhuǎn)發(fā)數(shù)據(jù)的顯示信息) 。 2. 發(fā)送分組 : 每個(gè)數(shù)字代表一個(gè)數(shù)據(jù)分組發(fā)送請求 ; 數(shù)據(jù)分組發(fā)送到 數(shù)字代表的目的地 ; 如果目的結(jié)點(diǎn)不是鄰居結(jié)點(diǎn),不能直接發(fā)送分組,而必須在路由的各個(gè)結(jié)點(diǎn)上沿路由轉(zhuǎn)發(fā)該分組 。發(fā)送進(jìn)程每一秒都需要發(fā)送自己的路由表信息。 否則重新開始計(jì)數(shù)。 例如: 路由器 2021 要向 2021 發(fā)送數(shù)據(jù),則具體轉(zhuǎn)發(fā)過程如下: 在 RouterTablePacket 中有 Hops(初始值是 16,每過一跳, hops 減 1,當(dāng) hops是 1 的時(shí)候,就不再進(jìn)行轉(zhuǎn)發(fā)了,相當(dāng)于 TTL: Time to Live)屬性, 分組應(yīng)該在華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 5 Hops 規(guī)定的時(shí)間或步數(shù)內(nèi)到達(dá)目的 結(jié)點(diǎn),否則丟棄之 。若 TTL=1,丟棄,否則繼續(xù)轉(zhuǎn)發(fā) 。 4.顯示活動(dòng)的相鄰路由:用一個(gè)特定的表格來顯示與當(dāng)前路由相鄰的路由器的信息。 四. 實(shí)驗(yàn)用例 編程語言: java; 開發(fā)環(huán)境: 、 , 測試用例為 二維數(shù)組的維數(shù) 個(gè)(你可以隨便寫出一個(gè)對稱的二維數(shù)組,程序可以自己解析的,我用的都是活代碼) ,如下如所示我寫的一個(gè)拓?fù)鋱D的二維數(shù)組,如圖: 此實(shí)驗(yàn)是模仿 DV 算法 , 應(yīng)用 java 中的多線程來模擬多個(gè)路由器,并且實(shí)現(xiàn)路由器之間的路由表和數(shù)據(jù)的傳送。 1.拓?fù)浣Y(jié)構(gòu): 為了模擬路由表的更新, 首先是 先確立六 個(gè) 結(jié) 點(diǎn) 網(wǎng)絡(luò) 的 拓?fù)浣Y(jié)構(gòu), 由于是應(yīng)用多線程來模擬各個(gè)路由器,所以 在實(shí)驗(yàn)過程當(dāng)中 可以隨時(shí)掛起某個(gè)或多個(gè)路由器來模擬網(wǎng)絡(luò)拓?fù)涞淖兓笕匀豢梢曰謴?fù)掛起的路由器。 在實(shí)驗(yàn)實(shí)現(xiàn)過程當(dāng)中,通過路由器線程的掛起實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)變化,之后會(huì)對相應(yīng)的更該重新畫出拓?fù)浣Y(jié)構(gòu)。以上 圖 2 的初始化二維數(shù)組 中所規(guī)劃的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為標(biāo)準(zhǔn),根據(jù)當(dāng)前所創(chuàng)建的路由器編號(hào)靜態(tài)初始化每 個(gè)路由器自己的路由表。在此,需要定義所傳輸?shù)穆酚杀砗蛿?shù)據(jù)的結(jié)構(gòu), 我是全部打成了數(shù)據(jù)包或者路由表包,具體結(jié)構(gòu)見 transportPacket/ (有sourceRouterId 和 routerTable 兩個(gè)屬性 ) , transportPacket/(有sourceRouterId,destRouterId,byte[]data,hops=16 四個(gè)屬性) ,transportPacket/( 有 type,routerTablePacket,sendDataPacket 三個(gè)屬性, TotalPacket 類定義了具體具體是傳輸?shù)陌鞘裁搭愋偷模? 三個(gè)類, 如果是傳輸路由表就用 RouterTablePacket 把路由表包裝后再用 TotalPacket 的sendRouterTable 類型來包裝,最后用 UDP 發(fā)送出去,如果是傳輸數(shù)據(jù)就用SendDataPacket 把要傳送的數(shù)據(jù)包裝后再用 TotalPacket 的 sendData 類型來包裝,最后用 UDP 發(fā)送出去,在目的路由器端對收到的數(shù)據(jù)進(jìn)行解封裝。 建立一個(gè)工程,命名為 day1202_DV_new_hasTimer(名字可以隨便起 ,我是以前的習(xí)慣都加上了日期 ) ,在此工程下建立源程序文件,每個(gè)線程放在單獨(dú)的 java 源程序文件當(dāng)中。在這里有點(diǎn)不同于 DV 算法的是 :DV算法是每個(gè)路由器為收到的路由表的每一個(gè)簡歷一個(gè)計(jì)時(shí)器,而該路由器簡化了這個(gè)設(shè)計(jì),是僅僅為相鄰的路由器保留一個(gè)計(jì)時(shí)器,這樣不僅可以大大減少整個(gè)網(wǎng)絡(luò)的通信量,將計(jì)時(shí)器的信息保留在內(nèi)存而不是在路由表中,而且采用了hashMap 保存后在驗(yàn)證是否聯(lián)通時(shí), 從 hashMap 中取數(shù)據(jù) 方便 快捷 。 三是計(jì)時(shí)器的用法, 尤其是計(jì)時(shí)器的用法想了將近 2 個(gè)小時(shí),最后 通過不懈的調(diào)試與算法完善,程序基本實(shí)現(xiàn)所要求的功能,有能力模擬 DV算法。 華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 8 package entity。 } /** * return 返回路由端口的初試值 */ public static int getPortBasic(){ return 5001。 /** * 初始化的網(wǎng)絡(luò)拓?fù)鋱D * author 郭金磊 *since 20211220 */ public class NetMap { /** * return 返回初始化的網(wǎng)絡(luò)圖 */ public int[][] getInitInterMap(){ int[][] initVecter=new int[][] 華北計(jì)算機(jī)系統(tǒng)工程研究所 — 若 只如初見 9 {{0,1,16,16,1,16}, {1,0,1,16,16,16}, {16,1,0,1,1,16}, {16,16,1,0,16,1}, {1,16,1,16,0,16}, {16,16,16,1,16,0} }。 } } package entity。 /** * 路 由 器 實(shí) 體 類 , 包 含 routerId , port , RouterTable ,createTimerMapsForNeighbers, lastTimeMaps * author 郭金磊 *since 20211220 */ public class Router { /** * 產(chǎn)生全局唯一的序列化的實(shí)體 ID */ private static final long serialVersionUID = 4112736218089137504L。 /** * 路由端口 */ private int port。 /** * 存儲(chǔ)計(jì)時(shí)器的 Map */ private HashMapInteger,TimeCounter createTimerMapsForNeighbers=new HashMapInteger,TimeCounter()。 /** * 默認(rèn)的構(gòu)造方法 */ public Router() { super()。 = routerId。 } /** * 有參數(shù) routerId 和 port 和 routerTable 的構(gòu)造方法 */ public Router(int ro
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1