專利名稱:發(fā)送設(shè)備、發(fā)送方法和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及發(fā)送設(shè)備、發(fā)送方法和包括程序的記錄介質(zhì),具體而言涉
及獲得提高的TCP/IP通信速度的發(fā)送設(shè)備、發(fā)送方法和程序。
背景技術(shù):
近年來(lái),TCP/IP (傳輸控制協(xié)議/因特網(wǎng)協(xié)議)已被廣泛用作諸如因特 網(wǎng)之類的網(wǎng)絡(luò)的標(biāo)準(zhǔn)傳輸協(xié)議。
通常,在TCP/IP通信中,數(shù)據(jù)發(fā)送器接收ACK (確認(rèn))分組,作為 來(lái)自數(shù)據(jù)接收器的TCP/IP協(xié)議棧的對(duì)數(shù)據(jù)接收的確認(rèn)。ACK分組中包括 的確認(rèn)號(hào)(ACK號(hào))具有一個(gè)序號(hào)和表示所接收的數(shù)據(jù)的大小的數(shù)據(jù)。當(dāng) ACK分組未作為響應(yīng)發(fā)送到數(shù)據(jù)發(fā)送器時(shí),數(shù)據(jù)發(fā)送器重發(fā)與前述被發(fā)送 但是關(guān)于該數(shù)據(jù)的ACK分組還未被數(shù)據(jù)發(fā)送器接收的數(shù)據(jù)相同的數(shù)據(jù)。
本實(shí)施例的申請(qǐng)人已提出了一種重發(fā)分組的技術(shù)(例如參見(jiàn)日本專利 早期公開(kāi)No. 2005-136547)。
在所提出的技術(shù)中,當(dāng)判定在數(shù)據(jù)應(yīng)當(dāng)被再現(xiàn)之前接收器可以接收重 發(fā)分組時(shí),對(duì)重發(fā)所請(qǐng)求的重發(fā)分組的操作進(jìn)行控制。
發(fā)明內(nèi)容
然而,就包括日本專利早期公開(kāi)No. 2005-136547中所公開(kāi)的技術(shù)的 已知技術(shù)而言,在用作發(fā)送器的主機(jī)不具有執(zhí)行處理的容量的情況下,或 者在用作數(shù)據(jù)接收器的TCP/IP協(xié)議棧被設(shè)計(jì)為發(fā)送相當(dāng)數(shù)目的ACK分組 的情況下,由用作數(shù)據(jù)發(fā)送器的主機(jī)執(zhí)行的ACK分組接收處理可能導(dǎo)致 TCP/IP通信速度的惡化。
考慮到以上問(wèn)題提出了本實(shí)施例,并且本實(shí)施例減少了要在TCP/IP 通信中執(zhí)行的操作,并且提高了 TCP/IP通信速度。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種發(fā)送設(shè)備,包括用于接收響 應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè)備發(fā)送來(lái)的ACK分組的接收裝置、用于存儲(chǔ)這
些ACK分組中最近接收的最新ACK分組的ACK存儲(chǔ)裝置、以及用于根 據(jù)在預(yù)定定時(shí)從ACK存儲(chǔ)裝置提供來(lái)的最新ACK分組來(lái)執(zhí)行接收ACK 分組的處理的TCP/IP處理裝置。
在一個(gè)特定ACK分組已在TCP/IP通信中從通信伙伴發(fā)送來(lái)并且前述 分組還未存儲(chǔ)在ACK存儲(chǔ)裝置中的情況下,ACK存儲(chǔ)裝置可以將該特定 ACK分組存儲(chǔ)為最新ACK分組。
當(dāng)已存儲(chǔ)在ACK存儲(chǔ)裝置中作為最新ACK分組的另一 ACK分組被 存儲(chǔ)在ACK存儲(chǔ)裝置中的時(shí)間段沒(méi)有超過(guò)預(yù)定的時(shí)間段并且存儲(chǔ)的ACK 分組的數(shù)目小于要存儲(chǔ)的ACK分組的最大數(shù)目時(shí),在一個(gè)特定ACK分組 已在TCP/IP通信中從通信伙伴發(fā)送來(lái)并且與該另一 ACK分組連續(xù)的狀況 下,ACK存儲(chǔ)裝置將該特定ACK分組存儲(chǔ)為最新ACK分組。
當(dāng)最新ACK分組被存儲(chǔ)在ACK存儲(chǔ)裝置中的時(shí)間段超過(guò)了預(yù)定的時(shí) 間段時(shí)或者當(dāng)存儲(chǔ)的ACK分組的數(shù)目達(dá)到了要存儲(chǔ)的ACK分組的最大數(shù) 目時(shí),在ACK存儲(chǔ)裝置接收到并不與己存儲(chǔ)在ACK存儲(chǔ)裝置中作為最新 ACK分組的分組連續(xù)的ACK分組的情況下,ACK存儲(chǔ)裝置將該最新 ACK分組提供給TCP/IP處理裝置。
TCP/IP處理裝置可以在預(yù)定定時(shí)向ACK存儲(chǔ)裝置發(fā)送用于獲得最新 ACK分組的ACK處理請(qǐng)求。ACK存儲(chǔ)裝置可以響應(yīng)于ACK處理請(qǐng)求而 將所存儲(chǔ)的最新ACK分組提供給TCP/IP處理裝置。
根據(jù)本發(fā)明的另一個(gè)實(shí)施例,提供來(lái)一種發(fā)送方法,包括以下步驟 存儲(chǔ)最新ACK分組,該最新ACK分組是響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè)備發(fā) 送來(lái)的ACK分組中最近接收的;以及根據(jù)在預(yù)定定時(shí)提供的最新ACK分 組來(lái)執(zhí)行接收ACK分組的處理。
根據(jù)本發(fā)明的又一實(shí)施例,提供了一種與上述發(fā)送方法相對(duì)應(yīng)的程序。
在發(fā)送設(shè)備、發(fā)送方法和程序中,存儲(chǔ)了響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè) 備發(fā)送來(lái)的ACK分組中最近接收的最新ACK分組,并且在預(yù)定定時(shí)根據(jù)最新ACK分組來(lái)執(zhí)行接收ACK分組的處理。 因此,可以提高TCP/IP通信的速度。
圖1是圖示根據(jù)本發(fā)明第一實(shí)施例的通信系統(tǒng)的框圖2是圖示根據(jù)本發(fā)明第一實(shí)施例的發(fā)送處理的流程圖3是圖示根據(jù)本發(fā)明第一實(shí)施例的ACK存儲(chǔ)處理的流程圖4是圖示根據(jù)本發(fā)明第二實(shí)施例的通信系統(tǒng)的框圖5是圖示根據(jù)本發(fā)明第二實(shí)施例的ACK存儲(chǔ)處理的流程圖6是圖示接收ACK分組的處理的流程圖;以及
圖7是圖示計(jì)算機(jī)的配置示例的框圖。
具體實(shí)施例方式
下面將參考附圖描述本發(fā)明的實(shí)施例。
圖1是圖示根據(jù)本發(fā)明第一實(shí)施例的通信系統(tǒng)的配置的框圖。在該通 信系統(tǒng)中,發(fā)送設(shè)備11和接收設(shè)備12連接到網(wǎng)絡(luò)13,并且彼此通信。
注意,網(wǎng)絡(luò)13對(duì)應(yīng)于傳輸路徑,例如有線或無(wú)線通信線路、有線或 無(wú)線網(wǎng)絡(luò)、或者因特網(wǎng),并且在具有預(yù)定延遲時(shí)間的情況下從發(fā)送設(shè)備11 向接收設(shè)備12發(fā)送分組。
發(fā)送設(shè)備11響應(yīng)于從接收設(shè)備12發(fā)送來(lái)的請(qǐng)求通過(guò)網(wǎng)絡(luò)13向接收設(shè) 備12發(fā)送包括發(fā)送數(shù)據(jù)的分組。此外,發(fā)送設(shè)備ll在預(yù)定時(shí)間段內(nèi)存儲(chǔ) 用作對(duì)發(fā)送數(shù)據(jù)的接收的確認(rèn)并且在TCP/IP通信中接收的ACK分組,并 且判定在后級(jí)中是否要執(zhí)行ACK接收處理。發(fā)送設(shè)備11根據(jù)判定的結(jié)果 來(lái)執(zhí)行ACK接收處理。
具體而言,如圖1所示,發(fā)送設(shè)備11包括網(wǎng)絡(luò)應(yīng)用21、 TCP/IP處理 器22、發(fā)送/接收單元23和ACK存儲(chǔ)單元24。
網(wǎng)絡(luò)應(yīng)用21生成要被發(fā)送給某一設(shè)備(例如連接到網(wǎng)絡(luò)13的接收設(shè) 備12)的發(fā)送數(shù)據(jù),并將發(fā)送數(shù)據(jù)提供給TCP/IP處理器22。
TCP/IP處理器22執(zhí)行協(xié)議處理,該處理是將從網(wǎng)絡(luò)應(yīng)用21提供來(lái)的發(fā)送數(shù)據(jù)劃分成發(fā)送數(shù)據(jù)項(xiàng),并將所劃分的發(fā)送數(shù)據(jù)項(xiàng)存儲(chǔ)到各個(gè)分組的
處理。TCP/IP處理器22將存儲(chǔ)了發(fā)送數(shù)據(jù)項(xiàng)的分組發(fā)送到發(fā)送/接收單元 23。
發(fā)送/接收單元23通過(guò)網(wǎng)絡(luò)13將從TCP/IP處理器22提供來(lái)的每個(gè)分 組發(fā)送到接收設(shè)備12。下文中,為了簡(jiǎn)化,將以要發(fā)送的發(fā)送數(shù)據(jù)項(xiàng)之一 和相應(yīng)的一個(gè)分組作為示例來(lái)進(jìn)行描述。
發(fā)送/接收單元23接收用作對(duì)發(fā)送數(shù)據(jù)項(xiàng)的接收的確認(rèn)并且從接收設(shè) 備12發(fā)送來(lái)的ACK分組,并且將ACK分組提供給ACK存儲(chǔ)單元24。
ACK存儲(chǔ)單元24判定是要將從發(fā)送/接收單元23提供來(lái)的ACK分組 存儲(chǔ)預(yù)定時(shí)間段還是要將ACK分組提供給TCP/IP處理器22。當(dāng)ACK存 儲(chǔ)單元24判定要存儲(chǔ)ACK分組預(yù)定的時(shí)間段時(shí),ACK分組被存儲(chǔ)在 ACK存儲(chǔ)單元24中。另一方面,當(dāng)ACK存儲(chǔ)單元24判定要將ACK分組 提供給TCP/IP處理器22時(shí),ACK分組被提供給TCP/IP處理器22。
該判定是根據(jù)三個(gè)參數(shù)的設(shè)定進(jìn)行的,即表示存儲(chǔ)的ACK分組的最 大數(shù)目的最大存儲(chǔ)ACK分組計(jì)數(shù)、確定ACK分組被存儲(chǔ)的時(shí)間段的 ACK存儲(chǔ)定時(shí)器(ACK存儲(chǔ)時(shí)間)、以及啟用或禁用存儲(chǔ)ACK分組的功 能的ACK存儲(chǔ)功能。也就是說(shuō),通過(guò)設(shè)定這三個(gè)參數(shù),即存儲(chǔ)的ACK分 組數(shù)目、ACK存儲(chǔ)定時(shí)器和ACK存儲(chǔ)功能,來(lái)判定是要將ACK分組存 儲(chǔ)預(yù)定的時(shí)間段,還是要將ACK分組提供給TCP/IP處理器22。
具體而言,例如在ACK存儲(chǔ)單元24接收到與已存儲(chǔ)在ACK存儲(chǔ)單 元24中的另一 ACK分組連續(xù)的ACK分組的情況下,ACK存儲(chǔ)單元24將 所接收的ACK分組存儲(chǔ)為最新ACK分組,對(duì)存儲(chǔ)的ACK分組數(shù)目計(jì) 數(shù),并且設(shè)定ACK存儲(chǔ)定時(shí)器。另一方面,在ACK存儲(chǔ)單元24接收到 并不與已存儲(chǔ)在ACK存儲(chǔ)單元24中的另一 ACK分組連續(xù)的ACK分組的 情況下,在最新ACK分組被存儲(chǔ)之后ACK存儲(chǔ)定時(shí)器計(jì)時(shí)中的時(shí)間段超 過(guò)了某一時(shí)間段的情況下,或者在存儲(chǔ)的ACK分組數(shù)目已達(dá)到存儲(chǔ)的 ACK分組的最大數(shù)目的情況下,存儲(chǔ)在ACK存儲(chǔ)單元24中的最新ACK 分組被提供給TCP/IP處理器22。
注意,表示存儲(chǔ)的ACK分組數(shù)目的參數(shù)和ACK存儲(chǔ)定時(shí)器的參數(shù)是通過(guò)考慮來(lái)自接收了發(fā)送數(shù)據(jù)項(xiàng)的設(shè)備的ACK分組的發(fā)送頻率和發(fā)送間 隔而設(shè)定的,從而使得對(duì)該設(shè)備的數(shù)據(jù)傳送不被中斷?;蛘?,可以給表示 存儲(chǔ)的ACK分組數(shù)目的參數(shù)和ACK存儲(chǔ)定時(shí)器的參數(shù)設(shè)定靜態(tài)值,并且 可以動(dòng)態(tài)改變這些值。
只有在ACK存儲(chǔ)功能的參數(shù)表示ACK存儲(chǔ)功能的可用狀態(tài)的情況 下,ACK存儲(chǔ)單元24才執(zhí)行ACK存儲(chǔ)處理。
當(dāng)判定ACK分組要被發(fā)送到TCP/IP處理器22時(shí),ACK存儲(chǔ)單元24 將ACK分組發(fā)送到TCP/IP處理器22,并且TCP/IP處理器22執(zhí)行接收 ACK分組的處理。具體而言,TCP/IP處理器22根據(jù)與從ACK存儲(chǔ)單元 24提供來(lái)的ACK分組對(duì)應(yīng)存儲(chǔ)的信息項(xiàng),來(lái)識(shí)別多個(gè)數(shù)據(jù)項(xiàng)中包括在已 發(fā)送的發(fā)送數(shù)據(jù)中的數(shù)據(jù)項(xiàng),并且丟棄已發(fā)送的發(fā)送數(shù)據(jù)項(xiàng)(正常TCP/IP 發(fā)送處理)。
此外,TCP/IP處理器22在檢查所有發(fā)送數(shù)據(jù)項(xiàng)的ACK分組之后向網(wǎng) 絡(luò)應(yīng)用21通知發(fā)送的完成。這樣,網(wǎng)絡(luò)應(yīng)用21認(rèn)識(shí)到發(fā)送數(shù)據(jù)的發(fā)送完 成。
發(fā)送設(shè)備11被如上所述配置。
接收設(shè)備12接收通過(guò)網(wǎng)絡(luò)13從發(fā)送設(shè)備11發(fā)送來(lái)的分組。接收設(shè)備 12從所接收的分組中提取出發(fā)送數(shù)據(jù)項(xiàng)并且輸出所提取的發(fā)送數(shù)據(jù)項(xiàng)。 如圖1所示,接收設(shè)備12包括TCP/IP處理器31和發(fā)送/接收單元32。
發(fā)送/接收單元32接收通過(guò)網(wǎng)絡(luò)13從發(fā)送設(shè)備11發(fā)送來(lái)的包括發(fā)送 數(shù)據(jù)項(xiàng)的分組,并將分組提供給TCP/IP處理器31。
TCP/IP處理器31接收從發(fā)送/接收單元32提供來(lái)的分組,并從分組中 提取出發(fā)送數(shù)據(jù)項(xiàng)。此外,TCP/IP處理器31將用作對(duì)發(fā)送數(shù)據(jù)項(xiàng)的接收 的確認(rèn)的ACK分組提供給發(fā)送/接收單元32。
發(fā)送/接收單元32將從TCP/IP處理器31提供來(lái)的ACK分組通過(guò)網(wǎng)絡(luò) 13發(fā)送到發(fā)送設(shè)備11。
接收設(shè)備12被如上所述配置。
在如上所述配置的通信系統(tǒng)中,發(fā)送包括發(fā)送數(shù)據(jù)項(xiàng)的分組的發(fā)送設(shè)備11接收用作對(duì)接收的確認(rèn)的ACK分組。在發(fā)送設(shè)備11所接收的多個(gè) ACK分組中,最近接收的ACK分組被存儲(chǔ),并且在預(yù)定定時(shí)利用存儲(chǔ)的 ACK分組來(lái)執(zhí)行接收ACK分組的處理。
現(xiàn)在參考圖2的流程圖,將描述由發(fā)送設(shè)備11執(zhí)行的發(fā)送處理。
注意,在圖2中,在發(fā)送包括發(fā)送數(shù)據(jù)項(xiàng)的分組的情況下,為了簡(jiǎn)化 省略了對(duì)在建立TCP連接之前執(zhí)行的處理的描述,并且將描述在發(fā)送設(shè)備 ll和接收設(shè)備12之間建立了 TCP連接之后執(zhí)行的處理。
在步驟Sl中,網(wǎng)絡(luò)應(yīng)用21生成要發(fā)送到接收設(shè)備12的發(fā)送數(shù)據(jù), 并將發(fā)送數(shù)據(jù)提供給TCP/IP處理器22。
在步驟S2中,TCP/IP處理器22對(duì)從網(wǎng)絡(luò)應(yīng)用21提供來(lái)的發(fā)送數(shù)據(jù) 執(zhí)行協(xié)議處理。TCP/IP處理器22將通過(guò)對(duì)發(fā)送數(shù)據(jù)執(zhí)行協(xié)議處理而獲得 的包括發(fā)送數(shù)據(jù)項(xiàng)的多個(gè)分組中的每一個(gè)提供給發(fā)送/接收單元23。下文 中,為了簡(jiǎn)化,將以要發(fā)送的發(fā)送數(shù)據(jù)項(xiàng)之一和相對(duì)應(yīng)的一個(gè)分組作為示 例進(jìn)行描述。
在步驟S3中,發(fā)送/接收單元23將從TCP/IP處理器22提供來(lái)的分組 通過(guò)網(wǎng)絡(luò)13發(fā)送到接收設(shè)備12。
然后,用作對(duì)接收的確認(rèn)的ACK分組被從接收到發(fā)送數(shù)據(jù)項(xiàng)的接收 設(shè)備12發(fā)送,并且在步驟S4中,發(fā)送/接收單元23接收通過(guò)網(wǎng)絡(luò)13從接 收設(shè)備12發(fā)送來(lái)的ACK分組,并將ACK分組提供給ACK存儲(chǔ)單元24。 注意,當(dāng)接收到通過(guò)網(wǎng)絡(luò)13發(fā)送來(lái)的分組時(shí),發(fā)送/接收單元23將分組提 供給ACK存儲(chǔ)單元24,而不管分組的內(nèi)容如何。也就是說(shuō),ACK存儲(chǔ)單 元24接收通過(guò)網(wǎng)絡(luò)13發(fā)送來(lái)的各種分組,而不僅僅是ACK分組。
在步驟S5中,ACK存儲(chǔ)單元24執(zhí)行ACK存儲(chǔ)處理,以便判定是要 將從發(fā)送/接收單元23發(fā)送來(lái)的各種分組中的ACK分組存儲(chǔ)預(yù)定的時(shí)間 段,還是要將ACK分組提供給TCP/IP處理器22。
現(xiàn)在參考圖3的流程圖,將詳細(xì)描述對(duì)應(yīng)于步驟S5的操作的、由圖1 中所示的ACK存儲(chǔ)單元24執(zhí)行的ACK存儲(chǔ)處理。
在步驟Sll中,ACK存儲(chǔ)單元24接收從發(fā)送/接收單元23提供來(lái)的 分組。在步驟S12中,ACK存儲(chǔ)單元24判定ACK存儲(chǔ)功能是否可用。當(dāng)步驟S12中的判定為否定時(shí),ACK存儲(chǔ)單元24并不存儲(chǔ)分組,而是在步 驟S19中將分組提供給TCP/IP處理器22,并且過(guò)程返回到步驟Sll。也 就是說(shuō),當(dāng)ACK存儲(chǔ)功能不可用時(shí),ACK分組不被存儲(chǔ),而是被立即提 供給TCP/IP處理器22。
另一方面,當(dāng)步驟S12中的判定為肯定時(shí),ACK存儲(chǔ)單元24在步驟 S13中判定是否已從TCP/IP通信中的通信伙伴提供了分組。
當(dāng)在步驟S13中判定尚未從TCP/IP通信中的通信伙伴(即接收設(shè)備 12)提供接收ACK分組時(shí),ACK存儲(chǔ)單元24在步驟S19中并不存儲(chǔ)所接 收的分組,而是將分組提供給TCP/IP處理器22,并且過(guò)程返回到步驟 Sll。另一方面,當(dāng)在步驟S13中判定接收ACK分組已從TCP/IP通信中 的通信伙伴(即接收設(shè)備12)提供來(lái)時(shí),ACK存儲(chǔ)單元24在步驟S14中 判定其中是否存儲(chǔ)有前述分組。
當(dāng)在步驟S14中判定ACK存儲(chǔ)單元24中未存儲(chǔ)任何前述ACK分組 時(shí),ACK存儲(chǔ)單元24在步驟S20中判定是否已添加了除ACK標(biāo)志和 TCP選項(xiàng)以外的TCP控制標(biāo)志。
當(dāng)步驟S20中的判定為否定時(shí),ACK存儲(chǔ)單元24在步驟S21中在其 中存儲(chǔ)所接收的最新分組,并且設(shè)定ACK存儲(chǔ)定時(shí)器。也就是說(shuō),在這 種情況下,所接收的最新ACK分組被存儲(chǔ)在ACK存儲(chǔ)單元24中,并且 在ACK存儲(chǔ)單元24中設(shè)置了 ACK存儲(chǔ)定時(shí)器。其后,過(guò)程返回到步驟 Sll。
另一方面,當(dāng)步驟S20中的判定為肯定時(shí),ACK存儲(chǔ)單元24在步驟 S19中并不存儲(chǔ)所接收的分組,而是將分組提供給TCP/IP處理器22,然 后過(guò)程返回到步驟Sll。注意,除ACK標(biāo)志和TCP選項(xiàng)以外的控制標(biāo)志 的示例包括PSH標(biāo)志和URG標(biāo)志。這種控制標(biāo)志是在作出用于執(zhí)行特殊 處理的請(qǐng)求的情況下設(shè)定的。因此,ACK分組不被存儲(chǔ)在ACK存儲(chǔ)單元 24中,而是被立即提供給TCP/IP處理器22。
當(dāng)在步驟S14中判定在ACK存儲(chǔ)單元24中已存儲(chǔ)了前述ACK分組 時(shí),ACK存儲(chǔ)單元24在步驟S15中判定所接收的最新ACK分組是否與存 儲(chǔ)在ACK存儲(chǔ)單元24中的前述ACK分組連續(xù)。當(dāng)步驟S15中的判定為否定時(shí),ACK存儲(chǔ)單元24在步驟S22中將存 儲(chǔ)的前述ACK分組和所接收的最新ACK分組提供給TCP/IP處理器22, 然后過(guò)程返回到步驟Sll。也就是說(shuō),在這種情況下,由于發(fā)生了分組丟 失,因此前述ACK分組和最新ACK分組被提供給TCP/IP處理器22。
當(dāng)步驟S15中的判定為肯定時(shí),ACK存儲(chǔ)單元24在步驟S16中判定 是否已向所接收的ACK分組添加了除ACK標(biāo)志和TCP選項(xiàng)以外的TCP 控制標(biāo)志。
當(dāng)步驟S16中的判定為肯定時(shí),過(guò)程前進(jìn)到步驟S22,在步驟S22 中,ACK存儲(chǔ)單元24將其中存儲(chǔ)的前述ACK分組和最新ACK分組提供 給TCP/IP處理器22,然后過(guò)程返回到步驟Sll。另一方面,當(dāng)步驟S16 中的判定為否定時(shí),ACK存儲(chǔ)單元24在步驟S17中判定是否達(dá)到了存儲(chǔ) 的ACK分組的最大數(shù)目。
當(dāng)步驟S17中的判定為否定時(shí),ACK存儲(chǔ)單元24在步驟S18中將所 接收的ACK分組存儲(chǔ)為最新ACK分組,復(fù)位ACK存儲(chǔ)定時(shí)器,并對(duì)其 中已存儲(chǔ)的ACK分組計(jì)數(shù)。也就是說(shuō),在這種情況下,由于存儲(chǔ)的ACK 分組的數(shù)目并未達(dá)到存儲(chǔ)的ACK分組的最大數(shù)目,因此所接收的ACK分 組被存儲(chǔ)在ACK存儲(chǔ)單元24中。此外,由于所接收的ACK分組被存儲(chǔ) 為最新ACK分組,因此ACK存儲(chǔ)單元24復(fù)位ACK存儲(chǔ)定時(shí)器,并且遞 增存儲(chǔ)的ACK分組的數(shù)目。
另一方面,當(dāng)步驟S17中的判定為肯定時(shí),ACK存儲(chǔ)單元24在步驟 S23中將最新ACK分組提供給TCP/IP處理器22,并且復(fù)位ACK存儲(chǔ)定 時(shí)器。也就是說(shuō),在這種情況下,由于存儲(chǔ)的ACK分組的數(shù)目達(dá)到了存 儲(chǔ)的ACK分組的最大數(shù)目,因此接收到的最新ACK分組被提供給TCP/IP 處理器22。此外,由于最新ACK分組被提供給TCP/IP處理器22,因此 ACK存儲(chǔ)定時(shí)器被復(fù)位。在步驟S18或步驟S23的操作之后,過(guò)程返回到 步驟Sll。
在步驟S18、步驟S19、步驟S21、步驟S22或步驟S23的操作之 后,過(guò)程返回到步驟Sll,并且上述操作被重復(fù)執(zhí)行。也就是說(shuō),由于從 步驟Sll至步驟S23的過(guò)程被重復(fù)執(zhí)行,因此用作對(duì)發(fā)送數(shù)據(jù)項(xiàng)的接收的確認(rèn)的ACK分組被存儲(chǔ)在ACK存儲(chǔ)單元24中或者被提供給TCP/IP處理 器22。
注意,盡管未在圖3中示出,但是在最新ACK分組被存儲(chǔ)在ACK存 儲(chǔ)單元24中之后經(jīng)過(guò)了利用ACK存儲(chǔ)定時(shí)器設(shè)定的某一時(shí)間段(在該時(shí) 間段中,等待ACK分組的連接)的情況下,存儲(chǔ)的ACK分組被提供給 TCP/IP處理器22。
如上所述,在存儲(chǔ)第一 ACK分組的同時(shí)ACK存儲(chǔ)單元24接收到與 第一 ACK分組連續(xù)的第二 ACK分組的情況下,最新ACK分組被存儲(chǔ), 并且對(duì)已存儲(chǔ)的ACK分組計(jì)數(shù)。另一方面,在接收到并不與第一 ACK分 組連續(xù)的第三ACK分組的情況下,在ACK存儲(chǔ)定時(shí)器開(kāi)始計(jì)數(shù)之后經(jīng)過(guò) 了某一時(shí)間段的情況下,或者在存儲(chǔ)的分組數(shù)目達(dá)到了 ACK分組的最大 數(shù)目的情況下,己存儲(chǔ)在ACK存儲(chǔ)單元24中的最新ACK分組被提供給 TCP/IP處理器22。
返回圖2的流程圖,在步驟S6中,在TCP/IP處理器22從ACK存儲(chǔ) 單元24接收到ACK分組的任意定時(shí),TCP/IP處理器22根據(jù)相應(yīng)ACK分 組中包括的信息項(xiàng)來(lái)識(shí)別多個(gè)數(shù)據(jù)項(xiàng)中包括在發(fā)送數(shù)據(jù)中并且已發(fā)送的數(shù) 據(jù)項(xiàng),以便丟棄己發(fā)送的數(shù)據(jù)項(xiàng)。發(fā)送處理從而終止。
這樣,在發(fā)送設(shè)備11中,TCP/IP處理器22執(zhí)行TCP/IP發(fā)送處理, 同時(shí)ACK存儲(chǔ)單元24限制了從數(shù)據(jù)接收器接收的ACK分組向TCP/IP處 理器22的供應(yīng)。因此,可以減少由TCP/IP處理器22執(zhí)行的接收ACK分 組的處理量。這在使用具有小容量的CPU (中央處理單元)的情況下是非 常有效的。
這里,已參考圖1中所示的配置描述了 ACK存儲(chǔ)單元24判定是否要 提供ACK分組的情況。然而,ACK存儲(chǔ)單元24可以根據(jù)來(lái)自TCP/IP處 理器22的請(qǐng)求進(jìn)行這種判定。接下來(lái),將描述設(shè)計(jì)用于在預(yù)定定時(shí)接收 存儲(chǔ)的最新ACK分組的處理的配置,這種處理是由具有存儲(chǔ)最新ACK分 組的部件的發(fā)送設(shè)備11執(zhí)行的。
圖4是圖示根據(jù)本發(fā)明第二實(shí)施例的通信系統(tǒng)的另一種配置的框圖。 注意,與圖1中所示相同的標(biāo)號(hào)被用于圖4中所示與圖1相同的那些組件,并且因此它們的描述被省略以避免重復(fù)。該配置與圖1的配置的不
同之處在于采用了 TCP/IP處理器41和ACK存儲(chǔ)單元42,來(lái)分別代替 TCP/IP處理器22和ACK存儲(chǔ)單元24。
TCP/IP處理器41具有基本與TCP/IP處理器22相同的功能。然而, TCP/IP處理器41與TCP/IP處理器22的不同之處在于還具有在任意定時(shí) 向ACK存儲(chǔ)單元42發(fā)送ACK處理請(qǐng)求的功能。
注意,ACK處理請(qǐng)求是在存儲(chǔ)在ACK存儲(chǔ)單元42中的最新ACK分 組要被TCP/IP處理器41時(shí),被從TCP/IP處理器41發(fā)送到ACK存儲(chǔ)單元 42的。因此,TCP/IP處理器41通過(guò)向ACK存儲(chǔ)單元42發(fā)送ACK處理 請(qǐng)求來(lái)接收存儲(chǔ)在ACK存儲(chǔ)單元42中的最新ACK分組。
注意,為了獲得高發(fā)送性能,ACK處理請(qǐng)求應(yīng)當(dāng)被低頻度地發(fā)布,而 為了獲得高健壯性,ACK處理請(qǐng)求應(yīng)當(dāng)被頻繁發(fā)布。也就是說(shuō),發(fā)送性能 和健壯性具有權(quán)衡的關(guān)系,并且受到接收器的硬件性能或網(wǎng)絡(luò)吞吐量的影 響。因此,適當(dāng)?shù)闹当辉O(shè)計(jì)者設(shè)定為ACK處理請(qǐng)求的發(fā)布頻率。
ACK存儲(chǔ)單元42存儲(chǔ)從發(fā)送/接收單元23提供來(lái)的ACK分組,并且 響應(yīng)于從TCP/IP處理器41發(fā)送來(lái)的ACK處理請(qǐng)求將其中存儲(chǔ)的最新 ACK分組提供給TCP/IP處理器41 。
注意,由于ACK分組響應(yīng)于ACK處理請(qǐng)求而被提供給TCP/IP處理 器41,因此在圖4的發(fā)送設(shè)備11中并不要求設(shè)定存儲(chǔ)的ACK分組的最大 數(shù)目和ACK存儲(chǔ)定時(shí)器。然而,就圖1的發(fā)送設(shè)備ll而言,可以設(shè)定這 些參數(shù)。在這種情況下,在向ACK存儲(chǔ)單元42發(fā)送ACK處理請(qǐng)求的情 況下,在接收到并不與其中存儲(chǔ)的ACK分組連續(xù)的另一 ACK分組的情況 下,在最新ACK分組被存儲(chǔ)之后的ACK存儲(chǔ)定時(shí)器計(jì)時(shí)超過(guò)了某一時(shí)間 段的情況下,或者在存儲(chǔ)的ACK分組的數(shù)目己達(dá)到存儲(chǔ)的ACK分組的最 大數(shù)目的情況下,ACK存儲(chǔ)單元42將其中存儲(chǔ)的最新ACK分組提供給 TCP/IP處理器41。
圖4中所示的通信系統(tǒng)的其他配置與圖1中所示的通信系統(tǒng)相同。
現(xiàn)在將描述由圖4的發(fā)送設(shè)備11執(zhí)行的發(fā)送處理。
由圖4的發(fā)送設(shè)備11執(zhí)行的發(fā)送處理與由圖1的發(fā)送設(shè)備11執(zhí)行的發(fā)送處理(已參考圖2的流程圖描述)的不同之處在于在步驟S5和步驟 S6中執(zhí)行的操作。因此,下文中將描述由圖4的ACK存儲(chǔ)單元42執(zhí)行的 操作(對(duì)應(yīng)于圖2的步驟S5的操作)和由圖4的TCP/IP處理器41執(zhí)行的 操作(對(duì)應(yīng)于圖2的步驟S6的操作)。
具體而言,與圖2的步驟S1至步驟S4中執(zhí)行的操作相對(duì),從圖4的 發(fā)送設(shè)備11發(fā)送的分組被接收設(shè)備12接收,并且用作對(duì)接收的確認(rèn)的 ACK分組被從接收設(shè)備12發(fā)送。發(fā)送設(shè)備11接收ACK分組。
然后,圖4的ACK存儲(chǔ)單元42執(zhí)行參考圖5的流程圖描述的ACK 存儲(chǔ)處理,該處理對(duì)應(yīng)于在圖2的步驟S5中執(zhí)行的ACK存儲(chǔ)處理。也就 是說(shuō),圖5的流程圖中所示的處理對(duì)應(yīng)于在圖2的步驟S5中執(zhí)行的處 理。
與步驟Sll至步驟S14、步驟S19和步驟S20中執(zhí)行的操作相對(duì),在 步驟S41至步驟S44、步驟S48和步驟S49中,在ACK存儲(chǔ)單元42的 ACK存儲(chǔ)功能不可用的情況下,在接收的分組并不對(duì)應(yīng)于從通信伙伴發(fā)送 來(lái)的分組的情況下,以及在接收的分組對(duì)應(yīng)于從通信伙伴發(fā)送來(lái)的分組并 且已向ACK分組添加了除ACK標(biāo)志和TCP選項(xiàng)以外的TCP控制標(biāo)志的 情況下,所接收的ACK分組不被存儲(chǔ)在ACK存儲(chǔ)單元42中,而是被立 即提供給TCP/IP處理器41 。
另一方面,當(dāng)前述ACK分組還未存儲(chǔ)在ACK存儲(chǔ)單元42中并且在 步驟S49中判定尚未向所接收的ACK分組添加除ACK標(biāo)志和TCP選項(xiàng) 以外的TCP控制標(biāo)志時(shí),ACK存儲(chǔ)單元42在步驟S50中在其中存儲(chǔ)所接 收的分組作為最新ACK分組。注意,與圖3的步驟S21的操作不同,在 步驟S50中并不要求設(shè)定ACK存儲(chǔ)定時(shí)器,因此,并不執(zhí)行設(shè)定ACK存 儲(chǔ)定時(shí)器的操作。
與圖3的步驟S15、步驟S16和步驟S22中的操作相對(duì),在步驟 S45、步驟S46和步驟S51中,當(dāng)被ACK存儲(chǔ)單元24接收的ACK分組并 不與所存儲(chǔ)的前述ACK分組連續(xù)時(shí),所存儲(chǔ)的前述ACK分組和最新 ACK分組被提供給TCP/IP處理器41,而當(dāng)被ACK存儲(chǔ)單元24接收的 ACK分組與所存儲(chǔ)的前述ACK分組連續(xù)時(shí),在步驟S46中判定是否已向ACK分組添加了除ACK標(biāo)志和TCP選項(xiàng)以外的TCP控制標(biāo)志。當(dāng)步驟 S46中的判定為肯定時(shí),ACK存儲(chǔ)單元42在步驟S51中將其中存儲(chǔ)的前 述ACK分組和最新ACK分組提供給TCP/IP處理器41 。
另一方面,當(dāng)步驟S46中的判定為否定時(shí),ACK存儲(chǔ)單元42在步驟 S47中在其中存儲(chǔ)所接收的ACK分組作為最新ACK分組。注意,與圖3 的步驟S18中執(zhí)行的操作不同,并不要求執(zhí)行設(shè)定ACK存儲(chǔ)定時(shí)器的操 作和對(duì)存儲(chǔ)的ACK分組計(jì)數(shù)的操作,并且因此這些操作被省略。
如上所述,與圖1的ACK存儲(chǔ)單元24相對(duì),在圖4的ACK存儲(chǔ)單 元42中,執(zhí)行存儲(chǔ)所接收的ACK分組的操作。然而,并不要求提供其中 已存儲(chǔ)的前述ACK分組,并且因此并不執(zhí)行控制ACK存儲(chǔ)定時(shí)器和存儲(chǔ) 的ACK分組數(shù)目的操作。
返回圖2的流程圖,圖4的TCP/IP處理器41在步驟S6中執(zhí)行接收 ACK分組的處理。該處理將參考圖6的流程圖來(lái)描述。也就是說(shuō),圖6中 所示的流程圖的處理對(duì)應(yīng)于在圖2的步驟S6中執(zhí)行的操作。
在步驟S61中,TCP/IP處理器41在任意定時(shí)向ACK存儲(chǔ)單元42發(fā) 送ACK處理請(qǐng)求,例如在當(dāng)在TCP/IP處理器41中執(zhí)行的單次發(fā)送單位 的處理完成時(shí)的定時(shí)。ACK存儲(chǔ)單元42響應(yīng)于請(qǐng)求而發(fā)送ACK分組,并 且TCP/IP處理器41接收存儲(chǔ)在ACK存儲(chǔ)單元42中的ACK分組。
在步驟S62中,TCP/IP處理器41執(zhí)行接收ACK分組的處理。具體而 言,TCP/IP處理器41根據(jù)在從ACK存儲(chǔ)單元42發(fā)送來(lái)的相應(yīng)ACK分組 中包括的信息項(xiàng)來(lái)識(shí)別已發(fā)送的數(shù)據(jù)項(xiàng),以便丟棄已發(fā)送的數(shù)據(jù)項(xiàng)。其 后,過(guò)程返回到步驟S61,并且步驟S61和步驟S62中的操作被重復(fù)執(zhí) 行。
如上所述,通過(guò)響應(yīng)于從TCP/IP處理器41提供來(lái)的ACK處理請(qǐng)求 從ACK存儲(chǔ)單元42向TCP/IP處理器41發(fā)送ACK分組,來(lái)執(zhí)行接收 ACK分組的處理,其中TCP/IP處理器41執(zhí)行接收ACK分組的處理。
如上所述,根據(jù)本實(shí)施例,可以限制從數(shù)據(jù)接收器向執(zhí)行接收ACK 分組的處理的部件的ACK分組的供應(yīng)。因此,可以減少處理量,這導(dǎo)致 TCP/IP通信速度的提高。這在使用具有小容量的CPU (例如被并入的CPU)的情況下是非常有效的。
前述一系列操作可以由硬件或軟件執(zhí)行。在這一系列操作由軟件執(zhí)行 的情況下,構(gòu)成軟件的程序被安裝在專用硬件中并入的計(jì)算機(jī)內(nèi),或者安 裝在通用個(gè)人計(jì)算機(jī)中,該通用個(gè)人計(jì)算機(jī)例如可通過(guò)從程序記錄介質(zhì)安 裝各種程序來(lái)執(zhí)行各種功能。
圖7是圖示通過(guò)運(yùn)行程序來(lái)執(zhí)行這一系列操作的個(gè)人計(jì)算機(jī)的配置示 例的框圖。CPU 111根據(jù)存儲(chǔ)在ROM (只讀存儲(chǔ)器)112和記錄單元118 中的程序來(lái)執(zhí)行各種操作。RAM (隨機(jī)訪問(wèn)存儲(chǔ)器)113存儲(chǔ)例如要由 CPUlll按需執(zhí)行的程序和數(shù)據(jù)。CPU 111、 ROM 112和RAM 113通過(guò)總 線114彼此連接。
CPU lll通過(guò)總線114連接到輸入/輸出接口 115。輸入/輸出接口 115 連接到包括麥克風(fēng)的輸入單元116以及包括顯示器和揚(yáng)聲器的輸出單元 117。 CPU 111響應(yīng)于利用輸入單元116輸入的各種指令而執(zhí)行各種操作。 CPU將操作的結(jié)果輸出到輸出單元117。
連接到輸入/輸出接口 115的記錄單元118例如對(duì)應(yīng)于硬盤,并且存儲(chǔ) 要由CPU 111執(zhí)行的程序和各種數(shù)據(jù)。通信單元119通過(guò)諸如因特網(wǎng)或局 域網(wǎng)之類的網(wǎng)絡(luò)與外部設(shè)備通信。
程序可以通過(guò)通信單元119接收并被記錄在記錄單元118中。
連接到輸入/輸出接口 115的驅(qū)動(dòng)器120驅(qū)動(dòng)其中插入的可移除介質(zhì) 121,例如磁盤、光盤、磁光盤或半導(dǎo)體存儲(chǔ)器,并且獲得可移除介質(zhì)121 中記錄的程序和數(shù)據(jù)。所獲得的程序和數(shù)據(jù)按需要被發(fā)送到記錄單元118 并被存儲(chǔ)在記錄單元118中。
存儲(chǔ)被安裝在計(jì)算機(jī)中并且可由計(jì)算機(jī)執(zhí)行的程序的程序的程序記錄 介質(zhì)的示例包括可移除介質(zhì)121和臨時(shí)或永久存儲(chǔ)程序的ROM 112或者 包括記錄單元118的硬盤,可移除介質(zhì)121是諸如磁盤(包括柔性盤)、 光盤(包括CD-ROM (致密盤-只讀存儲(chǔ)器))、DVD (數(shù)字多功能 盤)、磁光盤或半導(dǎo)體存儲(chǔ)器之類的封裝介質(zhì)。程序按需要通過(guò)與一種接 口相對(duì)應(yīng)的通信單元119 (例如根程序或調(diào)制解調(diào)器)并且還通過(guò)有線或 無(wú)線通信介質(zhì)(例如局域網(wǎng)、因特網(wǎng)或數(shù)字衛(wèi)星廣播)被存儲(chǔ)到程序記錄介質(zhì)。
注意,記錄存儲(chǔ)在記錄介質(zhì)中的程序的步驟包括按這里描述的順序以 時(shí)序方式執(zhí)行的處理,并且該步驟還包括并行執(zhí)行的處理或者獨(dú)立執(zhí)行的 處理。
術(shù)語(yǔ)"系統(tǒng)"在這里指包括多個(gè)單元的整個(gè)設(shè)備。
本實(shí)施例并不限于前述實(shí)施例,而是可以進(jìn)行各種修改,而不脫離本 發(fā)明的范圍。
本申請(qǐng)包含與2008年4月4日向日本專利局提交的日本在先專利申請(qǐng) JP 2008-098267中所公開(kāi)的內(nèi)容有關(guān)的主題,該申請(qǐng)的全部?jī)?nèi)容通過(guò)引用 結(jié)合于此。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,取決于設(shè)計(jì)需求和其他因素,可以發(fā)生多 種修改、組合、子組合和變更,只要這些修改、組合、子組合和變更在權(quán) 利要求或其等同物的范圍內(nèi)。
權(quán)利要求
1.一種發(fā)送設(shè)備,包括接收裝置,用于接收響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè)備發(fā)送來(lái)的ACK分組;ACK存儲(chǔ)裝置,用于存儲(chǔ)ACK分組中最近接收的最新ACK分組;以及TCP/IP處理裝置,用于根據(jù)在預(yù)定定時(shí)從所述ACK存儲(chǔ)裝置提供來(lái)的最新ACK分組來(lái)執(zhí)行接收ACK分組的處理。
2. 如權(quán)利要求1所述的發(fā)送設(shè)備,其中,在一個(gè)特定ACK分組已在 TCP/IP通信中從通信伙伴發(fā)送來(lái)并且前述分組還未存儲(chǔ)在所述ACK存儲(chǔ) 裝置中的情況下,所述ACK存儲(chǔ)裝置將該特定ACK分組存儲(chǔ)為最新 ACK分組。
3. 如權(quán)利要求2所述的發(fā)送設(shè)備,其中,當(dāng)已存儲(chǔ)在所述ACK存儲(chǔ) 裝置中作為最新ACK分組的另一 ACK分組被存儲(chǔ)在所述ACK存儲(chǔ)裝置 中的時(shí)間段沒(méi)有超過(guò)預(yù)定的時(shí)間段并且存儲(chǔ)的ACK分組的數(shù)目小于要存 儲(chǔ)的ACK分組的最大數(shù)目時(shí),在一個(gè)特定ACK分組已在TCP/IP通信中 從通信伙伴發(fā)送來(lái)并且與該另一 ACK分組連續(xù)的狀況下,所述ACK存儲(chǔ) 裝置將該特定ACK分組存儲(chǔ)為最新ACK分組。
4. 如權(quán)利要求3所述的發(fā)送設(shè)備,其中,當(dāng)已存儲(chǔ)在所述ACK存儲(chǔ) 裝置中作為最新ACK分組的分組被存儲(chǔ)在所述ACK存儲(chǔ)裝置中的時(shí)間段 超過(guò)了預(yù)定的時(shí)間段時(shí)或者當(dāng)存儲(chǔ)的ACK分組的數(shù)目達(dá)到了要存儲(chǔ)的 ACK分組的最大數(shù)目時(shí),在所述ACK存儲(chǔ)裝置接收到并不與該最新ACK 分組連續(xù)的ACK分組的情況下,所述ACK存儲(chǔ)裝置將該最新ACK分組 提供給所述TCP/IP處理裝置。
5. 如權(quán)利要求1所述的發(fā)送設(shè)備,其中所述TCP/IP處理裝置在預(yù)定 定時(shí)向所述ACK存儲(chǔ)裝置發(fā)送用于獲得最新ACK分組的ACK處理請(qǐng) 求,并且所述ACK存儲(chǔ)裝置響應(yīng)于所述ACK處理請(qǐng)求而將所存儲(chǔ)的最新ACK分組提供給所述TCP/IP處理裝置。
6. —種發(fā)送方法,包括以下步驟存儲(chǔ)最新ACK分組,該最新ACK分組是響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè) 備發(fā)送來(lái)的ACK分組中最近接收的;以及根據(jù)在預(yù)定定時(shí)提供的最新ACK分組來(lái)執(zhí)行接收ACK分組的處理。
7. —種使計(jì)算機(jī)執(zhí)行以下步驟的程序存儲(chǔ)最新ACK分組,該最新ACK分組是響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè) 備發(fā)送來(lái)的ACK分組中最近接收的;以及根據(jù)在預(yù)定定時(shí)提供的最新ACK分組來(lái)執(zhí)行接收ACK分組的處理。
8. —種發(fā)送設(shè)備,包括接收單元,被配置為接收響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè)備發(fā)送來(lái)的ACK 分組;ACK存儲(chǔ)單元,被配置為存儲(chǔ)ACK分組中最近接收的最新ACK分 組;以及TCP/IP處理單元,被配置為根據(jù)在預(yù)定定時(shí)從所述ACK存儲(chǔ)單元提 供來(lái)的最新ACK分組來(lái)執(zhí)行接收ACK分組的處理。
全文摘要
本發(fā)明公開(kāi)了發(fā)送設(shè)備、發(fā)送方法和程序。該發(fā)送設(shè)備包括被配置為接收響應(yīng)于發(fā)送數(shù)據(jù)項(xiàng)從接收設(shè)備發(fā)送來(lái)的ACK分組的接收單元、被配置為存儲(chǔ)這些ACK分組中最近接收的最新ACK分組的ACK存儲(chǔ)單元、以及被配置為根據(jù)在預(yù)定定時(shí)從ACK存儲(chǔ)單元提供來(lái)的最新ACK分組來(lái)執(zhí)行接收ACK分組的處理的TCP/IP處理單元。
文檔編號(hào)H04L1/16GK101552657SQ20091013337
公開(kāi)日2009年10月7日 申請(qǐng)日期2009年4月7日 優(yōu)先權(quán)日2008年4月4日
發(fā)明者大仲忍 申請(qǐng)人:索尼株式會(huì)社