通過網絡瀏覽器中的uri去引用監(jiān)控nat行為的制作方法
【專利說明】通過網絡瀏覽器中的URI去引用監(jiān)控NAT行為
[0001] 相關申請案交叉申請
[0002] 本發(fā)明要求2013年8月20日遞交的發(fā)明名稱為"通過網絡瀏覽器中的URI去 引用監(jiān)控NAT行為(MonitoringNATBehaviorsThroughURIDereferencesinWeb Browsers) "的第13/970, 882號美國非臨時專利申請案的在先申請優(yōu)先權,該在先申請的 全部內容以引入的方式并入本文本中。
[0003] 關于由聯(lián)邦政府贊助研究或開發(fā)的聲明
[0004] 不適用。
[0005] 參考縮微膠片附錄
[0006] 不適用。
【背景技術】
[0007] 互聯(lián)網協(xié)議(InternetProtocol,IP)網絡允許一組計算機和其它設備通過私 有地址空間以通信方式相互耦合?;ヂ?lián)網協(xié)議網絡利用互聯(lián)網促進設備之間資源的共 享。為了實現(xiàn)私有和公共網絡中的設備之間的通信,網絡地址轉換(NetworkAddress Translation,NAT)可以用來在私有地址空間中的地址與公共地址空間中的地址之間進行 轉換。
[0008]網頁實時通信(WebReal-TimeCommunication,WebRTC)是IP應用的一個例 子,包括實時通信特征,例如網絡瀏覽器中的語音和視頻聊天。為了發(fā)現(xiàn)并穿越NAT,目前 的WebRTC架構要求網絡瀏覽器實現(xiàn)某些交互式連接建立(InteractiveConnectivity Establishment,ICE)網絡協(xié)議和技術,例如NAT會話穿越工具(SessionTraversal UtilitiesforNAT,STUN)和通過Relay方式穿越NAT(TraversalUsingRelaysaround NAT,TURN)。STUN可以允許客戶端確定它是否在NAT之后操作以及發(fā)現(xiàn)它的公共IP地址。 分配該IP地址給到遠程主機的用戶數(shù)據報協(xié)議(UserDatagramProtocol,UDP)連接。另 外,TURN是STUN的擴展,并利用中間節(jié)點充當中繼器以實現(xiàn)對端之間的通信。
[0009] 然而,這些協(xié)議在適當監(jiān)控NAT行為方面效率低下,因為它們不被一些網絡支持, 導致通信失敗。例如,一些防火墻會阻塞Skype和GoogleTalk等客戶端的STUN和UDP流 量。另外,網絡協(xié)議無法重用瀏覽器產生的用于NAT發(fā)現(xiàn)的網絡流量,因而產生過量的網絡 開銷。專用STUN/TURN服務器可以是單點故障,而且很難將它們擴展來支持其它NAT發(fā)現(xiàn)機 制(例如,P2P集合點)。此外,各協(xié)議引進了不遵循網絡架構的連接層,在該網絡架構中, 即使STUN和TURN服務器可以通過URI方案識別,但它們不返回超文本。因此,需要解決網 絡架構內一個或多個上述問題的NAT發(fā)現(xiàn)機制。
【發(fā)明內容】
[0010] 在一項實施例中,本發(fā)明包括一種在網絡瀏覽器中執(zhí)行的方法,所述方法包括: 去引用包括網絡資源和反射標記的通用資源標識符(UniformResourceIdentifier, URI);創(chuàng)建請求消息,所述請求消息包括對所述網絡資源的請求和對應于所述反射標記的 反射請求,其中所述反射請求是包括所述網絡資源的網絡服務器對地址和端口信息的請 求;將所述請求消息封裝在傳送消息中,所述傳送消息包括所述網絡瀏覽器的互聯(lián)網協(xié)議 (InternetProtocol,IP)地址和端口;向所述網絡服務器傳輸所述傳送消息;接收來自所 述網絡服務器的響應消息,其中所述響應消息包括如所述網絡服務器所看到的所述瀏覽器 的第二IP地址和第二端口號,所述第二IP地址和所述第二端口號是所述被請求的地址和 端口信息,所述響應消息還包括至少一部分所述網絡資源;基于所述第二IP地址和所述 第二端口號確定在所述網絡瀏覽器和所述網絡服務器之間耦合的至少一個網絡地址轉換 (NetworkAddressTranslation,NAT)設備的特性。
[0011] 在另一項實施例中,本發(fā)明包括一種在網絡服務器中執(zhí)行的方法,所述方法包括: 接收傳送消息,其中所述傳送消息是封裝后的請求消息,所述請求消息包括來自網絡瀏覽 器的對網絡資源的請求和對應于反射標記的反射請求,所述傳送消息包括至少一個NAT設 備為所述網絡瀏覽器生成的IP地址和端口號;響應于接收對所述網絡資源的所述請求,獲 取所述網絡資源;響應于接收所述反射請求,將所述IP地址和所述端口號插入在響應消息 中,其中所述響應消息還包括至少一部分所述網絡資源;向所述網絡瀏覽器傳輸所述響應 消息。
[0012] 在又一項實施例中,本發(fā)明包括一種計算機程序產品,所述計算機程序產品包括 存儲在非瞬時性計算機可讀介質上的計算機可執(zhí)行指令,使得當處理器執(zhí)行所述計算機可 執(zhí)行指令時使網絡瀏覽器執(zhí)行以下操作:去引用標識網絡資源和反射標記的超鏈接;創(chuàng)建 請求消息,所述請求消息包括對所述網絡資源的請求和對應于所述反射標記的反射請求, 其中所述反射請求是包括所述網絡資源的網絡服務器對地址和端口信息的請求;將所述請 求消息封裝在傳送消息中,所述傳送消息包括所述網絡瀏覽器的IP地址和端口;向所述網 絡服務器發(fā)送所述傳送消息;從所述網絡服務器獲取響應消息,其中所述響應消息包括如 所述網絡服務器所看到的所述瀏覽器的第二IP地址和第二端口號,所述第二IP地址和所 述第二端口號是所述被請求的地址和端口信息,所述響應消息還包括至少一部分所述網絡 資源;基于所述第二IP地址和所述第二端口號確定在所述網絡瀏覽器和所述網絡服務器 之間耦合的至少一個NAT設備的存在和類型。
[0013] 結合附圖和權利要求書可以從以下的詳細描述中更清楚地理解這些和其它特征。
【附圖說明】
[0014] 為了更透徹地理解本發(fā)明,現(xiàn)參閱結合附圖和【具體實施方式】而描述的以下簡要說 明,其中的相同參考標號表不相同部分。
[0015] 圖1為網絡地址轉換(networkaddresstranslation,NAT)監(jiān)控架構的實施例的 示意圖。
[0016] 圖2為E-STUN協(xié)議消息格式的實施例。
[0017] 圖3示出了用于確定NAT映射行為的網絡架構中通信的實施例。
[0018] 圖4示出了用于確定NAT過濾行為的網絡架構中通信的實施例。
[0019] 圖5為圖示確定NAT過濾和/或映射的方法的實施例的協(xié)議圖。
[0020] 圖6示出了服務器的實施例。
【具體實施方式】
[0021] 首先應理解,盡管下文提供一項或多項實施例的說明性實施方案,但所公開的系 統(tǒng)和/或方法可使用任何數(shù)目的技術來實施,無論該技術是當前已知還是現(xiàn)有的。本發(fā)明 決不應限于下文所說明的說明性實施方案、附圖和技術,包括本文所說明并描述的示例性 設計和實施方案,而是可在所附權利要求書的范圍以及其等效物的完整范圍內修改。
[0022] 去引用URI可以指獲取通過特定URI標識的資源。URI去引用可以表示網絡瀏覽 器到網絡服務器的請求,該請求可以通過鼠標點擊或鍵擊等來觸發(fā)。去引用協(xié)議可包括這 些協(xié)議的事務、加密(例如,傳輸層安全(TransportLayerSecurity,TLS)協(xié)議)、認證、 授權、消息完整性以及重定向。
[0023] 在會話期間,網絡瀏覽器可以自動訪問或響應于用戶動作而訪問超文本標記語言 (HypertextMarkupLanguage,HTML)頁面中的數(shù)十到數(shù)百個URI鏈接。HTML頁面可包括 若干不同的成分,例如一個或多個嵌入圖像、嵌入JavaScript(JavaScript,JS)和HTML元 素。網絡瀏覽器可以提出接收和加載所有這些成分的多個請求,這些成分各自具有對應的 URI。瀏覽器提出的連續(xù)超文本傳輸協(xié)議(HypertextTransferProtocol,HTTP)請求可以 有關于顯示圖像和運行代碼時的頁面內容。這些請求還用于在網站上加載廣告或向其它跟 蹤網站發(fā)送信息。
[0024] 這個過程在每次加載新網頁時重復。HTML頁面中的鏈接可指向不同的IP地址, 在其中可以使用傳輸控制協(xié)議(TransmissionControlProtocol,TCP)或UDP傳送。NAT 行為對于TCP和UDP而言是相同的。TCP下的NAT映射和過濾在日期為2008年8月的請 求注解(RequestforComment,RFC)備忘錄5382的名稱為"TCP下的NAT行為要求(NAT BehavioralRequirementsforTCP)"中進行了歸類,該文章的全部內容以引入的方式并 入本文本中。類似地,UDP下的NAT行為在日期為2007年1月的RFC備忘錄4787的名稱 為"單播UDP下的網絡地址轉換(NetworkAddressTranslation,NAT)行為要求(Network AddressTranslation(NAT)BehavioralRequirementsforUnicastUDP)"中進行了說明, 該文章的全部內容以引入的方式并入本文本中。由于網絡瀏覽器通過UDP和TCP請求持續(xù) 更新,所以利用瀏覽器的HTTP流量來發(fā)現(xiàn)和監(jiān)控NAT行為可能是有利的。該方法利用傳統(tǒng) STUN和TURN協(xié)議來規(guī)避潛在問題,例如不受支持的網絡、防火墻以及開銷挑戰(zhàn)。
[0025] 本文中公開的是通過基于網絡瀏覽器的通信中的URI去引用來監(jiān)控NAT行為的系 統(tǒng)、方法、裝置和計算機程序產品。可以重用URI去引用協(xié)議以在沒有專用STUN或TURN服 務器的情況下簡化NAT發(fā)現(xiàn)過程,這允許NAT檢測和監(jiān)控在用戶瀏覽網站時成為幾乎免費 的副產品。該方法可以通過實施新的NAT發(fā)現(xiàn)協(xié)議來實現(xiàn)。一種新的協(xié)議,本文有時稱為 嵌入STUN(embeddedSTUN,E-STUN),可以通過將協(xié)議集成在包括HTTP1.1和可擴展的消 息和呈現(xiàn)協(xié)議(ExtensibleMessagingandPresenceProtocol,XMPP)等各種URI去引用 協(xié)議中來簡化NAT監(jiān)控。可以將一種標記嵌入在URI中以觸發(fā)將如接收方網絡服務器所看 到的IP地址和端口信息的請求嵌入在網絡資源請求消息中的請求。該請求消息可以穿越 網絡地址轉換設備,這影響到網絡服務器所看到的IP地址和端口信息。通過重用現(xiàn)有HTTP 和XMPP協(xié)議,E-STUN嵌入流量能夠經過阻礙傳統(tǒng)NAT穿越協(xié)議的防火墻。另外,可以監(jiān)控 NAT行為而沒有對瀏覽器或服務器產生額外成本,以便檢測因響應于負載增加或策略更新 而發(fā)生的NAT映射或過濾變化。
[0026] 通過使用各種HTML版本5(HTMLversion5,HTML5)語義標記機制,包括微數(shù)據 (例如,HTML5)、屬性資源描述框架(ResourceDescriptionFrameworkinattribute, RDFa)、微格式和HTML5rel屬性,E-STUN業(yè)務可以以頁面和各個URI方案在針對URI權限 的超文本中顯式地公告。在另一實施例中,E-STUN業(yè)務可以通過在URI去引用期間自動返 回地址來隱式地公告。此外,E-STUN業(yè)務可以結合服務器機制和/或客戶端機制將E-STUN 協(xié)議集成到URI去引用過程中并基于收集的數(shù)據來監(jiān)控NAT行為。
[0027] 圖1為NAT監(jiān)控架構100的實施例的示意圖。架構100可包括網頁或域(domain, D0M) 110、網絡瀏覽器 120、網絡地址轉換(NetworkAddressTranslation,NAT)設備 130 (有時簡稱為NAT)、HTTP服務器140以及XMPP服務器150。盡管出于說明目的只示出了 一個網絡瀏覽器、一個網頁和兩個服務器,但是在網絡系統(tǒng)中可使用任意數(shù)目的每個部件。 NAT設備130可以存在,也可以不存在。"NAT"代表網絡地址轉換,是可以通過一個或多個 設備實施的執(zhí)行網絡地址轉換的過程。因此,盡管出于說明目的在圖1示出了一個NAT設 備130,但是NAT過程可以通過兩個或更多設備的組合來執(zhí)行。此外,NAT設備在一些實例 中可以稱為網絡地址轉換器。網頁110可以是具有一個或多個URI,例如HTTPURI112的 常規(guī)HTML頁面。網頁110還可使用另一類型的URI,例如XMPPURI114。
[0028] 在一實施例中,用戶可調用URI鏈接(例如,對應于HTTPURI112或XMPPURI 114)或鏈接可以指向瀏覽器120自動下載的資源。該鏈接可經過URI去引用過程,瀏覽器 通過該過程可向由URI標識的服務器(例如,服務器1 140或服務器2 150)發(fā)送一些消息, 以便獲取一些數(shù)據(例如,HTML、XML)。HTTPURI112和XMPPURI114可包括網絡資源以 及標記,本文有時稱為反射標記,該標記用于調用E-STUN協(xié)議。本文公開了反射標記的潛