1. DHT協(xié)議是怎樣的, 如何實(shí)現(xiàn)O(lgN)的查詢
DHT是Distribute Hash Table的意思, 在BT網(wǎng)絡(luò)中主要用來做分布式路由表 BT是個(gè)點(diǎn)對(duì)點(diǎn)的對(duì)等網(wǎng)絡(luò) DHT的主要思想是將全局的路由表分布式的存儲(chǔ)在每一個(gè)對(duì)等節(jié)點(diǎn)上 路由表存儲(chǔ)了節(jié)點(diǎn)ID和地址的對(duì)應(yīng)關(guān)系 節(jié)點(diǎn)間距離是以ID的異或得到的差值來表示的 每個(gè)節(jié)點(diǎn)的路由表都保持一個(gè)樹狀結(jié)構(gòu) 并向自身的ID收斂
尋址時(shí) 首先查找節(jié)點(diǎn)自己路由表中ID與目標(biāo)ID距離最近的節(jié)點(diǎn)(異或結(jié)果最小) 然后向它發(fā)起查詢 然后這個(gè)節(jié)點(diǎn)再查找它路由表中最近的 由于路由表的
樹狀結(jié)構(gòu) 以及
收斂的特性 所以能夠保證查找操作能在O(lgN)時(shí)間內(nèi)完成
2. IO的主要特點(diǎn)是什么 如何實(shí)現(xiàn)這一點(diǎn)的
特點(diǎn):高并發(fā) IO模塊引入了事件循環(huán)機(jī)制 當(dāng)某個(gè)套接口上有事件發(fā)生的時(shí)候 才調(diào)用processor來處理 這樣能用少量事件處理線程同時(shí)維持大量連接 DHT中加入libevent 為電平觸發(fā) 保障了事件的有效性 IO中epoll采用的是邊沿觸發(fā)