色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文讀懂p2p實現原理和NAT的類型

C語言專家集中營 ? 來源:feiyan ? 2018-12-09 10:50 ? 次閱讀

p2p實現原理

什么是打洞,為什么要打洞

由于Internet的快速發展 IPV4地址不夠用,不能每個主機分到一個公網IP 所以使用NAT地址轉換。

下面是我在網上找到的一副圖

一文讀懂p2p實現原理和NAT的類型

一般來說都是由私網內主機(例如上圖中“電腦A-01”)主動發起連接,數據包經過NAT地址轉換后送給公網上的服務器(例如上圖中的“Server”),連接建立以后可雙向傳送數據,NAT設備允許私網內主機主動向公網內主機發送數據,但卻禁止反方向的主動傳遞,但在一些特殊的場合需要不同私網內的主機進行互聯(例如P2P軟件、網絡會議、視頻傳輸等),TCP穿越NAT的問題必須解決。

下面是NAT的幾種類型

NAT設備的類型對于TCP穿越NAT,有著十分重要的影響,根據端口映射方式,NAT可分為如下4類,前3種NAT類型可統稱為cone類型。(1)全克隆( Full Clone) : NAT把所有來自相同內部IP地址和端口的請求映射到相同的外部IP地址和端口。任何一個外部主機均可通過該映射發送IP包到該內部主機。(2)限制性克隆(Restricted Clone) : NAT把所有來自相同內部IP地址和端口的請求映射到相同的外部IP地址和端口。但是,只有當內部主機先給IP地址為X的外部主機發送IP包,該外部主機才能向該內部主機發送IP包。(3)端口限制性克隆( Port Restricted Clone) :端口限制性克隆與限制性克隆類似,只是多了端口號的限制,即只有內部主機先向IP地址為X,端口號為P的外部主機發送1個IP包,該外部主機才能夠把源端口號為P的IP包發送給該內部主機。(4)對稱式NAT ( Symmetric NAT) :這種類型的NAT與上述3種類型的不同,在于當同一內部主機使用相同的端口與不同地址的外部主機進行通信時, NAT對該內部主機的映射會有所不同。對稱式NAT不保證所有會話中的私有地址和公開IP之間綁定的一致性。相反,它為每個新的會話分配一個新的端口號。

先假設:有一個服務器S在公網上有一個IP,兩個私網分別由NAT-A和NAT-B連接到公網,NAT-A后面有一臺客戶端A,NAT-B后面有一臺客戶端B,現在,我們需要借助S將A和B建立直接的TCP連接,即由B向A打一個洞,讓A可以沿這個洞直接連接到B主機,就好像NAT-B不存在一樣。

實現過程如下:1、 S啟動兩個網絡偵聽,一個叫【主連接】偵聽,一個叫【協助打洞】的偵聽。2、 A和B分別與S的【主連接】保持聯系。3、 當A需要和B建立直接的TCP連接時,首先連接S的【協助打洞】端口,并發送協助連接申請。同時在該端口號上啟動偵聽。注意由于要在相同的網絡終端上綁定到不同的套接字上,所以必須為這些套接字設置 SO_REUSEADDR 屬性(即允許重用),否則偵聽會失敗。4、 S的【協助打洞】連接收到A的申請后通過【主連接】通知B,并將A經過NAT-A轉換后的公網IP地址和端口等信息告訴B。5、 B收到S的連接通知后首先與S的【協助打洞】端口連接,隨便發送一些數據后立即斷開,這樣做的目的是讓S能知道B經過NAT-B轉換后的公網IP和端口號。6、 B嘗試與A的經過NAT-A轉換后的公網IP地址和端口進行connect,根據不同的路由器會有不同的結果,有些路由器在這個操作就能建立連接,大多數路由器對于不請自到的SYN請求包直接丟棄而導致connect失敗,但NAT-A會紀錄此次連接的源地址和端口號,為接下來真正的連接做好了準備,這就是所謂的打洞,即B向A打了一個洞,下次A就能直接連接到B剛才使用的端口號了。7、 客戶端B打洞的同時在相同的端口上啟動偵聽。B在一切準備就緒以后通過與S的【主連接】回復消息“我已經準備好”,S在收到以后將B經過NAT-B轉換后的公網IP和端口號告訴給A。8、 A收到S回復的B的公網IP和端口號等信息以后,開始連接到B公網IP和端口號,由于在步驟6中B曾經嘗試連接過A的公網IP地址和端口,NAT-A紀錄了此次連接的信息,所以當A主動連接B時,NAT-B會認為是合法的SYN數據,并允許通過,從而直接的TCP連接建立起來了。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • P2P
    P2P
    +關注

    關注

    0

    文章

    152

    瀏覽量

    26792
  • NAT
    NAT
    +關注

    關注

    0

    文章

    146

    瀏覽量

    16278

