查詢以獲得附加服務信息(430)。在圖1A-1B所示的示例中,對等STA 103是針對客戶端STA 101的潛在候選服務提供者,而STA 102和104不是。
[0051]對于一些實施例,客戶端STA 101分析SI數(shù)據(jù)以確定對等STA 102-104中的哪一個STA(如果有的話)被配置成提供P2P服務(440)。例如,一些STA(盡管能夠與其他對等STA進行P2P通信)可能未被配置成主存或提供P2P服務(例如,UPnP, Bonjour, W1-Fi顯示、打印、游戲、和/或文件共享服務)。因而,當此類對等STA不提供任何P2P服務時,在后續(xù)服務發(fā)現(xiàn)操作期間查詢此類對等STA以獲得特定P2P服務(例如在步驟470中)可能是沒有實際意義的。
[0052]此外,對于一些實施例,客戶端STA 101可以確定對等STA 102-104中的任一者是否更新了服務記錄(450)。例如,客戶端STA可能由于與該對等設備執(zhí)行的在先關聯(lián)和/或設備發(fā)現(xiàn)操作(例如基于圖2的STA表242中存儲的數(shù)據(jù))已經(jīng)具有對于對等STA所提供的一個或多個P2P服務的知識。因而,再次查詢此類對等設備以獲得特定P2P服務也可能是沒有實際意義的(例如在步驟470中),除非它們的服務已經(jīng)改變。
[0053]此外,對于一些實施例,客戶端STA 101可以確定對等STA 102-104中的任一者是否提供匹配客戶端STA 101所提供的服務的服務類型(460)。例如,要請求打印服務的客戶端STA可能對于與僅提供游戲服務的對等STA建立連接不感興趣。因而,如果此類對等STA不提供任何期望類型的服務,則查詢該對等STA以獲得特定P2P服務(例如在步驟470中)可能是沒有實際意義的。
[0054]此外,對于一些實施例,客戶端STA 101可以確定是否存在每一對等STA的任何匹配支持服務查詢串和/或對應散列條目(465)。如果存在匹配支持服務查詢串和/或對應的散列條目,則處理可以在470處繼續(xù)。否則,處理可以返回至430。
[0055]相應地,客戶端STA 101可以分析接收自每一對等STA 102-104的SI數(shù)據(jù)(430和440,以及可任選地450、460和/或465)直到客戶端STA 101確定對等STA102-104之一(例如STA 103)能夠提供P2P服務和/或已經(jīng)完成了分析所有收到的SI數(shù)據(jù)(例如,來自每一對等STA 102-104) ο以此方式,客戶端STA 101可以縮減要與其發(fā)起后續(xù)服務發(fā)現(xiàn)操作的潛在候選列表。具體地,客戶端STA 101可以基于所選對等STA將能夠為客戶端STA101提供有用或相關服務的可能性來選擇要與其執(zhí)行服務發(fā)現(xiàn)操作的對等STA 102-104中的一者或多者。
[0056]客戶端STA 101接著查詢所選對等STA中的每一者以確定或確認它們是否提供特定服務(470)。例如,期望打印文檔的客戶端STA 101可確定或確認對等STA103提供打印服務??蛻舳薙TA 101接著可以將SD_Req幀傳送到對等STA 103以請求要用于它旨在打印的文檔的具體打印服務。對等STA 103可以通過將SD_Resp幀傳送到客戶端STA 101以指示對等STA 103是否支持客戶端STA 101所請求的特定打印服務來作出響應。此外,SD_Resp幀還可包括對等STA 103被配置成支持的所有服務的詳細列表。
[0057]如果SD_Resp幀指示對等STA 103支持所請求的服務,則客戶端STA 101接著可以使用早先提供的管理信息(例如在P_Resp幀內)來與對等STA 103建立P2P連接。在一些情形中,客戶端STA 101可以確定多個對等STA能夠提供所請求的服務。因而,對于一些實施例,客戶端STA 101可以向用戶提供要選擇與匹配的對等STA中的哪個STA(如果有的話)建立連接的選項。
[0058]圖5示出了根據(jù)一些實施例的管理幀500的框圖。管理幀500可對應于探測響應、探測請求、信標、和/或可以在P2P設備發(fā)現(xiàn)操作期間在對等STA之間交換的任何其他類型的數(shù)據(jù)幀(例如控制幀或管理幀)。管理幀500包括MAC報頭501、之后是幀主體510以及幀校驗序列(FCS) 508。MAC報頭501可包括目的地MAC地址和源MAC地址兩者。例如,每一 STA被指派由設備的制造商編程在其中的唯一 MAC地址。因而,每一 MAC地址可用于唯一地標識個體設備。FCS 508可以是校驗和或用于差錯檢測的其他合適的技術。
[0059]幀主體510包括管理信息502、服務發(fā)現(xiàn)(SD)位503、以及SI數(shù)據(jù)520。如上所討論的,管理信息502可包括可用于定位管理幀500源自的STA并且與該STA建立連接的任何信息(例如,此類信息可包括接收機MAC地址和/或支持數(shù)據(jù)率)。SD位503指示始發(fā)STA是否能夠參與服務發(fā)現(xiàn)操作(例如,STA是否能夠傳送SD_Req幀和/或對SD_Req幀作出響應)。例如,SD位503的激活可指示STA能夠執(zhí)行服務發(fā)現(xiàn)操作。然而注意到,SD位503可能不指示STA實際上是否具有要提供的P2P服務。
[0060]SI數(shù)據(jù)520包括服務信息可用(SIA)位504、服務更新指示符(SUI)字段505、以及服務類型字段506。對于至少一些實施例,SI數(shù)據(jù)520還可包括用于存儲指示對應設備所提供的全部的不同服務類型的經(jīng)散列或以其他方式經(jīng)壓縮的信息的散列支持服務查詢(SSQ)串字段507。SIA位504指示始發(fā)STA是否被配置成提供一個或多個P2P服務。例如,SIA位504的激活可指示STA能夠提供P2P服務。如上所提及的,SD位503僅指示STA是否能夠執(zhí)行服務發(fā)現(xiàn)操作。因而,SD位503可以被激活,而同一管理幀500的SIA位504被解除激活。
[0061]SUI字段505可以存儲在始發(fā)STA的服務每一次改變時遞增的數(shù)值。例如,如果提供打印服務的STA稍后開始提供游戲服務,則該STA可以遞增存儲在其SUI字段505中的值。如果始發(fā)STA后續(xù)開始提供不同種類的游戲服務,則存儲在SUI字段505中的值可以再次被遞增。如在以上實施例中所描述的,對等STA可以尋找存儲在SUI字段505中的值的改變以確定它們是否應當對始發(fā)STA執(zhí)行另一服務發(fā)現(xiàn)詢問。
[0062]服務類型字段506可包括始發(fā)STA能夠提供的P2P服務類型列表。例如,如果STA支持多種P2P服務,則服務類型字段506可指定所有不同類型的P2P服務受到支持(例如,UPnP,Bonjour,W1-Fi顯示、打印、游戲、文件共享等)。如在以上實施例中所描述的,STA可以過濾掉不提供期望類型的P2P服務的潛在候選。
[0063]此外,服務類型字段506可以被散列或壓縮以將所有不同的服務類型編碼到幀主體510的大小限制內。示例性編碼算法可包括服務協(xié)議類型的陣列或位映射:
[0064].如果STA所使用的協(xié)議類型的數(shù)值小于8(或16),則1_八位位組(或2_八位位組)位映射可用于描述協(xié)議類型;以及
[0065].如果協(xié)議類型具有大于8 (或16)的數(shù)值,則協(xié)議類型的陣列可用于描述協(xié)議類型。
[0066]更具體地,對于至少一個實施例,經(jīng)散列的SSQ串字段507可采用以下編碼算法中的一者或多者:
[0067]?如果SI數(shù)據(jù)520中的支持服務查詢串的數(shù)目小于閾值(例如小于8),則可以為每一查詢串創(chuàng)建散列值陣列。例如,可以針對查詢串中的所有八位位組使用XOR(異或)運算來為每一查詢串創(chuàng)建散列值;以及
[0068].如果查詢服務是“事務性的”(例如,第一查詢串是固定的,之后是描述期望事務的可變串),則僅對查詢串的第一部分(即靜態(tài)且被截短的部分)進行散列。例如,對應陣列可具有帶兩個字段的條目:用于計算散列的查詢的長度,以及被截短為給定長度的查詢串的散列。
[0069]注意到,上述壓縮算法是僅出于解說目的來提供的,并且并非是實現(xiàn)上述任何實施例所必需的。
[0070]通過將SI數(shù)據(jù)520編碼到管理幀500的幀主體510中(例如作為一個或多個信息元素),幾乎不用對現(xiàn)有P2P W1-Fi系統(tǒng)的架構進行修改就可實現(xiàn)本發(fā)明的各實施例。具體來說,使用探測請求、探測響應、和/或信標幀以促成服務信息的交換允許本發(fā)明的各實施例在不背離802.11標準的情況下來實現(xiàn)。
[0071]圖6A-6B描繪其中可實現(xiàn)本發(fā)明的各實施例的另一 P2P W1-Fi系統(tǒng)600。系統(tǒng)600被示為包括位于包括對等STA 102-104的P2P群610的W1-Fi通信射程內的客戶端STA101。對等STA 103和104經(jīng)由對等STA 102 ( S卩“群主”)連接到P2P群610。具體來說,群主STA 102充當接入點,其他對等STA 103和104可以通過該接入點來通信。盡管為了簡明起見P2P群610被示為僅包括三個對等STA102-104,但應理解,P2P群610可包括任意數(shù)目的STA。
[0072]作為群主,對等STA 102可以執(zhí)行接入點執(zhí)行的許多功能。例如,如圖6A所示,STA 102可以出于同步目的以常規(guī)區(qū)間來廣播包含群會話信息(GSI)的信標幀。信標幀還可廣告工作參數(shù)、支持能力、和/或P2P群610內的成員關系。此外,作為P2P群610的成員,對等STA 103和104不直接對客戶端STA 101廣播的探測請求作出響應。相反,如圖6B所示,群主STA 102代表P2P群610對探測請求作出響應。
[0073]客戶端STA 101可因而通過監(jiān)聽群主STA 102廣播的信標幀和/或通過向群主STA 102傳送P_Req幀并且監(jiān)聽P_Resp幀來發(fā)起設備發(fā)現(xiàn)操作。信標和P_Resp幀兩者均可包括客戶端STA 101可用來加入P2P群610和/或與P2P群610的個體成員STA 102-104建立P2P連接的管理信息。換言之,客戶端STA 101可以基于接收自群主STA 102的單個通信來發(fā)現(xiàn)所有對等STA 102-104。
[0074]如上所述,P_Req幀和/或信標幀可包括對應于指示客戶端STA 101提供哪些服務的一個或多個服務查詢串的散列值列表,而P_Resp幀可包括對應于指示對等STA 102-103中的對應STA支持哪些服務的一個或多個服務查詢串的散列值列表。以此方式,客戶端STA
101可以在發(fā)起服務發(fā)現(xiàn)操作之前確定對等STA 102-104中的每一者支持哪些服務。
[0075]客戶端STA 101分析信標和/或P_Resp幀以定位和標識對等STA 102-104,并且接著可以發(fā)起與對等STA 102-104中的一者或多者的服務發(fā)現(xiàn)操作。例如,客戶端STA 101稍后可以將SD_Req幀發(fā)送到對等STA 102-104中的一者或多者以確認對應的對等STA所支持的具體服務。對等STA 102-104中的每一者通過將SD_Resp幀發(fā)送回客戶端STA 101來對收到的SD_Req幀(如果有的話)作出響應??蛻舳薙TA 101接著可以分析SD_Resp幀中的每一者以確認對應的對等STA是否可以提供客戶端STA 101正請求的特定服務。以此方式,一旦客戶端STA 101發(fā)現(xiàn)P2P群610的任何成員(例如對等STA 102-104),則客戶端STA 101可以使用P2P協(xié)議與P2P群610的該成員通信。
[0076]如果客戶端STA 101確定對等STA 102-104之一提供所請求的服務,則客戶端STA101接著可以使用P_Resp和