发明名称 Apparatus and methods for optimizing network data transmission
摘要 Apparatus and methods for optimizing data transmission between two hosts via a network device. The network device initially allows a first connection to be established between the two host devices. This first connection is logically established directly between the host devices without modification by the network device. The network device analyzes data transmitted via the first connection and determines whether to allow the first connection to continue without intervention by the network device, or whether to split the connection into separate TCP connections with the network device as intermediary. The network device maintains connection state and emulates both host devices to allow the first connection to be split without disrupting the communication at either host device.
申请公布号 US9438494(B2) 申请公布日期 2016.09.06
申请号 US201213724523 申请日期 2012.12.21
申请人 AVVASI INC. 发明人 Samuell Charles Neville;Larocque Richard Ryan;Goertz Kevin
分类号 G06F15/173;H04L12/26;H04L12/893;H04L12/801 主分类号 G06F15/173
代理机构 Bereskin & Parr LLP/S.E.N.C.R.L.,s.r.l. 代理人 Bereskin & Parr LLP/S.E.N.C.R.L.,s.r.l.
主权项 1. A method of optimizing data transmission for a current data flow from a first host to a second host via a network device, the network device comprising a processor and a memory, the method comprising: the network device allowing establishment of a first TCP connection between the first host and the second host via the network device for the current data flow, wherein establishment of the first TCP connection comprises the processor spawning a first passive transmission control module process corresponding to the first host, and a second passive transmission control module process corresponding to the second host, wherein the first passive transmission control module process maintains first connection state information for the first host, and wherein the second passive transmission control module process maintains second connection state information for the second host, and wherein each of the first and second connection state information comprises TCP sequence numbering; the processor executing the first and second passive transmission control module processes to maintain a model of connection state based on data sent or received in the first TCP connection, wherein the model of the connection state is initially in a passive identify state; the processor executing the first passive transmission control module to send data from the first host to both a content identifier and the second host; the processor executing the second passive transmission control module to send data from the second host to both the content identifier and the first host; based on the data sent or received in the first TCP connection, the processor executing the content identifier to determine that an active connection state is to be used for the current data flow, and updating the model of connection state to the active connection state; in response to determining that the active connection state is to be used, the processor spawning a first active transmission control module process corresponding to the first host, and a second active transmission control module process corresponding to the second host; the processor executing the first active transmission control module process to receive the first connection state information from the first passive transmission control module process, and executing the second active transmission control module process to receive the second connection state information from the second passive transmission control module process; the processor splitting the first TCP connection into a second TCP connection between the first host and the network device and a third TCP connection between the second host and the network device; the processor executing the second active transmission control module process to emulate the first host in the third TCP connection using the second connection state information; the processor executing the first active transmission control module process to emulate the second host in the second TCP connection using the first connection state information; the processor executing the first active transmission control module process to receive data from the first host and to send the data from the first host to a content modifier; the processor executing the second active transmission control module process to receive data from the second host and to send the data from the second host to the content modifier; the processor executing the content modifier to process the data from the first host and to send the processed data from the first host to the second active transmission control module process; the processor executing the content modifier to process the data from the second host and to send the processed data from the second host to the first active transmission control module process; and the processor executing the first active transmission control module process to send the processed data from the second host to the first host, and executing the second active transmission control module process to send the processed data from the first host to the second host.
地址 Waterloo CA