亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

<i id="axbyv"><input id="axbyv"></input></i>
<button id="axbyv"><small id="axbyv"><strike id="axbyv"></strike></small></button>
<dfn id="axbyv"></dfn>
<dfn id="axbyv"><pre id="axbyv"></pre></dfn>
<tfoot id="axbyv"></tfoot>

一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法與流程

文檔序號(hào):11929588閱讀:來源:國(guó)知局

技術(shù)特征:

1.一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法,其特征在于:包括拓?fù)湫畔@取步驟、節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制步驟、傳感器節(jié)點(diǎn)數(shù)據(jù)分組轉(zhuǎn)發(fā)控制步驟、數(shù)據(jù)編碼步驟和數(shù)據(jù)解碼步驟;所述的拓?fù)湫畔@取步驟包括:獲取RPL路由協(xié)議產(chǎn)生的拓?fù)湫畔?,并同時(shí)了解數(shù)據(jù)收集節(jié)點(diǎn)的方向,選擇靠近數(shù)據(jù)收集節(jié)點(diǎn)的鄰居發(fā)送數(shù)據(jù);

所述的節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制步驟包括數(shù)據(jù)收集節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制子步驟和傳感器節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制子步驟;所述的數(shù)據(jù)收集節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制子步驟包括以下子步驟:

S101:初始化,根據(jù)節(jié)點(diǎn)獲取到的網(wǎng)絡(luò)規(guī)模N計(jì)算度數(shù)轉(zhuǎn)換點(diǎn)序列K,同時(shí)將數(shù)據(jù)收集節(jié)點(diǎn)期望的編碼度數(shù)D_exp賦值為1,將數(shù)據(jù)收集節(jié)點(diǎn)接收到的分組數(shù)量C_recv賦值為0;

S102:當(dāng)數(shù)據(jù)收集節(jié)點(diǎn)接收到分組Pr,進(jìn)入如下子步驟:

S1021:將C_recv的值做+1操作;

S1022:如果C_recv>K[D_exp],則對(duì)D_exp的值做+1操作,同時(shí)將D_exp的值賦值給鄰居廣播編碼度數(shù)D_adv;其中K[D_exp]表示在編碼度數(shù)為D_exp的時(shí)候,要增加編碼度數(shù)所需要累計(jì)接收到的分組數(shù)量;

S1033:如果分組Pr的度數(shù)Pr.degree<D_exp或(Pr.degree=D_exp且Pr.flags&DEGREE_UPDATE=0),則將D_exp的值賦值給鄰居廣播的編碼度數(shù)D_adv;其中,Pr.flags表示分組Pr中設(shè)置的標(biāo)識(shí)位,DEGREE_UPDATE為編碼分組的一個(gè)二進(jìn)制標(biāo)識(shí),值為1表示編碼節(jié)點(diǎn)已經(jīng)接收到數(shù)據(jù)收集節(jié)點(diǎn)發(fā)送的編碼度數(shù)更新廣播信息,否則沒有收到數(shù)據(jù)手機(jī)節(jié)點(diǎn)的度數(shù)廣播信息;

S1023:返回步驟S1022;

所述的傳感器節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制子步驟包括以下子步驟:

S201:初始化,根據(jù)節(jié)點(diǎn)獲取到的網(wǎng)絡(luò)規(guī)模N計(jì)算度數(shù)轉(zhuǎn)換點(diǎn)序列K,同時(shí)將K的值賦值給傳感器節(jié)點(diǎn)更新的度數(shù)轉(zhuǎn)換點(diǎn)序列K_update,將傳感器節(jié)點(diǎn)當(dāng)前的編碼度數(shù)D_now賦值為1,將傳感器節(jié)點(diǎn)當(dāng)前編碼度數(shù)的狀態(tài)D_now.state賦值為0,將傳感器節(jié)點(diǎn)常規(guī)分組的發(fā)送量C_regular_send賦值為0,將傳感器節(jié)點(diǎn)探聽分組的發(fā)送量C_listen_send賦值為0;

S202:當(dāng)傳感器節(jié)點(diǎn)收到廣播的編碼度數(shù)D_adv,進(jìn)入如下子步驟:

S2021:如果D_adv>D_now,則更新編碼度數(shù):將D_now賦值給D_adv,將STATE_UPDATE賦值給D_now.state;同時(shí)更新度數(shù)轉(zhuǎn)換點(diǎn)序列:將(C_regular_send+C_listen_send)/K[D_now-1]賦值給alpha,同時(shí)將K*alpha賦值給K_update;