原文標題:p2p實現原理及打洞技術介紹

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問TSC2014IYZGT和TSC2017IYZGR是否可以P2P替換?

    您好,請問TSC2014IYZGT和TSC2017IYZGR是否可以P2P替換?
    發表于 11-21 08:00

    P2link內網穿透兩大亮點—不限速使用—多設備集中管理

    引言 P2link是款采用了P2P技術和穿透協議,面向高性能需求的內網穿透工具,各節點(用戶或設備)可以直接進行數據傳輸和通信,而不需要通過中心服務器,能夠實現局域網內部設備與外網的
    的頭像 發表于 11-11 14:28 ?313次閱讀

    讀懂單燈控制器工作原理

    讀懂單燈控制器工作原理
    的頭像 發表于 11-11 13:13 ?352次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>單燈控制器工作原理

    款高性能內網穿透工具——P2link

    P2link是款面向高性能需求的內網穿透工具,采用了P2P技術和穿透協議,各節點(用戶或設備)可以直接進行數據傳輸和通信,而不需要通過中心服務器,能夠實現局域網內部設備與外網的快速、
    的頭像 發表于 11-08 10:59 ?807次閱讀
    <b class='flag-5'>一</b>款高性能內網穿透工具——<b class='flag-5'>P2</b>link

    讀懂MSA(測量系統分析)

    讀懂MSA(測量系統分析)
    的頭像 發表于 11-01 11:08 ?1069次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>MSA(測量系統分析)

    打破網絡邊界:P2Link助力實現高效遠程訪問與內網穿透

    ,解決內網穿透難題,讓用戶輕松實現遠程訪問和管理。以下是些典型的應用場景: 遠程辦公與文件訪問: 在遠程辦公場景中,員工常常需要從外部網絡訪問公司內網中的文件服務器、數據庫或辦公系統。通過P2
    發表于 10-31 11:54

    臺電新品P50 AI平板電腦即將上市

    本次P50AI平板電腦誕生過程得益于臺電與全志科技再次深度聯袂合作,并在臺電新品P50AI上首發搭載全志A733處理器。賦能AI,提高消費者使用體驗!功能性前瞻,
    的頭像 發表于 10-24 10:23 ?684次閱讀

    讀懂新能源汽車的功能安全

    電子發燒友網站提供《讀懂新能源汽車的功能安全.pdf》資料免費下載
    發表于 09-04 09:22 ?3次下載

    光伏互感器p1p2正確接線法

    光伏互感器是種用于測量和保護光伏系統中電流的設備。正確接線對于確保光伏系統安全、穩定和高效運行至關重要。 、光伏互感器P1P2接線原理 光伏互感器P1P2的作用 光伏互感器
    的頭像 發表于 08-22 09:12 ?2136次閱讀

    互感器p2朝上會影響計量嗎

    互感器P2朝上確實可能會對計量產生影響。通常情況下,互感器的P1P2朝向是固定的,即次側的電壓引腳P1朝上,二次側的電壓引腳P2朝下。這種
    的頭像 發表于 08-21 18:17 ?2395次閱讀

    互感器p1p2穿反了有什么影響

    互感器是種用于測量高電壓或大電流的儀器,它通過將高電壓或大電流轉換為低電壓或小電流來實現測量。在互感器的使用過程中,P1和P2是兩個重要的端子,它們分別代表互感器的輸入端和輸出端。如
    的頭像 發表于 08-21 18:13 ?5233次閱讀

    Cyw55572 FMAC如何支持STA+AP+P2P的模式?

    客戶現在使用CYW55572,FMAC驅動,想知道如何實現STA+AP+P2P的模式,即同時可以使用STA模式,AP模式,P2P模式,麻煩幫忙指導,謝謝
    發表于 05-29 06:15

    求助,在STM30WB55中如何讓P2P_Client同時連接P2P_Sever1和P2PSever2等多個設備?

    分別為Sever1和Sever2。目前只能實現Client與其中任意塊鏈接,但不能實現多機的鏈接。 app_conf.h中配置如下, define CFG_MAX_CONNECTIO
    發表于 04-01 06:04

    是否可以將Laird LWB+ CYW43439和WHD用于WiFi Direct/P2P模式?

    我目前正在AP和STA模式下成功使用帶有WHD的Laird LWB+ CYW43439。 但是現在我想在 WiFi Direct/P2P 模式下使用它。 是否可以將Laird LWB+ CYW43439和WHD用于WiFi Direct/P2P模式? 如果是這樣,我需要什
    發表于 03-01 07:47

    什么是NATNAT類型有哪些?NAT是如何工作的?NAT解決了什么問題?

    的方式來連接多個設備,而不需要為每個設備都分配個公共IP地址。通過將源IP地址和端口號映射到公共IP地址和端口號,NAT充當了個中間人,使得設備可以通過個公共IP地址與外部網絡進
    的頭像 發表于 02-04 11:03 ?5430次閱讀
    主站蜘蛛池模板: JLZZJLZZJLZ老师好多的水 jk制服喷水 | 国产在线观看网址你懂得 | 久久网站视频 | 亚洲精品久久久久久偷窥 | 欧美人禽Zozo动人物杂交 | 免费的av不用播放器的 | 亚洲高清免费在线观看 | 国产一卡 二卡三卡四卡无卡乱码视频 | 影音先锋色小姐 | 无颜之月5集全免费看无删除 | 99亚洲精品自拍AV成人软件 | 日韩吃奶摸下AA片免费观看 | 亚洲精品一二三区区别在哪 | 动漫在线观看免费肉肉 | 中文字幕在线不卡日本v二区 | 四川老师边上网课边被啪视频 | 国产亚洲精品久久久久 | 麻豆成人啪啪色婷婷久久 | 99re久久精品在线播放 | 亚洲精品中文字幕一二三四区 | 高清不卡伦理电影在线观看 | 国产成+人欧美+综合在线观看 | 美女医生深夜在家裸睡惨死 | 国产精品久久婷婷五月色 | 国产成人免费全部网站 | 国产精品亚洲二线在线播放 | 国产1769一七六九视频在线 | 在线不卡日本v二区 | 成人免费视频在线播放 | 国产高清视频a在线大全 | 久久人妻少妇嫩草AV无码 | 超碰caoporen国产 | 蜜柚影院在线观看免费高清中文 | www.97干 | 亚洲h视频在线观看 | 国产精品一区二区20P | 259luxu高跟黑色丝袜系列 | 西施打开双腿下面好紧 | 名女躁b久久天天躁 | 国内精品久久久久久西瓜色吧 | 久久re这里视频精品8 |