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

那誰(shuí)的技術(shù)博客

感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
數(shù)據(jù)加載中……

P2P原理的解釋與實(shí)現(xiàn)

關(guān)鍵字:P2P NAT? 打洞

關(guān)于采用UDP協(xié)議進(jìn)行打洞以進(jìn)行P2P會(huì)話的原理,我本來(lái)想寫一篇文章作說(shuō)明,但是現(xiàn)在已經(jīng)有一篇文章把原理性的東西解釋清楚了,我在這里不再作這部分的重復(fù),可以參見這里:
P2P 之 UDP穿透NAT的原理與實(shí)現(xiàn)(附源代碼)--http://www.cnpaf.net/Class/hack/0512182034513804825.htm

下面解釋一下上面的文章中沒(méi)有提及或者說(shuō)我覺得比較欠缺的地方.
私有地址/端口和公有地址/端口:我們知道,現(xiàn)在大部分網(wǎng)絡(luò)采用的都是NAPT(Network Address/Port Translator)了,這個(gè)東東的作用是一個(gè)對(duì)外的對(duì)話在經(jīng)過(guò)NAT之后IP地址和端口號(hào)都會(huì)被改寫,在這里把一次會(huì)話中客戶自己認(rèn)為在使用的IP地址和端口號(hào)成為私有地址/端口,而把經(jīng)過(guò)NAPT之后被改寫的IP地址和端口號(hào)稱為公有地址/端口.或者可以這么理解,私有地址/端口是你家里人對(duì)你的昵稱而公有地址/端口則是你真正對(duì)外公開的名字.如何獲得用戶的私用地址/端口號(hào),這個(gè)很簡(jiǎn)單了,而要得到公有地址/端口號(hào)就要在連接上另一臺(tái)機(jī)器之后由那臺(tái)機(jī)器看到的IP地址和端口號(hào)來(lái)表示.

如果明白了上面的東西,下面進(jìn)入我們的代碼,在這里解釋一下關(guān)鍵部分的實(shí)現(xiàn):

客戶端首先得到自己的私有地址/終端,然后向server端發(fā)送登陸請(qǐng)求,server端在得到這個(gè)請(qǐng)求之后就可以知道這個(gè)client端的公有地址/終端,server會(huì)為每一個(gè)登陸的client保存它們的私有地址/端口和公有地址/端口.

OK,下面開始關(guān)鍵的打洞流程.假設(shè)client A要向client B對(duì)話,但是A不知道B的地址,即使知道根據(jù)NAT的原理這個(gè)對(duì)話在第一次會(huì)被拒絕,因?yàn)閏lient B的NAT認(rèn)為這是一個(gè)從沒(méi)有過(guò)的外部發(fā)來(lái)的請(qǐng)求.這個(gè)時(shí)候,A如果發(fā)現(xiàn)自己沒(méi)有保存B的地址,或者說(shuō)發(fā)送給B的會(huì)話請(qǐng)求失敗了,它會(huì)要求server端讓B向A打一個(gè)洞,這個(gè)B->A的會(huì)話意義在于它使NAT B認(rèn)為A的地址/端口是可以通過(guò)的地址/端口,這樣A再向B發(fā)送對(duì)話的時(shí)候就不會(huì)再被NAT B拒絕了.打一個(gè)比方來(lái)說(shuō)明打洞的過(guò)程,A想來(lái)B家做客,但是遭到了B的管家NAT B的拒絕,理由是:我從來(lái)沒(méi)有聽我家B提過(guò)你的名字,這時(shí)A找到了A,B都認(rèn)識(shí)的朋友server,要求server給B報(bào)一個(gè)信,讓B去跟管家說(shuō)A是我的朋友,于是,B跟管家NAT B說(shuō),A是我認(rèn)識(shí)的朋友,這樣A的訪問(wèn)請(qǐng)求就不會(huì)再被管家NAT B所拒絕了.簡(jiǎn)而言之,UDP打洞就是一個(gè)通過(guò)server保存下來(lái)的地址使得彼此之間能夠直接通信的過(guò)程,server只管幫助建立連接,在建立間接之后就不再介入了.

