public void disconnect() {
        release();
        disconnected = true;
        if (state == ChannelState.NOT_CONNECTED && remoteAddress != null) {
            //if we captured the remote address we can provide more information
            state = new ChannelState(ChannelState.State.NOT_CONNECTED, remoteAddress.toString());
        }
        transportLayer.disconnect();
    }
Does handshake of transportLayer and authentication using configured authenticator.
For SSL with client authentication enabled, {@link TransportLayer#handshake()} performs
authentication. For SASL, authentication is performed by {@link Authenticator#authenticate()}.
clients/src/main/java/org/apache/kafka/common/network/KafkaChannel.java