S2022:如果D_adv=D_now且D_now.state≠STATE_UPDATE,則將STATE_UPDATE賦值給D_now.state,將(C_regular_send+C_listen_send)/K[D_now-1]賦值給alpha,同時(shí)將K*alpha賦值給K_update;其中,STATE_UPDATE表示在編碼節(jié)點(diǎn)出儲(chǔ)存的當(dāng)前編碼度數(shù)D_now的狀態(tài)是否為最新,STATE_UPDATE=1表示編碼節(jié)點(diǎn)已更新當(dāng)前編碼度數(shù)并與數(shù)據(jù)收集節(jié)點(diǎn)期望的編碼度數(shù)一致,否則節(jié)點(diǎn)當(dāng)前編碼度數(shù)未更新或與數(shù)據(jù)收集節(jié)點(diǎn)期望的編碼度數(shù)不一致;

S203:當(dāng)傳感器節(jié)點(diǎn)發(fā)送分組Ps,進(jìn)入如下子步驟:

如果D_now.state=STATE_UPDATE,則Ps.flags|=DEGREE_UPDATE;

S204:當(dāng)傳感器節(jié)點(diǎn)收到編碼分組Pr,進(jìn)入如下子步驟:

S2041:如果Pr.degree>D_now且Pr.flags&DEGREE_UPDATE≠0,則將D_adv賦值給D_now,將STATE_UPDATE賦值給D_now.state,(C_regular_send+C_listen_send)/K[D_now-1]賦值給alpha,同時(shí)將K*alpha賦值給K_update;

S2042:如果Pr.degree=D_now且Pr.flags&DEGREE_UPDATE≠0,則將STATE_UPDATE賦值給D_now.state;

S205:如果將STATE_UPDATE賦值給D_now.state,則將next_degree()賦值給D_now,將~STATE_UPDATE賦值給D_now.state;其中,next_degree()表示編碼節(jié)點(diǎn)下一個(gè)使用的編碼度數(shù);

S206:返回步驟S202;

所述的傳感器節(jié)點(diǎn)數(shù)據(jù)分組轉(zhuǎn)發(fā)控制步驟包括以下子步驟:

S301:將傳感器節(jié)點(diǎn)的無線模塊運(yùn)行在混雜模式下,傳感器節(jié)點(diǎn)收到兩種不同類型的分組,常規(guī)分組即目的物理地址是本節(jié)點(diǎn)的分組,以及探聽分組即目的物理地址非本節(jié)點(diǎn)的分組;

S302:如果傳感器節(jié)點(diǎn)收到常規(guī)分組Pr,進(jìn)入如下子步驟:

S3021:如果Pr未被轉(zhuǎn)發(fā)過,對(duì)Pr再編碼轉(zhuǎn)發(fā);

S3022:如果Pr已經(jīng)被轉(zhuǎn)發(fā)過,且(C_listen_send/C_regular_send)≥((N_neighbor-N_child)/N_child),對(duì)Pr再編碼轉(zhuǎn)發(fā);其中,C_listen_send表示傳感器節(jié)點(diǎn)探聽分組的發(fā)送量,C_regular_send表示傳感器節(jié)點(diǎn)常規(guī)分組的發(fā)送量,N_neighbor表示包括節(jié)點(diǎn)自身的鄰居節(jié)點(diǎn)數(shù)目,N_child表示包括節(jié)點(diǎn)自身的子節(jié)點(diǎn)數(shù)目;

S303:如果傳感器節(jié)點(diǎn)收到探聽分組Ps,且(C_listen_send/C_regular_send)<((N_neighbor-N_child)/N_child),進(jìn)入如下子步驟:

隨機(jī)延遲,對(duì)Ps再編碼轉(zhuǎn)發(fā);

S304:如果傳感器節(jié)點(diǎn)發(fā)送常規(guī)分組Pr,則C_regular_send的值做+1操作;如果傳感器節(jié)點(diǎn)發(fā)送探聽分組Ps,則C_listen_send的值做+1操作,同時(shí)調(diào)用節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制步驟;

S305:返回步驟S302;

所述的數(shù)據(jù)編碼步驟用于傳感器節(jié)點(diǎn)數(shù)據(jù)分組轉(zhuǎn)發(fā)控制步驟中的編碼,包括以下子步驟:

S401:如果是常規(guī)分組的編碼Pr,則將常規(guī)分組Pr賦值給P,否則將空碼字賦值給P;

S402:如果P.degree≥D_now,則轉(zhuǎn)發(fā)P,并進(jìn)入步驟S404;

S403:從碼字緩存c_set中選擇碼字P與進(jìn)行編碼,生成碼字P_new:如果P_new.degree>0,轉(zhuǎn)發(fā)P_new;否則放棄本次發(fā)送;

S404:結(jié)束;

所述的數(shù)據(jù)解碼步驟包括以下子步驟:

S501:等待,直到收到編碼分組P;

S502:如果P.degree=1,將P轉(zhuǎn)換為符號(hào)S,進(jìn)入步驟S507;如果P.degree>1,將P轉(zhuǎn)換為碼字C,進(jìn)入步驟S503;

S503:使用符號(hào)集合s_set化簡(jiǎn)C:如果C.degree=0,C已解碼,丟棄C,進(jìn)入步驟S510;如果C.degree=1,解碼并生成符號(hào)S,進(jìn)入步驟S507;

S504:使用碼字集合c_set化簡(jiǎn)C:如果C.degree=0,C是重復(fù)碼字,丟棄C,進(jìn)入步驟S510;如果C.degree=1,生成符號(hào)S,進(jìn)入步驟S507;

S505:使用C對(duì)c_set進(jìn)行化簡(jiǎn),如果化簡(jiǎn)的c_set產(chǎn)生符號(hào),則從c_set得到符號(hào)S,進(jìn)入步驟S507;

S506:將C加入c_set,并進(jìn)入步驟S510;

S507:輸入符號(hào)S;

S508:如果S未加入s_set,將S加入s_set,使用S對(duì)c_set化簡(jiǎn);否則丟棄S;

S509:如果c_set中有度數(shù)為1的碼字,將碼字轉(zhuǎn)換成符號(hào)S,返回步驟S508;

S510:結(jié)束。

2.根據(jù)權(quán)利要求1所述的一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法,其特征在于:所述的節(jié)點(diǎn)編碼度數(shù)增長(zhǎng)控制步驟中,傳感器節(jié)點(diǎn)的度數(shù)增長(zhǎng)要受到節(jié)點(diǎn)跳數(shù)的限制,跳數(shù)為1的節(jié)點(diǎn)可以達(dá)到K_update的最大度數(shù)D_max,跳數(shù)為2的節(jié)點(diǎn)則只能達(dá)到D_max-1,依次類推,跳數(shù)為H的節(jié)點(diǎn)的最大編碼度數(shù)為max(D_max-H+1,2)。

3.根據(jù)權(quán)利要求1所述的一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法,其特征在于:所述的傳感器節(jié)點(diǎn)數(shù)據(jù)分組轉(zhuǎn)發(fā)控制步驟中,將常規(guī)分組與探聽分組發(fā)送數(shù)量和節(jié)點(diǎn)的鄰居數(shù)與子節(jié)點(diǎn)數(shù)成比例;設(shè)節(jié)點(diǎn)有包括節(jié)點(diǎn)本身的鄰居數(shù)n、包括節(jié)點(diǎn)本身的子節(jié)點(diǎn)數(shù)c,則非子節(jié)點(diǎn)鄰居有(n-c)個(gè),設(shè)當(dāng)前已發(fā)送的常規(guī)分組為tx個(gè),探聽分組為ty個(gè),那么:

<mrow> <mfrac> <msub> <mi>t</mi> <mi>y</mi> </msub> <msub> <mi>t</mi> <mi>x</mi> </msub> </mfrac> <mo>=</mo> <mfrac> <mrow> <mi>n</mi> <mo>-</mo> <mi>c</mi> </mrow> <mi>c</mi> </mfrac> <mo>.</mo> </mrow>

4.根據(jù)權(quán)利要求1所述的一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法,其特征在于:所述的數(shù)據(jù)編碼步驟中碼字緩存的選擇包括以下子步驟:

S601:初始化,將空碼字賦值給碼字C_new,將碼字緩存集合c_set的第一位c_set.start賦值給索引變量index,將false狀態(tài)賦值給參與編碼的碼字中是否包含本節(jié)點(diǎn)未發(fā)送的碼字b_new_code;

