青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

yehao's Blog

P2P網絡技術概覽與實現原理

http://www.cnblogs.com/NeuqUstcIim/archive/2008/08/07/1263278.html
穿越NAT的意義:

  NAT是為了節省IP地址而設計的,但它隱藏了內網機器的地址,“意外”起到了安全的作用。對外不可見,不透明的內部網絡也與互聯網的“公平” 應用,“相互共享”的思想所不容,尤其是P2P網絡中“相互服務”的宗旨,所以穿越NAT,讓眾多內部網絡的機器也參與到P2P網絡中的大集體中來,一直 是P2P開發者的所希望的。穿越NAT需要借助外部的支持,說白了就是“內外勾結”,騙過NAT。很多P2P網絡成功地實現了這一目標,但還是有一些“遺 憾”---并非所有的情況下都可以。由于客戶端是主動登錄P2P網絡才可穿越,所以P2P的方式也沒有違背企業的內部管理原則,畢竟“自由世界”的加入都 是自覺自愿的。

  NAT原理:

  NAT(Network Address Translation)網絡地址轉換/網絡地址翻譯。

  工作原理:NAT主要的通過對數據包頭的地址替換來完成內網計算機訪問外網服務的。當內部機器要訪問外部網絡時,NAT設備把內部的IP1與端 口號1(網絡層地址與傳輸層地址),轉換成NAT的外部IP2與新的端口號2,再送給外部網絡,數據返回時,再把目的為IP2:端口2的數據包替換為 IP1:端口1,送給內網機器。若通訊協議的內容中有IP地址的傳遞,如FTP協議,NAT在翻譯時還要注意數據包內涉及協議地址交互的地方也要替換,否 則協議就會出現地址混亂。在NAT設備中維護了這個要替換地址的映射表,并根據內部計算機的通訊需求維護該表。外部網絡來數據包能否進入NAT,主要是看 是否已經有可映射的表項,若沒有就會丟棄。

  1

  NAT的外部公網地址可以是一個IP,也可以是一個網段,形成地址池。NAT還可以把某個外網地址直接影射給內網的某個服務器,讓外網的用戶可以直接訪問到這臺服務器。NAT的工作的隱藏內網的機器,但允許內網主動打開到外網的通訊“通道”,也就是建立映射表項。

  NAT給P2P帶來的問題是:NAT只允許單方面發起連接,通訊的雙方不是平等的,P2P網絡的基礎有了問題,具體的表現為:

  內網主機IP是私有的,外部主機看不到,也無法主動發起連接

  即使知道了內網IP,但NAT會丟棄沒有在影射表的數據包

  內網主機可以作為客戶端訪問外網,但不能作為服務器提供服務

  當兩個主機都位于各自的NAT之后,要實現P2P的連接,就不僅是誰主動的問題,而是如何解決在兩個NAT上同時有對方映射表項的問題。

STUN協議(IETF RFC 3489):

  STUN協議是一種通道協議,可以作為正式通訊前的通路建立,它采用的是用戶終端干預的一種方法,可以解決應用協議內部傳遞IP地址給NAT帶 來的麻煩。用戶通過其他方法得到其地址對應在NAT出口上的對外地址,然后在報文負載中所描述的地址信息就直接填寫NAT上對外地址,而不是內網的私有 IP,這樣報文的內容在經過NAT時就按普通的NAT流程轉換報文頭部的IP地址即可,負載內的IP地址信息無需再修改。利用STUN的思路可以穿越 NAT。STUN協議是客戶端/服務器協議,分兩種請求方式:一是UDP發送的綁定請求(Binding Requests),二是TCP發送的秘密請求(Shared Secret Requests)。綁定請求用于確定NAT分配的綁定地址。

  STUN標準中,根據內部終端的地址(P:p)到NAT出口的公網地址(A:b)的影射方式,把NAT分為四種類型:

  2

  1. Full Cone:來自相同的內部地址的請求消息映射為相同的外部地址,與外部地址(目的地址)無關。映射關系為P:p↔A:b,任何外部主機可通過(A:b)發送到數據到(P:p)上。

  2. Restricted Cone:來自相同的內部地址的請求消息映射為相同的外部地址,返回的數據只接受該內部節點曾發數據的那個目的計算機地址X。映射關系為P:p↔A:b↔X,只有來自X的數據包才可通過(A:b)發送到數據到(P:p)上。

  3. Port Restricted Cone:來自相同的內部地址的請求消息映射為相同的外部地址,返回的數據只接受該內部節點曾發數據的那個目的地址X:x。映射關系為 P:p↔A:b↔X:x,只有來自X:x的數據包才可通過(A:b)發送到數據到(P:p)上。

  4. Symmetric(對稱) NAT:只有來自相同的內部地址(P:p),并且發送到同一個地址(X:x) 的請求消息,才被映射為相同的外部地址(A:b),返回的數據只接受該內部節點曾發數據的那個目的地址X:x。映射關系為P:p↔A:b↔X:x,當 (P:p)訪問(Y:y)時,映射為P:p↔B:c↔Y:y。

  P2P利用STUN穿越NAT:

  位于NAT后面終端A與B要穿越NAT直接通訊,可以借助在公網上的第三者Server來幫助。

  穿越NAT的情況分為為兩種方式:

    1、一方在NAT之后,一方在公網上。這種情況相對簡單,只要讓NAT之后的終端先發起通訊,NAT就沒有作用了,它可以從Server上取得另一個Peer的地址,主動連接,回來的數據包就可以方便地穿越NAT

    2、雙方都在NAT之后,連接的成功與否與兩個NAT的類型有關。主要的思路的先通過終端與Server的連接,獲得兩個終端在NAT外部的地址(IP與 端口號),再由終端向對方的外部地址發邀請包,獲取自己與對方通訊的外部地址,俗稱為“打洞”。關鍵是獲取了NAT外部映射的地址,就可以發包直接溝通, 建立連接。但當一方是對稱型,另一方是Port Restricted或對稱型時,無法有效獲取外部地址,邀請包無法到達對方,也就無法穿越NAT。具體的分析可以根據兩個NAT的類型分成若干情況分 析,這里給一般的穿越例子。

