當前位置:編程學習大全網 - 源碼下載 - 以太坊源代碼分析

以太坊源代碼分析

我喜歡用非常簡單的話來總結:

Natp是指當內部機器通過路由器即網關向外部發送網絡請求時,路由器記住內部機器的ip和端口,並與實際發送數據的外部網絡端口綁定生成臨時映射表,在接收到外部網絡數據後通過這個映射表將數據轉發給內部機器。稍後將討論nat的各種映射類型。

Upnp類似於nat-pmp,它在路由器和內部機器之間提供中間服務,內部機器請求upnp將其使用的端口與外部網絡端口綁定,這樣當路由器接收到外部網絡請求時,它首先去upnp查找外部網絡端口是否已經被upnp映射,如果映射,它將數據轉發到內部機器的相應端口。

Napt是路由器必須具備的功能。napt生成的nat映射表有很多種,但都是有時間限制的,即壹段時間後原有的nat映射會失效,然後會創建壹個新的nat映射。Nat映射必須由向外部網絡發出請求的內部機器生成。

Upnp長期保存映射關系,外部機器可以主動向內部機器請求網絡連接。所以首先需要路由器開啟upnp功能(壹般是用戶在路由器設置中手動開啟upnp),然後內部機器的程序要自己實現upnp客戶端功能:主動搜索upnp服務,主動添加映射,刪除映射等。

客戶端不能控制natp的映射,但是可以主動控制upnp的映射。

根據我目前對go-ethereum源代碼中p2p的研究,ethereum只映射了upnpt和nat-pmp的端口,它調用了第三方開源庫,但沒有在NATP udp上打洞。

我還沒看過比特幣的源代碼,但我覺得我沒有打udp洞穿越NAT。

  • 上一篇:怎麽在自動存款機上存款?有圖具體步驟的更好?
  • 下一篇:小時候看過的兒童電影,很懷念,不知道名字,希望大家幫忙找壹下,謝謝
  • copyright 2024編程學習大全網