原創作品,轉載請注明出處,嚴禁非法轉載。如有錯誤,請留言!
email:40879506@qq.com
參考:
http://www.cnblogs.com/myblesh/p/6259765.html
http://www.cnblogs.com/myblesh/p/6225651.html
開篇我就計划stun的高級部分,現在終於理清楚實現的原理和CPE側代碼實現。要做一個言而有信的人。
一. 協議規范
TR069 TR111
二. 執行流程
在TR111中,CPE設備穿透NAT的策略是STUN,但是STUN是基於UDP的,而TR069中CPE和ACS之間建立的連接是TCP的,那么ACS是如何主動發起連接的呢?實際上ACS主動發起的並不是TCP連接,而是可以不需要響應的無連接的。ACS能夠自動檢測到位於NAT設備或者gateway后面的設備(與STUN bind成功),然后發送UDP connection Request到STUN server,通過STUN server進行轉發到與STUN server關聯的內部CPE設備,進而CPE發起tr069規范中定義的6 connection request事件(TCP連接成功),在tcp連接超時時間范圍內可進行設備管理操作。如果超時,ACS再次主動發送UDP connection Request,然后對設備進行管理操作。
三. CPE側實現
下面的流程圖是目前CPE側實現的stun功能,如需高清PDF版,請留言郵箱地址。或者到csdn下載:http://download.csdn.net/detail/eryunyong/9809748