3

實例:UDP穿越NAT:

  A登錄Server,NAT A分配端口11000,Server得到A的地址為100.10.10.10:11000

  B登錄Server,NAT B分配端口22000,Server得到B的地址為200.20.20.20:22000

  此時B會把直接來自A的包丟棄,所以要在NAT B上打一個方向為A的洞,那么A就可以向200.20.20.20:22000發送數據了

  打洞的指令來自Server。B向A的地址100.10.10.10:11000發一個UDP報文,被NAT A丟棄,但在NAT B上建立映射記錄,NAT B不在丟棄來自A的報文。

  Server通知A可以通訊,A發起數據UDP包給B,NAT B放行,B收到A的包,雙方開始通訊

  注:若是對稱NAT,當B向A打洞的端口要重新分配(NAT A不會再分配11000端口),B無法獲取這個端口,所以不適用本方法。

  實例:TCP穿越NAT:

  A登錄Server,NAT A分配端口11000,Server得到A的地址為100.10.10.10:11000

  B登錄Server,NAT B分配端口22000,Server得到B的地址為200.20.20.20:22000

  A向B發送TCP數據包SYN:192.168.10.11:1234=>200.20.20.20:22000,在NAT A上打洞

  B向A發送TCP數據包SYN:192.168.20.22:1234=>100.10.10.10:11000,在NAT B上打洞

  通道建立,A與B三次握手建立TCP連接

posted on 2011-08-18 16:13 厚積薄發 閱讀(352) 評論(0)  編輯 收藏 引用 所屬分類: 網絡編程

導航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿

隨筆分類

