TCP is not encrypted.
If packets are snooped on along the route, such as via wireless LAN, the contents of the communication can be determined.
TLS can build an encrypted communication channel over a TCP communication channel.
(As many people probably know, SSH and TLS use the same encrypted communication channel but are different things.)
SSH was developed (mainly) to be used to log in to PCs.
So in order to use it, you (generally) need account information on the server.
TLS provides a universal cryptographic transport.
This may seem sudden, but have you ever heard a story like this?
Isn't this different from the nature of TCP?
Assign a number to every piece of information you send.
Check the information you receive, arrange it in the order it was sent, and receive it in order.
A CRC check is performed every time to ensure that the information is correct.
If there are any missing numbers or errors, a retransmission is requested.
Before communication can begin, three handshakes and key exchanges, as well as multiple round-trip packet exchanges, are required.
If a packet is lost or data is garbled, the only way to restore it is to request a resend of the packet.
(Although this wasn't mentioned) Since it is implemented at the OS kernel level, it is nearly impossible to customize it in general applications.
If the conditions are met on the same server, even a three-handshake is not required.
We know for certain that they are using error-correcting codes, but we don't yet know the extent of their recovery capabilities.
It involves a lot of math, so it's not practical unless you use a library.
The protocol is very difficult and it seems unlikely that an average programmer could put it together.
In environments where communication quality is stable, it is much slower than TCP and requires more CPU power.
There is still some inconsistency in the standards, and communication may not be possible depending on the libraries used.
Use QUIC!
$theme: gaia template: invert