文秘知識 > 畢業設計

基於CNAPS的流水號管理方法


摘 要:中國國家現代化支付交易清算系統,簡稱CNAPS,是中國人民銀行在世界銀行貸款支持下正在建設中的中央銀行支付系統,該系統的主要功能是對各商業銀行的資金進行最終的清算。文章分析了目前CNAPS系統可靠性,回響時間等方面的一些不完善之處,介紹了改善系統可靠性,縮短系統回響時間的方法,即流水號管理。關鍵字:CNAPS SB分行系統 資金清算 流水號 套接口商業銀行之間的資金收、付交易,必須經過政府授權的中央銀行進行資金清算,以發揮中央銀行的巨觀調控功能,從而穩定貨幣、穩定市場。CNAPS系統即是由各級中央銀行組成, 因此SB分行系統必須和CNAPS系統通信,通過CNAPS系統完成資金的最終清算。CNAPS系統的可靠、有效運行,將關係到企業、個人的資金是否實現有效、及時、可靠的轉移,對維護和健全銀行體系,完善金融市場是至關重要的。CNAPS系統中數據的傳送是全雙工的。一方面是CNAPS向SB傳送信息或檔案;另一方面SB也向CNAPS傳送信息或檔案。以下著重分析CNAPS向SB傳送信息或檔案時的情況,SB向CNAPS傳送信息或檔案時的情況與此類似。1 目前CNAPS系統的一些不完善之處目前在CNAPS向SB傳送信息或檔案的路徑上存在以下不足之處:接收端不能得到獨立的信息或檔案;檔案請求回響時間過長;傳輸層能提供的可靠性有限。1) 不能得到獨立的信息和檔案兩個應用程式通過TCP連線交換8bit位元組構成的位元組流。TCP不在位元組流中插入記錄標識符。我們將這稱為位元組流服務。如果一方的應用程式先傳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的三步握手協定中,因為數據傳輸是雙向的,所以要完成客戶和伺服器的同步需要三個步驟。在CNAPS系統中,CNAPS傳送信息路徑上數據是由CNAPS向SB端單向傳輸,因此在該路徑上CNAPS和SB的流水號同步只需兩個步驟。下面是日初系統開始時, CNAPS向SB傳送信息路徑上,CNAPS端有2個未傳送信息時流水號的處理過程:CNAPS SB圖2-1 沒有電文丟失、重複等錯誤的理想情況圖2-1直線兩側數值是CNAPS端和SB端的流水號,斜線上表示是SB和CNAPS之間的傳送電文。CNAPS端流水號是指CNAPS已傳送且被SB正確接收到的信息的個數。SB流水號是指SB已正確接收到信息的個數。CNAPS流水號的更新是在CNAPS接收到SB請求下一個流水號時,這時CNAPS就知道上一個流水號已被SB正確接收到了。SB端流水號的更新是當SB正確接收到了信息。規定SB必須正確接收到一個流水號才能請求下一個流水號。 斜線上SB信息請求報文中請求的流水號為SB 端的流水號+1,即SB希望接收到的下一個CNAPS信息的流水號。2) 在CNAPS向SB傳送檔案的路徑上流水號處理過程與CNAPS向SB傳送信息路徑上流水號處理類似。把CNAPS生成的檔案分成若干分塊,給予每個分塊一個流水號,以標誌該檔案分塊在CNAPS數據流中的位置。通信上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的流水號管理方法@名言佳句大全