tcp協議
upd穿透原理
主要在於系統介面的限制. socket相關的介面有
connect
,sendto
,recvfrom
,send
,recv
等
使用udp程式設計時, 建立socket之後, 就可以使用這個socket向任意位址傳送資料.
但是tcp程式設計不一樣, 一旦處理連線狀態之後, 這個socket就不能再向其它位址傳送資料.
本圖不包含區域網場景. 只描述公網之間的tcp穿透過程
埠**流程
設雙方分別為a, b
同樣的方式, 可以**出b的nat埠
完整流程
埠**的結果也可能不正確, 特別是當使用者的網路非常繁忙時, **的埠有可能被其它人使用.
因此, 穿透失敗之後, 需要再嘗試幾次.
TCP點對點穿透探索 失敗
點對點穿透,需要實現的是對nat的穿透。想實現nat的穿透,當然要先了解nat到底是什麼,以及nat是用來幹什麼的。nat全稱network address translation,意思是網路位址轉換,在1994年提出。它可以對不同的ip及埠進行對映,將乙個網路位址轉換為另乙個。nat的主要用途,大...
使用TCP協議的穿透技術
其實很早我就已經實現了使用tcp協議穿透nat了,但是苦於一直沒有時間,所以沒有寫出來,現在終於放假有一點空閒,於是寫出來共享之。一直以來,說起nat穿透,很多人都會被告知使用udp打孔這個技術,基本上沒有人會告訴你如何使用tcp協議去穿透 甚至有的人會直接告訴你tcp協議是無法實現穿透的 但是,眾...
使用TCP協議的NAT穿透技術
要了解如何使用tcp穿透nat,就要首先看看如何使用udp穿透nat。假設,我們在兩個不同的區域網後面分別有2臺客戶機a和 b,ab所在的區域網都分別通過乙個路由器接入網際網路。網際網路上有一台伺服器s。現在a b是無法直接和對方傳送資訊的,a b都不知道對方在網際網路上真正的ip和埠,ab所在的區...