好了,原理性的東西解釋到這里,附件中有一個(gè)完整的P2P演示程序,命令行模式下,包括server端和client端,在運(yùn)行的時(shí)候首先啟動(dòng)server端,然后打開幾個(gè)client端分別登陸,之后彼此之間就可以相互通信了.程序在本機(jī)上測(cè)試通過(guò),也就是測(cè)試的環(huán)境server和client都是一臺(tái)機(jī)器,還沒(méi)有在不同的機(jī)器上測(cè)試過(guò),不知道會(huì)不會(huì)有問(wèn)題:)
下載地址:
http://www.shnenglu.com/Files/converse/P2PDemo.rar
參考資料:
1)P2P 之 UDP穿透NAT的原理與實(shí)現(xiàn)(附源代碼)-http://www.cnpaf.net/Class/hack/0512182034513804825.htm
2)王艷平<<Windows網(wǎng)絡(luò)與通信程序設(shè)計(jì)>>

posted on 2006-09-02 20:30 那誰(shuí) 閱讀(6411) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程

評(píng)論

# re: P2P原理的解釋與實(shí)現(xiàn)  回復(fù)  更多評(píng)論   

呵 學(xué)習(xí)學(xué)習(xí)
2008-10-08 16:54 | 浪跡天涯

# re: P2P原理的解釋與實(shí)現(xiàn)  回復(fù)  更多評(píng)論   

簡(jiǎn)單的東西被你說(shuō)復(fù)雜了,估計(jì)不懂的人看了你的文章還是不懂.

