Существующие решения для организации связи
At the moment, 2 approaches to information exchange are mainly used in networks:
User<>Server (Centralized Model)
This is a classic and still the most common model:
User1 wants to send data to user2
User1 connects to a
server and sends data to it.
User2 receives the data from the
server. This model has a number of serious problems with both security and
fault-tolerance:
The server is controlled by a third party, which results in:
The server owner having full access to all transmitted data, which leads to:
Data leakage.
-
Data distortion/substitution. (This problem can be partially solved by
cryptography)
Server dependency.
Server failure renders communication impossible for all server users.
Blocking/censoring of the server makes it inaccessible.
Centralized services include:
All social networks (any
web service).
-
Most
IM (
Viber,
WhatsApp,
Telegram,
Discord, RaidCall, …..), the messaging/video/voice chat program that you use most likely works exactly according to this scheme )
User<>User (Decentralized Model)
Decentralized Model
There is no division into user and server in this system, each data exchange participant often acts as both simultaneously. This approach, when used correctly, allows for a high level of privacy and security, but it also has its drawbacks:
Requires an external ip address for at least one of the participants.
NAT problems Can be partially solved with
UPnP,
NAT-PMP,
stun.
IPv6 completely solves this problem.
Often a greater consumption of internet traffic (which may be undesirable on mobile devices).
Often requires more computing power, RAM, hard disk space to store data and metadata.
Often less convenient for end users because part of the functionality for the average user with this approach is either difficult or completely impossible.
This is a subtype of User<>User (P2P) that uses intermediaries, in the role of which can act a regular user as well as a dedicated computer/router. This model was created for the purpose of solving some key problems within the pure P2P model, namely:
NAT problems. In the hybrid model, users who do not have an external IP address can exchange data through intermediaries.
Problems with offline data storage. In the hybrid model, intermediaries can act as servers for storing data that must be delivered to a user who is not online at a given time.
Summary