本發明涉及數據傳輸,尤其涉及一種基于不同協議進行數據交互的數據傳輸方法、系統及轉換服務器。
背景技術:
1、tcp/ip四層協議棧模型中,傳輸層協議包括tcp和udp,數據傳輸可以基于tcp協議傳輸,例如ftp(file?transfer?protocol,文件傳輸協議)、scp(secure?copy?protocol,安全拷貝協議)、rsync(remote?synchronization,遠端同步)等;也可以基于udp協議傳輸,例如rocev2(rdma?over?converged?ethernet?version2,融合以太網的rdma協議版本2)、quic(quick?udp?internet?connections,快速udp網絡連接協議)等。rocev2是rdma(romote?direct?memmory?access,遠端直接內存訪問)技術的一種實現方案,具有高吞吐、低時延等優勢。
2、當同一個網絡同時存在基于tcp協議的傳輸協議(例如ftp協議)和基于udp的傳輸協議(例如rocev2協議)傳輸數據時,需要設備(例如服務器、網關等)同時支持兩種協議,如圖5和圖6的兩種組網,通過服務器b分別處理tcp協議和udp協議的流量,實現兩種協議的轉換。
3、對于這種數據傳輸系統,以服務器a發送數據經過服務器b到服務器c為例,數據處理流程如下:
4、①基于tcp協議的數據從服務器a發出,經局域網設備或廣域網傳輸至服務器b的網卡-1;
5、②服務器b完成對tcp協議數據解析處理,轉換為udp協議數據通過網卡-2發出;
6、③服務器b的網卡-2利用udp協議將數據經過局域網設備或廣域網傳輸至服務器c。
7、反之,從服務器c發送數據經過服務器b到服務器a,同樣也需要服務器b實現udp協議到tcp協議的轉換。
8、ftp協議和rocev2協議的報文在服務器b內處理時,需要網卡、主機cpu和主機內存(包括內核空間、用戶空間)參與各協議層的處理。
9、對于這種數據傳輸系統,其數據傳輸處理流程如圖7,對此,從ftp協議到rocev2協議報文或者從從rocev2協議到ftp協議都要經過多次解析,處理復雜,且數據傳輸速率受主機cpu的性能影響,對主機內存占用高,影響主機處理其他計算任務,難以實現高速的數據傳輸。
技術實現思路
1、本發明的目的是提供一種可大幅降低對服務器中的處理器的資源需求且有效提升傳輸速率的數據傳輸方法、系統及轉換服務器。
2、為了實現上述目的,本發明提供了一種基于不同協議進行數據交互的數據傳輸方法,用于轉換服務器,所述轉換服務器中配置有協議轉換網卡和處理器,該方法包括:
3、提供一轉換服務器,所述轉換服務器中配置有協議轉換網卡和處理器;
4、所述協議轉換網卡基于第一協議棧接收來自第一服務器的并具有第一協議的第一控制報文,并基于第二協議棧接收來自第二服務器的并具有第二協議的第二控制報文;
5、所述處理器分別基于所述第一控制報文和所述第二控制報文完成所述轉換服務器與所述第一服務器和所述第二服務器之間的通信通道的建立或中斷;
6、所述協議轉換網卡基于所述第一協議棧接收來自所述第一服務器的滿足所述第一協議的原始待傳輸數據,并在所述協議轉換網卡中對所述原始待傳輸數據的數據協議進行轉換,以生成滿足所述第二協議的目標待傳輸數據,并通過所述第二協議棧將該目標待傳輸數據發送給所述第二服務器。
7、較佳地,在所述協議轉換網卡中,還通過數據緩存器接收與所述原始待傳輸數據相對應的載荷數據,在所述第二協議棧的一側,從所述數據存儲器中讀取所述載荷數據,并將所述載荷數據封裝為所述目標待傳輸數據;
8、所述數據緩存器實時監測其自身存儲容量,當存儲容量超過預設時,停止接收載荷數據。
9、較佳地,所述第一協議包括承載在tcp協議架構上的ftp協議,所述第二協議包括承載在udp協議架構上的rocev2協議。
10、較佳地,所述轉換服務器與所述第一服務器之間的通信通道的建立方法包括:所述第一控制報文依次經過第一協議棧、tcp數據解析模塊、網絡層協議棧、傳輸層協議棧和應用層協議棧的解析和處理,完成所述處理器與所述第一服務器的握手,所述第一協議棧為鏈路層協議棧,所述鏈路層協議棧和tcp數據解析模塊位于所述協議轉換網卡內,所述網絡層協議棧、所述傳輸層協議棧以及所述應用層協議棧位于所述處理器內;
11、所述轉換服務器與所述第二服務器之間的通信通道的建立方法包括:
12、所述協議轉換網卡基于所述第二協議棧接收所述第二控制報文,并將該第二控制報文透傳該所述處理器以完成所述處理器與所,述第二服務器的握手;
13、所述轉換服務器與所述第一服務器建立連接后,通知所述tcp數據解析模塊對原始待傳輸數據進行解析處理,以獲得所述載荷數據,并將該載荷數據存儲至所述數據緩存器;
14、所述數據緩存器接收到所述載荷數據后,向所述第二協議棧發送攜帶存儲地址的讀取通知信息;
15、所述第二協議棧從所述數據緩沖器接收并封裝所述載荷數據,以獲得所述目標待傳輸數據,并將該目標待傳輸數據發送給所述第二服務器。
16、較佳地,所述第一協議包括承載在udp協議架構上的rocev2協議,所述第二協議包括承載在tcp協議架構上的ftp協議。
17、較佳地,所述轉換服務器與所述第一服務器之間的通信通道的建立方法包括:
18、所述協議轉換網卡基于所述第一協議棧接收所述第一控制報文,并將該第一控制報文透傳該所述處理器,以完成所述處理器與所述第一服務器的握手;
19、所述轉換服務器與所述第二服務器之間的通信通道的建立方法包括:所述第二控制報文依次經過鏈路層協議棧、tcp數據封裝模塊、網絡層協議棧、傳輸層協議棧和應用層協議棧的解析和處理,完成所述處理器與所述第二服務器的握手,所述鏈路層協議棧和tcp數據封裝模塊位于所述協議轉換網卡內,所述網絡層協議棧、所述傳輸層協議棧以及所述應用層協議棧位于所述處理器內;
20、所述轉換服務器與所述第一服務器建立連接后,通過所述第一協議棧接收并解析所述原始待傳輸數據,以獲得所述載荷數據,并通知部署在所述第二協議棧一側的所述tcp數據封裝模塊從所述數據緩存器讀取并封裝所述載荷數據,以獲得所述目標待傳輸數據;
21、通過所述第二協議棧將所述目標待傳輸數據發送給所述第二服務器。
22、本發明還提供一種轉換服務器,其包括協議轉換網卡和處理器,所述協議轉換網卡中配置有第一協議棧和第二協議棧,所述第一協議棧用于接收來自第一服務器的并具有第一協議的第一控制報文,所述第二協議棧接收來自第二服務器的并具有第二協議的第二控制報文;
23、所述處理器用于分別基于所述第一控制報文和所述第二控制報文完成所述轉換服務器與所述第一服務器和所述第二服務器之間的通信通道的建立或中斷;
24、所述協議轉換網卡還用于基于所述第一協議棧接收來自所述第一服務器的滿足所述第一協議的原始待傳輸數據,并在所述協議轉換網卡中對所述原始待傳輸數據的數據協議進行轉換,以生成滿足所述第二協議的目標待傳輸數據,并通過第二協議棧將該目標待傳輸數據發送給所述第二服務器。
25、較佳地,所述協議轉換網卡中還設置有數據緩存器,所述數據緩存器用于接收與所述原始待傳輸數據相對應的載荷數據,并向所述第二協議棧的一側發送讀取所述載荷數據的通知信息;所述數據緩存器還可實時監測其自身存儲容量,當存儲容量超過預設時,停止接收所述載荷數據。
26、較佳地,所述第一協議包括承載在tcp協議架構上的ftp協議,所述第二協議包括承載在udp協議架構上的rocev2協議。
27、較佳地,所述協議轉換網卡內還配置有與所述第一協議棧通信連接的tcp數據解析模塊,所述tcp數據解析模塊用于對待傳輸數據進行解析處理,以獲得所述載荷數據,并將該載荷數據緩存至所述數據緩存器;所述tcp數據解析模塊還用于將所述第一控制報文透傳給所述處理器,在數據傳輸階段解析數據報文的載荷數據,并緩存至載荷數據緩存模塊。
28、較佳地,所述第一協議包括承載在udp協議架構上的rocev2協議,所述第二協議包括承載在tcp協議架構上的ftp協議。
29、較佳地,所述協議轉換網卡內還配置有與所述第一協議棧通信連接的tcp數據封裝模塊,所述tcp數據封裝模塊用于記錄網絡層、傳輸層、應用層協議的報文頭信息,并用于從所述數據緩存器中讀取所述載荷數據載荷數據后,執行tcp協議報文的封裝操作。
30、本發明還提供一種數據傳輸系統,其包括轉換服務器,以及與所述轉換服務器通信連接的第一服務器和第二服務器,所述轉換服務器、所述第一服務器和所述第二服務器之間基于如上所述的數據傳輸方法進行數據傳輸。
31、與現有技術相比,本發明上述技術方案提供的數據傳輸方法,將通信信道的連接、斷開與數據傳輸分隔開來,也即在轉換服務器中,通過處理器來執行通信信道的連接、斷開,然后將數據傳輸的任務轉移至協議轉換網卡中,從而減輕了轉換服務器中處理器的負擔,使其可以處理其他計算任務,增強了轉換服務器的整體性能和響應速度;另外,由于協議轉換網卡直接處理數據,避免了多次的數據解析和封裝過程,從而提升了數據傳輸的速率。此外,該方法還降低了因多次解析和緩存操作引起的延遲和錯誤率。