e、 send/sendto、recv/recvfrom、getaddrinfo)操作。
[0112] b)TCP連接監(jiān)視器520也可W通過(guò)調(diào)用polio函數(shù)檢查指示流套接字對(duì)方關(guān)閉連 接的PO化RDHUP來(lái)識(shí)別服務(wù)器發(fā)起的TCP連接關(guān)閉,或者關(guān)閉(shutdown)連接的寫(xiě)半部 分,作為返回值。
[0113] C)TCP連接監(jiān)視器520也可W通過(guò)監(jiān)視TCP連接狀態(tài)改變?yōu)榛?SE_WA口或LAST_ ACK狀態(tài)來(lái)識(shí)別服務(wù)器發(fā)起的TCP連接關(guān)閉。 陽(yáng)114] d)TCP連接監(jiān)視器520可W關(guān)閉(shutdown)TCP連接。
[0115] e)TCP連接監(jiān)視器520可W在孤立模式下發(fā)起TCP連接的關(guān)閉(shutdown)。 陽(yáng)116] f) TCP連接監(jiān)視器520可W是套接字調(diào)用的包封(例如,在LIBC庫(kù)中)。
[0117] g)TCP連接監(jiān)視器520可W是修改的套接字層。
[0118] TCP連接控制器530可W是在智能電話機(jī)上部署的獨(dú)立進(jìn)程。TCP連接控制器530 作為通知主動(dòng)關(guān)閉不活動(dòng)TCP連接的決定和時(shí)間的決定單元與TCP連接監(jiān)視器520交互。
[0119] TCP連接控制器530的角色和責(zé)任可W包括但不限于W下:
[0120] a)TCP連接控制器530可W發(fā)起TCP連接的終端側(cè)關(guān)閉的通知; 陽(yáng)121] b)TCP連接控制器530可W連同調(diào)用的任何TCP連接或關(guān)閉函數(shù)一起協(xié)調(diào)一個(gè)或 多個(gè)TCP連接監(jiān)視器(例如,TCP連接監(jiān)視器520)的批量TCP連接關(guān)閉。 陽(yáng)122] C)TCP連接控制器530可W借助通過(guò)原始套接字分組捕獲庫(kù)(例如,Iibpcap)(未 示出)監(jiān)視網(wǎng)絡(luò)層,連同任何發(fā)送或接收數(shù)據(jù)分組一起協(xié)調(diào)一個(gè)或多個(gè)TCP連接監(jiān)視器 (例如,TCP連接監(jiān)視器520)的批量TCP連接關(guān)閉。
[0123]d)TCP連接控制器530可W通過(guò)監(jiān)視網(wǎng)絡(luò)統(tǒng)計(jì)中的分組計(jì)數(shù)改變,連同任何發(fā)送 或接收數(shù)據(jù)分組一起協(xié)調(diào)一個(gè)或多個(gè)TCP連接監(jiān)視器(例如,TCP連接監(jiān)視器520)的批量 TCP連接關(guān)閉。
[0124] 本公開(kāi)提供但不限于用于對(duì)抗因隨機(jī)的服務(wù)器發(fā)起的TCP連接關(guān)閉造成的功耗 實(shí)現(xiàn)更高的電池壽命的W下方法。如之前所述,該TCP連接關(guān)閉方法包括如圖7所示的主 動(dòng)TCP連接關(guān)閉710、批量延遲的TCP連接關(guān)閉720、W及組合的主動(dòng)和批量TCP連接關(guān)閉 730。 陽(yáng)1巧] 豐動(dòng)TCP連接關(guān)閉 陽(yáng)126] 圖3A示出根據(jù)本公開(kāi)的示范性實(shí)施例的主動(dòng)TCP連接關(guān)閉,其可W由圖1的客戶 機(jī)100發(fā)起。
[0127] 參照?qǐng)D3A,不活動(dòng)的TCP連接41、42、和43被主動(dòng)關(guān)閉,導(dǎo)致沒(méi)有附加的無(wú)線電狀 態(tài)轉(zhuǎn)變。運(yùn)是因?yàn)門(mén)CP連接41、42、和43的關(guān)閉時(shí)段可W被配置為無(wú)線電活動(dòng)時(shí)段的最小 時(shí)間。不活動(dòng)非持久TCP連接(例如,連接41、42、和43)被客戶機(jī)100首先終止??蛻魴C(jī) 100計(jì)算服務(wù)器發(fā)起的TCP連接關(guān)閉的服務(wù)器超時(shí),而且在安全關(guān)閉時(shí)間期間在計(jì)算的服 務(wù)器超時(shí)之前立即終止不活動(dòng)非持久TCP連接。
[0128]A卵-A11、A卵-B12、和App-C13在操作20同時(shí)發(fā)起數(shù)據(jù)同步操作。由于數(shù)據(jù)同 步操作,無(wú)線電狀態(tài)在操作60從空閑狀態(tài)轉(zhuǎn)變?yōu)榛顒?dòng)狀態(tài)一次。例如,如圖3A所示將圖2 所示的四個(gè)無(wú)線電狀態(tài)轉(zhuǎn)變減少為一次轉(zhuǎn)變。在活動(dòng)無(wú)線電狀態(tài)下,功耗保持,同時(shí)狀態(tài)為 活動(dòng)。利用該機(jī)會(huì),圖5的TCP連接控制器530關(guān)閉仍不活動(dòng)但已建立的TCP連接41、42、 和43。 陽(yáng)129] 相比之下,如圖2所示,為了關(guān)閉S個(gè)應(yīng)用程序A卵-A 11、A卵-B 12、和App-C 13 的TCP連接41、42、和43,可W有四個(gè)瞬時(shí)轉(zhuǎn)變51至54用于從空閑狀態(tài)改變到活動(dòng)狀態(tài)的 無(wú)線電狀態(tài)。隨著無(wú)線電狀態(tài)改變的次數(shù)增加,客戶機(jī)100的功耗升高。
[0130] 防護(hù)超時(shí)是從正在進(jìn)行的數(shù)據(jù)傳送到作出主動(dòng)TCP連接關(guān)閉決定的決定屬性。 陽(yáng)131] 圖9A示出根據(jù)本公開(kāi)的示范性實(shí)施例的主動(dòng)TCP連接關(guān)閉900。在一些實(shí)施例 中,應(yīng)用程序(應(yīng)用程序1)上的TCP連接控制器910和TCP連接監(jiān)視器920彼此交互。
[0132] 如圖9A所示,TCP連接控制器910和TCP連接監(jiān)視器920利用W下通信操作來(lái)交 互:
[0133]a)具有逾期的防護(hù)超時(shí)的TCP連接監(jiān)視器920分別在操作931和932向TCP連接 控制器910登記主動(dòng)TCP關(guān)閉。
[0134]b)TCP連接控制器910在操作933-1等待TCP連接或關(guān)閉,在操作933-2等待新分 組事務(wù),或在操作933-3等待超時(shí)期滿。當(dāng)它們中的一個(gè)發(fā)生時(shí),TCP連接控制器910在操 作934向TCP連接監(jiān)視器920發(fā)送主動(dòng)關(guān)閉消息。
[0135] 圖9B示出根據(jù)本公開(kāi)的另一示范性實(shí)施例的主動(dòng)TCP連接關(guān)閉950,其基于(圖 9A的)TCP連接控制器910不可用的情形??蒞基于應(yīng)用程序(應(yīng)用程序1)部署運(yùn)樣的孤 立模式。
[0136]參照?qǐng)D9B,TCP連接監(jiān)視器920配備有用于在孤立模式下發(fā)起主動(dòng)TCP連接關(guān)閉 950的功能。具有逾期的防護(hù)超時(shí)941的TCP連接監(jiān)視器920執(zhí)行主動(dòng)TCP連接關(guān)閉942。 陽(yáng)。7] 化量延巧的TCP連接關(guān)閉
[0138] 圖3B示出根據(jù)本公開(kāi)的示范性實(shí)施例的批量延遲的TCP連接關(guān)閉,其發(fā)起多個(gè) TCP連接41、42、和43的關(guān)閉作為對(duì)不活動(dòng)非持久連接的批處理。圖2的方法防止從空閑 狀態(tài)到活動(dòng)狀態(tài)的重復(fù)的無(wú)線電狀態(tài)轉(zhuǎn)變。
[0139] 為了作為批處理關(guān)閉TCP連接41、42、和43,導(dǎo)致從空閑狀態(tài)到活動(dòng)狀態(tài)的單個(gè)無(wú) 線電轉(zhuǎn)變72。將不活動(dòng)非持久TCP連接與其他TCP連接同時(shí)終止。當(dāng)服務(wù)器發(fā)起的TCP 連接不活動(dòng)時(shí),將不活動(dòng)TCP連接(例如,連接41)作為與其他TCP連接(例如,連接42和 43)的連接或關(guān)閉的批處理而終止。
[0140] 參照?qǐng)D3B,A卵-A11、A卵-B12、和App-C13同時(shí)發(fā)起數(shù)據(jù)同步操作20。由于數(shù) 據(jù)同步操作,無(wú)線電狀態(tài)在操作71從空閑狀態(tài)轉(zhuǎn)變?yōu)榛顒?dòng)狀態(tài)。然而,由于改變的數(shù)據(jù)傳 送活動(dòng)次數(shù),可W獨(dú)立地延遲TCP連接關(guān)閉。 陽(yáng)141]防護(hù)超時(shí)值對(duì)于應(yīng)用程序10的TCP連接41、42、和43中的每一個(gè)改變。因此,通 過(guò)在操作30中一起批處理全部TCP連接41、42、和43來(lái)防止多次無(wú)線電狀態(tài)轉(zhuǎn)變。例如, 如圖2所示的四次無(wú)線電狀態(tài)轉(zhuǎn)變減少為兩次轉(zhuǎn)變71、72。
[0142]圖IOA和IOB分別示出根據(jù)本公開(kāi)的示范性實(shí)施例的延遲TCP連接關(guān)閉的批量操 作1000-1和1000-2。如圖圖IOA和IOB所示,TCP連接控制器1010通常在相應(yīng)的應(yīng)用程 序(應(yīng)用程序1、應(yīng)用程序2和應(yīng)用程序3)處與多個(gè)TCP連接監(jiān)視器1021、1022、和1023 保持經(jīng)常的交互。 陽(yáng)143]如圖IOA和IOB所示,TCP連接控制器1010利用W下通信操作與TCP連接監(jiān)視器1021、1022、和1023交互:
[0144] a)具有逾期的防護(hù)超時(shí)1031的TCP連接監(jiān)視器1021、1022、和1023在圖IOA的 操作1000-1W及1032至1034中幾乎同時(shí)通過(guò)TCP連接控制器1010登記主動(dòng)TCP批量關(guān) 閉。
[0145] b) TCP連接控制器1010在圖IOB的操作1000-2 W及1035等待主動(dòng)TCP關(guān)閉或最 小服務(wù)器超時(shí),并且在其發(fā)生時(shí)發(fā)送TCP批量關(guān)閉消息。 陽(yáng)146]C)在通過(guò)操作1036從TCP連接控制器1010接收主動(dòng)TCP批量關(guān)閉消息之后,TCP連接監(jiān)視器1021、1022、和1023分別批處理和關(guān)閉TCP連接。 陽(yáng)147] 紀(jì)合的豐動(dòng)巧化量TCP連接關(guān)閉
[0148] 圖8示出根據(jù)本公開(kāi)的示范性實(shí)施例的組合的主動(dòng)和批量TCP連接關(guān)閉。
[0149] 該方法包括主動(dòng)TCP連接關(guān)閉和批量TCP連接關(guān)閉的組合??蛻魴C(jī)100在發(fā)生服 務(wù)器發(fā)起的關(guān)閉之前終止不活動(dòng)非持久TCP連接,或者與其他TCP連接建立或關(guān)閉同時(shí)終 止不活動(dòng)非持久TCP連接。客戶機(jī)在主動(dòng)關(guān)閉模式下正常工作。當(dāng)由于主動(dòng)關(guān)閉而預(yù)期可 觀的無(wú)線電拖尾增加時(shí),客戶機(jī)100進(jìn)入批量關(guān)閉模式。例如,當(dāng) 客戶機(jī)100在批量關(guān)閉模式下工作。例如,當(dāng)te。。fdTlm。。ut<tu?P。wf時(shí),客戶機(jī)100在主動(dòng)關(guān)閉 模式下工作。該方法對(duì)應(yīng)于兩種方法的功率節(jié)省益處的累積。使用預(yù)定的防護(hù)超時(shí)值。
[0150] 圖11示出根據(jù)本公開(kāi)的示范性實(shí)施例的用于TCP控制的TCP連接監(jiān)視器1102與 TCP連接控制器1104之間的總體流。TCP連接監(jiān)視器1102執(zhí)行W下操作: 陽(yáng)151] 1)TCP連接監(jiān)視器1102在操作1111鉤掛諸如socket、connect、read、w;rite等套 接字應(yīng)用程序編程接口API。 陽(yáng)152] 2)TCP連接監(jiān)視器1102在操作1112檢查是否使用TCP連接相關(guān)的API。如果是 運(yùn)樣,則TCP連接監(jiān)視器1102進(jìn)入操作1113。否則,TCP連接監(jiān)視器1102進(jìn)入操作1116。 陽(yáng)153] 3)TCP連接監(jiān)視器1102在創(chuàng)建新套接字時(shí)在TCP連接監(jiān)視器范圍中創(chuàng)建新條目。 否則,TCP連接監(jiān)視器1102在操作1113利用諸如時(shí)間戳、防護(hù)超時(shí)、或服務(wù)器超時(shí)的元數(shù) 據(jù)更新已有的TCP連接列表(或條目)。 陽(yáng)154]TCP連接監(jiān)視器1102在操作1122將TCP元數(shù)據(jù)更新到TCP連接控制器1104中用 于批處理TCP關(guān)閉。
[0155] 當(dāng)連接是服務(wù)器發(fā)起的關(guān)閉時(shí),TCP連接監(jiān)視器1102進(jìn)入操作1114。否則,TCP 連接監(jiān)視器1102進(jìn)入操作1116。 陽(yáng)156] 4)TCP連接監(jiān)視器1102在操作1114基于TCP套接字讀/寫(xiě)操作的時(shí)間戳計(jì)算防 護(hù)超時(shí)并觸發(fā)用于防護(hù)超時(shí)期滿通知的定時(shí)器。 陽(yáng)157] 5)TCP連接監(jiān)視器1102在操作1115 -旦防護(hù)超時(shí)期滿或從TCP連接控制器1104 接收批量關(guān)閉通知就關(guān)閉TCP連接。 陽(yáng)158] 6)TCP連接監(jiān)視器1102在操作1116調(diào)用相應(yīng)的LIBCAPI。
[0159] TCP連接控制器1104執(zhí)行W下操作: 陽(yáng)160] DTCP連接控制器1104在操作1121等待來(lái)自TCP連接監(jiān)視器1102的請(qǐng)求。 陽(yáng)161] 2)當(dāng)接收來(lái)自TCP連接監(jiān)視器1102的請(qǐng)求時(shí),TCP