利用面向非連接的協(xié)議的數(shù)據(jù)通信的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例涉及一種數(shù)據(jù)通信,尤其涉及一種利用面向非連接的協(xié)議(connect1nless-oriented protocol)而執(zhí)行數(shù)據(jù)通信的技術(shù)。
【背景技術(shù)】
[0002]計(jì)算機(jī)網(wǎng)絡(luò)使各計(jì)算機(jī)之間的通信成為可能。例如,計(jì)算機(jī)網(wǎng)絡(luò)包括局域網(wǎng)(Local Area Network:LAN)、廣域網(wǎng)(Wide Area Network:WAN)、因特網(wǎng)、無(wú)線網(wǎng)、混合設(shè)備網(wǎng)等。
[0003]在這種計(jì)算機(jī)網(wǎng)絡(luò)中,數(shù)據(jù)能夠以一個(gè)以上的包的形態(tài)傳送。由接收到的所有包重新構(gòu)成原來傳送的數(shù)據(jù)。在一些例中,包的序列號(hào)(sequence number)對(duì)于數(shù)據(jù)的重新構(gòu)成比較重要。
[0004]在預(yù)定的網(wǎng)絡(luò)環(huán)境(例如無(wú)線網(wǎng)絡(luò)環(huán)境)中,包往往容易在傳送的過程中由于網(wǎng)絡(luò)上的干擾、傳送信道的特性等而丟失(lost)。因此,為了將數(shù)據(jù)以包的形態(tài)可靠地傳送,網(wǎng)絡(luò)上的計(jì)算機(jī)之間例如會(huì)使用傳輸控制協(xié)議(Transmiss1n Control Protocol:TCP)0TCP為可用于傳輸層(transport layer)的協(xié)議。TCP為面向連接(connect1n-oriented)的協(xié)議,其在收發(fā)數(shù)據(jù)的計(jì)算機(jī)之間的消息在通過各計(jì)算機(jī)的應(yīng)用而發(fā)生交換的時(shí)間內(nèi)實(shí)現(xiàn)連接的建立(establishment)及維持。
[0005]相反,作為傳輸層的另一協(xié)議的用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol:UDP)為面向非連接的協(xié)議。UDP通過將數(shù)據(jù)從數(shù)據(jù)發(fā)送器發(fā)送給數(shù)據(jù)接收器而執(zhí)行通信,且并不伴隨預(yù)先發(fā)送表示要從數(shù)據(jù)發(fā)送器傳送數(shù)據(jù)的信號(hào)的步驟或確認(rèn)數(shù)據(jù)接收器的狀態(tài)的步驟。這種UDP本身并不提供由數(shù)據(jù)發(fā)送器確認(rèn)數(shù)據(jù)接收器是否正常接收數(shù)據(jù)的機(jī)制,故與TCP相比UDP不能保障具有可靠性的傳送。
【發(fā)明內(nèi)容】
[0006]不需要執(zhí)行建立并解除用于數(shù)據(jù)傳送的連接的過程的UDP適于更加有效而簡(jiǎn)便的數(shù)據(jù)傳送,例如可在無(wú)線網(wǎng)絡(luò)環(huán)境中實(shí)現(xiàn)比TCP更快的數(shù)據(jù)傳送。
[0007]為了在這種基于UDP的數(shù)據(jù)傳送中提高可靠性,可使用重新傳送機(jī)制。這種重新傳送機(jī)制的例中包括自動(dòng)重復(fù)請(qǐng)求(Automatic Repeat reQuest:ARQ)方式(例如Go-Back-N ARQ方式以及選擇拒絕(Selective-Reject)ARQ方式等)。ARQ方式利用已傳送的包的序列號(hào)而檢測(cè)出由數(shù)據(jù)發(fā)送器傳送的包當(dāng)中的沒有被數(shù)據(jù)接收器接收的包(即丟失的包),并響應(yīng)于丟失的包的檢測(cè)而從數(shù)據(jù)接收器向數(shù)據(jù)發(fā)送器發(fā)送否定確認(rèn)響應(yīng)(Negative ACKnowledgement:NACK),從而請(qǐng)求丟失的包的重新傳送。
[0008]在ARQ方式中,如果已經(jīng)從數(shù)據(jù)接收器發(fā)送了對(duì)應(yīng)于某一包的NACK卻沒有傳遞至數(shù)據(jù)發(fā)送器而丟失,則可能成為問題。通常,在數(shù)據(jù)發(fā)送器再次接收到對(duì)應(yīng)于該包的NACK之前、或者在數(shù)據(jù)發(fā)送器在傳送該包之后的預(yù)定時(shí)間內(nèi)沒有接收到用于表示接收到該包的確認(rèn)響應(yīng)(ACKnowledgement:ACK)而發(fā)生超時(shí)(timeout)之前,不會(huì)重新傳送該包。因此,如果用于表示沒有接收到某一包的NACK消息丟失,則在執(zhí)行該包的重新傳送為止可能需要相當(dāng)多的時(shí)間。
[0009]并且,在ARQ方式中,在對(duì)應(yīng)于某一包的ACK已經(jīng)由數(shù)據(jù)接收器發(fā)送卻沒有傳遞至數(shù)據(jù)發(fā)送器而丟失的情況下,即使該包已被接收,數(shù)據(jù)發(fā)送器在超時(shí)以后還將進(jìn)行不必要的重新傳送。
[0010]公開的實(shí)施例在借助于UDP之類的面向非連接的協(xié)議的數(shù)據(jù)通信中采用重新傳送機(jī)制,并且針對(duì)數(shù)據(jù)包的集合,用包含有表示各數(shù)據(jù)包是否已被數(shù)據(jù)接收器接收的信息的新的確認(rèn)響應(yīng)消息(acknowledgement message)代替普遍的ACK/NACK而使用。例如,前述的信息可以是根據(jù)數(shù)據(jù)包的接收而得到更新,從而能夠在所述的數(shù)據(jù)包集合的所有數(shù)據(jù)包都被接收之前一直維持顯示是否接收到該集合內(nèi)的各數(shù)據(jù)包的一種累積信息(cumulative informat1n)。這種機(jī)制可防止在現(xiàn)有的ARQ方式中由于ACK/NACK的丟失而導(dǎo)致包的重新傳送被延遲或重復(fù)性地重新傳送包的情況。
[0011]根據(jù)公開的實(shí)施例,確認(rèn)響應(yīng)消息既可以在發(fā)生了數(shù)據(jù)包丟失的情況下發(fā)送,也可以在丟失的數(shù)據(jù)包得到重新傳送而被接收的情況下發(fā)送。因此,發(fā)送確認(rèn)響應(yīng)消息的頻率比現(xiàn)有的ARQ方式中發(fā)送ACK/NACK的頻率低。
[0012]根據(jù)公開的實(shí)施例,直到發(fā)送確認(rèn)響應(yīng)消息為止,有關(guān)是否接收到數(shù)據(jù)包集合內(nèi)的各數(shù)據(jù)包的累積的信息包含于該確認(rèn)響應(yīng)消息內(nèi)。因此,與現(xiàn)有技術(shù)中的ARQ方式相比,即使某一確認(rèn)響應(yīng)消息丟失,也可以在短時(shí)間內(nèi)執(zhí)行本應(yīng)根據(jù)丟失的確認(rèn)響應(yīng)消息而在數(shù)據(jù)發(fā)送器中執(zhí)行的操作。這是由于作為丟失的確認(rèn)響應(yīng)消息的后續(xù)的確認(rèn)響應(yīng)消息被數(shù)據(jù)接收器所接收時(shí),可基于包含于后續(xù)的確認(rèn)響應(yīng)消息中的所述的信息而執(zhí)行該操作。
[0013]本發(fā)明是為了解決如上所述的技術(shù)問題而提出的,其目的在于防止在現(xiàn)有的ARQ方式中由于ACK/NACK的丟失而導(dǎo)致包的重新傳送延遲或重復(fù)性地重新傳送包的情況。
[0014]并且,本發(fā)明的另一目的在于使確認(rèn)響應(yīng)消息從數(shù)據(jù)接收器發(fā)送到數(shù)據(jù)發(fā)送器的次數(shù)的期望值小于現(xiàn)有技術(shù)中的ARQ方式下的ACK/NACK。
[0015]而且,本發(fā)明的又一目的在于實(shí)現(xiàn)即使丟失了確認(rèn)響應(yīng)消息,也能夠在短時(shí)間內(nèi)執(zhí)行本應(yīng)根據(jù)丟失的確認(rèn)響應(yīng)消息執(zhí)行的操作。
[0016]根據(jù)一個(gè)示例性實(shí)施例,提供一種數(shù)據(jù)通信方法,利用面向非連接的協(xié)議(connect1nless-oriented protocol),包括如下步驟:隨著從數(shù)據(jù)發(fā)送器接收到多個(gè)數(shù)據(jù)包中的至少一個(gè)數(shù)據(jù)包,針對(duì)構(gòu)成為分別表示所述多個(gè)數(shù)據(jù)包中對(duì)應(yīng)的數(shù)據(jù)包的接收與否的標(biāo)志位(flag bit)而執(zhí)行至少一個(gè)按位運(yùn)算(bitwise operat1n),從而判定所述多個(gè)數(shù)據(jù)包中是否存在丟失的數(shù)據(jù)包;進(jìn)行所述判定的結(jié)果,如果判定為存在丟失的數(shù)據(jù)包,便將包含所述標(biāo)志位的確認(rèn)響應(yīng)消息(acknowledgement message)發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0017]根據(jù)所述數(shù)據(jù)通信方法的一個(gè)方面,所述數(shù)據(jù)通信方法還包括如下步驟:當(dāng)通過所述數(shù)據(jù)發(fā)送器的重新傳送而接收到所述丟失的數(shù)據(jù)包時(shí),根據(jù)接收重新傳送的所述數(shù)據(jù)包而將包含有更新的所述標(biāo)志位的其他確認(rèn)響應(yīng)消息發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0018]根據(jù)另一個(gè)示例性實(shí)施例,提供一種數(shù)據(jù)通信方法,利用面向非連接的協(xié)議,包括如下步驟:當(dāng)從數(shù)據(jù)接收器接收到包含有分別表示多個(gè)數(shù)據(jù)包中對(duì)應(yīng)的數(shù)據(jù)包是否被所述數(shù)據(jù)接收器所接收的標(biāo)志位的確認(rèn)響應(yīng)消息時(shí),執(zhí)行針對(duì)所述標(biāo)志位的至少一個(gè)按位運(yùn)算,從而識(shí)別所述多個(gè)數(shù)據(jù)包中丟失的數(shù)據(jù)包;將識(shí)別的所述數(shù)據(jù)包重新傳送給數(shù)據(jù)接收器。
[0019]根據(jù)所述數(shù)據(jù)通信方法的一個(gè)方面,所述數(shù)據(jù)通信方法還包括如下步驟:設(shè)定可利用于所述重新傳送的時(shí)間段;在所述時(shí)間段內(nèi)反復(fù)地重新傳送識(shí)別的所述數(shù)據(jù)包。
[0020]根據(jù)另一個(gè)示例性實(shí)施例,提供一種數(shù)據(jù)接收器,利用面向非連接的協(xié)議而執(zhí)行數(shù)據(jù)通信,包括:包丟失確認(rèn)單元,隨著從數(shù)據(jù)發(fā)送器接收到多個(gè)數(shù)據(jù)包中的至少一個(gè)數(shù)據(jù)包,針對(duì)構(gòu)成為分別表示所述多個(gè)數(shù)據(jù)包中對(duì)應(yīng)的數(shù)據(jù)包的接收與否的標(biāo)志位而執(zhí)行至少一個(gè)按位運(yùn)算,從而判定所述多個(gè)數(shù)據(jù)包中是否存在丟失的數(shù)據(jù)包;確認(rèn)響應(yīng)消息傳送單元,進(jìn)行所述判定的結(jié)果,如果存在丟失的數(shù)據(jù)包,便將包含所述標(biāo)志位的確認(rèn)響應(yīng)消息發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0021]根據(jù)所述數(shù)據(jù)接收器的一個(gè)方面,當(dāng)通過所述數(shù)據(jù)發(fā)送器的重新傳送而接收到所述丟失的數(shù)據(jù)包時(shí),所述確認(rèn)響應(yīng)消息傳送單元還將包含根據(jù)接收重新傳送的所述數(shù)據(jù)包而更新的所述標(biāo)志位的其他確認(rèn)響應(yīng)消息發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0022]根據(jù)另一個(gè)示例性實(shí)施例,提供一種數(shù)據(jù)發(fā)送器,利用面向非連接的協(xié)議而執(zhí)行數(shù)據(jù)通信,包括:重新傳送處理單元,當(dāng)從數(shù)據(jù)接收器接收到包含有分別表示多個(gè)數(shù)據(jù)包中對(duì)應(yīng)的數(shù)據(jù)包是否被所述數(shù)據(jù)接收器所接收的標(biāo)志位的確認(rèn)響應(yīng)消息時(shí),執(zhí)行針對(duì)所述標(biāo)志位的至少一個(gè)按位運(yùn)算,從而識(shí)別所述多個(gè)數(shù)據(jù)包中丟失的數(shù)據(jù)包;包傳送單元,將識(shí)別的所述數(shù)據(jù)包重新傳送給數(shù)據(jù)接收器。
[0023]根據(jù)所述數(shù)據(jù)發(fā)送器的一個(gè)方面,所述重新傳送處理單元還設(shè)定可利用于所述重新傳送的時(shí)間段,所述包傳送單元還將在所述時(shí)間段內(nèi)反復(fù)地重新傳送識(shí)別的所述數(shù)據(jù)包。
[0024]根據(jù)另一個(gè)示例性實(shí)施例,提供一種數(shù)據(jù)通信方法,包括如下步驟:構(gòu)成分別表示是否從數(shù)據(jù)發(fā)送器接收到多個(gè)數(shù)據(jù)包中對(duì)應(yīng)的數(shù)據(jù)包的多個(gè)指示符;執(zhí)行針對(duì)所述多個(gè)指示符的邏輯運(yùn)算,從而判定所述多個(gè)數(shù)據(jù)包中是否存在丟失的數(shù)據(jù)包;進(jìn)行所述判定的結(jié)果,如果存在丟失的數(shù)據(jù)包,便將包含所述多個(gè)指示符的確認(rèn)響應(yīng)消息