文章分類

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人成在线观看一区二区| 99国产精品久久久久久久成人热| 国产精品一区二区女厕厕| 欧美成人精品高清在线播放| 久久亚洲精品欧美| 另类成人小视频在线| 欧美sm视频| 欧美黄色片免费观看| 欧美日韩精品一区二区在线播放 | 久久精品中文| 麻豆成人小视频| 欧美绝品在线观看成人午夜影视| 欧美性色视频在线| 狠狠色伊人亚洲综合网站色| 亚洲欧洲日本国产| 亚洲永久视频| 蜜桃伊人久久| 99re成人精品视频| 亚洲一二三区精品| 欧美一区二区三区在线视频| 久久久久国色av免费观看性色| 欧美一区在线看| 美腿丝袜亚洲色图| 亚洲精品你懂的| 在线一区二区日韩| 久久久久久九九九九| 亚洲欧美色一区| 99国产麻豆精品| 一级日韩一区在线观看| 欧美一区观看| 亚洲激情在线观看| 亚洲欧美日韩一区在线观看| 久久伊人亚洲| 国产精品日韩在线一区| 在线成人中文字幕| 亚洲与欧洲av电影| 欧美国产精品一区| 亚洲欧美中文另类| 欧美日韩的一区二区| 影音先锋久久| 午夜视频久久久| 亚洲美女黄网| 欧美国产一区二区| 亚洲国产精品999| 久久久久久久久久码影片| 亚洲精品小视频在线观看| 久久精品日产第一区二区| 国产精品视频一区二区三区| 日韩一级大片在线| 欧美黑人一区二区三区| 久久久久成人精品免费播放动漫| 国产精品视频导航| 亚洲综合精品自拍| 亚洲视频第一页| 欧美另类综合| 99re6热只有精品免费观看| 麻豆国产精品va在线观看不卡| 亚洲午夜伦理| 国产精品一区久久| 亚洲高清视频在线| 欧美亚洲系列| 亚洲午夜影视影院在线观看| 欧美日韩亚洲综合在线| 91久久精品久久国产性色也91| 久久久久综合网| 久久精品视频va| 伊人狠狠色j香婷婷综合| 久久免费精品日本久久中文字幕| 亚洲欧美综合网| 国产午夜精品麻豆| 久久深夜福利免费观看| 久久久午夜精品| 亚洲日本视频| 日韩午夜中文字幕| 欧美视频在线观看免费| 亚洲欧美精品在线观看| 亚洲字幕一区二区| 狠狠色综合网| 亚洲日本免费电影| 国产精品视频免费观看www| 久久久久88色偷偷免费| 美女黄毛**国产精品啪啪 | 久久一区精品| 亚洲精品一区二区三区在线观看 | 日韩午夜在线视频| 国产欧美一区二区精品性色| 久久最新视频| 欧美电影资源| 亚洲一区二区三区中文字幕| 亚洲欧美一区二区三区在线| 精品二区视频| 99riav久久精品riav| 国产一区二区三区在线观看精品| 久久婷婷国产综合国色天香| 欧美激情成人在线视频| 欧美伊人久久| 欧美国产第二页| 欧美在线国产精品| 欧美成人资源网| 久久国产精品久久精品国产| 欧美成人免费大片| 久久精品国产99国产精品| 欧美v日韩v国产v| 欧美在线视频免费播放| 农夫在线精品视频免费观看| 午夜精品一区二区三区在线| 欧美α欧美αv大片| 久久精品视频免费| 欧美日韩精品在线观看| 免费h精品视频在线播放| 国产精品v欧美精品v日韩精品 | 亚洲综合视频一区| 亚洲精品视频一区| 欧美主播一区二区三区| 亚洲视频每日更新| 免费久久99精品国产自| 久久亚洲一区| 国产精品一区二区久久精品| 国产嫩草一区二区三区在线观看 | 国产午夜久久| 日韩视频免费看| 亚洲高清资源| 欧美伊人久久大香线蕉综合69| 中文日韩在线| 欧美国产一区二区| 亚洲国产福利在线| 亚洲高清视频一区二区| 久久激五月天综合精品| 欧美一区二区三区免费观看| 欧美三级午夜理伦三级中视频| 亚洲大黄网站| 亚洲国产欧美一区二区三区丁香婷| 欧美一区二视频| 欧美在线在线| 国产日韩欧美一区二区三区四区| 亚洲性夜色噜噜噜7777| 亚洲综合久久久久| 国产精品久久久久毛片软件 | 亚洲黄色小视频| 久久这里有精品视频| 美腿丝袜亚洲色图| 亚洲黄一区二区| 欧美精品亚洲| 日韩小视频在线观看专区| 中文亚洲视频在线| 国产精品你懂得| 欧美主播一区二区三区美女 久久精品人| 欧美一级片在线播放| 国产一区二区三区高清| 久久久久国产精品一区二区| 美女脱光内衣内裤视频久久网站| 亚洲成人在线免费| 欧美成人在线网站| 99在线|亚洲一区二区| 亚洲一区二区不卡免费| 国产精品永久免费视频| 久久不射电影网| 欧美激情成人在线| 亚洲图色在线| 国产欧美一级| 美女黄网久久| 亚洲天堂成人在线观看| 久久久久久9999| 亚洲人成人一区二区在线观看| 欧美日韩成人| 欧美一区二区三区在线看| 欧美激情免费在线| 亚洲欧美一区二区激情| 国产一区二区三区免费在线观看| 久久久久国产精品人| 一区二区三区日韩精品视频| 久久久一区二区| 亚洲一区二区影院| 精品成人国产| 国产精品国码视频| 老鸭窝毛片一区二区三区| 一本色道88久久加勒比精品| 久久久久亚洲综合| 亚洲无限乱码一二三四麻| 国内外成人在线| 欧美日韩在线大尺度| 国外成人免费视频| 欧美激情中文不卡| 亚洲欧洲在线观看| 西西人体一区二区| 亚洲日韩中文字幕在线播放| 国产精品一区二区久久国产| 欧美成人自拍| 久久电影一区| 国产精品99久久久久久久女警| 欧美成人精品激情在线观看| 欧美亚洲一级| 在线综合+亚洲+欧美中文字幕| 精品电影在线观看| 国产欧美视频一区二区三区| 欧美日韩国产色站一区二区三区| 欧美成ee人免费视频| 欧美理论在线| 午夜电影亚洲| 亚洲欧洲精品一区二区三区|