迭代查詢是libp2p kad中的關鍵部分,kad通過迭代查詢不斷逼近目標,這個目標可能是peer,可能是provider,也有可能是value。
選取k桶中距離key最近的(最多)k個節點,將這些節點的狀態置為heard;
向它們發起(並行)查詢(傳送find_node, get_providers或者get_value request),得到它們k桶中距離key最近的k個節點資訊,將新得到的節點狀態置為heard,並且收集起來;
判斷結束條件(如下),滿足其中之一即可結束;否則在所有狀態為heard的節點中挑選若干個距離key最近的節點,繼續發起查詢;
迭代查詢結束,所有非unreachable的節點按照距離排序,向前(最多)k個節點中那些未查詢或者正在查詢的節點發起查詢。
最多只能同時向alpha個節點查詢,如果還有n個查詢未返回,那麼這一輪只能向alpha-n個節點查詢。
所有非unreachable的節點按照距離排序後,前beta個節點全部都查詢過(表明連續beta輪都找不到更近的節點)
starvation: 沒有狀態為waiting或者heard的節點
各操作自定義的結束條件:
findpeer : 連線上目標節點findproviders : 得到的provider記錄數超過閾值
getvalue : 得到的value記錄數超過閾值
findpeer
getvalue
putvalue
findproviders
provide
rtrefresh
oracle 迭代查詢
子取父 有子節點資料 select from wsd sys menu t connect by prior t.parent id t.id start with t.id 652309 子取父變形 存在多個父節點記錄,每乙個子節點都對應乙個父節點記錄 select from wsd sys me...
dns迭代查詢和遞迴查詢
遞迴查詢 返回的結果必須是 所查網域名稱和對應ip的對映關係 或者 查詢未果 迭代查詢 返回的結果可以是其他dns伺服器的ip 遞迴查詢和迭代查詢另乙個區別是每次做查詢的時候 發起查詢的 角色不同 對於遞迴查詢,一般是本地的客戶端,本地的客戶端檢視本地hosts檔案或者快取未找到後,會向本地dns伺...
DNS遞迴查詢與迭代查詢
注 一般tcp ip的應用層或者osi的會話 表示 應用層把資料稱為資料或者資訊,到了傳輸層把資料稱為報文,到了最底層就是位元流了也就是位元組流 1.網域名稱系統 2.網域名稱伺服器 1.在瀏覽器中輸入www.qq.com網域名稱,作業系統會先檢查自己本地的hosts檔案是否有這個 對映關係,如果有...