一種ack信息的發(fā)送方法及裝置制造方法
【專(zhuān)利摘要】一種ACK信息發(fā)送方法及裝置,用以解決現(xiàn)有技術(shù)中數(shù)據(jù)包的發(fā)送速率較低的問(wèn)題。該方法接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包,并確定該數(shù)據(jù)包所屬的會(huì)話流,當(dāng)確定該數(shù)據(jù)包為該會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向發(fā)送方返回ACK信息。通過(guò)上述方法,發(fā)送方在初始只向接收方發(fā)送一個(gè)數(shù)據(jù)包時(shí),接收方可及時(shí)返回相應(yīng)的ACK信息,而無(wú)需等待200ms后再返回ACK信息,因此可提高發(fā)送方根據(jù)該ACK信息確定RTT的準(zhǔn)確性,進(jìn)而加快擁塞礦口增大的速度,提高數(shù)據(jù)包的發(fā)送效率。
【專(zhuān)利說(shuō)明】—種ACK信息的發(fā)送方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤指一種ACK信息的發(fā)送方法及裝置。
【背景技術(shù)】 [0002]目前,傳輸控制協(xié)議/ 互聯(lián)網(wǎng)協(xié)議(Transmission Control Protocol/InternetProtocol, TCP/IP)協(xié)議已經(jīng)被廣泛的應(yīng)用在數(shù)據(jù)包傳輸領(lǐng)域。發(fā)送方和接收方在通過(guò)TCP/IP協(xié)議傳輸數(shù)據(jù)包時(shí),接收方接收到發(fā)送方發(fā)送的數(shù)據(jù)包后,向發(fā)送方返回確認(rèn)字符(ACKnowledgement,ACK)信息,用于使發(fā)送方確認(rèn)接收方已經(jīng)接收到的數(shù)據(jù)包,并向發(fā)送方請(qǐng)求后續(xù)的數(shù)據(jù)包。
[0003]在RFC1122協(xié)議中規(guī)定:接收方針對(duì)一個(gè)會(huì)話流,每接收到發(fā)送方發(fā)送的該會(huì)話流中的兩個(gè)數(shù)據(jù)包就向發(fā)送方返回一個(gè)ACK信息,如果在接收到第一個(gè)數(shù)據(jù)包后的200ms內(nèi)未接收到第二個(gè)數(shù)據(jù)包,也向發(fā)送方返回ACK信息。
[0004]發(fā)送方針對(duì)接收到的每個(gè)ACK信息,根據(jù)接收到該ACK信息的時(shí)刻以及發(fā)送相應(yīng)數(shù)據(jù)包的時(shí)刻,確定該發(fā)送方到接收方的往返時(shí)延(Round-Trip Time, RTT),并根據(jù)確定的各RTT確定擁塞窗口(該擁塞窗口即為下一次要向接收方發(fā)送數(shù)據(jù)包的數(shù)量)。具體的,如果各RTT較小、且各RTT之間的差值較小,則說(shuō)明當(dāng)前網(wǎng)絡(luò)狀態(tài)較好,發(fā)送方可增大擁塞窗口,如果各RTT之間的差值較大,則說(shuō)明當(dāng)前網(wǎng)絡(luò)狀態(tài)較差,發(fā)送方可減小擁塞窗口。
[0005]例如,發(fā)送方先向接收方順序發(fā)送數(shù)據(jù)包1、數(shù)據(jù)包2、……數(shù)據(jù)包η共η個(gè)數(shù)據(jù)包(這η個(gè)數(shù)據(jù)包是一個(gè)會(huì)話流中的數(shù)據(jù)包),接收方接收到數(shù)據(jù)包I和數(shù)據(jù)包2后,則向發(fā)送方返回ACK3信息(ACK3表示數(shù)據(jù)包3之前的數(shù)據(jù)包已經(jīng)被成功接收),以告知發(fā)送方數(shù)據(jù)包I和2已經(jīng)被成功接收。類(lèi)似的,接收方接收到數(shù)據(jù)包3和4后,向發(fā)送方返回ACK5信息(ACK5表示數(shù)據(jù)包5之前的數(shù)據(jù)包已經(jīng)被成功接收)。
[0006]發(fā)送方則針對(duì)ACK3信息,根據(jù)發(fā)送相應(yīng)數(shù)據(jù)包(數(shù)據(jù)包2)的時(shí)刻和接收到該ACK3信息的時(shí)刻確定發(fā)送方到接收方的RTT。類(lèi)似的,發(fā)送方針對(duì)ACK5信息,根據(jù)發(fā)送相應(yīng)數(shù)據(jù)包(數(shù)據(jù)包4)的時(shí)刻和接收到該ACK5信息的時(shí)刻確定發(fā)送方到接收方的RTT。最后,發(fā)送方根據(jù)確定的各RTT確定擁塞窗口。假設(shè)確定的擁塞窗口為m,則下一次發(fā)送方向接收方發(fā)送數(shù)據(jù)包n+1、數(shù)據(jù)包n+2、......數(shù)據(jù)包n+m共m個(gè)數(shù)據(jù)包。
[0007]然而,當(dāng)發(fā)送方在初始發(fā)送數(shù)據(jù)包時(shí),由于并不能確定發(fā)送方到接收方的RTT,因此,為了避免因網(wǎng)絡(luò)狀態(tài)不佳而造成大量的丟包,發(fā)送方在初始發(fā)送數(shù)據(jù)包時(shí)通常采用慢啟動(dòng)的發(fā)送方法,即,發(fā)送方針對(duì)一個(gè)會(huì)話流,初始發(fā)送時(shí)只向接收方發(fā)送該會(huì)話流中的一個(gè)數(shù)據(jù)包。但在RFC1122協(xié)議的規(guī)定下,由于接收方只接收到了第一個(gè)數(shù)據(jù)包而并未接收到第二個(gè)數(shù)據(jù)包,因此只能等待200ms之后才向發(fā)送方返回ACK信息,這就會(huì)影響發(fā)送方確定RTT的準(zhǔn)確性,導(dǎo)致后續(xù)發(fā)送方發(fā)送數(shù)據(jù)包的數(shù)量上升過(guò)慢,降低了數(shù)據(jù)包的發(fā)送效率。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例提供一種ACK信息的發(fā)送方法及裝置,用以解決現(xiàn)有技術(shù)中數(shù)據(jù)包的發(fā)送速率較低的問(wèn)題。
[0009]第一方面,提供一種ACK信息的發(fā)送方法,包括:
[0010]接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包;
[0011]確定所述數(shù)據(jù)包所屬的會(huì)話流;
[0012]當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信
肩、O
[0013]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息,具體包括:
[0014]當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量小于設(shè)定閾值時(shí),向所述發(fā)送方返回一個(gè)ACK信息。
[0015]結(jié)合第一方面或第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息,具體包括:
[0016]當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),向所述發(fā)送方返回至少兩個(gè)ACK信息。
[0017]結(jié)合第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,向所述發(fā)送方返回至少兩個(gè)ACK信息,具體包括:
[0018]根據(jù)所述數(shù)據(jù)包的數(shù)據(jù)量以及預(yù)設(shè)的拆分比例,將所述數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包;
[0019]針對(duì)拆分的子數(shù)據(jù)包向發(fā)送方返回ACK信息。
[0020]結(jié)合第一方面或第一?三種任一可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0021]當(dāng)所述接收方確定所述數(shù)據(jù)包不是所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),所述接收方判斷自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向所述發(fā)送方返回ACK信息;
[0022]若是,則在接收到所述會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息;
[0023]否則,向所述發(fā)送方返回ACK信息。
[0024]第二方面,提供一種ACK信息的發(fā)送裝置,包括:
[0025]接收模塊,用于接收發(fā)送方發(fā)送的數(shù)據(jù)包;
[0026]確定模塊,用于確定所述接收模塊接收到的所述數(shù)據(jù)包所屬的會(huì)話流;
[0027]發(fā)送模塊,用于當(dāng)確定所述接收模塊接收到的所述數(shù)據(jù)包為所述確定模塊確定的所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息。
[0028]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量小于設(shè)定閾值時(shí),向所述發(fā)送方返回一個(gè)ACK信息。
[0029]結(jié)合第二方面或第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),向所述發(fā)送方返回至少兩個(gè)ACK信息。
[0030]結(jié)合第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),根據(jù)所述數(shù)據(jù)包的數(shù)據(jù)量以及預(yù)設(shè)的拆分比例,將所述數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包,針對(duì)拆分的子數(shù)據(jù)包向發(fā)送方返回ACK信息。
[0031]結(jié)合第二方面或第一?三種任一可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于,當(dāng)確定所述數(shù)據(jù)包不是所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),判斷所述裝置自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向所述發(fā)送方返回ACK信息;若是,則在所述接收模塊接收到所述會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息;否則,向所述發(fā)送方返回ACK信息。
[0032]第三方面,提供一種終端,包括如上所述的ACK信息的發(fā)送裝置。
[0033]本發(fā)明實(shí)施例提供一種ACK信息的發(fā)送方法及裝置,該方法接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包,并確定該數(shù)據(jù)包所屬的會(huì)話流,當(dāng)確定該數(shù)據(jù)包為該會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向發(fā)送方返回ACK信息。通過(guò)上述方法,發(fā)送方在初始只向接收方發(fā)送一個(gè)數(shù)據(jù)包時(shí),接收方可及時(shí)返回相應(yīng)的ACK信息,而無(wú)需等待200ms后再返回ACK信息,因此可提高發(fā)送方根據(jù)該ACK信息確定RTT的準(zhǔn)確性,進(jìn)而加快擁塞礦口增大的速度,提高數(shù)據(jù)包的發(fā)送效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034]圖1為本發(fā)明實(shí)施例提供的ACK信息的發(fā)送過(guò)程;
[0035]圖2為本發(fā)明實(shí)施例提供的ACK信息的詳細(xì)發(fā)送過(guò)程;
[0036]圖3為本發(fā)明實(shí)施例提供的ACK信息的發(fā)送裝置結(jié)構(gòu)示意圖;
[0037]圖4為本發(fā)明實(shí)施例提供的終端的具體實(shí)現(xiàn)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0038]由于當(dāng)發(fā)送方采用慢啟動(dòng)的發(fā)送方法發(fā)送數(shù)據(jù)包時(shí),初始發(fā)送時(shí)只發(fā)送一個(gè)數(shù)據(jù)包,后續(xù)則會(huì)根據(jù)接收方返回的ACK信息確定RTT,并根據(jù)RTT增大擁塞窗口,直至增大到某一個(gè)值時(shí)不再改變,因此,擁塞窗口增大的速度直接影響到數(shù)據(jù)包的發(fā)送效率。為了提高數(shù)據(jù)包的發(fā)送效率,本發(fā)明實(shí)施例中接收方接收到發(fā)送方發(fā)送的數(shù)據(jù)包后,如果確定該數(shù)據(jù)包為該數(shù)據(jù)包所屬的會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),直接向發(fā)送方返回ACK信息,而無(wú)需等待200ms后再發(fā)送,因此可提高發(fā)送方根據(jù)該ACK信息確定RTT的準(zhǔn)確性,進(jìn)而加快擁塞礦口增大的速度,提高數(shù)據(jù)包的發(fā)送效率。
[0039]下面結(jié)合說(shuō)明書(shū)附圖,對(duì)本發(fā)明實(shí)施例的方案進(jìn)行詳細(xì)說(shuō)明。
[0040]實(shí)施例一:
[0041]圖1為本發(fā)明實(shí)施例提供的ACK信息的發(fā)送過(guò)程,具體包括以下步驟:
[0042]SlOl:接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包。
[0043]在本發(fā)明實(shí)施例中,首先由接收方發(fā)起會(huì)話,向發(fā)送方請(qǐng)求會(huì)話流中的數(shù)據(jù)包,發(fā)送方與接收方建立會(huì)話后,則按照該會(huì)話流中各個(gè)要發(fā)送的數(shù)據(jù)包的順序,向接收方發(fā)送該會(huì)話流中的各數(shù)據(jù)包。具體的,發(fā)送方以慢啟動(dòng)的方式向接收方發(fā)送該會(huì)話流中的各數(shù)據(jù)包,即,首次向接收方發(fā)送該會(huì)話流中的數(shù)據(jù)包時(shí),只向接收方發(fā)送該會(huì)話流中的第一個(gè)數(shù)據(jù)包,在接收到接收方返回的ACK信息后,根據(jù)接收到該ACK信息的時(shí)刻以及發(fā)送相應(yīng)數(shù)據(jù)包的時(shí)刻,確定發(fā)送方到接收方的RTT,再根據(jù)確定的RTT調(diào)整擁塞窗口(即,下一次要向接收方發(fā)送的該會(huì)話流中的數(shù)據(jù)包的數(shù)量)的大小。
[0044]例如,接收方與發(fā)送方建立了會(huì)話流a后,發(fā)送方要依次向接收方發(fā)送的該會(huì)話流a中的數(shù)據(jù)包為數(shù)據(jù)包I?數(shù)據(jù)包n,則發(fā)送方以慢啟動(dòng)的方式,先只向發(fā)送方發(fā)送數(shù)據(jù)包1,在接收到接收方針對(duì)該數(shù)據(jù)包I返回的ACK信息后,再確定RTT,并據(jù)此調(diào)整擁塞窗口。假設(shè)調(diào)整后的擁塞窗口為2,則發(fā)送方再向接收方發(fā)送數(shù)據(jù)包2和3。
[0045]S102:確定該數(shù)據(jù)包所屬的會(huì)話流。
[0046]接收方在接收到一個(gè)數(shù)據(jù)包后,可根據(jù)該數(shù)據(jù)包中攜帶的標(biāo)識(shí)信息,確定該數(shù)據(jù)包所屬的會(huì)話流。例如,由于對(duì)于一個(gè)會(huì)話流而言,其由源互聯(lián)網(wǎng)協(xié)議(InternetProtocol,IP)地址、源端口號(hào)、目的IP地址和目的端口號(hào)組成的四元組是唯一的,因此,接收方可根據(jù)該數(shù)據(jù)包中攜帶的四元組,即:源地址、源端口號(hào)、目的IP地址和目的端口號(hào),確定該數(shù)據(jù)包所屬的會(huì)話流。
[0047]S103:判斷該數(shù)據(jù)包是否為確定的該會(huì)話流中的第一個(gè)數(shù)據(jù)包,若是,則執(zhí)行步驟S104,否則執(zhí)行步驟S105。
[0048]S104:向發(fā)送方返回ACK信息。
[0049]在本發(fā)明實(shí)施例中,接收方確定了接收到的數(shù)據(jù)包所屬的會(huì)話流后,則判斷該數(shù)據(jù)包是否為接收到的該會(huì)話流中的首個(gè)數(shù)據(jù)包,若是,則直接針對(duì)該數(shù)據(jù)包向發(fā)送方返回ACK信息,而無(wú)需等待200ms后再返回ACK信息,從而,發(fā)送方根據(jù)接收方及時(shí)返回的該ACK信息的時(shí)刻以及發(fā)送該首個(gè)數(shù)據(jù)包的時(shí)刻,可準(zhǔn)確的確定出接收方到發(fā)送方的RTT,從而可較大幅度的提高擁塞窗口,進(jìn)而提高數(shù)據(jù)包的發(fā)送效率。
[0050]繼續(xù)沿用上例,發(fā)送方將會(huì)話流a中的首個(gè)數(shù)據(jù)包,即數(shù)據(jù)包I發(fā)送給接收方后,接收方確定在接收到該數(shù)據(jù)包I之前,并未接收到該會(huì)話流a中的任何數(shù)據(jù)包,因此確定該數(shù)據(jù)包是接收到的該會(huì)話流a中的第一個(gè)數(shù)據(jù)包,直接針對(duì)該數(shù)據(jù)包I向發(fā)送方返回ACK信息,而無(wú)需等待200ms后再返回ACK信息。發(fā)送方接收到接收方及時(shí)反饋的該ACK信息后,則可準(zhǔn)確的確定發(fā)送方到接收方的RTT,相比于現(xiàn)有技術(shù)中接收方等待200ms后在返回ACK的方法,本發(fā)明實(shí)施例一提供的方法可大幅減小發(fā)送方確定的RTT,因此發(fā)送方可大幅提高擁塞窗口,下一次向接收方發(fā)送會(huì)話流a中的數(shù)據(jù)包時(shí),則可發(fā)送較多數(shù)量的數(shù)據(jù)包,因此提高了數(shù)據(jù)包的發(fā)送效率。
[0051]S105:接收方判斷自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向發(fā)送方返回ACK信息,若是,則自行步驟S106,否則執(zhí)行步驟S104。
[0052]S106:在接收到該會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息。
[0053]如果接收方確定該數(shù)據(jù)包不是接收到的該會(huì)話流中的首個(gè)數(shù)據(jù)包,也就是說(shuō),接收方在接收到該數(shù)據(jù)包之前,已經(jīng)接收到該會(huì)話流中的其他數(shù)據(jù)包,則可按照現(xiàn)行的RFCl 122協(xié)議進(jìn)行ACK信息的發(fā)送,即,每接收到該會(huì)話流中的兩個(gè)數(shù)據(jù)包,就向發(fā)送方返回一個(gè)ACK信息,或者等待設(shè)定時(shí)間(如200ms)后向發(fā)送方返回ACK信息。
[0054]通過(guò)上述方法,發(fā)送方在初始只向接收方發(fā)送一個(gè)數(shù)據(jù)包時(shí),接收方可及時(shí)返回相應(yīng)的ACK信息,而無(wú)需等待200ms后再返回ACK信息,因此可提高發(fā)送方根據(jù)該ACK信息確定RTT的準(zhǔn)確性,相比于現(xiàn)有技術(shù)中接收方需等待200ms后再返回ACK信息的方法,本發(fā)明實(shí)施例提供的ACK信息發(fā)送方法可使發(fā)送方確定的RTT較小,從而加快擁塞礦口增大的速度,提高數(shù)據(jù)包的發(fā)送效率。
[0055]另外,為了進(jìn)一步提高數(shù)據(jù)包的發(fā)送效率,本發(fā)明實(shí)施例中接收方在接收到一個(gè)會(huì)話流中的首個(gè)數(shù)據(jù)包后,還可根據(jù)該數(shù)據(jù)包的數(shù)據(jù)量向接收方返回一個(gè)或兩個(gè)以上的ACK信息,下面通過(guò)實(shí)施例二進(jìn)行詳細(xì)說(shuō)明。
[0056]實(shí)施例二:
[0057]圖2為本發(fā)明實(shí)施例提供的ACK信息的詳細(xì)發(fā)送過(guò)程,具體包括以下步驟:
[0058]S201:接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包。
[0059]S202:確定該數(shù)據(jù)包所屬的會(huì)話流。
[0060]S203:判斷該數(shù)據(jù)包是否為確定的該會(huì)話流中的第一個(gè)數(shù)據(jù)包,若是,則執(zhí)行步驟S204,否則執(zhí)行步驟S207。
[0061]上述步驟S201?S203與實(shí)施例一種的步驟SlOl?S103相同,這里就不在——贅述。
[0062]S204:判斷該數(shù)據(jù)包的數(shù)據(jù)量是否小于設(shè)定閾值,若是,則執(zhí)行步驟S205,否則執(zhí)行步驟S206。
[0063]在本發(fā)明實(shí)施例中,接收方確定接收到的數(shù)據(jù)包為接收到的該會(huì)話流中的首個(gè)數(shù)據(jù)包后,比較該數(shù)據(jù)包的數(shù)據(jù)量與設(shè)定閾值的大小,以判斷該數(shù)據(jù)包的數(shù)據(jù)量是否小于設(shè)定閾值。其中,該設(shè)定閾值可根據(jù)需要進(jìn)行設(shè)定,例如,可設(shè)定為最大分段大小(MaximumSegment Size, MSS),或設(shè)定為最大傳輸單兀(Maximum Transmission Unit, MTU)。
[0064]S205:向發(fā)送方返回一個(gè)ACK信息。
[0065]當(dāng)該數(shù)據(jù)包的數(shù)據(jù)量小于上述設(shè)定閾值時(shí),接收方則直接針對(duì)接收到的該數(shù)據(jù)包向發(fā)送方返回一個(gè)ACK信息。
[0066]S206:向發(fā)送方返回至少兩個(gè)ACK信息。
[0067]當(dāng)該數(shù)據(jù)包的數(shù)據(jù)量不小于上述設(shè)定閾值時(shí),接收方則可針對(duì)接收到的該數(shù)據(jù)包向發(fā)送方返回至少兩個(gè)ACK信息。具體的,接收方可根據(jù)該數(shù)據(jù)包的數(shù)據(jù)量以及預(yù)設(shè)的拆分比例,將該數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包,并針對(duì)拆分的每個(gè)子數(shù)據(jù)包向發(fā)送方返回ACK信息。
[0068]例如,假設(shè)設(shè)定閾值為100字節(jié),預(yù)設(shè)的拆分比例為60%,如果接收方接收到的數(shù)據(jù)包是該會(huì)話流中的首個(gè)數(shù)據(jù)包,而且該數(shù)據(jù)包的數(shù)據(jù)量是100字節(jié),則接收方確定該數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值,將該數(shù)據(jù)包的前60%的數(shù)據(jù)量拆分為一個(gè)子數(shù)據(jù)包,后40%的數(shù)據(jù)量拆分為另一個(gè)子數(shù)據(jù)包,即,將該數(shù)據(jù)包的前60個(gè)字節(jié)拆分為一個(gè)子數(shù)據(jù)包,后40個(gè)字節(jié)拆分為另一個(gè)子數(shù)據(jù)包,再針對(duì)拆分出的這兩個(gè)子數(shù)據(jù)包分別向發(fā)送方返回ACK信息,使發(fā)送方連續(xù)接收到兩個(gè)時(shí)間相近的ACK信息,從而,發(fā)送方根據(jù)接收到這兩個(gè)ACK信息的時(shí)刻以及發(fā)送該數(shù)據(jù)包的時(shí)刻,可確定出兩個(gè)較小且差值也較小的RTT,從而根據(jù)第一個(gè)RTT將擁塞窗口增大后,緊接著根據(jù)這兩個(gè)差值較小的RTT又會(huì)再次增大擁塞窗口,從而可進(jìn)一步提高后續(xù)向接收方發(fā)送數(shù)據(jù)包的數(shù)量。
[0069]S207:接收方判斷自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向發(fā)送方返回ACK信息,若是,則自行步驟S208,否則執(zhí)行步驟S205。
[0070]S208:在接收到該會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息。[0071]在圖2所示的過(guò)程中,當(dāng)接收方接收到的數(shù)據(jù)包為該數(shù)據(jù)包所屬的會(huì)話流中的首個(gè)數(shù)據(jù)包,且該數(shù)據(jù)包的數(shù)據(jù)量大與設(shè)定閾值時(shí),將該數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包,并針對(duì)拆分的每個(gè)子數(shù)據(jù)包分別向發(fā)送方返回ACK信息,可進(jìn)一步提高數(shù)據(jù)包的發(fā)送效率。
[0072]以上為本發(fā)明實(shí)施例提供的ACK信息的發(fā)送方法,基于同樣的發(fā)明思路,本發(fā)明實(shí)施例還提供一種ACK信息的發(fā)送裝置,下面通過(guò)實(shí)施例三進(jìn)行詳細(xì)說(shuō)明。
[0073]實(shí)施例三:
[0074]圖3為本發(fā)明實(shí)施例提供的ACK信息的發(fā)送裝置結(jié)構(gòu)示意圖,具體包括:
[0075]接收模塊301,用于接收發(fā)送方發(fā)送的數(shù)據(jù)包;
[0076]確定模塊302,用于確定所述接收模塊301接收到的所述數(shù)據(jù)包所屬的會(huì)話流;
[0077]發(fā)送模塊303,用于當(dāng)確定所述接收模塊301接收到的所述數(shù)據(jù)包為所述確定模塊302確定的所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息。
[0078]所述發(fā)送模塊303具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量小于設(shè)定閾值時(shí),向所述發(fā)送方返回一個(gè)ACK信息。
[0079]所述發(fā)送模塊303具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),向所述發(fā)送方返回至少兩個(gè)ACK信息。
[0080]所述發(fā)送模塊303具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),根據(jù)所述數(shù)據(jù)包的數(shù)據(jù)量以及預(yù)設(shè)的拆分比例,將所述數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包,針對(duì)拆分的子數(shù)據(jù)包向發(fā)送方返回ACK信肩、O
[0081]所述發(fā)送模塊303還用于,當(dāng)確定所述數(shù)據(jù)包不是所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),判斷所述裝置自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向所述發(fā)送方返回ACK信息;若是,則在所述接收模塊301接收到所述會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息;否則,向所述發(fā)送方返回ACK信息。
[0082]另外,本發(fā)明實(shí)施例還提供一種終端,包括如圖3所示的ACK信息的發(fā)送裝置。
[0083]圖4為本發(fā)明實(shí)施例提供的終端的具體實(shí)現(xiàn)結(jié)構(gòu)示意圖,具體包括:
[0084]接收器401,用于接收發(fā)送方發(fā)送的數(shù)據(jù)包;
[0085]處理器402,與接收器401和發(fā)送器403耦合,用于確定所述接收器401接收到的所述數(shù)據(jù)包所屬的會(huì)話流;當(dāng)確定所述接收器401接收到的所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),指示發(fā)送器403向所述發(fā)送方返回ACK信息;
[0086]發(fā)送器403,用于根據(jù)所述處理器402的指示向所述發(fā)送方返回ACK信息。
[0087]本發(fā)明實(shí)施例提供一種ACK信息的發(fā)送方法及裝置,該方法接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包,并確定該數(shù)據(jù)包所屬的會(huì)話流,當(dāng)確定該數(shù)據(jù)包為該會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向發(fā)送方返回ACK信息。通過(guò)上述方法,發(fā)送方在初始只向接收方發(fā)送一個(gè)數(shù)據(jù)包時(shí),接收方可及時(shí)返回相應(yīng)的ACK信息,而無(wú)需等待200ms后再返回ACK信息,因此可提高發(fā)送方根據(jù)該ACK信息確定RTT的準(zhǔn)確性,進(jìn)而加快擁塞礦口增大的速度,提高數(shù)據(jù)包的發(fā)送效率。
[0088]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0089]本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0090]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0091]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0092]盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。
[0093]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)實(shí)施例的精神和范圍。這樣,倘若本申請(qǐng)實(shí)施例的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種確認(rèn)字符ACK信息的發(fā)送方法,其特征在于,包括: 接收方接收發(fā)送方發(fā)送的數(shù)據(jù)包; 確定所述數(shù)據(jù)包所屬的會(huì)話流; 當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息,具體包括: 當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量小于設(shè)定閾值時(shí),向所述發(fā)送方返回一個(gè)ACK信息。
3.如權(quán)利要求1或2所述的方法,其特征在于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息,具體包括: 當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),向所述發(fā)送方返回至少兩個(gè)ACK信息。
4.如權(quán)利要求3所述的方法,其特征在于,向所述發(fā)送方返回至少兩個(gè)ACK信息,具體包括: 根據(jù)所述數(shù)據(jù)包的數(shù)據(jù)量以及預(yù)設(shè)的拆分比例,將所述數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包; 針對(duì)拆分的子數(shù)據(jù)包向發(fā)送方返回ACK信息。
5.如權(quán)利要求1~4任一所述的方`法,其特征在于,所述方法還包括: 當(dāng)所述接收方確定所述數(shù)據(jù)包不是所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),所述接收方判斷自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向所述發(fā)送方返回ACK信息; 若是,則在接收到所述會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息; 否則,向所述發(fā)送方返回ACK信息。
6.一種確認(rèn)字符ACK信息的發(fā)送裝置,其特征在于,包括: 接收模塊,用于接收發(fā)送方發(fā)送的數(shù)據(jù)包; 確定模塊,用于確定所述接收模塊接收到的所述數(shù)據(jù)包所屬的會(huì)話流; 發(fā)送模塊,用于當(dāng)確定所述接收模塊接收到的所述數(shù)據(jù)包為所述確定模塊確定的所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),向所述發(fā)送方返回ACK信息。
7.如權(quán)利要求6所述的裝置,其特征在于,所述發(fā)送模塊具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量小于設(shè)定閾值時(shí),向所述發(fā)送方返回一個(gè)ACK信息。
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述發(fā)送模塊具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),向所述發(fā)送方返回至少兩個(gè)ACK信息。
9.如權(quán)利要求8所述的裝置,其特征在于,所述發(fā)送模塊具體用于,當(dāng)確定所述數(shù)據(jù)包為所述會(huì)話流中的第一個(gè)數(shù)據(jù)包,且所述數(shù)據(jù)包的數(shù)據(jù)量不小于設(shè)定閾值時(shí),根據(jù)所述數(shù)據(jù)包的數(shù)據(jù)量以及預(yù)設(shè)的拆分比例,將所述數(shù)據(jù)包拆分為至少兩個(gè)子數(shù)據(jù)包,針對(duì)拆分的子數(shù)據(jù)包向發(fā)送方返回ACK信息。
10.如權(quán)利要求6~7任一所述的裝置,其特征在于,所述發(fā)送模塊還用于,當(dāng)確定所述數(shù)據(jù)包不是所述會(huì)話流中的第一個(gè)數(shù)據(jù)包時(shí),判斷所述裝置自身是否已針對(duì)接收到的上一個(gè)數(shù)據(jù)包向所述發(fā)送方返回ACK信息;若是,則在所述接收模塊接收到所述會(huì)話流中的下一個(gè)數(shù)據(jù)包時(shí),或等待設(shè)定時(shí)間后,向發(fā)送方返回ACK信息;否則,向所述發(fā)送方返回ACK信息。
11.一種終端,其特征在于,包括如權(quán)利要求6~10任一所述的確認(rèn)字符ACK信息的發(fā)送裝置。`
【文檔編號(hào)】H04L1/16GK103636157SQ201380001733
【公開(kāi)日】2014年3月12日 申請(qǐng)日期:2013年6月20日 優(yōu)先權(quán)日:2013年6月20日
【發(fā)明者】蔡仕江 申請(qǐng)人:華為技術(shù)有限公司