S602:如果本節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)this_code已經(jīng)發(fā)送過且未被確認(rèn)且(D_now>1或c_set[index].send_count>0),則C_new+this_code賦值給C_new;其中,send_count為節(jié)點(diǎn)通過接收和發(fā)送分組的過程對(duì)碼字的優(yōu)先級(jí);

S603:如果index=c_set.end,查找結(jié)束,進(jìn)入步驟S606;其中,c_set.end為碼字緩存集合c_set的最后一位;

S604:將c_set[index]賦值給C_cur,C_cur表示從碼字緩存集合中選擇一個(gè)編碼分組,進(jìn)入如下子步驟:

S6041:如果C_cur已經(jīng)被編碼過程選用,跳過該碼字,進(jìn)入步驟S605;

S6042:如果b_new_code=true,則進(jìn)行進(jìn)一步判斷:如果C_cur.send_count>0或者C_cur.send_count=0,結(jié)束碼字選擇,進(jìn)入步驟S606;

S6043:如果C_cur.send_count>SEND_COUNT_LIMIT,結(jié)束碼字選擇,進(jìn)入步驟S606;其中SEND_COUNT_LIMIT表示同一個(gè)分組的發(fā)送次數(shù)限制;

S6044:如果C_cur.send_count=0,將b_new_code賦值為true;

S6045:如果dist(C_new,C_cur)=C_new.degree+C_cur.degree且dist(C_new,C_cur)≤degree_x,則將C_new+C_cur的值賦給C_new,dist()表示兩個(gè)編碼分組之間的距離,degree_x表示要從碼字緩存中選出的碼字的總編碼度數(shù);

S605:將index的值做+1操作,返回步驟S605;

S606:如果C_new.degree=0,則編碼失??;否則,編碼成功,返回C_new。

5.根據(jù)權(quán)利要求4所述的一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法,其特征在于:所述的send_count的值越大,代表該碼字的優(yōu)先級(jí)越低;當(dāng)傳感器從父節(jié)點(diǎn)收到一個(gè)碼字,該碼字的send_count增加值為P1;從同一級(jí)的節(jié)點(diǎn)收到一個(gè)碼字或本節(jié)點(diǎn)發(fā)送一個(gè)碼字,該碼字的send_count增加值為P2;從子節(jié)點(diǎn)收到一個(gè)碼字,該碼字的send_count增加值為P3,為了保證距離數(shù)據(jù)收集節(jié)點(diǎn)更遠(yuǎn)的節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)能以較大概率到達(dá)數(shù)據(jù)收集節(jié)點(diǎn),P1、P2和P3滿足:

P1>P2>P3。

6.根據(jù)權(quán)利要求4所述的一種基于RPL協(xié)議的改進(jìn)網(wǎng)絡(luò)編碼與數(shù)據(jù)傳輸方法,其特征在于:所述的數(shù)據(jù)解碼步驟中,在步驟S501之前還包括一個(gè)過濾子步驟,包括以下子步驟:

S701:接收到碼字P;

S702:如果碼字P被包含于碼字緩存c_set中,即P=c_set[i],則丟棄P,并增加對(duì)應(yīng)碼字緩存c_set[i]的優(yōu)先級(jí),進(jìn)入步驟S706;

S703:如果碼字P包含碼字緩存c_set[i]中,使用c_set[i]化簡(jiǎn)P,并增加對(duì)應(yīng)碼字緩存c_set[i]的優(yōu)先級(jí);

S704:如果碼字緩存c_set[i]包含碼字P,進(jìn)入如下子步驟:

S7041:如果c_set未滿,使用P化簡(jiǎn)c_set[i],則將P存入c_set,并進(jìn)入步驟S706;

S7042:如果c_set已滿且c_set[i].degree≤D_now,則丟棄P,并進(jìn)入步驟S706;

S7043:否則,使用P替換c_set[i],并進(jìn)入步驟S706;

S705:如果c_set未滿,將P存入c_set,并進(jìn)入步驟S706;如果c_set已滿,進(jìn)入如下子步驟:

S7051:如果P.degree≥D_now,并進(jìn)行進(jìn)一步判斷:如果max_degree(c_set)≤P.degree,則丟棄P,并進(jìn)入步驟S706;否則,使用P替換c_set中滿足max_degree(c_set)>P.degree的分組中send_count最大的分組,并進(jìn)入步驟S706;

S7052:如果P.degree<D_now,使用P替換c_set中send_count最大的分組中度數(shù)最小的分組,并進(jìn)入步驟S706;

S706:結(jié)束。

當(dāng)前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1