TCP實(shí)現(xiàn)P2P通信、TCP穿越NAT的方法、TCP打洞(轉(zhuǎn)載)
摘要: 這個(gè)標(biāo)題用了兩個(gè)頓號(hào)三個(gè)名稱,其實(shí)說得是同一個(gè)東西,只是網(wǎng)上有不同的說法罷了,另外好像還有人叫TCP打孔(我的朋友小妞聽說后問“要打孔啊,要不要我?guī)湍闳ソ鑲€(gè)電鉆過來啊?”“~!·¥%……·!”)。
閑話少說,我們先看一下技術(shù)背景:
Internet的迅速發(fā)展以及IPv4 地址數(shù)量的限制使得網(wǎng)絡(luò)地址翻譯(NAT,Network Address Trans2lation)設(shè)備得到廣泛應(yīng)用。NAT設(shè)備允許處于同一NAT后的多臺(tái)主機(jī)共享一個(gè)公網(wǎng)(本文將處于同一NAT后的網(wǎng)絡(luò)稱為私網(wǎng),處于NAT前的網(wǎng)絡(luò)稱為公網(wǎng)) IP 地址。一個(gè)私網(wǎng)IP 地址通過NAT設(shè)備與公網(wǎng)的其他
閱讀全文
什么叫打洞
摘要: 確切地說是穿透NAT,一般使用UDP協(xié)議,TCP協(xié)議也可以穿透,只是好像沒有UDP成功率高。
閱讀全文
STUN, STUNT, XSTUNT 介紹
摘要: STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP簡(jiǎn)單穿越)是一種網(wǎng)絡(luò)協(xié)議,它允許位于NAT(或多重NAT)后的客戶端找出自己的公網(wǎng)地址,查出自己位于哪種類型的NAT之后以及NAT為某一個(gè)本地端口所綁定的Internet端端口。這些信息被用來在兩個(gè)同時(shí)處于NAT 路由器之后的主機(jī)之間建立UDP通信。該協(xié)議由RFC 3489定義
一旦客戶端得知了Internet端的UDP端口,通信就可以開始了。如果NAT是完全圓錐型的,那么雙方中的任何一方都可以發(fā)起通信。如果NAT是受限圓錐型或端口受限圓錐型,雙方必須一起開始傳輸。
閱讀全文