public RequestManager.ResponseStream getHeadersByNumber(
      final long blockNumber, final int maxHeaders, final int skip, final boolean reverse)
      throws PeerNotConnected {
    final GetBlockHeadersMessage message =
        GetBlockHeadersMessage.create(blockNumber, maxHeaders, skip, reverse);
    return sendRequest(
        requestManagers.get(EthProtocol.NAME).get(EthProtocolMessages.GET_BLOCK_HEADERS), message);
  }
This method is only used for sending the status message, as it is possible that we have
multiple connections to the same peer at that time.

@param messageData the data to send
@param protocolName the protocol to use for sending
@param connectionToUse the connection to use for sending
@return the response stream from the peer
@throws PeerNotConnected if the peer is not connected
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/manager/EthPeer.java