Какие протоколы мы используем?
TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) - это два наиболее распространенных протокола передачи данных. Основное отличие между ними заключается в том, что TCP является протоколом, обеспечивающим надежную передачу данных, а UDP - протоколом без установления соединения и без гарантии доставки данных.
TCP обеспечивает контроль над передачей данных, используя механизмы подтверждения и повторной передачи пакетов в случае потерь или ошибок. Он также гарантирует, что данные будут доставлены в правильном порядке и без дублирования. TCP используется для передачи данных, которые требуют высокой степени надежности. Например, мы хотим передать информацию об игроке от сервера клиенту.
UDP, с другой стороны, не обеспечивает надежной передачи данных и не гарантирует их доставку. Он используется для передачи данных, которые не требуют высокой степени надежности, например, для передачи последней позиции игрока, когда нам не важно где он находился до этого.
RUDP (Reliable User Datagram Protocol) - это протокол, который сочетает в себе преимущества TCP и UDP. Он обеспечивает надежную передачу данных, как TCP, но без установления соединения, как UDP. RUDP используется для передачи данных с гарантией доставки, но не гарантирует порядок пакетов.
В случае с TCP при получении пакетов 1, 3, 4, 5, TCP отдаст только пакет 1, а остальные пакеты придержит до тех пор, пока пакет 2 не будет доставлен. Таким образом можно замечать некую «тормознутость» при использовании TCP, когда пакетов нет-нет, а потом хоп, и вдруг сразу и много. С RUDP/UDP такого не происходит.
Закончу на моей любимой шутке: я бы рассказал вам шутку про UDP, но боюсь что она до вас не дойдет.