From 4b61fdeae6b82f4207afef561a2264bfb8e2f656 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Fri, 28 Aug 2020 02:01:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B0?= =?UTF-8?q?=20faq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/docs/faq.rst | 26 ++++++++++++++++++++++++++ src/docs/index.rst | 1 + src/docs/packets_clientside.rst | 2 ++ 3 files changed, 29 insertions(+) create mode 100644 src/docs/faq.rst diff --git a/src/docs/faq.rst b/src/docs/faq.rst new file mode 100644 index 0000000..51b0de7 --- /dev/null +++ b/src/docs/faq.rst @@ -0,0 +1,26 @@ +FAQ +=== + +Что такое "сетевой протокол"? +----------------------------- + +**Сетевой протокол Minecraft** - это описание взаимодействия между Клиентом и Сервером игры по Сети. +Данный протокол работает через `TCP-соединение`_ используя **Пакеты** в качестве транспортной единицы. + +**Пакет** - это последовательность байтов, отправляемая по `TCP-соединению`_. Назначение **Пакета** определяется по его +идентификатору и текущему **Состоянию соединения**. + +**Состояние соединения** (State) - это просто термин, которым обозначается группа **Пакетов**, которые можно отправть в данный момент. + +Как создаётся соединение между Клиентом и Сервером? +--------------------------------------------------- + +1. Клиент подключается к Серверу по определённому порту *(по-умолчанию - 25565)*; +2. Клиент отправляет Пакет |HandshakePacket| Серверу с указанием следующего |State|; +3. В зависимости от указанного следующего |State|, происходит либо получение краткой информации о Сервере, либо + непосредственно подключение к игре. + +.. _TCP-соединение: https://ru.wikipedia.org/wiki/Transmission_Control_Protocol +.. _TCP-соединению: `TCP-соединение`_ +.. |HandshakePacket| replace:: :ref:`clientside_handshakepacket` +.. |State| replace:: :abbr:`State (Состояние соединения)` diff --git a/src/docs/index.rst b/src/docs/index.rst index dc460b7..a118a11 100644 --- a/src/docs/index.rst +++ b/src/docs/index.rst @@ -4,6 +4,7 @@ .. toctree:: :maxdepth: 4 + faq data_types packet_format packets diff --git a/src/docs/packets_clientside.rst b/src/docs/packets_clientside.rst index 7d58d6b..886825a 100644 --- a/src/docs/packets_clientside.rst +++ b/src/docs/packets_clientside.rst @@ -4,6 +4,8 @@ HANDSHAKING ----------- +.. _clientside_handshakepacket: + HandshakePacket ^^^^^^^^^^^^^^^