[發明專利]TCP通訊時客戶端選擇端口的方法、裝置、計算機設備和存儲介質有效
| 申請號: | 202010517920.6 | 申請日: | 2020-06-09 |
| 公開(公告)號: | CN111683094B | 公開(公告)日: | 2022-06-17 |
| 發明(設計)人: | 苗海柱 | 申請(專利權)人: | 中國銀行股份有限公司 |
| 主分類號: | H04L69/163 | 分類號: | H04L69/163;H04L67/14 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 王天堯;湯在彥 |
| 地址: | 100818 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | tcp 通訊 客戶端 選擇 端口 方法 裝置 計算機 設備 存儲 介質 | ||
本發明提供一種TCP通訊時客戶端選擇端口的方法及裝置,該方法包括:從預建立的客戶端端口隊列中,調用位于端口隊列首位的端口;以調用的位于端口隊列首位的端口,連接服務端端口;將調用的位于端口隊列首位的端口,放置在客戶端端口隊列的末尾,重新生成一客戶端端口隊列;若連接服務端端口不成功,則以重新生成的客戶端端口隊列中,位于端口隊列首位的端口,連接服務端端口;重復執行上述步驟,直到連接服務端端口成功。本發明可使客戶端端口以隊列順序的方式連接服務端,解決了客戶端某一端口被重復使用導致通訊連接失敗的問題,避免了增加端口范圍帶來的成本增加問題,同時不會增加通訊整體時長,也不需要額外增加應用層,適用于各種場景。
技術領域
本發明涉及計算機技術領域,特別涉及一種TCP通訊時客戶端選擇端口的方法及裝置。
背景技術
在進行TCP(傳輸控制協議,Transmission Control Protocol)通訊編程時,由于操作系統處理TCP協議的底層機制不同,在操作系統為AIX的客戶端向操作系統為 AIX的服務端通訊中、操作系統為Linux的客戶端向操作系統為Linux的服務端通訊中、操作系統為AIX的客戶端向操作系統為Linux的服務端通訊中,基本都不會出現因五元組重復導致建立連接失敗的問題。而在操作系統為Linux的客戶端向操作系統為AIX的服務端通訊時,會因操作系統底層機制問題,導致因Socket通訊五元組重復而出現建立連接失敗問題的發生。
在進行TCP通訊編程時,一般是客戶端發起建立與服務端連接的套接字的指令,并由客戶端的操作系統來選擇端口與服務端連接。而現有技術中,若客戶端的操作系統為AIX操作系統,在選擇端口時會采用以端口的順序在可用范圍內選擇的方式。而在客戶端的操作系統為Linux操作系統時,在選擇端口時會采用隨機方式,在可用端口范圍內進行選擇,這會導致在高并發場景下,有較高的幾率出現相同端口在很短時間內被重復使用,此時如果服務端的端口狀態處于TIME_WAIT狀態(此狀態最短釋放時間為30秒),則會因為Socket(套接字)通訊五元組重復,而造成建立連接失敗。
現有技術中,針對操作系統為Linux的客戶端向操作系統為AIX的服務端的通訊中,在高并發場景下的因五元組重復導致建立連接失敗的問題,一般會采用擴大可用端口范圍(通過系統參數配置)、增加建立連接超時時間、增加連接重試機制這三種方法解決:
1.增加端口范圍:端口范圍的增加可以使操作系統選擇端口時,隨機到相同端口的可能性降低,但此方法只可以降低五元組重復概率,并不能解決相同端口在很短時間內被重復使用的問題;
2.增加建立連接超時時間:在進行TCP通訊時,如果首次建立連接失敗,操作系統會在間隔1秒后重新發起連接。此方式會使通訊整體時間變長,因為有1秒的等待重連的時間,這在系統處理耗時比較敏感的場景時并不適用;
3.增加連接重試機制:由應用層實現連接重試,此種方法需要考慮各種異常場景,并影響到系統間端到端的監控,所以實施成本較高。
發明內容
本發明實施例提供了一種TCP通訊時客戶端選擇端口的方法,該方法應用于Linux客戶端向AIX服務端發起TCP通訊,用以解決在TCP通訊時客戶端端口連接失敗的問題,該方法包括:
從預建立的客戶端端口隊列中,調用位于端口隊列首位的端口;
以調用的位于端口隊列首位的端口,連接服務端端口;
將調用的位于端口隊列首位的端口,放置在客戶端端口隊列的末尾,重新生成一客戶端端口隊列;
若連接服務端端口不成功,則以重新生成的客戶端端口隊列中,位于端口隊列首位的端口,連接服務端端口;重復執行上述重新生成一客戶端端口隊列,并以重新生成的客戶端端口隊列中位于端口隊列首位的端口,連接服務端端口的步驟,直到連接服務端端口成功,或連接服務端端口次數超過預設次數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀行股份有限公司,未經中國銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010517920.6/2.html,轉載請聲明來源鉆瓜專利網。