你畫個(gè)圖就直觀多了
2008-11-21 13:05 | lipingtababa
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩三级| 欧美在线播放一区| 欧美一区二区三区另类| 一片黄亚洲嫩模| 欧美18av| 欧美大胆a视频| 激情视频一区| 午夜视频久久久久久| 国产精品99久久久久久人| 嫩草国产精品入口| 欧美成人在线免费观看| 狠狠色丁香婷婷综合| 亚洲在线网站| 亚洲免费伊人电影在线观看av| 欧美激情一区二区三区高清视频 | 91久久久久| 久久精品中文| 久久躁日日躁aaaaxxxx| 国产亚洲福利一区| 欧美一区二区视频在线观看2020 | 欧美日韩在线免费观看| 欧美激情一区二区三区成人| 在线观看国产精品网站| 久久精品日产第一区二区三区| 久久不射2019中文字幕| 国产美女扒开尿口久久久| 午夜精彩视频在线观看不卡 | 欧美黑人一区二区三区| 伊人久久男人天堂| 久久久午夜电影| 欧美肥婆在线| 99精品视频免费观看视频| 欧美肥婆bbw| 亚洲精品四区| 亚洲综合日韩| 国产欧美日韩视频一区二区| 午夜在线精品| 欧美粗暴jizz性欧美20| 亚洲精品一区二区三区蜜桃久| 欧美精品二区三区四区免费看视频| 亚洲国产综合视频在线观看| 亚洲精品久久久久久久久久久久 | 免费成人你懂的| 亚洲欧洲视频在线| 亚洲永久免费| 好吊妞**欧美| 欧美精品在线观看| 亚洲综合999| 欧美成人一区二区| 亚洲一区免费| 激情欧美亚洲| 欧美日韩国产影院| 欧美永久精品| 91久久久一线二线三线品牌| 午夜精品免费| 亚洲国产成人精品久久| 欧美三级黄美女| 久久久久网址| 一本一本久久| 女主播福利一区| 亚洲一区二区三区四区视频| 黄色成人在线| 欧美视频导航| 久热爱精品视频线路一| 亚洲午夜久久久久久久久电影网| 久久米奇亚洲| 亚洲午夜视频在线观看| 一区在线影院| 国产精品sm| 欧美电影免费| 久久国产88| 亚洲视频一区二区在线观看| 美脚丝袜一区二区三区在线观看 | 欧美激情国产日韩| 性18欧美另类| 一区二区三区视频在线| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲黄网站在线观看| 欧美一区国产二区| 一本在线高清不卡dvd| 在线免费观看成人网| 国产精品电影网站| 欧美日本韩国| 免费成人av| 久久影院亚洲| 欧美一区二区大片| 亚洲一区免费| 一本一本久久| 99re66热这里只有精品3直播| 乱中年女人伦av一区二区| 欧美一级午夜免费电影| 亚洲在线国产日韩欧美| 艳女tv在线观看国产一区| 亚洲黄色成人| 在线观看亚洲精品视频| 国产日韩一区欧美| 国产精品丝袜91| 国产精品高潮久久| 国产精品扒开腿做爽爽爽软件| 欧美精品国产精品日韩精品| 欧美大片91| 欧美国产日本高清在线| 男人的天堂亚洲在线| 你懂的视频一区二区| 麻豆freexxxx性91精品| 欧美a级大片| 欧美激情一区二区三区全黄| 欧美成人午夜影院| 欧美精品18videos性欧美| 欧美大片一区| 欧美日韩国产黄| 欧美视频四区| 国产精品呻吟| 国模大胆一区二区三区| 亚洲第一级黄色片| 亚洲精品在线视频观看| 一本色道精品久久一区二区三区| 日韩午夜在线| 亚洲主播在线播放| 欧美中文字幕视频| 玖玖玖免费嫩草在线影院一区| 免费看亚洲片| 亚洲欧洲日本mm| 亚洲色图自拍| 欧美中文字幕| 欧美福利视频在线观看| 欧美三级第一页| 国产一区二区精品丝袜| 亚洲第一搞黄网站| 中文国产成人精品久久一| 午夜宅男欧美| 欧美成人午夜激情| 一区二区高清在线观看| 欧美在线播放一区| 母乳一区在线观看| 国产精品久久久久久超碰| 黄色成人av| 在线视频一区观看| 久久久精品动漫| 亚洲国产精品久久久久秋霞影院| 一区二区三区久久| 久久久999精品视频| 欧美人成网站| 国产综合色精品一区二区三区| 亚洲人久久久| 久久精品日产第一区二区三区| 亚洲国产欧美精品| 午夜在线电影亚洲一区| 欧美久久99| 伊人久久综合97精品| 亚洲素人一区二区| 欧美sm视频| 欧美一区二区观看视频| 欧美日韩成人激情| 1024成人网色www| 亚洲欧美日韩国产一区二区| 欧美激情综合色| 性欧美精品高清| 欧美色图五月天| 91久久精品美女| 久久免费视频在线观看| 在线视频欧美日韩精品| 欧美a级片网站| 激情久久五月天| 欧美一区二区视频在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美一区免费视频| 国产精品国色综合久久| 99精品视频免费| 亚洲国产精品一区二区尤物区| 欧美一区二区观看视频| 国产精品久久久久久久7电影| 亚洲精品资源美女情侣酒店| 噜噜噜在线观看免费视频日韩| 亚洲免费在线观看| 欧美日韩一区二区三区在线看| 亚洲精选一区二区| 欧美www在线| 久久综合精品国产一区二区三区| 国产日韩精品在线| 午夜激情亚洲| 亚洲免费视频一区二区| 欧美午夜视频一区二区| 在线一区二区日韩| 亚洲另类黄色| 欧美日韩视频| 宅男噜噜噜66一区二区| 亚洲精品综合精品自拍| 欧美日韩高清在线一区| 99re6这里只有精品| 亚洲精品一区二区三区婷婷月 | 亚洲精品久久在线| 欧美高清在线视频| 免费成人黄色| 亚洲乱码精品一二三四区日韩在线 | 日韩亚洲不卡在线| 欧美午夜精品电影| 欧美一级免费视频| 久久成人免费电影| 亚洲国产精品成人一区二区|