一種能比較準確地猜測NAT的影射埠的方法

2021-04-13 00:22:55 字數 732 閱讀 4354

昨晚忽然想到一種方法能比較準確地猜測nat的影射埠。我指的是那種目標埠敏感的nat,這種nat以前是很難穿透的。

這種方法使用了三個新socket(也即新的本地埠)來探測

。新建三個socket,每個socket與以前沒用過的埠

繫結。然後按時間順序,第乙個socket給stun伺服器傳送

資料報,第二個socket給目標伺服器傳送資料報

,也即執行打孔動作,第三個socket再次給stun伺服器傳送

資料。三個動作均會在伺服器上新開乙個影射埠

。三個動作時間間隔很短,大約100ms即可。這樣,我們有理由相信,第二個socket所

分配的對映埠很可能在第乙個影射埠和第二個影射埠之間。也即port2>port1同時 port2t3之間差距過大,那麼很可能是nat上的埠號已經開始重新分

配,那麼應當讓客戶端重複一下這個流程。重複多幾次

,猜測成功的機率會大很多。

乙個例外情況是所謂埠保持nat,也即nat分配新埠時

,盡量使新埠號與內網埠號保持一致。但這種情況很容易識別

,伺服器簡單比較客戶端的內網埠和對映埠即可

。如果發現是這類nat,那麼上面的公式就要修改了:

port2 = 第二個socket的內網埠號

當然,埠猜測方法無論如何也是猜測而已,內網之間的使用者仍然不可能有100%的鏈結率。但是猜測埠的方法可

以提高跨nat連線率,從而降低資料中轉伺服器的負擔。

KTDictSeg 一種簡單快速準確的中文分詞方法

個人部落格 2007 5 南京 基本技術指標 分詞準確度 90 以上 只是自己統計了一下,有待專家的權威評測 處理速度 600kbytes s p4 3.0g 和網際網路上幾個比較流行的中文分詞方法的比較 和sharpictclas的比較 提到中文分詞,就不能不提到計算所開發的ictclas 中文分...

比較方便的一種點選事件處理

1 button 2android id id button1 3android layout width wrap content 4android layout height wrap content 5android onclick onclick 6android text button1 ...

breakin是一種需要技巧比較多的舞種

breakin是一種需要技巧比較多的舞種.新手們.當你看到別人動作收放自如而又充滿力量的時候.是不是覺得那些動作很容易呢?而當自己做的時候就覺得力不從心.身體弱些的甚至用不出力.在此貼.我就介紹一下breakin的身體素質基礎.這可是新手入門要練的喔.先介紹身體素質的基礎.有了好的身體素質的人跳舞....