def _connect(self, sock, addr, callback):
        self._reset()

        self._stream = DownStream(sock, io_loop=self._io_loop)
        self._stream.connect(addr, callback=callback, timeout=self.timeout)
        self._stream.read_until_close(self._on_close, self._on_read)