專利名稱:會話中繼設備和會話中繼方法
技術領域:
本發明涉及適于布置在用于發送以及用于接收作為分組的數據的終端 之間的、用于中繼在會話中繼設備和發送側的終端之間開啟的第一會話與 在會話中繼設備和接收側的終端之間開啟的第二會話之間作為分組來傳送 的數據的會話中繼設備,其中,所述分組被指派了表示將被發送的片斷的 順序的序列號,該會話中繼設備包括用于保持第一和第二會話的信息的會話狀態保持器,其中,當通過第一會話接收到分組時,會話中繼設備通過 參考由會話狀態保持器保持的會話信息來判斷所接收的分組的片斷是否為 序列號與已經通過第一片斷接收的分組的片斷相同且片斷大小與該已經通
過第一片斷接收的分組的片斷不同的重傳片斷(retransmitted segment), 并且,如果判定所接收的分組的片斷是重傳片斷,則會話中繼設備改變第 二會話的最大片斷大小,并通過第二會話來發送該重傳片斷。
發送側的終端可以是發送終端、路由器、或者會話中繼設備。接收側 的終端可以是接收終端、路由器、或者會話中繼設備。會話狀態保持器能 夠分別保持在互連發送終端和接收終端的多個網絡中的會話信息。第二會 話的最大片斷大小可以利用重傳片斷的片斷大小來更新,或者可以基于在 分段請求消息中的"下一跳的最大傳輸單元"來更新。
以下將針對第一示例性實施例以及第二和第三示例性實施例來描述本 發明的具體配置細節,其中,在第一示例性實施例中,利用重傳片斷的片 斷大小來更新會話的最大片斷大小,并且在第二和第三實施例中,基于分 段請求信息中的"下一跳的最大傳輸單元"來更新會話的最大片斷大小。 (第一示例性實施例)
圖8是示出根據本發明第一示例性實施例的會話中繼設備的配置的框 圖。圖9是示出包括圖8所示的會話中繼設備的網絡配置的框圖。
在圖9所示的網絡配置中,中繼設備40被布置在發送終端10和接收 終端20之間,并且會話中繼設備IIQ被布置在發送終端IO和中繼設備40 之間。中繼設備40包括例如路由器。以下將描述會話中繼設備110對從 發送終端10發送到接收終端20的數據進行中繼的具體處理。為了簡化起 見,將從圖示中省略開啟會話所需的處理和配置細節,并且假定會話數據 在一個方向上流動。按以上針對
圖1所示的會話中繼設備的操作來描述的 方式執行會話開啟處理。
如圖8所示,會話中繼設備110主要包括分組輸入部分110-1、會話 中繼部分110-3、分組輸出部分110-4、分組輸入部分110-5、會話分組判 斷部分110-6、傳輸確認接收器110-7、會話狀態保持器110-8、傳輸確認 分組傳送/終止判斷部分110-9、傳輸確認發送器110-10、分組輸出部分110-11、錯誤報告協議終止器110-12、以及分段請求消息傳送部分110-13。
從發送終端10輸入的分組被提供給分組輸入部分110-1。會話中繼部 分110-3執行用于中繼輸入到分組輸入部分110-1的分組的會話中繼處 理。分組輸出部分110-4將來自會話中繼部分110-3的分組輸出到接收終 端20。
從接收終端20輸入的分組被提供給分組輸入部分110-5。會話分組判 斷部分110-6判斷輸入到分組輸入部分110-5的分組是否為會話分組。如 果該分組被判定為會話分組,則其被從會話分組判斷部分110-6提供到傳 輸確認接收器110-7。如果該分組被判定為非會話分組,則其被從會話分 組判斷部分110-6提供給錯誤報告協議終止器110-12。
傳輸確認接收器110-7通過分組輸入部分110-5和會話分組判斷部分 110-6來接收從接收終端20作為會話響應分組來傳遞的傳輸確認分組。會 話狀態保持器110-8保持通過會話中繼部分110-3中繼的會話的狀態。
傳輸確認分組傳送/終止判斷部分110-9判斷是傳送由傳輸確認接收器 110-7接收的傳輸確認分組還是終止該傳輸確認分組并執行正常的會話中 繼處理。傳輸確認發送器110-10將傳輸確認分組發送到發送終端10。分 組輸出部分將所提供的分組輸出到發送終端10。錯誤報告協議終止器110-12終止錯誤報告協議。分段請求消息傳送部分110-13從錯誤報告協議終 止器110-12中取下(remove)錯誤報告協議的分段請求消息,并將該分段 請求消息傳遞到發送終端10。
在圖8所示的會話中繼設備110中,從發送終端IO傳遞而來的分組通 過分組輸入部分110-1而被提供給會話中繼部分110-3。當分組被從分組輸 入部分110-1輸入到會話中繼部分110-3時,會話中繼部分110-3對該輸入 分組執行會話中繼處理。
圖IO示出了會話中繼部分110-3的會話中繼處理器的配置。如圖10 所示,會話中繼處理器包括用于緩沖來自分組輸入部分110-1的分組的緩 沖部分110-3-1、用于判斷所緩沖的片斷是否為具有變化了的片斷大小的 重傳片斷的片斷重傳判斷部分110-3-2、用于如果所緩沖的片斷為具有變化了的片斷大小的重傳片斷就更新會話的最大片斷大小(以下稱為
SMSS)的SMSS更新器110-3-3、用于重傳所述具有變化了的片斷大小的 重傳片斷的片斷重傳器110-3-4、以及用于對并非為具有變化了的片斷大 小的重傳片斷的片斷執行正常的會話中繼處理的正常會話中繼部分110-3-5。
在會話中繼部分110-3中,片斷重傳判斷部分110-3-2判斷來自發送 終端10的片斷是否為具有變化了的片斷大小的重傳片斷。如果該片斷是 具有變化了的片斷大小的重傳片斷,則片斷重傳器110-3-4無條件地或在 包括重傳的任意定時處將所述重傳片斷重傳到接收終端20。術語"具有變 化了的片斷大小的重傳片斷"指的是具有相同的起始序列號和不同的片斷 大小的重傳片斷。術語"包括重傳的任意定時"指的是被定義為固定時間 或隨機時間的定時。對于片斷重傳判斷部分110-3-2的判斷條件,可以添 加重傳片斷尚未到達接收終端20的條件、或者重傳片斷大小為SMSS或 更小的條件、或者滿足以上兩個條件的條件。
在會話中繼部分110-3中,如果所緩沖的片斷是具有變化了的片斷大 小的重傳片斷,貝U SMSS更新器110-3-3將SMSS更新為該重傳片斷大 小。對于用于更新SMSS的條件,可以添加所確認用于傳輸的最大片斷大 小小于已經登記在會話狀態保持器110-8中的會話被開啟時進行了協商的 最大片斷大小的條件。
SMSS的初始值被選擇為當會話被開啟時對接收終端20指定的片斷大 小。所確認用于傳輸的最大片斷大小是被具體給出為傳輸確認分組中的傳 輸確認序列號的增長最大值。例如,如果當第一到第四傳輸確認分組被接 收到時,在第一傳輸確認分組中的傳輸確認序列號為0,在第二傳輸確認 分組中的傳輸確認序列號為500,在第三傳輸確認分組中的傳輸確認序列 號為1500,并且在第四傳輸確認分組中的傳輸確認序列號為2250,則在 第二、第三和第四傳輸確認分組中的傳輸確認序列號的增長分別是500、 1000和750。在這種情況下,所確認用于傳輸的最大片斷大小為1000。
在圖8所示的會話中繼設備110中,從接收終端20或中繼設備40傳 遞而來的分組通過分組輸入部分110-5而被提供給會話分組判斷部分110-6。當分組被從分組輸入部分110-5輸入到會話分組判斷部分110-6時,會
話分組判斷部分110-6判斷該輸入分組是否為登記在會話狀態保持器110-8 中的會話分組。如果該輸入分組是會話分組,則會話分組判斷部分110-6 將該輸入分組(傳輸確認分組)傳送到傳輸確認接收器110-7。如果所述 輸入分組不是會話分組,則會話分組判斷部分110-6將該輸入分組(錯誤 報告協議)傳送到錯誤報告協議終止器110-12。
當會話分組(傳輸確認分組)被從會話分組判斷部分110-6提供給傳 輸確認接收器110-7時,傳輸確認分組傳送/終止判斷部分110-9判斷是將 該傳輸確認分組傳送到分組輸出部分110-11還是終止該傳輸確認分組并執 行正常的會話中繼處理。
圖11示出了傳輸確認分組傳送/終止判斷部分110-9的中心部分。如 圖11所示,傳輸確認分組傳送/終止判斷部分110-9包括用于基于SMSS 來確定傳輸確認分組的終止開始的傳輸確認分組終止判斷部分110-9-1、 用于傳送傳輸確認分組的傳輸確認分組傳送部分110-9-2、以及用于啟動 正常的會話中繼處理和停止傳輸確認分組的傳送的傳輸確認分組終止啟動 器110-9-3。
傳輸確認分組終止判斷部分110-9-1得到未經確認的傳輸序列號(對 應于在會話中繼設備和發送終端之間開啟的會話的起始分組的序列號)和 來自接收終端20的傳輸確認分組的傳輸確認序列號之間的差值(對應于 所確認用于傳輸的最大片斷大小),并判斷該序列號差值是否達到了 SMSS的n倍(給定為SMSS的倍數的設定值)。在作為會話協議的代表 的TCP中,取決于設置,每接收一個分組發送一個傳輸確認分組,或者每 接收兩個分組發送兩個傳輸確認分組(所謂的延遲響應)。根據某些所安 裝的設計,每接收n個分組(n是自然數)發送一個傳輸確認分組。因 此,"SMSS的n倍"中的n取決于延遲響應而不同。
在緊隨會話已經被開啟之后并且在序列號差值達到SMSS的n倍之 前,傳輸確認分組傳送部分11Q-9-2將傳輸確認分組從傳輸確認接收器 110-7傳送到分組輸出部分110-11,并且傳輸確認發送器110-10并不傳遞 傳輸確認分組。在序列號差值已經達到SMSS的n倍之后,傳輸確認分組傳送部分110-9-2不傳送傳輸確認分組,并且傳輸確認分組終止啟動器
110-9-3終止來自傳輸確認接收器110-7的傳輸確認分組,從而致使傳輸確 認發送器110-10開始發送傳輸確認分組。如果SMSS被與時間戳相關聯地 存儲在會話狀態保持器110-8中,則可以基于來啟接收終端20的傳輸確認 分組中的時間戳來從會話狀態保持器110-8獲取與時間戳相關聯的SMSS 的值,并且可以使用所獲取的SMSS的值來取代序列號差值。
當所述分組(錯誤報告協議)被從會話分組判斷部分110-6提供給錯 誤報告協議終止器110-12時,錯誤報告協議終止器110-12終止錯誤報告 協議。然后,分段請求消息傳送部分110-13從錯誤報告協議終止器110-12 取下錯誤報告協議的分段請求消息,并將分段請求消息傳遞到發送終端 10。
以下將描述根據本示例性實施例的會話中繼設備的具體操作細節。圖 12示出了根據本示例性實施例的會話中繼設備的關于從發送終端10到接 收終端20的通信方向的操作。圖13示出了根據本示例性實施例的會話中 繼設備的關于從接收終端20到發送終端10的通信方向的操作。
首先,以下將參考圖12來描述緊隨會話開啟處理結束之后、在來自 發送終端10的數據分組到達時的會話中繼設備110的操作。
緊隨會話開啟之后,傳輸確認分組傳送部分110-9-2將來自傳輸確認 接收器110-7的傳輸確認分組傳送到分組輸出部分110-11,并且傳輸確認 發送器110-10不傳遞傳輸確認分組。
從分組輸入部分110-1輸入的數據分組被提供給會話中繼部分110-3。 在會話中繼部分110-3中,緩沖部分110-3-1緩沖并保持所提供的分組 (步驟A101)。然后,片斷重傳判斷部分110-3-2判斷緩沖部分110-3-1 所保持的片斷是否為具有不同的片斷大小的重傳片斷。此時,由于緩沖部 分110-3-1所保持的片斷不是具有不同片斷大小的重傳片斷,所以步驟 A102判定為"否"。
當步驟A102判定為"否"時,正常會話中繼部分110-3-5執行正常的 會話中繼處理(A105)。在正常的會話中繼處理中,緩沖部分110-3-1所 保持的片斷被從分組輸出部分110-4向接收終端20輸出。從會話中繼設備110向接收終端20傳遞的片斷被中繼設備40接收。
如果所接收的片斷的大小大于MTU,則中繼設備40向發送終端IO傳遞錯 誤報告協議的分段請求消息。錯誤報告協議的分段請求消息被會話中繼設 備110接收。
以下將參考圖13來描述在來自中繼設備40的錯誤報告協議的分段請 求消息到達時的會話中繼設備110的操作。
來自接收終端20側的分組被輸入到分組輸入部分110-5 (步驟 A201)。輸入到分組輸入部分110-5的分組被提供給會話分組判斷部分 110-6,會話分組判斷部分110-6判斷該輸入分組是否為會話分組(步驟 A202)。因為來自接收終端20側的分組是從中繼設備40向發送終端10 傳遞的錯誤報告協議的分段請求消息,所以步驟A202判定為"否"。
當步驟A202判定為"否"時,會話分組判斷部分110-6將來自分組 輸入部分110-5的輸入分組傳送到錯誤報告協議終止器110-12,錯誤報告 協議終止器110-12判斷該輸入分組是否為錯誤報告協議(步驟A203)。 因為該輸入分組是從中繼設備40向發送終端10傳送的錯誤報告協議的分 段請求消息,所以步驟A203判定為"是"。
當步驟A203判定為"是"時,錯誤報告協議終止器110-12將來自分 組輸入部分110-5的輸入分組傳送到分段請求消息傳送部分110-13,分段 請求消息傳送部分110-13判斷所提供的分組是否為分段請求消息(步驟 A204)。因為提供給錯誤報告協議終止器110-12的分組是分段請求消 息,所以步驟A204判定為"是"。
當步驟A204判定為"是"時,分段請求消息傳送部分110-13從錯誤 報告協議終止器110-12取下錯誤報告協議的分段請求消息,并將其傳遞到 發送終端10 (步驟A205)。
在已經從會話中繼設備110接收到分段請求消息之后,發送終端10 根據所接收的分段請求消息向接收終端20重傳具有減小了的分段大小的 分組。
以下將參考圖12來描述來自發送終端10的具有減小了的分段大小的 分組到達時的會話中繼設備110的操作。來自發送終端10的分組被從分組輸入部分110-1提供給會話中繼部分
110-3。在會話中繼部分110-3中,緩沖部分110-3-1緩沖并保持所提供的 分組(步驟A101)。然后,片斷重傳判斷部分110-3-2判斷緩沖部分110-3-1所保持的片斷是否為具有不同片斷大小的重傳片斷。此時,因為緩沖 部分110-3-1所保持的片斷是具有不同片斷大小的重傳片斷,所以步驟 A102判定為"是"。
當步驟A102判定為"是"時,SMSS更新器110-3-3利用該重傳片斷 大小來更新SMSS (步驟A103)。片斷重傳器110-3-4通過分組輸出部分 110-4無條件地或在包括重傳的任意定時處向接收終端重傳所述重傳片斷 (步驟A104)。
由于片斷重傳器110-3-4所傳輸的重傳片斷的大小為根據中繼設備40 向源返回的分段請求消息的大小,所以該重傳片斷通過中繼設備40并到 達接收終端20。在接收到所述重傳片斷時,接收終端20向發送終端10發 送傳輸確認分組。該傳輸確認分組通過中繼設備40被傳輸并被會話中繼 設備IIO接收。
以下將參考圖13來描述在接收到來自接收終端20的傳輸確認分組時 的會話中繼設備110的操作。
來自接收終端20側的分組被輸入到分組輸入部分110-5 (步驟 A201)。輸入到分組輸入部分110-5的分組被提供給會話分組判斷部分 110-6,會話分組判斷部分110-6判斷該輸入分組是否為會話分組(步驟 A202)。因為來自接收終端20側的分組是傳輸確認分組,所以步驟A202 判定為"是"。
當步驟A202判定為"是"時,傳輸確認接收器110-7執行傳輸確認 接收處理(步驟A206)。然后,傳輸確認分組終止判斷部分110-9-l計算 所確認用于傳輸的最大片斷大小(步驟A207),并判斷所確認用于傳輸 的最大片斷大小是否為SMSS的n倍(n是自然數)(步驟A208)。因為 在這個流程中沒有延遲響應,所以根據設置從接收側每接收一個分組返回 一個傳輸確認分組。因此,在步驟A208中,傳輸確認分組終止判斷部分 110-9-1判斷所確認用于傳輸的最大片斷大小是否為SMSS的一倍。因為所確認用于傳輸的最大片斷大小是SMSS的一倍,所以步驟A208判定為
"是"。
當步驟A208判定為"是"時,傳輸確認分組傳送部分110-9-2指示傳 輸確認發送器110-10開始傳輸確認處理以用于針對所接收的分組傳遞傳輸 確認分組(步驟A209)。之后,來自接收側的傳輸確認分組被終止并且 將不被傳送到發送終端10。來自接收側的傳輸確認分組因而被會話中繼設 備110終止,并且傳輸確認發送器110-10開始向發送終端10發送傳輸確 認分組。
利用上述根據本示例性實施例的會話中繼設備,來自發送終端10的 重傳片斷必然被發送到中繼設備40。因此,該會話中繼設備可以在發送終 端10和接收終端20之間維持穩定的通信,而不會導致通信故障。
此外,利用根據本示例性實施例的會話中繼設備,因為來自接收側的 傳輸確認分組在緊隨會話己經開啟之后直接被傳送到發送終端,所以該會 話中繼設備可以避免由來自發送終端的分組的溢出導致的死鎖。 (第二示例性實施例)
圖14是示出根據本發明第二示例性實施例的會話中繼設備的配置的 框圖。圖15是示出包括圖14所示的會話中繼設備的網絡配置的框圖。
在圖15所示的網絡配置中,中繼設備40被布置在發送終端IO和接收 終端20之間,并且會話中繼設備120被布置在發送終端IO和中繼設備40 之間。發送終端10、接收終端20和中繼設備40類似于圖9所示的網絡配 置的那些。像在第一示例性實施例的情況下一樣,以下將描述會話中繼設 備120中繼從發送終端IO發送到接收終端20的數據的具體處理。為了簡 化起見,將從圖示中省略開啟會話所需的處理細節和配置細節,并且假定 會話數據在一個方向流動。按以上針對圖1所示的會話中繼設備的操作所 描述的方式來執行會話開啟處理。
如圖14所示,根據本示例性實施例的會話中繼設備120包括用于被 提供以從發送終端10輸入的分組的分組輸入部分120-1、用于執行會話中 繼處理以用于中繼來自分組輸入部分120-1的分組的會話中繼部分120-3、 用于向接收終端20輸出來自會話中繼部分120-3的分組的分組輸出部分120-4、用于被提供以來自接收終端20側的分組的分組輸入部分120-5、用 于判斷來自分組輸入部分120-5的分組是否為會話分組的會話分組判斷部 分120-6、用于接收作為會話的響應分組的傳輸確認分組的傳輸確認接收 器120-7、用于保持會話的狀態的會話狀態保持器120-8、用于判斷是傳送 傳輸確認分組還是終止傳輸確認分組并執行正常的會話中繼處理的傳輸確 認分組傳送/終止判斷部分120-9、用于向發送終端IO發送傳輸確認分組的 傳輸確認發送器120-10、用于向發送終端10輸出分組的分組輸出部分 120-11、用于終止錯誤報告協議的錯誤報告協議終止器120-12、用于從錯 誤報告協議終止器120-12取下錯誤報告協議的分段請求消息并將分段請求 消息傳遞到發送終端10的分段請求消息傳送部分120-13、以及用于存儲 由分段請求消息傳送部分120-13指示的最大傳輸單元的最大傳輸單元存儲 部分120-14。
在會話中繼設備120中,從發送終端10傳遞而來的分組通過分組輸 入部分120-1而被提供給會話中繼部分120-3。當分組被從分組輸入部分 120-1輸入到會話中繼部分120-3時,會話中繼部分120-3對該輸入分組執 行會話中繼處理。
圖16示出了會話中繼部分120-3的會話中繼處理器的配置。如圖16 所示,會話中繼部分120-3包括MTU檢驗部分120-3-0、緩沖部分120-3-1、片斷重傳判斷部分120-3-2、片斷重傳器120-3-3、正常會話中繼部分 120-3-4、以及SMSS傳遞序列號計算器120-3-5。
MTU檢驗部分120-3-0通過參考保存在會話狀態保持器120-8中的關 于通過分組輸入部分120-1輸入的分組的會話信息以及存儲在最大傳輸單 元存儲部分120-14中的與目的地或更多信息相對應的MTU來更新 SMSS。術語"目的地或更多信息"指的是目的地的信息或目的地和源的 信息。在作為會話協議的代表的TCP中,目的地的信息包括表示(A-l) 發送地址和(A-2)目的地端口的信息,并且源的信息包括表示(A-3)源 地址和(A-4)源端口的信息。目的地或更多信息至少包括信息(A-l), 并且可以是如下所示的9個組合中的任意一個。 (1)僅信息(A-l)(2) 信息(A-l) + (A-2)
(3) 信息(A-l) + (A-2) + (A誦3)
(4) 信息(A-l) + (A-2) + (A-3) + (A誦4)
(5) 信息(A-l) + (A-3)
(7) 信息(A-l) + (A-4)
(8) 信息(A-l) + (A-2) + (A-4)
(9) 信息(A-l) + (A-3) + (A-4)
緩沖部分120-3-1緩沖來自分組輸入部分120-1的分組。片斷重傳判 斷部分120-3-2判斷所緩沖的片斷是否為具有變化了的片斷大小的重傳片 斷。片斷重傳器120-3-3重傳具有變化了的片斷大小的重傳片斷。正常會 話中繼部分120-3-4中繼并非為具有變化了的片斷大小的重傳片斷的片 斷。SMSS傳遞序列號計算器120-3-5計算并更新與SMSS相等的最小序列 號。術語"與SMSS相等的最小序列號"指的是根據TCP的片斷大小首次 達到SMSS時的序列號。具體而言,如果SMSS為1400字節,并且以下 片斷被交換
-序列號=1,片斷大小=500
.序列號=101,片斷大小=500
-序列號=601,片斷大小=1000
.序列號=1601,片斷大小=1400
-序列號=3001,片斷大小=4401 則與SMSS相等的最小序列號為"序列號=1601"。
在這樣構造的會話中繼部分120-3中,片斷重傳判斷部分120-3-2判 斷來自發送終端10的片斷是否為具有變化了的片斷大小的重傳片斷。如 果該片斷是具有變化了的大小的重傳片斷,則片斷重傳器120-3-3無條件 地或在包括重傳的任意定時處向接收終端20傳遞該重傳片斷。術語"具 有變化了的片斷大小的重傳片斷"指的是具有相同的起始序列號和不同的 片斷大小的重傳片斷。對于片斷重傳判斷部分120-3-2的判斷條件,可以 添加重傳片斷尚未到達接收終端20的條件、或者重傳片斷大小為SMSS 或更小的條件、或者以上兩個條件都滿足的條件。在會話中繼部分120-3中,SMSS傳遞序列號計算器120-3-5將傳遞片 斷大小等于SMSS的最小傳輸序列號(下文中,與最大傳遞片斷相對應的 最小序列號)存儲在會話狀態保持器120-8中。可以添加下述條件作為更 新條件所確認用于傳輸的最大片斷大小小于已經登記在會話狀態保持器 120-8中的會話開啟時協商的最大片斷大小。
以下將簡要描述存儲其傳遞片斷大小等于SMSS的最小傳輸序列號的 操作序列。
如果中繼設備40之前的路徑的MTU為1000,并且發送終端10發送 作為兩個片斷(即,960字節的片斷以及540字節的片斷)的1500字節的 數據(40字節的頭部大小),則發送終端10連續地傳遞包括960字節的 片斷的分組(序列號"1")和包括540字節的片斷的分組(序列號 "2")。當會話中繼部分120-3接收到第一分組(序列號"1")時,其 緩沖960字節的片斷,并將SMSS更新為960字節。然后,所緩沖的960 字節的片斷被向接收終端傳遞。在這個操作中,傳遞片斷大小變為等于 SMSS。
當會話中繼部分120-3接收到第二分組(序列號"2")時,其緩沖 540字節的片斷,但讓SMSS維持為960。這是因為更新SMSS的定時與 更新MTU的定時相同。所緩沖的540字節的片斷被向接收終端20傳遞。
在接收以上兩個分組的操作中,其傳遞片斷大小等于SMSS的最小傳 輸序列號被設置為第一分組(序列號"1")被接收時的傳輸序列號 "1",并且傳輸序列號"1"被存儲在會話狀態保持器120-8中。
在圖14所示的會話中繼設備120中,從接收終端20或中繼設備40傳 遞而來的分組通過分組輸入部分120-5而被提供給會話分組判斷部分120-6。當分組被從分組輸入部分120-5輸入到會話分組判斷部分120-6時,會 話分組判斷部分120-6判斷該輸入分組是否為登記在會話狀態保持器120-8 中的會話分組。如果輸入分組是會話分組,則會話分組判斷部分120-6將 該輸入分組(傳輸確認分組)傳送到傳輸確認接收器120-7。如果輸入分 組不是會話分組,則會話分組判斷部分120-6將該輸入分組(錯誤報告協 議)傳送到錯誤報告協議終止器120-12。當會話分組(傳輸確認分組)被從會話分組判斷部分120-6提供給傳
輸確認接收器120-7時,傳輸確認分組傳送/終止判斷部分120-9判斷是將 傳輸確認分組傳送到分組輸出部分120-11還是終止該傳輸確認分組并執行 正常的會話中繼處理。
圖17示出了傳輸確認分組傳送/終止判斷部分120-9的中心部分。如 圖17所示,傳輸確認分組傳送/終止判斷部分120-9包括用于基于SMSS 來確定傳輸確認分組的終止開始的傳輸確認分組終止判斷部分120-9-1、 用于傳送傳輸確認分組的傳輸確認分組傳送部分120-9-2、以及用于啟動 正常的會話中繼處理和停止傳輸確認分組的傳送的傳輸確認分組終止啟動 器120-9-3。
傳輸確認分組終止判斷部分120-9-1判斷所確認用于來自接收終端20 的傳輸確認分組的傳輸的最大序列號Nl是否等于或大于與最大傳遞片斷 相對應的最小序列號N2 (是否N1^N2)。因為緊隨會話被開啟之后最大 序列號N1尚未達到最小序列號N2 (NKN2),所以傳輸確認分組傳送部 分120-9-2將來自傳輸確認接收器120-7的傳輸確認分組傳送到分組輸出 部分120-11,并且傳輸確認發送器120-10并不傳遞該傳輸確認分組。在最 大序列號Nl已經達到最小序列號N2 (N1》N2)時,傳輸確認分組傳送 部分120-9-2不傳送傳輸確認分組,并且傳輸確認分組終止啟動器120-9-3 終止來自接收側的傳輸確認分組,從而致使傳輸確認發送器120-10開始發 送傳輸確認分組。
當分組(錯誤報告協議)被從會話分組判斷部分120-6提供給錯誤報 告協議終止器120-12時,錯誤報告協議終止器120-12終止錯誤報告協 議。然后,分段請求消息傳送部分120-13從錯誤報告協議終止器120-12 取下錯誤報告協議的分段請求消息,并將該分段請求消息傳遞到發送終端 10,讀取在所取下的分段請求消息中的"下一跳的最大傳輸單元",并利 用所讀取的"下一跳的最大傳輸單元"來更新存儲在最大傳輸單元存儲部 分120-14中的按照目的地或更多信息的最大傳輸單元信息。例如,如果根 據TCP/IP,則"分段請求消息中的最大傳輸單元"指的是圖4所示的 "Next-HOP MTU"。"目的地或更多信息"是在圖4所示的"Internet +64 bits of Original Data Datagram"中的信息,并且指的是圖5所示的至少 包括"Destination Address"的"Source Address" 、 "Source Port"禾口 "Destination Port "的信息。
會話中繼部分120-3使用正在被中繼的會話的"目的地或更多信息" 作為索引(key)來搜索最大傳輸單元存儲部分120-14,并判斷在最大傳 輸單元存儲部分120-14中的最大傳輸單元是否已經被更新。如果最大傳輸 單元已經被更新,則會話中繼部分120-3基于更新后的最大傳輸單元來更 新SMSS。具體而言,如果利用"SrcAddr: 192.168.11 " 、 "Src Port: 1234" 、 "Dst Addr: 192.168.2.1"和"Dst Port: 5001"來表示某個會話, 并僅利用"Dst Addr"來表示目的地或更多的信息,則會話中繼部分120-3 使用"192.168.2.1"作為索引來搜索最大傳輸單元存儲部分120-14以得到 最大傳輸單元。如果最大傳輸單元存儲部分120-14中的"192.168.2.1"的 最大傳輸單元已經改變,則會話中繼部分120-3基于變化后的信息來更新 SMSS。會話中繼部分120-3例如利用"最大傳輸單元"-"頭部大小"來 更新SMSS。會話中繼部分120-3改變頭部,并且如果在發送終端10側的 接收頭部大小和在接收終端20側的發送頭部大小彼此不同,則"頭部大 小"被設置為接收頭部大小和發送頭部大小的最大值。
MTU和片斷大小彼此相關以使得MTU《"頭部大小"+ "片斷大 小"。頭部大小用通信被開啟時的頭部大小來確定。如果整個路徑的 MTU具有1000字節,發送終端IO側的接收頭部大小具有50字節,并且 接收終端20側的發送頭部大小具有60字節,則來自發送終端10側的 SMSS具有940字節。如果來自發送終端10側的片斷具有950字節,則因 為會話中繼部分120-3改變了頭部,所以向接收終端20側的分組大小具有 1010字節,這超過了整個路徑的MTU。因為不能進行通信,所以SMSS 沒有被設置成950字節。相反,如果整個路徑的MTU具有1000字節,發 送終端10側的接收頭部大小具有60字節,并且接收終端20側的發送頭部 大小具有50字節,則來自發送終端10側的SMSS具有940字節。如果來 自發送終端10側的片斷具有950字節,則分組大小具有1010字節,超過 了整個路徑的MTU。其結果是,因為分組沒有到達中繼設備,所以SMSS沒有被設置為950字節。
以下將描述根據本示例性實施例的會話中繼設備的具體操作細節。圖
18示出了根據本示例性實施例的會話中繼設備關于從發送終端10到接收 終端20的通信方向的操作。圖19示出了 MSS傳遞序列號計算處理的操 作。圖20示出了 MTU檢驗處理的操作。圖21示出了根據本示例性實施 例的會話中繼設備關于從接收終端20到發送終端10的通信方向的操作。
首先,以下將參考圖18來描述在緊隨會話開啟處理結束之后在來自 發送終端10的數據分組到達時的會話中繼設備120的操作。
緊隨會話被開啟之后,傳輸確認分組傳送部分120-9-2將傳輸確認分 組從傳輸確認接收器120-7傳送到分組輸出部分120-11,并且傳輸確認發 送器120-10不傳遞傳輸確認分組。此時,SMSS表示在會話被開啟時進行 了協商的最大片斷大小。按照目的地信息的MTU表示正常分組的最大大小。
從發送終端IO傳遞而來的分組通過分組輸入部分120-1而被提供給會 話中繼部分120-3 (步驟B101)。當分組被從發送終端10輸入到會話中 繼部分120-3時,MTU檢驗部分120-3-0執行MTU檢驗處理(步驟 B102),并且所提供的分組被緩沖部分120-3-1緩沖并保持(步驟 B103)。
根據MTU檢驗部分120-3-0所執行的MTU檢驗處理,如圖20所 示,首先判斷按照目的地信息的MTU是否已經被減小了 (步驟B301)。 因為此時MTU尚未被減小,所以步驟B301判定為"否",并且MTU檢 驗處理結束。
在來自發送終端10的分組被緩沖部分120-3-1緩沖并保持之后,片斷 重傳判斷部分120-3-2判斷緩沖部分120-3-1所保持的片斷是否為具有不同 片斷大小的重傳片斷(步驟B104)。此時,因為緩沖部分120-3-1所保持 的片斷不是具有不同片斷大小的重傳片斷,所以步驟B104判斷為
當步驟B104判定為"否"時,正常會話中繼部分120-3-4執行正常的 會話中繼處理(B109)。在正常的會話中繼處理中,緩沖部分120-3-1所保持的分組片斷被輸出到分組輸出部分120-4。然后,SMSS傳遞序列號計 算器120-3-5對輸出到分組輸出部分120-4的分組執行SMSS傳遞序列號 計算處理(步驟B107)。
在步驟B107中的SMSS傳遞序列號計算處理中,如圖19所示,首先 判斷傳遞片斷大小是否等于SMSS (步驟B201)。因為此時的傳遞片斷大 小等于SMSS,所以步驟B201判定為"是"。當步驟B201判定為"是" 時,隨后判斷序列號是否為與片斷大小相對應的第一 SMSS傳遞序列號 (步驟B202)。因為此時序列號是第一 SMSS傳遞序列號,所以步驟 B202判定為"是"。當步驟B202判定為"是"時,利用傳遞序列號來更 新該SMSS傳遞序列號(步驟B203)。
在步驟B107中的SMSS傳遞序列號計算處理已經被執行之后,分組 輸出部分120-4向接收終端20輸出分組(步驟B108)。
從會話中繼設備120向接收終端20傳遞的片斷被中繼設備40接收。 如果所接收的片斷的大小大于MTU,則中繼設備40向發送終端IO傳遞錯 誤報告協議的分段請求消息。該錯誤報告協議的分段請求消息被會話中繼 設備120接收。
以下將參考圖21來描述在接收到來自中繼設備40的錯誤報告協議的 分段請求消息時的會話中繼設備120的操作。
來自接收終端20側的分組被輸入到分組輸入部分120-5 (步驟 B401)。輸入到分組輸入部分120-5的分組被提供給會話分組判斷部分 120-6,會話分組判斷部分120-6判斷該輸入分組是否為會話分組(步驟 B402)。因為此時來自接收終端20側的分組是從中繼設備40向發送終端 IO傳遞的錯誤報告協議的分段請求消息,所以步驟B402判定為"否"。
當步驟B402判定為"否"時,會話分組判斷部分120-6將來自分組 輸入部分120-5的輸入分組傳送到錯誤報告協議終止器120-12,錯誤報告 協議終止器120-12判斷輸入分組是否為錯誤報告協議(步驟B403)。因 為輸入分組是從中繼設備40向發送終端10傳遞的錯誤報告協議的分段請 求消息,所以步驟B403判定為"是"。
當步驟B403判定為"是"時,錯誤報告協議終止器120-12將來自分組輸入部分120-5的輸入分組傳送到分段請求消息傳送部分120-13,分段 請求消息傳送部分120-13判斷所提供的分組是否為分段請求消息(步驟 B404)。因為此時提供給錯誤報告協議終止器120-12的分組是分段請求 消息,所以步驟B404判定為"是"。
當步驟B404判定為"是"時,分段請求消息傳送部分120-13從錯誤 報告協議終止器120-12取下錯誤報告協議的分段請求消息,并基于在所取 下的分段請求消息中的最大傳輸單元來更新存儲在最大傳輸單元存儲部分 120-14中的按照目的地或更多信息的最大傳輸單元(步驟B410)。然 后,分段請求消息傳送部分120-13通過分組輸出部分120-11將所取下的 分段請求消息傳遞到發送終端10 (步驟B405)。
在已經接收到來自會話中繼設備120的分段請求消息之后,發送終端 10根據所接收的分段請求消息來向接收終端20重傳具有減小了的片斷大 小的分組。
以下將參考圖18來描述在來自發送終端10的具有減小了的片斷大小 的分組到達時的會話中繼設備120的操作。
來自發送終端10的分組通過分組輸入部分120-1而被提供給會話中繼 部分120-3 (步驟B101)。當分組被從發送終端10輸入到會話中繼部分 120-3時,MTTJ檢驗部分120-3-0執行MTU檢驗處理(步驟B102)。并 且所提供的分組被緩沖部分120-3-1緩沖并保持(步驟B103)。
根據MTU檢驗部分120-3-0所執行的MTU檢驗處理,如圖20所 示,首先判斷按照目的地信息的MTU是否己經被減小(步驟B301)。因 為此時MTU已經被減小,所以步驟B301判定為"是"。當步驟B301判 定為"是"時,MTU檢驗部分120-3-0隨后將SMSS設置為["MTU"-"頭部大小"]的值。之后,MTU檢驗處理結束。
在來自發送終端10的分組被緩沖部分120-3-1緩沖并保持之后,片斷 重傳判斷部分120-3-2判斷緩沖部分120-3-1所保持的片斷是否為具有不同 片斷大小的重傳片斷(步驟B104)。此時,因為緩沖部分120-3-1所保持 的片斷是具有不同片斷大小的重傳片斷,所以步驟B104判定為"是"。
當步驟B104判定為"是"時,片斷重傳器120-3-3無條件地或在包括重傳的任意定時處將緩沖部分120-3-1所保持的分組片斷重傳到分組輸出
部分120-4 (步驟B106)。然后,SMSS傳遞序列號計算器120-3-5對輸出 到分組輸出部分120-4的分組執行SMSS傳遞序列號計算處理(步驟 B107)。
在步驟B107中的SMSS傳遞序列號計算處理中,如圖19所示,首先 判斷傳遞片斷大小是否等于SMSS (步驟B201)。因為此時傳遞片斷大小 等于SMSS,所以步驟B201判定為"是"。當步驟B201判定為"是" 時,隨后判斷序列號是否為與片斷大小相對應的第一 SMSS傳遞序列號 (步驟B202)。因為此時序列號是第一 SMSS傳遞序列號,所以步驟 B202判定為"是"。當步驟B202判定為"是"時,利用傳遞序列號來更 新該SMSS傳遞序列號(步驟B203)。
在步驟B107中的SMSS傳遞序列號計算處理己經被執行之后,分組 輸出部分120-4向接收終端20輸出分組(步驟B108)。
因為從分組輸出部分120-4發送的重傳片斷的大小是根據中繼設備40 向源返回的分段請求消息的大小,所以該重傳片斷通過中繼設備40并到 達接收終端20。在接收到重傳片斷時,接收終端20向發送終端10發送作 為針對其的響應分組的傳輸確認分組。該傳輸確認分組通過中繼設備40 被發送并被會話中繼設備120接收。
以下將參考圖21來描述在接收到來自接收終端20的傳輸確認分組時 的會話中繼設備120的操作。
來自接收終端20側的分組被輸入到分組輸入部分120-5 (步驟 B401)。輸入到分組輸入部分120-5的分組被提供給會話分組判斷部分 120-6,會話分組判斷部分120-6判斷該輸入分組是否為會話分組(步驟 B402)。因為來自接收終端20側的分組是從接收終端20向發送終端10 發送的傳輸確認分組(會話分組),所以步驟B402判定為"是"。
當步驟B402判定為"是"時,會話分組判斷部分120-6將來自分組 輸入部分120-5的輸入分組傳送到傳輸確認接收器120-7,傳輸確認接收器 120-7執行傳輸確認接收處理(步驟B406)。然后,傳輸確認分組終止判 斷部分120-9-1判斷是否滿足"所確認用于傳輸的最大序列號"》"與最大傳遞片斷相對應的最小序列號"的條件(步驟B408)。因為此時滿足
該條件,所以傳輸確認分組傳送部分120-9-2指示傳輸確認發送器120-10 開始傳輸確認處理(歩驟B409)。之后,所述傳輸確認分組沒有被發送 到發送終端IO。結果,該傳輸確認分組被會話中繼設備120終止。
利用上述根據第二示例性實施例的會話中繼設備,與在第一示例性實 施例的情況下一樣,來自發送終端10的重傳片斷必然被發送到中繼設備 40。因此,該會話中繼設備可以維持發送終端IO與接收終端20之間的穩 定通信,而不會導致通信故障。
此外,因為緊隨會話被開啟之后來自接收側的傳輸確認分組直接被傳 送到發送終端,所以所述會話中繼設備可以避免由來自發送終端的分組的 溢出導致的死鎖。 (第三示例性實施例)
圖22是示出根據本發明第三示例性實施例的會話中繼設備的配置的 框圖。圖23是示出包括圖22所示的會話中繼設備的網絡配置的框圖。
在圖22所示的網絡配置中,中繼設備40被布置在發送終端IO和接收 終端20之間,并且會話中繼設備130被布置在發送終端10和中繼設備40 之間。發送終端IO、接收終端20和中繼設備40類似于上述根據第一和第 二示例性實施例的網絡配置的那些。以下將描述會話中繼設備130中繼從 發送終端10發送到接收終端20的數據的具體處理。為了簡化起見,將從 圖示中省略開啟會話所需的處理細節和配置細節,并且假定會話數據在一 個方向流動。按以上針對圖1所示的會話中繼設備的操作所描述的方式來 執行會話開啟處理。
如圖22所示,根據本示例性實施例的會話中繼設備130包括用于被 提供以從發送終端10輸入的分組的分組輸入部分130-1、用于執行會話中 繼處理以用于中繼來自分組輸入部分130-1的分組的會話中繼部分130-3、 用于向接收終端20輸出來自會話中繼部分130-3的分組的分組輸出部分 130-4、用于被提供以來自接收終端20側的分組的分組輸入部分130-5、用 于判斷來自分組輸入部分130-5的分組是否為會話分組的會話分組判斷部 分130-6、用于接收作為會話的響應分組的傳輸確認分組的傳輸確認接收器130-7、用于保持會話的狀態的會話狀態保持器130-8、用于判斷是傳送 傳輸確認分組還是終止傳輸確認分組并執行正常的會話中繼處理的傳輸確
認分組傳送/終止判斷部分130-9、用于向發送終端IO發送傳輸確認分組的 傳輸確認發送器130-10、用于向發送終端10輸出分組的分組輸出部分 130-11、用于終止錯誤報告協議的錯誤報告協議終止器130-12、用于從錯 誤報告協議終止器130-12取下錯誤報告協議的分段請求消息并將分段請求 消息傳遞到發送終端10的分段請求消息傳送部分130-13、以及用于存儲 由分段請求消息傳送部分130-13指示的最大傳輸單元的最大傳輸單元存儲 部分130-14。
除了會話中繼部分130-3和分段請求消息傳送部分130-13之外,根據 本示例性實施例的會話中繼設備130基本與第二示例性實施例相同。
圖24示出了會話中繼部分130-3的配置。如圖24所示,會話中繼部 分130-3包括用于緩沖來自分組輸入部分130-1的分組的緩沖部分130-3-1、用于判斷緩沖部分130-3-1所緩沖的片斷是否為具有變化了的片斷大小 的重傳片斷的片斷重傳判斷部分130-3-2、用于重傳具有變化了的大小的 重傳片斷的片斷重傳器130-3-3、用于中繼并非為具有變化了的片斷大小 的重傳片斷的片斷的正常會話中繼部分130-3-4、以及用于計算和更新等 于SMSS的最小序列號的SMSS傳遞序列號計算處理130-3-5。
在會話中繼部分130-3中,片斷重傳判斷部分130-3-2判斷來自發送 終端10的片斷是否為具有變化了的片斷大小的重傳片斷。如果該片斷是 具有變化了的片斷大小的重傳片斷,則片斷重傳器130-3-4無條件地或在 包括重傳的任意定時處向接收終端20重傳所述重傳片斷的分組。術語 "具有變化了的片斷大小的重傳片斷"指的是具有相同的起始序列號和不 同的片斷大小的重傳片斷。對于片斷重傳判斷部分130-3-2的判斷條件, 可以添加重傳片斷尚未到達接收終端20的條件、或者重傳片斷大小是 SMSS或更小的條件、或者以上兩個條件都滿足的條件。
在會話中繼部分130-3中,SMSS傳遞序列號計算器130-3-5將傳遞片 斷大小等于SMSS的最小傳輸序列號(下文中,與最大傳遞片斷相對應的 最小序列號)存儲在會話狀態保持器130-8中。可以添加下述條件作為更新條件所確認用于傳輸的最大片斷大小小于登記在會話狀態保持器130-8中的在會話被開啟時進行了協商的最大片斷大小。
圖25示出了分段請求消息傳送部分130-13的配置。分段請求消息傳 送部分130-13包括分段請求消息判斷部分130-13-1、會話搜索部分130-13-2、 SMSS更新器130-13-3、和指示MTU更新器130-13-4。指示MTU 更新器130-13-4可以免除。
分段請求消息判斷部分130-13-1判斷來自錯誤報告協議終止器130-12 的錯誤報告協議是否為分段請求消息。如果該錯誤報告協議是分段請求消 息,則會話搜索部分130-13-2基于在該消息的錯誤分組頭部中的包括端口 號在內的目的地/源信息來搜索會話狀態保持器130-8中的信息。為了搜索 會話信息,可以進行檢驗以查看是否滿足"所確認用于來自接收終端20 的傳輸確認分組的傳輸的最大序列號"《"錯誤分組頭部中的傳輸序列 號"《"所發送的傳輸序列號的最大值"的條件。
SMSS更新器130-13-3讀取分段請求消息中的"下一跳的最大傳輸單 元",并通過將正在被中繼的會話的SMSS設置為值["下一跳的最大傳 輸單元"-"頭部大小"]來更新會話狀態保持器130-8所保持的SMSS。 如果發送終端IO側和接收終端20側的頭部大小彼此不同,則這個頭部大 小用這兩個頭部大小的最大值來表示。"最大傳輸單元"被存儲在最大傳 輸單元存儲部分130-14中。如果指示MTU更新器130-13-4被免除,則 SMSS更新器130-13-3將分段請求消息輸出到分組輸出部分130-11。
如果發送終端10側和接收終端20側的頭部大小彼此不同,則指示 MTU更新器130-13-4指示通過從將被指示給發送終端的分段請求消息中 的最大傳輸單元減去頭部大小而產生的值。
圖26示出了傳輸確認分組傳送/終止判斷部分130-9的中心部分。如 圖26所示,傳輸確認分組傳送/終止判斷部分130-9包括用于基于SMSS 來確定傳輸確認分組的終止開始的傳輸確認分組終止判斷部分130-9-1、 用于傳送傳輸確認分組的傳輸確認分組傳送部分130-9-2、以及用于啟動 正常的會話中繼處理和停止傳輸確認分組的傳送的傳輸確認分組終止啟動 器130-9-3。傳輸確認分組終止判斷部分130-9-1判斷所確認用于來自接收終端20
的傳輸確認分組的傳輸的最大序列號Nl是否達到與最大傳遞片斷相對應 的最小序列號。緊隨會話被開啟之后,傳輸確認分組傳送部分130-9-2將 來自傳輸確認接收器130-7的傳輸確認分組傳送到分組輸出部分130-11, 并且傳輸確認發送器130-10并不傳遞該傳輸確認分組。在所確認用于傳輸 的最大序列號已經達到與最大傳遞片斷相對應的最小序列號之后,傳輸確 認分組傳送部分130-9-2不傳送傳輸確認分組,并且傳輸確認分組終止啟 動器130-9-3終止來自發送側的傳輸確認分組,從而致使傳輸確認發送器 130-10開始發送傳輸確認分組。
以下將描述根據本示例性實施例的會話中繼設備的具體操作細節。圖 27示出了根據本示例性實施例的會話中繼設備關于從發送終端10到接收 終端20的通信方向的操作。圖28示出了 MSS傳遞序列號計算處理的操 作。圖29示出了根據本示例性實施例的會話中繼設備關于從接收終端20 到發送終端10的通信方向的操作。
首先,將參考圖27來描述緊隨會話開啟處理結束之后在來自發送終 端10的數據分組到達時的會話中繼設備130的操作。
緊隨會話被開啟之后,傳輸確認分組傳送部分130-9-2將來自傳輸確 認接收器130-7的傳輸確認分組傳送到分組輸出部分130-11,并且傳輸確 認發送器130-10不傳遞傳輸確認分組。此時,SMSS表示在會話被開啟時 所協商的最大片斷大小。
來自發送終端10的分組通過分組輸入部分130-1而被提供給會話中繼 部分130-3 (步驟C101)。當分組被從發送終端IO輸入到會話中繼部分 130-3時,所提供的分組被緩沖部分130-3-1緩沖并保持(步驟C102)。
在來自發送終端10的分組被緩沖部分130-3-1緩沖并保持之后,片斷 重傳判斷部分130-3-2判斷緩沖部分130-3-1所保持的片斷是否為具有不同 片斷大小的重傳片斷(步驟C103)。此時,緩沖部分130-3-1所保持的片 斷不是具有不同片斷大小的重傳片斷,所以步驟C103判定為"否"。
當步驟C103判定為"否"時,正常會話中繼部分130-3-4執行正常的 會話中繼處理(C107)。在正常的會話中繼處理中,因為緩沖部分130-3-1所保持的分組片斷是第一片斷,所以所保持的分組片斷被輸出到分組輸
出部分130-4。然后,SMSS傳遞序列號計算器130-3-5對輸出到分組輸出 部分130-4的分組執行SMSS傳遞序列號計算處理(步驟C105)。
在步驟C105的SMSS傳遞序列號計算處理中,如圖28所示,首先判 斷傳遞片斷大小是否等于SMSS (步驟C201)。因為此時傳遞片斷大小等 于SMSS,所以步驟C201判定為"是"。當步驟C201判定為"是"時, 隨后判斷序列號是否為與片斷大小相對應的第一 SMSS傳遞序列號(步驟 C202)。因為此時序列號是第一 SMSS傳遞序列號,所以步驟C202判定 為"是"。當步驟C202判定為"是"時,利用傳遞序列號來更新該 SMSS傳遞序列號(步驟C203)。
在步驟C105的SMSS傳遞序列號計算處理已經被執行之后,分組輸 出部分130-4向接收終端20輸出分組(步驟C106)。
從會話中繼設備130向接收終端20傳遞的片斷被中繼設備40接收。 如果所接收的片斷的大小大于MTU,則中繼設備40向發送終端IO傳遞錯 誤報告協議的分段請求消息。該錯誤報告協議的分段請求消息被會話中繼 設備130接收。
以下將參考圖29來描述在接收到來自中繼設備40的錯誤報告協議的 分段請求消息時的會話中繼設備130的操作。
來自接收終端20側的分組被輸入到分組輸入部分130-5 (步驟 C401)。輸入到分組輸入部分130-5的分組被提供給會話分組判斷部分 130-6,會話分組判斷部分130-6判斷該輸入分組是否為會話分組(步驟 C402)。因為此時來自接收終端20側的分組是從中繼設備40向發送終端 IO傳遞的錯誤報告協議的分段請求消息,所以步驟C402判定為"否"。
當步驟C402判定為"否"時,會話分組判斷部分130-6將來自分組 輸入部分130-5的輸入分組傳送到錯誤報告協議終止器130-12,錯誤報告 協議終止器130-12判斷該輸入分組是否為錯誤報告協議(步驟C403)。 因為輸入分組是從中繼設備40向發送終端10傳遞的錯誤報告協議的分段 請求消息,所以步驟C403判定為"是"。
當步驟C403判定為"是"時,錯誤報告協議終止器130-12將來自分組輸入部分130-5的輸入分組傳送到分段請求消息傳送部分130-13,在分 段請求消息傳送部分130-13中,分段請求消息判斷部分130-13-1判斷提 供給錯誤報告協議終止器130-12的分組是否為分段請求消息(步驟 C404)。因為此時提供給錯誤報告協議終止器130-12的分組是分段請求 消息,所以步驟C404判定為"是"。
當步驟C404判定為"是"時,分段請求消息傳送部分130-13從錯誤 報告協議終止器130-12取下錯誤報告協議的分段請求消息,并基于在所取 下的分段請求消息中的最大傳輸單元和頭部大小信息來更新保持在會話狀 態保持器130-8中的按照會話的SMSS (步驟C405) 。 SMSS被用值["最 大傳輸單元"-"頭部大小"]來更新。在SMSS已經被更新之后,分段請 求消息傳送部分130-13通過分組輸出部分130-11將所取下的分段請求消 息傳遞到發送終端IO (步驟C406)。
在已經從會話中繼設備130接收到分段請求消息之后,發送終端10 根據所接收的分段請求消息向接收終端20重傳具有減小了的片斷大小的 分組。
以下將參考圖27來描述在來自發送終端10的具有減小了的片斷大小 的分組到達時的會話中繼設備130的操作。
從發送終端IO傳遞而來的分組被從分組輸入部分130-1提供給會話中 繼部分130-3 (步驟CIOI)。在會話中繼部分130-3中,從發送終端10提 供的分組被緩沖部分130-3-1緩沖并保持(步驟C102)。
在來自發送終端10的分組被緩沖部分130-3-1緩沖并保持之后,片斷 重傳判斷部分130-3-2判斷緩沖部分130-3-1所保持的片斷是否為具有不同 片斷大小的重傳片斷(步驟C103)。此時,因為緩沖部分130-3-1所保持 的片斷是具有不同片斷大小的重傳片斷,所以步驟C103判定為"是"。
當步驟C103判定為"是"時,片斷重傳器130-3-3無條件地或者在包 括重傳的任意定時處將緩沖部分130-3-1所保持的分組片斷重傳到分組輸 出部分130-4 (步驟C104)。然后,SMSS傳遞序列號計算器130-3-5對輸 出到分組輸出部分130-4的分組執行SMSS傳遞序列號計算處理(步驟 C105)。在步驟C105的SMSS傳遞序列號計算處理中,如圖28所示,首先判 斷傳遞片斷大小是否等于SMSS (步驟C201)。因為此時傳遞片斷大小等 于SMSS,所以步驟C201判定為"是"。當步驟C201判定為"是"時, 隨后判斷序列號是否為與片斷大小相對應的第一 SMSS傳遞序列號(步驟 C202)。因為此時序列號是第一 SMSS傳遞序列號,所以步驟C202判定 為"是"。當步驟C202判定為"是"時,利用傳遞序列號來更新該 SMSS傳遞序列號(步驟C203)。
在步驟C105的SMSS傳遞序列號計算處理已經被執行之后,分組輸 出部分130-4向接收終端20輸出分組(步驟C106)。
因為從分組輸出部分130-4發送的重傳片斷的大小是根據中繼設備40 向源返回的分段請求消息的大小,所以該重傳片斷通過中繼設備40并到 達接收終端20。在接收到該重傳片斷時,接收終端20向發送終端IO發送 作為針對其的響應分組的傳輸確認分組。傳輸確認分組通過中繼設備40 而被傳送并被會話中繼設備130接收。
以下將參考圖29來描述在接收到來自接收終端20的傳輸確認分組時 的會話中繼設備130的操作。
來自接收終端20側的分組被輸入到分組輸入部分130-5 (步驟 C401)。輸入到分組輸入部分130-5的分組被提供給會話分組判斷部分 130-6,會話分組判斷部分130-6判斷該輸入分組是否為會話分組(步驟 C402)。因為此時來自接收終端20側的分組是從接收終端20向發送終端 IO發送的傳輸確認分組(會話分組),所以步驟C402判定為"是"。
當步驟C402判定為"是"時,會話分組判斷部分130-6將來自分組 輸入部分130-5的輸入分組傳送到傳輸確認接收器130-7,傳輸確認接收器 130-7執行傳輸確認接收處理(步驟C407)。
然后,傳輸確認分組終止判斷部分130-9-1判斷是否滿足"所確認用 于傳輸的最大序列號" > "與最大傳遞片斷相對應的最小序列號"的條件 (步驟C408)。因為此時滿足該條件,所以傳輸確認分組傳送部分130-9-2指示傳輸確認發送器130-10開始傳輸確認處理(步驟C409)。之后, 所述來自接收側的傳輸確認分組不被發送到發送終端10。結果,該來自接收側的傳輸確認分組被會話中繼設備130終止,并且傳輸確認發送器UO-lO 開始發送傳輸確認分組。
利用上述根據第三示例性實施例的會話中繼設備,與在第一示例性實 施例的情況下一樣,來自發送終端10的重傳片斷必然被發送到中繼設備
40。因此,該會話中繼設備可以維持發送終端IO與接收終端20之間的穩
定通信,而不會導致通信故障。
此外,因為緊隨會話被開啟之后來自接收側的傳輸確認分組直接被傳 送到發送終端,所以所述會話中繼設備可以避免由來自發送終端的分組的 溢出導致的死鎖。
上述第一到第三示例性實施例的配置細節和操作細節僅僅以示例的方 式被給出,并且可以按需進行改變。例如,根據第一示例性實施例的傳輸 確認分組傳送/終止判斷部分可以按與根據第二和第二示例性實施例的傳輸 確認分組傳送/終止判斷部分相同的方式來確定傳輸確認分組的傳送和終 止。反過來,根據第二和第三實施例的傳輸確認分組傳送/終止判斷部分可 以按與根據第一示例性實施例的傳輸確認分組傳送/終止判斷部分相同的方 式來確定傳輸確認分組的傳送和終止。
在第二和第三示例性實施例中,會話中繼部分可以檢驗片斷大小是否
大于SMSS,并且如果片斷大小大于SMSS則可以丟棄該片斷。圖30示出 了用于丟棄片斷的處理,并且圖31示出了用于將片斷發送到發送終端而 沒有丟棄它的處理。
根據用于丟棄片斷的處理,如圖30所示,當發送終端10向接收終端 20發送具有1500字節的分組大小的數據時,該數據通過會話中繼設備 130而傳遞到中繼設備40。因為所接收的片斷的大小大于MTU (= 500),所以中繼設備40向發送終端10傳遞錯誤報告協議的分段請求消 息(包括表示下一跳的最大傳輸單元為500的信息)。該錯誤報告協議的 分段請求消息被會話中繼設備130接收。在會話中繼設備130已經接收到 該分段請求消息之后,如果其接收到從發送終端10向接收終端20發送的 具有1500字節的分組大小的數據,則會話中繼設備130丟棄所接收的數 據。因此,中繼設備40'僅向發送終端IO發送一次錯誤報告協議的分段請求消息。
根據向發送終端發送片斷而沒有將其丟棄的處理,如圖31所示,在 會話中繼設備130已經接收到分段請求消息之后,如果其接收到從發送終
端10向接收終端20發送的具有1500字節的分組大小的數據,則為了將所 接收的數據傳遞到接收終端20側的網絡,錯誤報告協議的分段請求消息 被從中繼設備40向發送終端10發送多次。因此,分段請求消息被無益地 發送。
在第一到第三示例性實施例中,來自接收終端側的錯誤報告協議被終 止。但是,在網絡層或更低層被中繼的分組中取下來自接收終端側的錯誤 報告協議的分段請求消息不會導致任何問題。
雖然在第一到第三示例性實施例中已經描述了單向通信的示例,但是 雙向通信不會導致任何為問題。
在第一到第三示例性實施例中,已經描述了包括一個發送終端、 一個 接收終端、 一個中繼設備、和一個會話中繼終端設備的網絡配置。但是, 發送終端、接收終端、中繼設備、和會話中繼終端設備的數目并不限于各 自一個。
以上已經例如針對會話中繼設備描述了本發明的特征。但是,本發明 也適用于其它通信系統,只要它們具有本發明的特征即可。例如,通過根 據TCP來建立會話、利用ICMP目的地不可達消息的分段請求來取代用于 報告錯誤報告協議的ICMP和分段請求消息、利用根據TCP的ACK分組 來取代傳輸確認分組、利用根據TCP的序列號來取代傳輸序列號、利用根 據IPTCP的頭部大小的總和來取代頭部大小、以及利用根據IP的Don't Fragment標記來取代片斷分割禁止標記,可以在TCP/IP上實現本發明。
除了 TCP中繼設備之外,本發明還適用于諸如代理或加密設備之類的 會話中繼設備。
權利要求
1. 一種會話中繼設備,適合布置在用于發送和接收作為分組的數據的終端之間,所述分組被指派了表示將被發送的片斷的順序的序列號,所述會話中繼設備用于中繼在所述會話中繼設備和發送側的終端之間開啟的第一會話與在所述會話中繼設備和接收側的終端之間開啟的第二會話之間作為分組來傳輸的數據,所述會話中繼設備包括會話狀態保持器,用于保持所述第一會話和第二會話的信息;片斷重傳判斷部分,用于當分組通過所述第一會話被接收時,通過參考所述會話狀態保持器所保持的會話信息來判斷所接收的分組的片斷是否為下述重傳片斷,即,序列號與已經通過所述第一片斷接收的分組的片斷相同并且片斷大小與所述已經通過所述第一片斷接收的分組的片斷不同的重傳片斷;以及片斷重傳器,用于如果所述片斷重傳判斷部分判定所接收的分組的片斷是所述重傳片斷,則通過所述第二會話發送所述重傳片斷。
2. 如權利要求1所述的會話中繼設備,還包括會話最大片斷大小更新器,用于如果所述片斷重傳判斷部分判定所述 所接收的分組的片斷是所述重傳片斷,則利用所述重傳片斷的片斷大小來 更新所述第二會話的最大片斷大小。
3. 如權利要求l所述的會話中繼設備,還包括分段請求消息傳送部分,用于當指示出向所述接收側的終端中繼的所 述分組的數據的片斷將被分割的分段請求消息通過所述第二會話而被接收 時,通過所述第一會話向所述發送側的終端發送所接收的分段請求消息, 并且讀取在所接收的分段請求消息中包括的下一跳的最大傳輸單元;最大傳輸單元存儲部分,用于存儲由所述分段請求消息傳送部分讀取 的下一跳的最大傳輸單元;以及最大傳輸單元檢驗部分,用于當存儲在所述最大傳輸單元存儲部分中 的最大傳輸單元被更新為小于所述最大傳輸單元的最大傳輸單元時,基于 所述更新后的最大傳輸單元來更新所述第二會話的最大片斷大小。
4. 如權利要求1所述的會話中繼設備,還包括分段請求消息傳送部分,用于當指示出向所述接收側的終端中繼的所 述分組的數據的片斷將被分割的分段請求消息通過所述第二會話被接收 時,通過所述第一會話向所述發送側的終端發送所接收的分段請求消息, 讀取在所接收的分段請求消息中包括的下一跳的最大傳輸單元,并且基于 所讀取的最大傳輸單元來更新所述第二會話的最大片斷大小。
5. 如權利要求1到4中的任意一項所述的會話中繼設備,還包括 傳輸確認接收器,用于通過所述第二會話接收傳輸確認分組,該傳輸確認分組是對所述第一會話的起始分組的響應,向所述接收側的終端中繼 所述第一會話的起始分組;傳輸確認分組傳送/終止判斷部分,用于判斷是傳送還是終止由所述 傳輸確認接收器接收的所述傳輸確認分組;以及傳輸確認發送器,用于如果所述傳輸確認分組傳送/終止判斷部分判 定要終止所述傳輸確認分組,則生成針對所述起始分組的新的傳輸確認分組并將該新的傳輸確認分組發送到所述發送側的終端;其中,所述會話狀態保持器保持所述起始分組的傳輸序列號和從所述 接收側的終端接收的傳輸確認分組的傳輸確認序列號作為所述會話狀態信 息,并且如果用所述傳輸序列號和所述傳輸確認序列號之間的差值表示的所確 認用于傳輸的最大片斷大小小于作為所述第二會話的最大片斷大小的倍數 而給出的預設值,則所述傳輸確認分組傳送/終止判斷部分通過所述第一 會話向所述發送側的終端傳送所述傳輸確認分組,并且如果所述序列號之 間的所述差值達到了所述預設值,則所述傳輸確認分組傳送/終止判斷部 分終止所述傳輸確認分組。
6. 如權利要求1到4中的任意一項所述的會話中繼設備,還包括傳輸確認接收器,用于通過所述第二會話接收傳輸確認分組,該傳輸 確認分組是對所述第一會話的起始分組的響應,向所述接收側的終端中繼 所述第一會話的起始分組;傳輸確認分組傳送/終止判斷部分,用于判斷是傳送還是終止由所述傳輸確認接收器接收的所述傳輸確認分組;傳輸確認發送器,用于如果所述傳輸確認分組傳送/終止判斷部分判 定要終止所述傳輸確認分組,則生成針對所述起始分組的新的傳輸確認分 組并將該新的傳輸確認分組發送到所述發送側的終端;以及最小序列號計算器,用于當向所述接收側的終端中繼的分組的傳遞片斷大小達到所述第二會話的最大片斷大小時計算序列號;其中,所述會話狀態保持器保持所述起始分組的傳輸序列號和從所述 接收側的終端接收的傳輸確認分組的傳輸確認序列號作為所述會話狀態信 息,并且如果用所述傳輸序列號和所述傳輸確認序列號之間的差值表示的所確 認用于傳輸的最大片斷大小小于由所述最小序列號計算器計算得到的所述 序列號,則所述傳輸確認分組傳送/終止判斷部分通過所述第一會話向所 述發送側的終端傳送所述傳輸確認分組,并且如果所述所確認用于傳輸的 最大片斷大小達到了所述計算得到的序列號,則所述傳輸確認分組傳送/ 終止判斷部分終止所述傳輸確認分組。
7. 如權利要求1到6中的任意一項所述的會話中繼設備,其中,所 述第一會話和第二會話是根據TCP的。
8. 如權利要求3或4所述的會話中繼設備,其中,所述分段請求消 息包括用于指示錯誤的ICMP消息。
9. 如權利要求5或6所述的會話中繼設備,其中,所述傳輸確認分 組包括根據TCP的ACK分組。
10. —種會話中繼方法,該會話中繼方法將由適合布置在用于發送和 接收作為分組的數據的終端之間的會話中繼設備執行,所述分組被指派了 表示將被發送的片斷的順序的序列號,所述會話中繼方法用于中繼在所述 會話中繼設備和發送側的終端之間開啟的第一會話與在所述會話中繼設備 和接收側的終端之間開啟的第二會話之間作為分組來傳輸的數據,所述會 話中繼方法包括在會話狀態保持器中保持所述第一會話和第二會話的信息的第一步驟;當分組通過所述第一會話被接收時,通過參考所述會話狀態保持器所 保持的會話信息來判斷所接收的分組的片斷是否為下述重傳片斷的第二步 驟,即序列號與已經通過所述第一片斷接收的分組的片斷相同并且片斷大 小與所述已經通過所述第一片斷接收的分組的片斷不同的重傳片斷;以及如果在所述第二步驟判定所接收的分組的片斷是所述重傳片斷,則通 過所述第二會話發送所述重傳片斷的第三步驟。
11. 如權利要求10所述的會話中繼方法,其中,所述第三步驟包括 以下步驟如果在所述第二步驟中判定所接收的分組的片斷是所述重傳片 斷,則利用所述重傳片斷的片斷大小來更新所述第二會話的最大片斷大 小。
12. 如權利要求10所述的會話中繼方法,其中,所述第三步驟包括 以下步驟當指示出向所述接收側的終端中繼的所述分組的數據的片斷將 被分割的分段請求消息通過所述第二會話被接收時,讀取在所接收的分段 請求消息中包括的下一跳的最大傳輸單元,并基于所讀取的最大傳輸單元 來更新所述第二會話的最大片斷大小。
13. 如權利要求10到12中的任意一項所述的會話中繼方法,還包括通過所述第二會話接收傳輸確認分組的第四步驟,該傳輸確認分組是 對所述第一會話的起始分組的響應,向所述接收側的終端中繼所述第一會 話的起始分組;從所述會話狀態保持器所保持的會話狀態信息中獲取所述起始分組的 傳輸序列號和從所述接收側的終端接收的傳輸確認分組的傳輸確認序列 號,并確定所獲取的序列號之間的差值的第五步驟;以及第六步驟如果用在所述第五步驟中確定的所述序列號之間的差值表 示的所確認用于傳輸的最大片斷大小小于作為所述第二會話的最大片斷大 小的倍數而給出的預設值,則向所述發送側的終端傳送在所述第四步驟中 接收的所述傳輸確認分組,并且如果所確認用于傳輸的最大片斷大小等于 或大于所述預設值,則終止在所述第四步驟中接收的所述傳輸確認分組, 生成針對所述起始分組的新的傳輸確認分組,并將該新的傳輸確認分組發送到所述發送側的終端。
14.如權利要求10到12中的任意一項所述的會話中繼方法,還包括通過所述第二會話接收傳輸確認分組的第四步驟,該傳輸確認分組是 對所述第一會話的起始分組的響應,向所述接收側的終端中繼所述第一會 話的起始分組;從所述會話狀態保持器所保持的會話狀態信息中獲取所述起始分組的 傳輸序列號和從所述接收側的終端接收的傳輸確認分組的傳輸確認序列號,并確定所獲取的序列號之間的差值的第五步驟;當向所述接收側的終端中繼的分組的傳遞片斷大小達到了所述第二會 話的最大片斷大小時計算序列號的第六步驟;以及第七步驟如果用在所述第五步驟中確定的所述序列號之間的差值表 示的所確認用于傳輸的最大片斷大小小于在所述第六步驟中計算得到的序 列號,則向所述發送側的終端傳送在所述第四步驟中接收的所述傳輸確認 分組,并且如果所述所確認用于傳輸的最大片斷大小等于或大于所述計算 得到的序列號,則終止在所述第四步驟中接收的所述傳輸確認分組,生成 針對所述起始分組的新的傳輸確認分組,并將該新的傳輸確認分組發送到 所述發送側的終端。
全文摘要
一種會話中繼設備可以可靠地將從發送源重傳的數據分組發送到目的地,而無需執行片斷重構或分割。會話中繼設備(110)被布置在通過分組發送/接收數據的終端之間,所述分組被指派了指示出將被發送的片斷的順序的序列號。會話中繼設備(110)包括中繼單元(110-3),用于在與發送側的終端建立的第一會話和與接收側的終端建立的第二會話之間執行分組數據中繼。在從發送側的終端接收到重傳片斷時,會話中繼單元(110-3)利用所接收的重傳片斷的片斷大小來更新第二會話的最大片斷大小,并將所接收的重傳片斷發送到接收側的終端。
文檔編號H04L29/08GK101305583SQ200680041500
公開日2008年11月12日 申請日期2006年11月2日 優先權日2005年11月7日
發明者浜崇之 申請人:日本電氣株式會社