here's the more info form log
2015-12-03 09:35:59.047 INFO Ftp(26)[5] Response: 250 CWD command successful.
2015-12-03 09:35:59.047 DEBUG Ftp(26)[5] Info: Starting data transfer.
2015-12-03 09:35:59.047 INFO Ftp(26)[5] Command: TYPE A
2015-12-03 09:35:59.068 INFO Ftp(26)[5] Response: 200 Type set to A.
2015-12-03 09:35:59.068 DEBUG Ftp(26)[5] Info: Accepting data connection.
2015-12-03 09:35:59.070 INFO Ftp(26)[5] Command: PORT 10,10,20,5,167,155
2015-12-03 09:36:17.968 DEBUG Ftp(26)[5] Info: Control connection failed, closing current data connection.
2015-12-03 09:36:17.971 DEBUG Ftp(26)[5] Info: Error while starting data transfer: Rebex.Net.FtpException: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.ProxySocket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.IS.BC()
at Rebex.Net.IS.BC(Int32 A)
at Rebex.Net.IS.GC(String& A, Int32 B)
at Rebex.Net.IS.HC(Int32 A)
at Rebex.Net.Ftp.GM(Int32 A, Boolean B)
--- End of inner exception stack trace ---
at Rebex.Net.Ftp.GM(Int32 A, Boolean B)
at Rebex.Net.Ftp.KM(EndPoint A)
at Rebex.Net.Ftp.SM(String A, Boolean B, VS C, WP D, Int64 I, FtpTransferState J)
2015-12-03 09:36:17.971 ERROR Ftp(26)[5] Info: Rebex.Net.FtpException: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.ProxySocket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.IS.BC()
at Rebex.Net.IS.BC(Int32 A)
at Rebex.Net.IS.GC(String& A, Int32 B)
at Rebex.Net.IS.HC(Int32 A)
at Rebex.Net.Ftp.GM(Int32 A, Boolean B)
--- End of inner exception stack trace ---
at Rebex.Net.Ftp.GM(Int32 A, Boolean B)
at Rebex.Net.Ftp.KM(EndPoint A)
at Rebex.Net.Ftp.SM(String A, Boolean B, VS C, WP D, Int64 I, FtpTransferState J)
at Rebex.Net.Ftp.PO(String A, Boolean B, Stream C, Int64 D, String I, WP J)
2015-12-03 09:36:17.971 ERROR Ftp(26)[5] Info: Rebex.Net.FtpException: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Rebex.Net.ProxySocket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
Why does it happen?