TWI555363B - Transmission control protocol communication method and server - Google Patents
Transmission control protocol communication method and server Download PDFInfo
- Publication number
- TWI555363B TWI555363B TW100108076A TW100108076A TWI555363B TW I555363 B TWI555363 B TW I555363B TW 100108076 A TW100108076 A TW 100108076A TW 100108076 A TW100108076 A TW 100108076A TW I555363 B TWI555363 B TW I555363B
- Authority
- TW
- Taiwan
- Prior art keywords
- communication
- application
- communication agent
- data
- data packet
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2876—Pairs of inter-processing entities at each side of the network, e.g. split proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Description
本發明關於網路通信領域,尤其關於一種傳輸控制協定TCP的通信方法及伺服器。
通信的雙方如果需要通過傳輸控制協定(TCP,Transmission Control Protocol)進行通信,需要在通信雙方例如用戶端(client)應用程式與伺服器(server)應用程式之間建立一個TCP連接,然後在這個連接上相互發送資料。TCP協定中,使用IP位址和埠標識一個通信方,埠標識是一個16位元的無符號整數,取值在1~65535之間。
以伺服器應用程式和用戶端應用程式之間建立TCP連接的流程為例,在建立連接前,伺服器應用程式首先打開一個埠,並在該埠監聽(Listen);然後用戶端應用程式也打開一個埠,並在該埠上向伺服器應用程式監聽的埠發起一個連接(Connect),在伺服器應用程式與用戶端應用程式之間建立TCP連接的過程至少需要三次握手。
要實現兩台伺服器的應用程式(例如用戶端應用程式和伺服器應用程式)之間的TCP通信,通常的做法會在兩個伺服器的應用程式之間一一建立TCP連接,如圖1所示,伺服器1上的每個應用程式(A~D)分別與伺服器2上各應用程式(E~H)分別建立TCP連接。
只要兩個伺服器的應用程式之間需要進行通信,它們之間就會建立起一個TCP連接,直到不需要這個連接為止。假設每台伺服器上各有100個應用程式,就兩台伺服器而言,它們之間的應用程式如果都需要建立彼此之間的TCP連接,就會建立100*100個TCP連接,即1萬個TCP連接,對於作業系統和協定棧來說,維護如此多的TCP連接,需要消耗大量的系統資源。為了避免同時存在大量的TCP連接佔用系統資源的問題,一種解決的方案是,在應用程式用完TCP連接後,盡可能地快速關閉連接,但如果下次再次需要建立連接,那麽需要重新打開埠重新建立連接。重新建立連接需要三次握手的過程,顯然也會使得應用程式受到延時的影響。
尤其對於建立大規模的集群來說,如果該集群有5000台伺服器,平均一台伺服器上有100個應用程式,那麽最多需要建立50萬個TCP連接,一方面維護這麽多的TCP連接狀態需要耗費大量的系統資源,另一方面即使不同時維護如此多的TCP連接,如此數量衆多的TCP連接需要頻繁地被打開或關閉,應用程式的處理也會受到頻繁延時的影響。
本發明實施例提供一種傳輸控制協定的通信方法及伺服器,用以解決現有傳輸控制協定中,通信雙方數量較多的應用程式之間需要進行網路通信時,維護大量的TCP連接所帶來的系統資源耗費以及應用程式延時的問題。
本發明實施例提供的傳輸控制協定的通信方法之一,包括:第一伺服器的第一通信代理接收所述第一伺服器的第一應用程式發送的資料包;所述第一通信代理解析所述資料包中的目的位址,確定所述目的位址指示的接收所述資料包的第二應用程式所在的第二伺服器;所述第一通信代理將所述資料包放入到第一通信代理和所述第二伺服器的第二通信代理之間、與接收所述資料包的第二應用程式對應第一佇列中,並通過第一通信代理與第二通信代理之間預先建立的資料連結的常連接,將所述資料包發送至所述第二通信代理。
本發明實施例提供的傳輸控制協定的通信方法之二,包括:第一伺服器的第一通信代理通過所述第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,接收由所述第二通信代理轉發的所述第二伺服器的第二應用程式發送的資料包;所述第一通信代理解析所述資料包中的目的位址,確定所述目的位址指示的接收所述資料包的第一伺服器的第一應用程式;所述第一通信代理將接收的所述資料包放入到第一通信代理與所述第一應用程式之間的第二佇列中,並通過第一通信代理與第一應用程式之間預先建立的進程間通信連接發送至所述第一應用程式。
本發明實施例提供的伺服器之一,包括:接收單元,用於接收所述伺服器的第一應用程式發送的資料包;位址解析單元,用於解析所述資料包中的目的位址,確定所述目的位址指示的接收所述資料包的第二應用程式所在的第二伺服器;發送單元,用於將所述資料包放入到所述伺服器的第一通信代理和所述第二伺服器的第二通信代理之間、與接收所述資料包的第二應用程式對應第一佇列中,並通過第一通信代理與第二通信代理之間預先建立的資料連結的常連接,將所述資料包發送至所述第二通信代理。
本發明實施例提供的伺服器之二,包括:接收單元,用於通過所述伺服器的第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,接收由所述第二通信代理轉發的所述第二伺服器的第二應用程式發送的資料包;位址解析單元,用於解析所述資料包中的目的位址,確定所述目的位址指示的接收所述資料包的所述伺服器的第一應用程式;發送單元,用於將接收的所述資料包放入到第一通信代理與所述第一應用程式之間的第二佇列中,並通過第一通信代理與第一應用程式之間預先建立的進程間通信連接發送至所述第一應用程式。
本發明實施例提供的傳輸控制協定的通信的方法及伺服器的有益效果包括:本發明實施例提供的傳輸控制協定的通信方法及伺服器,通過在第一伺服器上設置第一通信代理,第二伺服器上設置第二通信代理,第一通信代理和第二通信代理之間通過資料連結的常連接相連,第一伺服器上所有的應用程式可通過第一通信代理與第二通信代理之間的資料連結的常連接,與第二伺服器上的各第二應用程式進行資料通信,本發明實施例通過第一通信代理和第二通信代理之間建立的資料連結的常連接,提供了第一伺服器上第一應用程式和第二伺服器上第二應用程式之間的資料通信通道,與習知技術中多個TCP通信方之間需要建立數量巨大的TCP連接相比,本發明實施例大大減少了第一應用程式和第二應用程式之間實際的連接數量,有效地節約了系統維護TCP連接所需耗費的資源,並且由於資料連結的常連接所具有的連接的穩定性的優點,避免了習知技術中兩個應用程式之間進行TCP連接時由於頻繁建立和拆除TCP連接所帶來的通信延遲,提高了通信效率。
下面結合附圖,對本發明實施例提供的一種傳輸控制協定的通信方法及伺服器進行詳細地說明。
本發明實施例提供的一種傳輸控制協定(TCP)的通信方法,對現有的在伺服器的應用程式之間一一建立連接的TCP通信方式進行了改進。如圖2所示,本發明實施例中,在通信的兩端(第一應用程式和第二應用程式)所在的伺服器即第一伺服器和第二伺服器上,分別設置有第一通信代理(在第一伺服器上)和第二通信代理(在第二伺服器上)。第一通信代理和第二通信代理均為伺服器上可以實現特定功能的軟體功能模組。
第一伺服器上各個第一應用程式(A~D)分別通過各自的進程間通信連接與第一通信代理相連;同樣,第二伺服器上各個第二應用程式(E~H)分別通過各自的進程間通信連接與第二通信代理相連。應用程式與通信代理之間的進程間通信連接可以採用伺服器作業系統提供的多種進程間通信的方式,包括但不限於下述方式:Unix Domain Socket、本地TCP、共用記憶體和消息佇列(Message Queue)、管道(Pipe)等。
第一伺服器上的第一通信代理和第二伺服器上的第二通信代理通過預先建立的資料連結的常連接(Data Connection)相連,與習知技術TCP通信雙方建立的TCP連接不同,本發明實施例提供的資料連結的常連接是一種固定的、穩定性較高的連接,第一伺服器中的每個第一應用程式都可以通過第一通信代理和第二通信代理,與第二伺服器上的第二應用程式進行TCP通信;反過來,第二伺服器中的每個第二應用程式都可以通過第二通信代理和第一通信代理,與第一伺服器上的第一應用程式進行TCP通信。如圖2所示,本發明實施例通過第一通信代理和第二通信代理之間建立的資料連結的常連接,提供了第一伺服器上第一應用程式和第二伺服器上第二應用程式之間的資料通信通道。該資料連結的常連接實際上替代了習知技術中多個TCP通信方之間的多個TCP連接。本發明實施例只需要在第一伺服器的第一通信代理和第二伺服器的第二通信代理之間的一個資料連結的常連接,就可以實現第一伺服器上多個第一應用程式與第二伺服器上多個第二應用程式之間的資料傳輸,第一應用程式和第二應用程式之間並不存在直接的連接,因此實際的連接數量較習知技術大大減少,這有效地節約了系統資源。
在實際網路應用中,例如大規模的集群應用中,可能存在數量衆多的如圖2所示的第一伺服器和第二伺服器,每個第一伺服器上的第一通信代理分別與各第二伺服器的第二通信代理之間通過資料連結的常連接一一相連;反過來,每個第二伺服器上的第二通信代理也分別與各第一伺服器的第一通信代理之間通過資料連結的常連接一一相連。為了說明的簡便,在申請實施例中僅以兩個伺服器的通信代理之間的TCP通信方法進行說明。
進一步地,本發明實施例提供的傳輸控制協定的通信方法,其通信的過程包含兩種情形即:第一種情形:第一伺服器上的某個應用程式(以下稱為第一應用程式)將資料包發送至第一伺服器的第一通信代理,由第一通信代理將其發送至第二伺服器的第二通信代理,再由第二通信代理向第二伺服器的某個應用程式(以下稱第二應用程式)轉發該資料包;第二種情形:第二伺服器上的第二應用程式將資料包發送至第二伺服器的第二通信代理,由第二通信代理將其發送至第一伺服器的第一通信代理,再由第一通信代理向第一伺服器的第一應用程式發送資料包。
因為本發明實施例提供的通信方法中,第一伺服器的第一通信代理和第二伺服器的第二通信代理是實際進行TCP通信的兩個對端,因此其網路地位是對稱的,所以上述第一種情形中的第一應用程式將資料包發送至第一通信代理,由第一通信代理再將資料包轉發給第二通信代理的過程,與上述第二情形中第二應用程式將資料包發送至第二通信代理,由第二通信代理再將資料包轉發給第一通信代理的過程相同。同樣地,上述第一種情形中的第二通信代理將接收的資料包發送至第二應用程式的過程,與第二情形中第一通信代理將接收的資料包發送至第一應用程式的過程相同。
為了說明的簡便和清楚,在本發明實施例中,針對上述兩種情形,分別對第一通信代理接收第一應用程式發送的資料包轉發給第二通信代理的具體實施過程,以及對第一通信代理從第二通信代理接收第二應用程式發送的資料包再轉發給第一應用程式的具體實施過程進行詳細說明,本領域的技術人員可根據本發明實施例具體描述的這兩個過程,實現第一通信代理到第二通信代理或第二通信代理到第一通信代理之間的雙向TCP通信。
首先對本發明實施例中第一通信代理接收第一應用程式發送的資料包轉發給第二通信代理的具體實施過程進行詳細地說明,如圖3所示的流程,該過程包括下述步驟:S301、第一伺服器的第一通信代理接收第一伺服器的第一應用程式發送的資料包;S302、第一通信代理解析接收的資料包中的目的位址,確定該目的位址指示的接收該資料包的第二應用程式所在的第二伺服器;S303、第一通信代理將從第一應用程式接收的資料包放入到第一伺服器的第一佇列中,該第一佇列對應於接收該資料包的第二伺服器的第二應用程式,第一通信代理通過第一通信代理與第二通信代理之間預先建立的資料連結的常連接,從該第一佇列中取得資料包,並將資料包發送至第二通信代理。
在上述步驟S301中,第一應用程式通過第一通信代理與第一應用程式之間預先建立的進程間通信連接,接收第一應用程式發送的資料包。
各第一應用程式通過各自的進程間通信連接發送的資料包都需要通過同一個資料連結的常連接發送到第二通信代理,並且第二通信代理也需要能夠區分各個資料包的目的位址對應的進程間通信連接,將資料包準確地傳遞至對應的第二應用程式,因此,在本發明實施例中,為了在同一個伺服器中區分各個不同的應用程式,需要預先為第一伺服器的各個第一應用程式以及第二伺服器上的各個第二應用程式分配一個在所屬伺服器中唯一對應的標識AppID(例如為一個16bit的整數),並且通過IP位址和AppID定位一個應用程式,也就是將(IP,AppID)的二元組作為第一伺服器和第二伺服器上應用程式的位址。
相應地,本發明實施例定義了在第一應用程式和第二應用程式之間傳輸的資料包的格式。圖4所示,該資料包的格式中包括:其他描述欄位、SRC欄位、DST欄位和淨負荷欄位(Payload),其中SRC欄位是源位址,包含了發出該資料包的第一應用程式的(IP,AppID)二元組,DST欄位是目的位址,包含了發出該資料包的第二應用程式的(IP,AppID)二元組,其他欄位可包含例如資料包編號和資料包標記(flag)欄位等,其中資料包標記欄位具體可包含例如資料包優先順序、資料包類型(資料消息)等內容。這樣,第一通信代理在解析該資料包攜帶的目的位址時,能夠確認接收該資料包的第二應用程式對應的第二通信代理,將資料包發送至第二通信代理,第二通信代理在接收到該資料包之後,也能夠根據該資料包攜帶的目的位址,將該資料包最終傳送至對應的第二應用程式。
在上述步驟S303中,第一通信代理將第一程式發送的資料包發送至所述第二通信代理,具體通過下述過程實現:如圖5所示,第一通信代理接收到第一應用程式接收的資料包之後,首先判斷在第一通信代理和第二通信代理之間是否已建立有與接收該資料包的第二程式對應的、用於將資料包發送給第二通信代理的第一佇列,如果已建立有第一佇列,那麽將從第一應用程式接收的資料包放入到該第一佇列中;如果沒有建立第一佇列,那麽先建立第一佇列,然後將從第一應用程式接收的資料放入到建立的第一佇列中。將接收的資料包放入第一佇列的方式可有多種,例如按接收的時間順序放入佇列,或者按照資料包本身的優先順序順序等,本發明實施例對此不做限定。由於第一佇列與實際要接收該資料包的第二應用程式唯一對應,因此,第一通信代理可根據資料包中的目的位址確定出需要接收該資料包的第二應用程式,進而確定將接收資料包放入哪一個第一佇列中。
第一通信代理在資料連結的常連接滿足帶寬要求的條件下,將資料包從第一佇列中取出,取出的方式也可以由多種例如採用先入先出順序取出,或者按照優先順序順序取出等,取出的資料包經由第一通信代理與第二通信代理之間的資料連結的常連接發送至第二通信代理。
進一步地,由於本發明實施例中,當某個資料包的接收端(包括第二通信代理和第二應用程式)需要減緩接收資料的時候,並不能減緩資料連結的常連接上的資料接收,因為其他資料包的接收端並不一定需要減緩資料接收速度。如果第一伺服器上某個第一應用程式產生了大量了資料包,可能出現第一佇列被填滿甚至出現資料包溢出的情況,第一佇列上後續的資料包就不能正常發送,為了避免這種情況,較佳地,本發明實施例還為前述傳輸控制協定的通信方法提供了相應的流量控制機制。
在本發明實施例提供的流量控制機制中,較佳地,還可以在第一服務的第一通信代理和第二伺服器的第二通信代理之間建立控制鏈路的常連接(Control Connection),該控制鏈路的常連接,與前述資料連結的常連接類似,是一種固定的、穩定性較高的連接,有別於現有TCP通信雙方建立的TCP連接。這種情況下,控制鏈路的常連接專門負責傳遞流量控制信令,資料連結的常連接則專門負責資料的接收和發送,當然,本發明實施例也可以只採用一個資料連結的常連接,在這種情況下,將流量控制信令經由資料連結的常連接進行傳輸,這樣做的好處可進一步地減少TCP連接的數量,但是流量控制的效果可能較同時建立兩個常連接的效果稍差。
為了避免前述第一佇列的資料包溢出,本發明實施例提供流量控制機制如圖5所示,在第一通信代理將第一程式發送的資料包發送至所述第二通信代理的過程中,由第一通信代理監測在第一佇列資料包數量是否大於等於設定的第一臨限值,在監測結果為是時,向發送該資料包的第一應用程式發送指示資料包停止發送的流量控制信令即第一控制信令。
在該第一應用程式接收到該第一控制信令之後,停止向第一通信代理發送資料包,同時第一通信代理還會繼續發送第一佇列中已有的資料包,隨後第一佇列中的資料包的數量會逐漸減少。在第一通信代理向第一應用程式發送所述第一控制信令之後,第一通信代理繼續監測當前所述第一佇列中資料包的數量是否小於等於設定的第二臨限值(第二臨限值小於第一臨限值);並在監測結果為是時,向第一應用程式發送指示資料包重新開始發送的流量控制信令即第二控制信令。
舉個例子來說,當第一通信代理監測第一佇列中的資料包的數量大於等於佇列長度(即可承受的資料包的總數量)的2/3時,發送指示停止發送資料包的XOFF的信令消息(第一控制信令),在此以後,如果第一通信代理監測第一佇列中的資料包的數量小於等於佇列長度的1/3時,發送指示資料包重新開始發送資料包的XON的信令消息(第二控制信令)。
在第一通信代理將第一程式發送的資料包發送至所述第二通信代理的過程中,第一通信代理判斷是否從第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接中,接收到第二通信代理發送的指示資料包停止發送的第三控制信令;在判斷收到第三控制信令時,第一通信代理暫停當前第一佇列中所有資料包的發送。在第一通信代理暫停第一佇列中所有資料包的發送之後,第一通信代理還需要繼續判斷是否從第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接中,接收到第二通信代理發送的指示資料包開始發送的第四控制信令;在判斷收到第四控制信令時,第一通信代理重新開始第一佇列中所有資料包的發送。
上述第一~第四控制信令,可採用與前述用於傳輸資料的資料包類似的格式,與前述用於傳輸資料的資料包不同之處在於,控制信令中的資料包類型欄位為指示該資料包為控制信令的欄位。
更進一步地,如果同時建立兩個常連接,在控制鏈路的常連接上,可以採用控制信令佇列的方式傳輸控制信令,該控制信令佇列專門用於傳輸控制信令,保證控制信令擁有較高的發送優先順序,第一通信代理或者第二通信代理可以將控制信令放在該控制信令的佇列中,每次達到可發送的條件時(例如滿足帶寬條件),第一通信代理或者第二通信代理優先檢查控制佇列中是否有控制信令發送,如果有,優先發送之。控制信令的佇列保證了控制信令能夠及時地到達目的地。
圖6是在資料連結的常連接上發送多個第一佇列的資料包,以及在控制鏈路的常連接上發送控制信令佇列中控制信令的示意圖,從圖6上可以看出,第一佇列、第二佇列的數量由接收端的第二應用程式的數量決定。假設第二通信代理連接有3個第二應用程式(App1、App2和App3),那麽由第一應用程式向第二應用程式發送資料包的過程是:第一通信代理接收兩個第一應用程式(用戶端App1和用戶端App2)發送的資料包,根據資料包的目的位址分別將其放入到分別對應於三個第二應用程式的三個第一佇列(App1_Q、App2_Q和App3_Q)中去,第一通信代理將三個第一佇列中的資料包發送至第二通信代理,第二通信代理接收到資料包之後,放入與三個第二應用程式(App1、App2和App3)相對應的三個第二佇列(App1_Q、App2_Q和App3_Q)中,三個第二應用程式分別從該三個第二佇列中獲得各自的資料包。
另外,在上述步驟S301~S303執行過程中,如果第一通信代理監測到第一伺服器上的某個第一應用程式因為某種原因退出時,第一通信代理向與其建立資料連結的常連接的所有第二通信代理發送該第一應用程式退出的廣播消息。相應地,接收該廣播消息的每一個第二通信代理,都會繼續向其連接的所有第二應用程式發送通知該第一應用程式退出的廣播消息。之所以使用廣播消息來告知某個第一應用程式的退出,目的是為了避免在第一通信代理中記錄第一伺服器上各個第一應用程式的狀態,減輕第一通信代理的負擔。為了減少廣播消息的資料量,較佳地,本發明實施例中,第一通信代理可採用周期(例如以1s為一個周期)發送廣播消息的方法。
相應地,如果某個第一應用程式退出時,在資料連結的常連接上其對應的第一佇列所佔用的空間也可以隨之釋放,從而避免不必要的存儲資源的浪費。
接下來對本發明實施例中第一通信代理從第二通信代理接收第二應用程式發送的資料包再轉發給第一應用程式的具體實施過程進行詳細地說明,如圖7所示的流程,該過程包括下述步驟:S701、第一伺服器的第一通信代理通過第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,接收由第二通信代理轉發的第二伺服器的第二應用程式發送的資料包;S702、第一通信代理解析接收的該資料包中的目的位址,確定目的位址指示的接收該資料包的第一伺服器的第一應用程式;S703、第一通信代理將接收的該資料包放入到第一通信代理與確定出的第一應用程式之間的第二佇列中,並通過第一通信代理與該第一應用程式之間預先建立的進程間通信連接發送至該第一應用程式。
在上述步驟S702中,確定接收該資料包的第一應用程式可通過下述方法實現:第一通信代理解析資料包中的目的位址即(IP,AppID)二元組,得到接收該資料包的第一應用程式的標識,從而確定接收該資料包的第一應用程式。
在上述步驟S703中,第一通信代理通過與第一應用程式之間預先建立的進程間通信連接,將第二通信代理發送的資料包轉發至步驟S702中確定出的第一應用程式。具體的發送過程如下:如圖8所示,第一通信代理接收到資料包之後,首先判斷是否與接收該資料包的第一應用程式之間建立有進程間通信連接,如果已建立有,將從第二通信代理接收的資料包放入到第一通信代理與該第一應用程式之間用於將資料包發送至該第一應用程式的第二佇列中;如果沒有,則需先建立起與接收該資料包的第一應用程式之間的第二佇列,然後將資料包放入建立的第二佇列,將接收的資料包放入第二佇列的方式可有多種,例如按接收的時間順序放入佇列,或者按照資料包本身的優先順序順序等,本發明實施例對此不做限定。第二佇列與實際要接收該資料包的第一應用程式唯一對應。
第一通信代理在其與第一應用程式之間預先建立的進程間通信連接滿足帶寬要求的條件下,將接收的資料包從第二佇列中取出,經由第一通信代理與第一應用程式之間預先建立的進程間通信連接發送至該第一應用程式。資料包取出的方式也可以由多種,例如採用先入先出順序取出,或者按照優先順序順序取出等。
進一步地,上述步驟S703即第一通信代理通過其與所述第一應用程式之間預先建立的進程間通信連接,將資料包發送至所述第一應用程式的過程中,第一通信代理監測當前所述第二佇列中資料包的數量是否大於等於設定的第一臨限值;並在監測結果為是時,通過第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接,向第二通信代理發送指示資料包停止發送的第五控制信令。
第二通信代理在收到第五控制信令之後,會停止向第一通信代理發送資料包,而此時第一通信代理不會停止其向第一伺服器上的第一應用程式發送資料包的操作,因此,第二佇列中已有的資料包的數量會迅速降低,第一通信代理在向第二通信代理發送第五控制信令之後,還繼續監測當前所述第二佇列中資料包的數量是否小於等於設定第二臨限值(第二臨限值小於第一臨限值);並在監測結果為是時,通過第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接,向第二通信代理發送指示資料包重新開始發送的第六控制信令。
如果第一伺服器上的第一應用程式想要減緩資料的接收力度,也可向第一通信代理發送相應的流量控制信令。第一通信代理除了主動監測第二佇列中的資料包的數量之外,還監測是否收到了第一應用程式發送的流量控制信令,具體地就是判斷是否從其與第一應用程式之間預先建立的進程間通信連接中接收到該第一應用程式發送的指示資料包停止發送的第七控制信令;在判斷接收到第七控制信令時,第一通信代理將暫停當前第二佇列中所有資料包的發送。
在暫停當前第二佇列中所有資料包的發送操作之後,第一通信代理判斷是否從其與第一應用程式之間預先建立的進程間通信連接中接收到該第一應用程式發送的指示資料包發送的第八控制信令;在判斷收到第八控制信令時,第一通信代理將重新開始第二佇列中所有資料包的發送。
另外,在上述步驟S701~S703執行過程中,如果第一通信代理收到其他第二通信代理發送的該第二通信代理所在的第二伺服器的第二應用程式退出的廣播消息時,第一通信代理將接收的該廣播消息廣播至第一伺服器的所有第一應用程式。
對於第二伺服器來說,在某個第二應用程式退出的情況下,還可以釋放掉與該第二應用程式對應的第二佇列所佔用的空間,避免不必要的存儲資源的浪費。
基於同一發明構思,本發明實施例還提供了一種伺服器,由於該伺服器解決問題的原理與前述一種傳輸控制協定的通信方法相似,因此該伺服器的實施可以參見方法的實施,重復之處不再贅述。
本發明實施例提供的伺服器,同時具備將該伺服器上的第一應用程式發送的資料包轉發給第二通信代理以及將第二通信代理發送的資料包轉發給該伺服器上的第一應用程式的雙向通信功能,為了更清晰地說明,下面將其實現將第一應用程式發送的資料包轉發給第二通信代理的功能模組(如圖9所示)與其實現將第二通信代理發送的資料包轉發給該伺服器上的第一應用程式的功能模組(如圖10所示)分開說明。
如圖9所示,本發明實施例提供的伺服器,包括:接收單元901,用於接收該伺服器的第一應用程式發送的資料包;位址解析單元902,用於解析該資料包中的目的位址,確定目的位址指示的接收該資料包的第二應用程式所在的第二伺服器;發送單元903,用於將第一應用程式發送的資料包放入到該伺服器的第一通信代理和第二伺服器的第二通信代理之間、與接收該資料包的第二應用程式對應第一佇列中,並通過第一伺服器的第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,將接收的該資料包發送至所述第二通信代理。
上述接收單元901,具體用於通過第一通信代理與該第一應用程式之間預先建立的進程間通信連接,接收該第一應用程式發送的資料包。
上述發送單元903,具體用於在資料連結的常連接滿足帶寬要求的條件下,按照先入先出的順序,將資料包從所述第一佇列中取出,經由資料連結的常連接發送至第二通信代理。
進一步地,如圖9所示的伺服器,還可以包括:監測單元904,用於在發送單元903通過該資料連結的常連接,將第一程式發送的資料包發送至第二通信代理的過程中,監測第一佇列中的資料包的數量是否大於等於設定的第一臨限值,並在監測結果為是時,向第一應用程式發送指示資料包停止發送的第一控制信令。
進一步地,上述監測單元904,還用於在向該第一應用程式發送第一控制信令之後,監測當前第一佇列中資料包的數量是否小於等於設定的第二臨限值;並在監測結果為是時,向該第一應用程式發送指示資料包重新開始發送的第二控制信令。
進一步地,如圖9所示的伺服器,還可以包括:判斷單元905,用於在發送單元903將第一程式發送的資料包發送至第二通信代理的過程中,判斷是否從第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接中,接收到第二通信代理發出的指示資料包停止發送的第三控制信令;相應地,上述發送單元903,在判斷單元判斷收到第三控制信令時,暫停當前第一佇列中所有資料包的發送。
進一步地,上述判斷單元905,還用於在發送單元903暫停第一佇列中所有資料包的發送之後,判斷是否從第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接中,接收到第二通信代理發出的指示資料包開始發送的第四控制信令;相應地,上述發送單元903,還用於在判斷單元905判斷收到第四控制信令時,重新開始第一佇列中所有資料包的發送。
進一步地,上述發送單元903,還用於當監測到該伺服器的第一應用程式退出時,向與第一通信代理建立資料連結的常連接的所有第二通信代理發送所述第一應用程式退出的廣播消息。
如圖10所示,本發明實施例提供的伺服器,包括:接收單元1001,用於通過該伺服器的第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,接收由第二通信代理轉發的所述第二伺服器的第二應用程式發送的資料包;位址解析單元1002,用於解析接收單元901接收的資料包的目的位址,確定該目的位址指示的接收該資料包的該伺服器的第一應用程式;發送單元1003,用於將接收的資料包放入到第一通信代理與所述第一應用程式之間的第二佇列中,並通過第一通信代理與第一應用程式之間預先建立的進程間通信連接發送至確定出的第一應用程式。
更進一步地,上述發送單元1003,具體用於在第一通信代理與第一應用程式之間的進程間通信連接滿足帶寬要求的條件下,按照先入先出的順序,將該資料包從第二佇列中取出,經由第一通信代理與第一應用程式之間的進程間通信連接發送至所述第一應用程式。
進一步地,如圖10所示的伺服器,還可以包括:監測單元1004,用於在發送單元1003通過第一通信代理與第一應用程式之間的進程間通信連接,將資料包發送至第一應用程式的過程中,監測當前第二佇列中資料包的數量是否大於等於設定的第一臨限值;並在監測結果為是時,則通過第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接,向第二通信代理發出指示資料包停止發送的第五控制信令。
進一步地,上述監測單元1004,還用於向第二通信代理發送第五控制信令之後,監測當前第二佇列中資料包的數量是否小於等於設定第二臨限值;並在監測結果為是時,通過第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接,向第二通信代理發出指示資料包重新開始發送的第六控制信令。
進一步地,如圖10所示的伺服器,還可以包括:判斷單元1005,用於在發送單元1003通過第一通信代理與第一應用程式之間預先建立的進程間通信連接,將所述資料包發送至所述第一應用程式的過程中,判斷是否從所述進程間通信連接中接收到所述第一應用程式發出的指示資料包停止發送的第七控制信令;相應地,上述發送單元1003,在判斷單元1005判斷收到第七控制信令時,暫停當前第二佇列中所有資料包的發送。
更進一步地,上述判斷單元1005,還用於在發送單元1003暫停當前第二佇列中所有資料包的發送之後,判斷是否從第一通信代理和第一應用程式之間預先建立的進程間通信連接中接收到第一應用程式發出的指示資料包發送的第八控制信令;相應地,上述發送單元1003,還用於在收到第八控制信令時,第一通信代理重新開始所述第二佇列中所有資料包的發送。
進一步地,上述接收單元1001,還用於接收到第二伺服器發送的第二伺服器的第二應用程式退出的廣播消息;相應地,上述發送單元1003,還用於將將接收單元1001接收的廣播消息廣播至該伺服器的所有第一應用程式。
本發明實施例提供的伺服器在具體實施時,圖9所示的各功能模組與圖10所示各功能模組可以合併設置,例如圖9和圖10中的接收單元(901、1001)、位址解析單元(902、1002)、發送單元(903、1003)、監測單元(904、1004)和判斷單元(905、1005)。也可以按照圖9和圖10分別進行設置。
本發明實施例提供的傳輸控制協定的通信方法及伺服器,通過在第一伺服器上設置第一通信代理,第二伺服器上設置第二通信代理,第一通信代理和第二通信代理之間通過資料連結的常連接相連,第一伺服器上所有的應用程式可通過第一通信代理與第二通信代理之間的資料連結的常連接,與第二伺服器上的各第二應用程式進行資料通信,本發明實施例通過第一通信代理和第二通信代理之間建立的資料連結的常連接,提供了第一伺服器上第一應用程式和第二伺服器上第二應用程式之間的資料通信通道,與習知技術中多個TCP通信方之間需要建立數量巨大的TCP連接相比,本發明實施例大大減少了第一應用程式和第二應用程式之間實際的連接數量,有效地節約了系統維護TCP連接所需耗費的資源,並且由於資料連結的常連接所具有的連接穩定性的優點,避免了習知技術中兩個應用程式之間進行TCP連接時由於頻繁建立和拆除TCP連接所帶來的通信延遲,提高了通信效率。
進一步地,本發明實施例在第一通信代理和第二通信代理建立資料連結的常連接的基礎上,還可以在第一通信代理和第二通信代理之間同時建立起控制鏈路的常連接,在該控制鏈路的常連接上,傳遞流量控制信令,保證第一應用程式到第一通信代理、第一通信代理至第二通信代理以及第二通信代理至第二應用程式三段的資料傳輸流量不超過可承受的流量範圍,從而保證了第一應用程式和第二應用程式之間資料包的可靠傳輸。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明申請專利範圍及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
901...接收單元
902...位址解析單元
903...發送單元
904...監測單元
905...判斷單元
1001...接收單元
1002...位址解析單元
1003...發送單元
1004...監測單元
1005...判斷單元
圖1為習知技術提供的TCP連接的示意圖;
圖2為本發明實施例提供的TCP連接的示意圖;
圖3為本發明實施例提供的傳輸控制協定的通信方法流程圖之一;
圖4為本發明實施例提供的資料包的格式示意圖;
圖5為本發明實施例提供的第一通信代理將資料包發送至第二通信代理的示意圖;
圖6為本發明實施例提供的多個第一應用程式與多個第二應用程式之間進行TCP通信的示意圖;
圖7為本發明實施例提供的傳輸控制協定的通信方法流程圖之二;
圖8為本發明實施例提供的第一通信代理將資料包轉發至第一應用程式的示意圖;
圖9為本發明實施例提供的伺服器的結構示意圖之一;
圖10為本發明實施例提供的伺服器的結構示意圖之二。
Claims (15)
- 一種傳輸控制協定的通信方法,其特徵在於,包括:第一伺服器的第一通信代理接收該第一伺服器的第一應用程式發送的資料包;該第一通信代理解析該資料包中的目的位址,確定該目的位址指示的接收該資料包的第二應用程式所在的第二伺服器;該第一通信代理將該資料包放入到第一通信代理和該第二伺服器的第二通信代理之間、與接收該資料包的第二應用程式對應第一佇列中;以及通過第一通信代理與第二通信代理之間預先建立的資料連結的常連接,從該第一佇列中取得資料包,將該資料包發送至該第二通信代理,其中,該第一佇列與要接收該資料包的第二應用程式唯一對應,且其中,資料包包括源欄位和目的欄位,該源欄位包括第一二元組,其包括第一IP位址及與該第一應用程式相關聯的第一唯一應用程式ID,該目的欄位包括第二二元組,其包括第二IP位址及與該第二應用程式相關聯的第二唯一應用程式ID。
- 如申請專利範圍第1項之通信方法,其中,第一通信代理接收該第一伺服器的各第一應用程式發送的資料包,包括: 第一通信代理通過第一通信代理與該第一應用程式之間預先建立的進程間通信連接,接收該第一應用程式發送的資料包。
- 如申請專利範圍第1項之通信方法,其中,第一通信代理通過該資料連結的常連接,將第一程式發送的資料包發送至該第二通信代理,包括:第一通信代理在該資料連結的常連接滿足帶寬要求的條件下,按照先入先出的順序,將該資料包從該第一佇列中取出,經由該資料連結的常連接發送至第二通信代理。
- 如申請專利範圍第3項之通信方法,其中,在第一通信代理通過該資料連結的常連接,將第一程式發送的資料包發送至該第二通信代理的過程中,還包括:第一通信代理監測該第一佇列中的資料包的數量是否大於等於設定的第一臨限值,並在監測結果為是時,向該第一應用程式發送指示資料包停止發送的第一控制信令。
- 如申請專利範圍第4項之通信方法,其中,第一通信代理向該第一應用程式發送該第一控制信令之後,還包括:第一通信代理監測當前該第一佇列中資料包的數量是否小於等於設定的第二臨限值;該第二臨限值小於該第一臨限值;並在監測結果為是時,向該第一應用程式發送指示資料包重新開始發送的第二控制信令。
- 如申請專利範圍第3項之通信方法,其中,在第一通信代理將第一程式發送的資料包發送至該第二通信代理 的過程中,還包括:第一通信代理判斷是否從第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接中,接收到第二通信代理發出的指示資料包停止發送的第三控制信令;在收到第三控制信令時,第一通信代理暫停當前該第一佇列中所有資料包的發送。
- 如申請專利範圍第6項之通信方法,其中,在第一通信代理暫停該第一佇列中所有資料包的發送之後,還包括:第一通信代理判斷是否從第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接中,接收到第二通信代理發出的指示資料包開始發送的第四控制信令;在收到第四控制信令時,第一通信代理重新開始該第一佇列中所有資料包的發送。
- 如申請專利範圍第1至7項的任意一項之通信方法,其中,當第一通信代理監測到第一伺服器的第一應用程式退出時,還包括:該第一通信代理向與其建立資料連結的常連接的所有第二通信代理發送該第一應用程式退出的廣播消息。
- 一種傳輸控制協定的通信方法,其特徵在於,包括:第一伺服器的第一通信代理通過該第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,接收由該第二通信代理轉發的該第二伺服器的第二應 用程式發送的資料包;該第一通信代理解析該資料包中的目的位址,確定該目的位址指示的接收該資料包的第一伺服器的第一應用程式;該第一通信代理將接收的該資料包放入到第一通信代理與該第一應用程式之間的第二佇列中,從該第二佇列中取得資料包,並通過第一通信代理與第一應用程式之間預先建立的進程間通信連接發送至該第一應用程式,其中,該第二佇列與要接收該資料包的第一應用程式唯一對應;透過該第一通信代理,確定從該佇列中取得的資料包的數量大於第一預先設定的臨限值;隨後經由該預先建立的資料連結的常連接發送第一控制信令到該第二通信代理以停止該資料包的發送;確定從該佇列中取得的該資料包的數量落在第二預先設定的臨限值以內,該第二預先設定的臨限值比該第一預先設定的臨限值低;以及隨後發送第二控制信令到該第二通信代理以重新開始資料包的發送。
- 如申請專利範圍第9項之通信方法,其中,第一通信代理通過其與該第一應用程式之間預先建立的進程間通信連接,將該資料包發送至該第一應用程式,具體包括:第一通信代理在該進程間通信連接的滿足帶寬要求的條件下,按照先入先出的順序,將該資料包從該第二佇列中取出,經由該進程間通信連接連接發送至該第一應用程 式。
- 如申請專利範圍第10項之通信方法,其中,第一通信代理通過其與該第一應用程式之間預先建立的進程間通信連接,將該資料包發送至該第一應用程式的過程中,還包括:第一通信代理監測當前該第二佇列中資料包的數量是否大於等於設定的第一臨限值;並在監測結果為是時,通過第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接,向第二通信代理發送指示資料包停止發送的第五控制信令。
- 如申請專利範圍第11項之通信方法,其中,向第二通信代理發送該第五控制信令之後,還包括:監測當前該第二佇列中資料包的數量是否小於等於設定第二臨限值;該第二臨限值小於該第一臨限值;並在監測結果為是時,通過第一通信代理和第二通信代理之間預先建立的控制鏈路的常連接,向第二通信代理發送指示資料包重新開始發送的第六控制信令。
- 如申請專利範圍第10項之通信方法,其中,第一通信代理通過其與該第一應用程式之間預先建立的進程間通信連接,將該資料包發送至該第一應用程式的過程中,還包括:第一通信代理判斷是否從該進程間通信連接中接收到該第一應用程式發出的指示資料包停止發送的第七控制信令; 在收到第七控制信令時,第一通信代理暫停當前該第二佇列中所有資料包的發送。
- 一種伺服器,其特徵在於,包括:接收單元,用於接收該伺服器的第一應用程式發送的資料包;位址解析單元,用於解析該資料包中的目的位址,確定該目的位址指示的接收該資料包的第二應用程式所在的第二伺服器;發送單元,用於將該資料包放入到該伺服器的第一通信代理和該第二伺服器的第二通信代理之間、與接收該資料包的第二應用程式對應第一佇列中,並通過第一通信代理與第二通信代理之間預先建立的資料連結的常連接,從該第一佇列中取得資料包,將該資料包發送至該第二通信代理,其中,該第一佇列與要接收該資料包的第二應用程式唯一對應;以及監測單元,用於儲存在記憶體和可執行的一個或多個處理器,以:確定從該佇列中取出的資料包的數量大於第一預先設定的臨限值;隨後經由該預先建立的資料連結的常連接發送第一控制信令到該第二通信代理以停止該資料包的發送;確定從該佇列中取出的該資料包的數量落在第二預預先設定的臨限值以內,該第二預先設定的臨限值比該第一預先設定的臨限值低;以及 隨後發送第二控制信令到該第二通信代理以重新開始資料包的發送。
- 一種伺服器,其特徵在於,包括:接收單元,用於通過該伺服器的第一通信代理與第二伺服器的第二通信代理之間預先建立的資料連結的常連接,接收由該第二通信代理轉發的該第二伺服器的第二應用程式發送的資料包;位址解析單元,用於解析該資料包中的目的位址,確定該目的位址指示的接收該資料包的該伺服器的第一應用程式;發送單元,用於將接收的該資料包放入到第一通信代理與該第一應用程式之間的第二佇列中,從該第二佇列中取得資料包,並通過第一通信代理與第一應用程式之間預先建立的進程間通信連接發送至該第一應用程式,其中,該第二佇列與要接收該資料包的第一應用程式唯一對應;以及監測單元,用於儲存在記憶體和可執行的一個或多個處理器,以:確定從該佇列中取出的資料包的數量大於第一預先設定的臨限值;隨後經由該預先建立的資料連結的常連接發送第一控制信令到該第二通信代理以停止該資料包的發送;確定從該佇列中取出的該資料包的數量落在第二預預先設定的臨限值以內,該第二預先設定的臨限值比該第一 預先設定的臨限值低;以及隨後發送第二控制信令到該第二通信代理以重新開始資料包的發送。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010515928.5A CN102457537B (zh) | 2010-10-19 | 2010-10-19 | 一种传输控制协议的通信方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201225606A TW201225606A (en) | 2012-06-16 |
TWI555363B true TWI555363B (zh) | 2016-10-21 |
Family
ID=45975573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100108076A TWI555363B (zh) | 2010-10-19 | 2011-03-10 | Transmission control protocol communication method and server |
Country Status (7)
Country | Link |
---|---|
US (1) | US8750308B2 (zh) |
EP (1) | EP2630586A4 (zh) |
JP (2) | JP5908915B2 (zh) |
CN (1) | CN102457537B (zh) |
HK (1) | HK1166564A1 (zh) |
TW (1) | TWI555363B (zh) |
WO (1) | WO2012054347A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI588665B (zh) * | 2016-12-14 | 2017-06-21 | 英業達股份有限公司 | 伺服器 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5772380B2 (ja) * | 2011-08-11 | 2015-09-02 | 富士通株式会社 | 通信装置、通信方法、および通信プログラム |
CN102780764B (zh) * | 2012-06-28 | 2015-12-16 | 北京奇虎科技有限公司 | 一种代理通信系统及方法 |
US9253262B2 (en) * | 2013-01-24 | 2016-02-02 | Rovi Guides, Inc. | Systems and methods for connecting media devices through web sockets |
US9590885B1 (en) | 2013-03-13 | 2017-03-07 | Sprint Communications Company L.P. | System and method of calculating and reporting of messages expiring from a queue |
US9432445B1 (en) * | 2013-05-17 | 2016-08-30 | Sprint Communications Company L.P. | System and method of maintaining an enqueue rate of data messages into a set of queues |
WO2014209075A1 (ko) * | 2013-06-27 | 2014-12-31 | Seo Jeong Hoan | 인터넷 프로토콜을 이용한 서비스를 위한 다중 연결 시스템 및 방법 |
US10885583B2 (en) * | 2013-12-19 | 2021-01-05 | Chicago Mercantile Exchange Inc. | Deterministic and efficient message packet management |
WO2016049919A1 (zh) * | 2014-09-30 | 2016-04-07 | 华为技术有限公司 | 一种终端、基站、系统及传输应用数据的方法 |
CN104410675A (zh) * | 2014-11-12 | 2015-03-11 | 北京奇虎科技有限公司 | 数据传输方法、数据系统及相关装置 |
CN107656817A (zh) * | 2016-07-25 | 2018-02-02 | 阿里巴巴集团控股有限公司 | 程序间进行数据传输的方法以及装置 |
US10749913B2 (en) | 2018-09-27 | 2020-08-18 | Intel Corporation | Techniques for multiply-connected messaging endpoints |
CN110891032B (zh) * | 2019-11-27 | 2023-06-30 | 佛山市蠢材科技有限公司 | 一种人脸数据并行下发方法、装置及电子设备 |
CN112165430B (zh) * | 2020-09-24 | 2024-02-13 | 阿波罗智联(北京)科技有限公司 | 数据路由方法、装置、设备以及存储介质 |
CN112996321B (zh) * | 2021-03-05 | 2022-08-02 | 马乐志 | 一种基于正则表达式匹配的智能终端的多表数据集抄方法 |
US11576056B1 (en) * | 2021-05-10 | 2023-02-07 | T-Mobile Innovations Llc | Unified data repository (UDR) messaging in a wireless communication network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1484876A2 (en) * | 1995-11-06 | 2004-12-08 | Sun Microsystems, Inc. | Full duplex flow control for ethernet networks |
US20100098092A1 (en) * | 2008-10-18 | 2010-04-22 | Fortinet, Inc. A Delaware Corporation | Accelerating data communication using tunnels |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07287678A (ja) * | 1994-04-18 | 1995-10-31 | Nec Corp | 動的通信管理方式 |
EP0885505B1 (de) | 1996-03-08 | 2002-11-27 | Siemens Aktiengesellschaft | Verfahren zur übertragung eines datenpakets im ethernet von einer ersten anordnung zu mindestens einer zweiten anordnung |
US6757277B1 (en) * | 1999-01-26 | 2004-06-29 | Siemens Information And Communication Networks, Inc. | System and method for coding algorithm policy adjustment in telephony-over-LAN networks |
JP2001197126A (ja) * | 2000-01-11 | 2001-07-19 | Toshiba Corp | 通信システム及び網間接続装置のパケット送出量制御方法 |
US20020078135A1 (en) | 2001-03-15 | 2002-06-20 | Ibm Corporation | Method and apparatus for improving the operation of an application layer proxy |
US7480707B2 (en) | 2001-05-16 | 2009-01-20 | International Business Machines Corporation | Network communications management system and method |
WO2005008977A1 (ja) * | 2003-07-18 | 2005-01-27 | Fujitsu Limited | パケット転送方法及び装置 |
IES20040347A2 (en) | 2004-05-18 | 2005-11-30 | Flightman Res Ltd | A method for bi-directional exchange of data based on user-defined policies for the selection of a preferred datalink |
JP2005332085A (ja) | 2004-05-18 | 2005-12-02 | Fujitsu Ltd | コンピュータネットワークシステムにおける通信経路制御プログラム及び装置 |
JP4606984B2 (ja) * | 2005-09-29 | 2011-01-05 | 三菱電機株式会社 | フロー制御方法、および中継装置 |
US20070127513A1 (en) | 2005-12-06 | 2007-06-07 | Ramesh Sudini | Starvation reduction in TCP/IP applications |
US7660321B2 (en) * | 2006-03-01 | 2010-02-09 | Alcatel-Lucent Usa Inc. | System and method for prioritizing session initiation protocol messages |
JP4705863B2 (ja) | 2006-03-07 | 2011-06-22 | ソフトバンクBb株式会社 | セッション制御システム、セッション制御方法及び移動端末装置 |
CA2663317A1 (en) * | 2006-09-13 | 2008-03-20 | Asankya Networks, Inc. | Systems and methods of improving performance of transport protocols in a multi-path environment |
US20080075096A1 (en) | 2006-09-22 | 2008-03-27 | Enthenergy, Llc | Remote access to secure network devices |
EP2120404A1 (en) * | 2006-12-20 | 2009-11-18 | NEC Corporation | Communication terminal, terminal, communication system, communication method, and program |
US20080175232A1 (en) * | 2007-01-18 | 2008-07-24 | Tsai Wei K | System and method for multi-service virtual networks by integration, convergence, zero opportunity cost, and distributed user control |
CN101035037B (zh) * | 2007-04-17 | 2011-07-06 | 华为技术有限公司 | 检测网络通信质量的方法、系统及相关装置 |
CN101547134B (zh) * | 2008-03-27 | 2011-12-28 | 北京铭万互联科技有限公司 | 一种udp连接和tcp连接相互转化的方法、系统及中转服务器 |
JP5178539B2 (ja) * | 2008-04-04 | 2013-04-10 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、セッション管理システム並びにプログラム |
JP5074290B2 (ja) * | 2008-05-13 | 2012-11-14 | 株式会社日立国際電気 | 冗長切替システム、冗長管理装置およびアプリケーション処理装置 |
US8739179B2 (en) | 2008-06-30 | 2014-05-27 | Oracle America Inc. | Method and system for low-overhead data transfer |
US8838782B2 (en) | 2008-09-19 | 2014-09-16 | Nec Corporation | Network protocol processing system and network protocol processing method |
CN101789895B (zh) * | 2009-01-24 | 2012-12-12 | 华为技术有限公司 | 一种发送/接收数据报文的方法及装置 |
US8122140B2 (en) * | 2009-03-27 | 2012-02-21 | Wyse Technology Inc. | Apparatus and method for accelerating streams through use of transparent proxy architecture |
-
2010
- 2010-10-19 CN CN201010515928.5A patent/CN102457537B/zh active Active
-
2011
- 2011-03-10 TW TW100108076A patent/TWI555363B/zh active
- 2011-10-14 WO PCT/US2011/056430 patent/WO2012054347A1/en active Application Filing
- 2011-10-14 JP JP2013534976A patent/JP5908915B2/ja active Active
- 2011-10-14 US US13/380,001 patent/US8750308B2/en active Active
- 2011-10-14 EP EP11834907.5A patent/EP2630586A4/en active Pending
-
2012
- 2012-07-19 HK HK12107081.1A patent/HK1166564A1/zh unknown
-
2016
- 2016-03-24 JP JP2016060268A patent/JP6240248B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1484876A2 (en) * | 1995-11-06 | 2004-12-08 | Sun Microsystems, Inc. | Full duplex flow control for ethernet networks |
US20100098092A1 (en) * | 2008-10-18 | 2010-04-22 | Fortinet, Inc. A Delaware Corporation | Accelerating data communication using tunnels |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI588665B (zh) * | 2016-12-14 | 2017-06-21 | 英業達股份有限公司 | 伺服器 |
Also Published As
Publication number | Publication date |
---|---|
JP5908915B2 (ja) | 2016-04-26 |
EP2630586A1 (en) | 2013-08-28 |
HK1166564A1 (zh) | 2012-11-02 |
TW201225606A (en) | 2012-06-16 |
CN102457537A (zh) | 2012-05-16 |
JP6240248B2 (ja) | 2017-11-29 |
JP2016146658A (ja) | 2016-08-12 |
US20130195108A1 (en) | 2013-08-01 |
JP2013545375A (ja) | 2013-12-19 |
EP2630586A4 (en) | 2017-12-27 |
WO2012054347A1 (en) | 2012-04-26 |
CN102457537B (zh) | 2015-11-25 |
US8750308B2 (en) | 2014-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI555363B (zh) | Transmission control protocol communication method and server | |
US9674090B2 (en) | In-line network accelerator | |
US10355997B2 (en) | System and method for improving TCP performance in virtualized environments | |
US20140164640A1 (en) | Small packet priority congestion control for data center traffic | |
KR100602651B1 (ko) | Tcp 커넥션 관리 장치 및 방법 | |
US9025451B2 (en) | Positive feedback ethernet link flow control for promoting lossless ethernet | |
WO2019134383A1 (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
WO2018051189A1 (en) | Congestion control based on flow control | |
CN112104562B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
KR20090014334A (ko) | 전송 프로토콜의 성능을 향상시키는 시스템 및 방법 | |
EP3298739B1 (en) | Lightweight transport protocol | |
US9369392B2 (en) | SCTP bundling | |
WO2021128602A1 (zh) | 一种数据传输的方法和装置 | |
CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
WO2017028399A1 (zh) | 通信数据传输方法及系统 | |
CN113992588B (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
JP2013507023A (ja) | 接続指向の正順デリバリ環境において接続を管理するための方法およびシステム | |
CN114301996A (zh) | 传输数据处理方法及装置 | |
US20110270976A1 (en) | Network protocol processing system and network protocol processing method | |
CN115348108A (zh) | 用于维持互联网协议安全隧道的方法和设备 | |
US8572605B1 (en) | Source switching of virtual machines | |
CN112217735A (zh) | 信息同步方法与负载均衡系统 | |
JP2014022820A (ja) | プロキシ装置、通信システム、プログラム | |
WO2022183890A1 (zh) | 帧抢占方法、装置、设备和存储介质 | |
CN103095646B (zh) | 一种网络数据的接收方法 |