網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

基於CNAPS的流水號管理方法

欄目: 畢業設計 / 釋出於: / 人氣:1.72W

摘 要:中國國家現代化支付交易清算系統(China National Automation Payment System),簡稱CNAPS,是中國人民銀行在世界銀行貸款支援下正在建設中的中央銀行支付系統,該系統的主要功能是對各商業銀行的資金進行最終的清算。文章分析了目前CNAPS系統可靠性,響應時間等方面的一些不完善之處,介紹了改善系統可靠性,縮短系統響應時間的方法,即流水號管理。關鍵詞:CNAPS SB分行系統 資金清算 流水號 套介面商業銀行(Special Bank)之間的資金收、付交易,必須經過政府授權的中央銀行進行資金清算,以發揮中央銀行的巨集觀調控功能,從而穩定貨幣、穩定市場。CNAPS系統即是由各級中央銀行組成, 因此SB分行系統必須和CNAPS系統通訊,通過CNAPS系統完成資金的最終清算。CNAPS系統的可靠、有效執行,將關係到企業、個人的資金是否實現有效、及時、可靠的轉移,對維護和健全銀行體系,完善金融市場是至關重要的。CNAPS系統中資料的傳送是全雙工的。一方面是CNAPS向SB傳送資訊或檔案;另一方面SB也向CNAPS傳送資訊或檔案。以下著重分析CNAPS向SB傳送資訊或檔案時的情況,SB向CNAPS傳送資訊或檔案時的情況與此類似。1 目前CNAPS系統的一些不完善之處目前在CNAPS向SB傳送資訊或檔案的路徑上存在以下不足之處:接收端不能得到獨立的資訊或檔案;檔案請求響應時間過長;傳輸層能提供的可靠性有限。1) 不能得到獨立的資訊和檔案兩個應用程式通過TCP連線交換8bit位元組構成的位元組流。TCP不在位元組流中插入記錄識別符號。我們將這稱為位元組流服務(byte stream service)。如果一方的應用程式先傳10位元組,又傳20位元組,再傳50位元組,連線的另一方將無法瞭解發方每次傳送了多少位元組。收方可以分4次接收這80個位元組,每次接收20個位元組。一端將位元組流放到TCP連線上,同樣的位元組流將出現在TCP連線的另一端。TCP對位元組流的內容不作任何解釋。對位元組流的解釋由TCP連線雙方的應用層解釋。當CNAPS向SB傳送資訊或檔案時,SB得到的只是無記錄標識的位元組流,而無法還原出獨立的資訊或檔案。2)檔案請求響應時間過長在CNAPS系統中,SB作為客戶機,CNAPS作為伺服器執行,客戶是指主動發起通訊請求的應用程式,而伺服器是被動等待接收通訊請求的應用程式。所以在CNAPS向SB傳送資訊或檔案的路徑上,CNAPS不會主動向SB傳送資訊或檔案,它必須首先收到SB的請求。在CNAPS向SB傳送資訊或檔案的路徑上,SB向CNAPS發出資訊或檔案請求的同時啟動一個定時器,當定時器超時(仍未接收到正確的資訊或檔案)SB則認為這個請求丟失或損傷因而進行重傳。當CNAPS與SB傳送的資料單元是檔案時,由於檔案資料量很大,正常情況下都要經過很長的時延才能從CNAPS端全部傳送到SB端, 因此定時器的時間應設定為比較大的值,SB往往要等待很長的時間才能判斷是否重發請求,SB的響應時間很長。特別是當CNAPS傳送的檔案有一小部分出錯,SB端TCP檢查到效驗和出錯時就會拋棄整個檔案,接著SB定時器超時,SB重發請求,CNAPS再次重發整個檔案,SB從發出第一次請求開始,需要經歷很長的時間才能接收到完全正確的檔案。3)傳輸層能提供的可靠性是有限的CNAPS系統的傳輸層採用的是TCP傳輸控制協議,理論上TCP協議是可靠的,然而實際的傳輸服務並非毫無錯誤,但在不可靠的網路之上提供可靠的服務正是傳輸層要實現的目標。傳輸層是增強網路層提供的服務質量,它必須彌補應用層使用者要求與網路層所提供的服務之間的差別。使用者在建立連線時對各種服務引數(如殘餘誤位元速率)指定希望的、可接受的最低限度的值,傳輸層根據網路服務的種類或它能夠獲得的服務來檢查這些引數,決定能否提供所要求的服務。當傳輸層發現服務質量引數的某些值是無法到達的,傳輸層甚至不去與目的機器連線,便直接通知應用層連線請求失敗。因此傳輸層能提供的可靠性是有限的。2 CNAPS系統性能改善方法--流水號管理改進了的CNAPS系統在CNAPS傳送資訊或檔案的路徑上都增加了流水號管理的通訊處理機制,進一步增強CNAPS系統可靠性,並縮短了檔案請求/傳送的響應時間。一、 對接收方資訊或檔案不能獨立和檔案請求響應時間過長的解決在CNAPS傳送資訊或檔案的路徑上,傳送資料在CNAPS端,為保證SB端接收到獨立的資訊或檔案,通訊上採用SB請求一次,CNAPS傳送一次的辦法。CNAPS給它生成的每個資訊分配一個流水號,以標識該資訊在CNAPS資料流中的位置。通訊上SB請求一個流水號,CNAPS才傳送流水號為對應值的資訊。這樣各個資訊就能分開。在CNAPS向SB傳送資訊路徑上流水號的處理過程可分成三步:1)當系統開始,鏈路建立後SB向CNAPS發初始化流水號請求,隨後CNAPS向SB傳送初始化流水號回答,把SB的流水號初始化為0。不是系統開始,如出現故障鏈路斷開再次建立,鏈路建立後SB會向CNAPS發證實流水號請求,如CNAPS判斷SB的流水正確,CNAPS會發出證實流水號回答。2)接著SB開始不斷地向CNAPS傳送資訊請求並從CNAPS接收資訊,直到接收到CNAPS端無資訊傳送電文為止。當SB端接收到CNAPS的無資訊傳送電文,隔一段時間,SB又會向CNAPS傳送資訊請求。3)當一天結束時,SB端會向CNAPS傳送一個結束流水號請求,當SB接收到CNAPS的結束流水號回答後,SB斷開鏈路。證實流水號請求和證實流水號回答(或初始化流水號請求和初始化流水號回答)這兩個步驟稱為流水號同步,通過流水號同步,SB可以知道已經接收到CNAPS傳送資料流的什麼位置。(這類似於TCP的三步握手)。在TCP的三步握手協議中,因為資料傳輸是雙向的,所以要完成客戶和伺服器的同步需要三個步驟。在CNAPS系統中,CNAPS傳送資訊路徑上資料是由CNAPS向SB端單向傳輸,因此在該路徑上CNAPS和SB的流水號同步只需兩個步驟。下面是日初系統開始時, CNAPS向SB傳送資訊路徑上,CNAPS端有2個未傳送資訊時流水號的處理過程(檔案接收路徑上流水號的處理過程與此類似):CNAPS(日初流水號初始化為0) SB(流水號為上日終止時的值50)圖2-1 沒有電文丟失、重複等錯誤的理想情況(未到一天結束時)圖2-1直線兩側數值是CNAPS端和SB端的流水號,斜線上表示是SB和CNAPS之間的傳送電文。CNAPS端流水號是指CNAPS已傳送且被SB正確接收到的資訊的個數(如CNAPS端流水號為3,表示CNAPS已傳送出去3個資訊且這時SB接收到的資訊個數也是3)。SB流水號是指SB已正確接收到資訊的個數。CNAPS流水號的更新是在CNAPS接收到SB請求下一個流水號時,這時CNAPS就知道上一個流水號已被SB正確接收到了。SB端流水號的更新是當SB正確接收到了資訊。規定SB必須正確接收到一個流水號才能請求下一個流水號。 斜線上SB資訊請求報文中請求的流水號為SB 端的流水號+1,即SB希望接收到的下一個CNAPS資訊的流水號。2) 在CNAPS向SB傳送檔案的路徑上流水號處理過程與CNAPS向SB傳送資訊路徑上流水號處理類似。把CNAPS生成的檔案分成若干分塊,給予每個分塊一個流水號,以標誌該檔案分塊在CNAPS資料流中的位置(分塊大小的指標是保證SB檔案分塊請求的響應時間可以接受)。通訊上SB請求一個流水號,CNAPS才傳送流水號為對應值的檔案分塊。當檔案傳輸過程中出現錯誤時,SB能及時發現,只需要CNAPS重傳某個檔案分塊,而不用整個檔案重新傳送。由於檔案分塊的資料量不大而且SB能及時處理錯誤,因此SB正確接收到整個檔案的響應時間比不採用流水號管理時的響應時間大大縮短了。當一個檔案接收完畢,SB才請求下一個檔案,這樣每個檔案也能獨立開來。流水號處理過程與圖2-1類似。二、對傳輸層只能提供有限可靠性的解決流水號管理中採用了類似於傳輸層TCP協議的一些機制,相當於在應用層進一步增強傳輸層可靠性。1) 超時重傳機制TCP協議中為了解決分組的丟失,採用的是超時重傳機制。客戶發出連線請求的同時啟動一個定時器,不管請求或者響應丟失,定時器總會超時溢位。一旦定時器超時,客戶再次發起連線請求,並重新啟動定時器。直到成功建立連線,或當重傳次數到達一定限度時,認為連線不可建立而放棄。在CNAPS向SB傳送資訊或檔案路徑上的流水號管理採用了類似TCP的超時重傳機制,SB發出資訊或檔案分塊請求的同時啟動一個定時器。當CNAPS返回的資訊或檔案分塊因線路噪聲損壞,SB方就會檢測到出錯,從而丟棄它們。在SB定時器時間到達時仍未收到正確的資訊或檔案分塊,SB就會斷開連線。2) 序號機制TCP協議中通過給資料流中每個八位組賦予序號並要求接收方記住所收八位組的序號來檢測重複現象。為了避免遲到的確認和重複確認帶來的混亂,TCP的"帶重傳的肯定確認"協議在確認資訊中攜帶一個序號,這樣接收方就能正確地把分組與確認關聯起來。在CNAPS向SB傳送資訊或檔案路徑上對資訊或檔案分塊進行編號,這種編號稱為流水號,每個待發送資料都對應一個流水號的機制使得接收端能夠辨別接收資料是否重複。4 結論CNAPS系統在我國金融界舉足輕重的地位決定了必須從多方面保證它的可靠性,否則一個失誤可能會導致上百億元的資金流失。在CNAPS系統中運用流水號的管理方法是非常必要的,它可以進一步增強系統可靠性,縮短系統的響應時間。[參考文獻][1] 周明天 汪文勇,《TCP/IP網路原理與技術》,清華大學出版社,1993年12月[2] 中國人民銀行支付與科技司,《中國國家現代化支付系統》,中國金融出版社,1995年8月

基於CNAPS的流水號管理方法