Qual é a diferença entre os modelos de rede cliente-servidor e ponto a ponto?

Realmente depende do que você precisa dessa rede. Quais são os seus casos de uso e possíveis ameaças.

Um modelo cliente-servidor será mais fácil de implementar, geralmente, mas assim que você precisar de mais de um servidor, precisará sair do modelo puro de cliente-servidor.

Da mesma forma, uma rede ponto a ponto terá alguma forma de relacionamento cliente-servidor sempre que um ponto exigir dados de outro ponto. Nesse caso, o ponto exigente é o cliente e o servidor que serve é o servidor.

Se você se preocupa em espalhar dados o mais rápido possível, uma rede P2P pura como a do BitTorrent e seus derivados (IPFS, Zeronet ...) será a melhor. Mas isso não permite nenhum controle dos dados. Qualquer pessoa pode entrar ou sair a qualquer momento, qualquer pessoa pode compartilhar qualquer tipo de dados com alguém. A vantagem é que, para um enxame grande o suficiente, a velocidade média de transferência será mais rápida do que o uso de servidores dedicados.

Existem, obviamente, os modelos híbridos: digamos que você comece com um modelo puro de cliente-servidor, que oferece controle total dos dados. Mas agora você adiciona vários servidores. Como os servidores se comunicarão entre si? Haverá uma hierarquia ou todos são iguais? Suponha que surja um conflito (digamos, metade dos seus servidores possui o carimbo de data / hora B para os dados X, mas metade tem o carimbo de data / hora A para o mesmo pedaço de dados.) Como esse conflito é resolvido?