summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-08-03 17:44:27 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-08-03 17:44:27 +0000
commitd4ad44dcb83e91b6faa48f99634b474433ebda23 (patch)
treefb88f97321a33ded203fe67f3ae6775aa2a5bb4f /doc
parentdef5a727ab0b2ad2112b148446285bdaa1281d9c (diff)
downloadpica-pica-d4ad44dcb83e91b6faa48f99634b474433ebda23.tar.gz
pica-pica-d4ad44dcb83e91b6faa48f99634b474433ebda23.zip
updated protocol version and sizes of protocol messages
git-svn-id: svn://localhost/project_picapica/trunk@259 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'doc')
-rwxr-xr-xdoc/proto.txt44
1 files changed, 23 insertions, 21 deletions
diff --git a/doc/proto.txt b/doc/proto.txt
index 1390698..cc4fa71 100755
--- a/doc/proto.txt
+++ b/doc/proto.txt
@@ -3,6 +3,8 @@
[Хвост] - остальная часть пакета. Может быть пустым. Имеет либо фиксированную длину, заданную для данного сообщения,
либо содержит в начале 1 или 2 байта, содержащих размер (в виде целого беззнакового числа, порядок байт-младший байт по младшему адресу) остальной части, не включая байты размера
+UH - user hash - SHA224 хэш от сертификата пользователя в DER формате, 28 байт, является идентификатором пользователя
+
Протокол авторизации и пересылки данных (между сервером и клиентом)
+++[запрос на подключение] -клиент
@@ -25,24 +27,24 @@
|КЛИЕНТ-СЕРВЕР|
+++[запрос на установление соединения с собеседником] - клиент, по установленному защищенному соединению
-0x03 0x03 (UIN вызываемого пользователя, в формате little-endian)
+0x03 0x03 (UH вызываемого пользователя)
+++[запрос на разрешение соединения] - сервер, по установленному защищенному соединению
-0x04 0x04 (UIN инициатора, в формате little-endian)
+0x04 0x04 (UH инициатора)
-+++[пользователь с данным UIN не найден (в оффлайне, отказался от разговора)]
++++[пользователь с данным UH не найден (в оффлайне, отказался от разговора)]
- сервер, по установленному защищенному соединению
-0x05 0x05 (UIN вызываемого пользователя, в формате little-endian)
+0x05 0x05 (UH вызываемого пользователя)
+++[разрешение соединения от вызываемого пользователя] -вызываемый клиент, по установленному защищенному соединению
-0x06 0x06 (UIN вызывающего пользователя, в формате little-endian)
+0x06 0x06 (UH вызывающего пользователя)
после отправки данного сообщения вызваемый клиент осуществляет подключение к серверу на порт обмена данными (_DATA_PORT) и отправляет через это соединение сообщение 0x20 -идентификация нового соединения
-+++[пользователь с данным UIN найден и готов общаться] - сервер вызывающему клиенту
-0x07 0x07 (UIN вызываемого пользователя, в формате little-endian)
++++[пользователь с данным UH найден и готов общаться] - сервер вызывающему клиенту
+0x07 0x07 (UH вызываемого пользователя)
+++[отказ от общения]-вызываемый клиент
-0x08 0x08 (UIN вызывающего пользователя, в формате little-endian)
+0x08 0x08 (UH вызывающего пользователя)
+++[запрос списка узлов] - клиент
0x09 0x09 (2 случайных байта)
@@ -53,9 +55,9 @@
Нижеследующие сообщения передаются через соединение сервера с клиентом для передачи данных
+++[идентификация нового соединения] - клиент
-0x20 0x20 (UIN вызывающего пользователя) (UIN вызываемого пользователя)
+0x20 0x20 (UH вызывающего пользователя) (UH вызываемого пользователя)
-сервер при получении данного сообщения проверяет UINы. При несовпадении соединение разрывается. После проверки сервер переходит в режим пересылки данных между двумя клиентами. Вызывающий клиент инициирует установку соединения по протоколу TLS
+сервер при получении данного сообщения проверяет UH-ы. При несовпадении соединение разрывается. После проверки сервер переходит в режим пересылки данных между двумя клиентами. Вызывающий клиент инициирует установку соединения по протоколу TLS
@@ -111,30 +113,30 @@
0x90 0x90 (2 случайных байта)
-+++[поиск клиента] - отправляется всем узлам. Узел-получатель отвечает на это сообщение, только если искомый UIN найден среди локальных клиентов либо в кэше
-0xA5 0xA5 (UIN вызываемого пользователя, в формате little-endian)
++++[поиск клиента] - отправляется всем узлам. Узел-получатель отвечает на это сообщение, только если искомый UH найден среди локальных клиентов либо в кэше
+0xA5 0xA5 (UH вызываемого пользователя)
-+++[результат поиска клиента-клиент найден ] - отправляется узлом, получившим 0xA5, если искомый UIN найден среди локальных подключенных клиентов
-0xA8 0xA8 (UIN вызываемого пользователя, в формате little-endian)
++++[результат поиска клиента-клиент найден ] - отправляется узлом, получившим 0xA5, если искомый UH найден среди локальных подключенных клиентов
+0xA8 0xA8 (UH вызываемого пользователя)
-+++[результат поиска клиента-клиент найден в кэше ] - отправляется узлом, получившим 0xA5, если искомый UIN найден в кэше (т.е есть информация о подключении искомого клиента к другому узлу)
-0xA9 0xA9 (размер - два байта, [13-263] )(UIN вызываемого пользователя, в формате little-endian) (адрес узла, на котором может быть искомый UIN, в формате A0|A1|A2 см. описание 0xA4)
++++[результат поиска клиента-клиент найден в кэше ] - отправляется узлом, получившим 0xA5, если искомый UH найден в кэше (т.е есть информация о подключении искомого клиента к другому узлу)
+0xA9 0xA9 (размер - два байта, [32-287] )(UH вызываемого пользователя) (адрес узла, на котором может быть искомый UH, в формате A0|A1|A2 см. описание 0xA4)
+++[запрос на разрешение соединения c клиентом узла-получателя]
-0xAA 0xAA (UIN инициатора, в формате little-endian) (UIN вызываемого пользователя, в формате little-endian)
+0xAA 0xAA (UH инициатора) (UH вызываемого пользователя)
+++[разрешение соединения от вызываемого пользователя]-отправляется после того, как вызываемый локальный клиент ответил сообщением 0x06 и создал новое соединение для обмена сообщениями
-0xAB 0xAB (UIN инициатора, в формате little-endian) (UIN вызываемого пользователя, в формате little-endian)
+0xAB 0xAB (UH инициатора) (UH вызываемого пользователя)
+++[клиент не найден (в оффлайне, отказался от разговора)]
-отправляется узлом в ответ на сообщение 0xD0, адресованное данному UIN-у,
+отправляется узлом в ответ на сообщение 0xD0, адресованное данному UH-у,
если данный пользователь уже отключился или его нету в списке локальных клиентов,
либо в ответ на 0xAA, если вызываемый клиент отказался от соединения.
-0xB8 0xB8 (UIN инициатора, в формате little-endian)(UIN вызываемого пользователя, в формате little-endian)
+0xB8 0xB8 (UH инициатора)(UH вызываемого пользователя)
+++[сообщение, передаваемое клиентами между узлами]
-0xD0 0xD0 (длина вложенного сообщения в байтах [8 - 65532] , - 2 байта в формате little-endian) (UIN локального пользователя-отправителя) (UIN пользователя на другом узле) вложенные данные
+0xD0 0xD0 (длина вложенного сообщения в байтах [56 - 65532] , - 2 байта в формате little-endian) (UH локального пользователя-отправителя) (UH пользователя на другом узле) вложенные данные
вложенные данные - данные передаваемые через соединение КЛИЕНТ-КЛИЕНТ