NAT穿越
為什么要有NAT穿越
ipv4瓶頸和NAT協(xié)議的出現(xiàn)禽绪。
內(nèi)網(wǎng)地址和公網(wǎng)地址
- 外網(wǎng)不知道內(nèi)網(wǎng)主機(jī)的公網(wǎng)ip
- 就算知道了,也不一定能訪問內(nèi)網(wǎng)主機(jī)寸痢,因?yàn)橥饩W(wǎng)請求來到nat設(shè)備捆憎,nat設(shè)備無法匹配請求的目標(biāo)ip:port對(duì)于內(nèi)網(wǎng)的哪臺(tái)主機(jī)
NAT穿越的方式
按角度分
- 硬件方式
- 軟件方式
按協(xié)議分 - udp
- tcp
硬件方式一句話帶過
接著先講turn
再講stun,分udp和tcp講瞒窒,講udp前先講nat類型;
講tcp和udp的比較乡洼,turn和stun的比較優(yōu)缺點(diǎn)
接著講ice
三種方式的使用場景崇裁,和區(qū)塊鏈?zhǔn)褂媚膫€(gè)匕坯?
拋出兩個(gè)問題 - 局域網(wǎng)內(nèi)通訊回路問題,hairping
- ip的變化問題拔稳,鑒權(quán)問題
以太坊devp2p
簡介葛峻,原理,使用技術(shù)
dht巴比、rplx术奖、k桶
NAT穿越
udp穿越
tcp通訊
節(jié)點(diǎn)發(fā)現(xiàn)
節(jié)點(diǎn)之間距離計(jì)算:
節(jié)點(diǎn)id的與或計(jì)算結(jié)果值
K桶結(jié)構(gòu):
256 * 16
節(jié)點(diǎn)鑒權(quán):
ECkey 公鑰私鑰
4種命令:
ping pong findnode sendneibour
節(jié)點(diǎn)發(fā)現(xiàn)流程:
- 20引導(dǎo)節(jié)點(diǎn),pingpong轻绞,活躍的節(jié)點(diǎn)加入k桶
2.向k桶最接近30個(gè)節(jié)點(diǎn)發(fā)送findnode命令
3.節(jié)點(diǎn)回傳最接近的30個(gè)節(jié)點(diǎn)采记,并告訴這30個(gè)節(jié)點(diǎn)向客戶端發(fā)送信息建立連接 - 客戶端收到30個(gè)節(jié)點(diǎn)后,分別pingpong政勃,活躍的節(jié)點(diǎn)加入k桶
5.再循環(huán)2唧龄,間隔
節(jié)點(diǎn)生命周期:
等待,活躍奸远,候選选侨,入桶,死亡
1.先使用UDP協(xié)議來實(shí)現(xiàn)節(jié)點(diǎn)之間高成功率的穿透然走,來發(fā)現(xiàn)節(jié)點(diǎn),建立連接的信道
2.為了信息的可靠傳輸戏挡,在已經(jīng)建好的信道基礎(chǔ)上芍瑞,使用TCP協(xié)議傳輸區(qū)塊、交易褐墅、日志等數(shù)據(jù)拆檬;