From 04e991d8146aeff27b2d793b3f6a3c7c1f20913e Mon Sep 17 00:00:00 2001 From: me_desk Date: Fri, 23 Jan 2015 10:23:27 +0000 Subject: updated files in doc/ git-svn-id: svn://localhost/project_picapica/trunk@338 fb96df88-216d-11de-830c-f3023f12d8ac --- doc/proto.txt | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'doc/proto.txt') diff --git a/doc/proto.txt b/doc/proto.txt index 0f05d6a..e8a99ad 100755 --- a/doc/proto.txt +++ b/doc/proto.txt @@ -63,6 +63,15 @@ UH - user hash - SHA224 хэш от сертификата пользовате Протокол обмена сообщениями (между клиентами через сервер(ы) ) |КЛИЕНТ-КЛИЕНТ| ++++[начало c2c соединения] - клиент клиенту +0xCC 0xCC Ver_major Ver_minor - версия протокола клиента +варианты ответа - 0x01,0x02 + ++++[анонс адреса клиента] +0xA0, 0xA1, 0xA1 - аналогично сообщениям n2n +Если клиент настроен для приёма входящих прямых соединений между клиентами (минуя ноду), он может послать анонс своего +адреса. Получив анонс, другой клиент может создать соединение с этим адресом и закрыть соединение через ноду + +++[сообщение - текст в кодировке UTF8] 0x30 0x30 (длина сообщения в байтах- 2 байта в формате little-endian) сообщение в кодировке UTF8 -- cgit v1.2.1 From 4c9c3beee4bc540d592d7be1c332bb68827f97f0 Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 24 Jun 2016 22:29:04 +0400 Subject: updated protocol spec --- doc/proto.txt | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'doc/proto.txt') diff --git a/doc/proto.txt b/doc/proto.txt index e8a99ad..53c13c5 100755 --- a/doc/proto.txt +++ b/doc/proto.txt @@ -47,7 +47,7 @@ UH - user hash - SHA224 хэш от сертификата пользовате 0x08 0x08 (UH вызывающего пользователя) +++[запрос списка узлов] - клиент -0x09 0x09 (2 случайных байта) +0x09 0x09 (2 псевдослучайных байта) +++[список узлов] - сервер 0x0A 0x0A -- см формат 0xA4 @@ -67,27 +67,37 @@ UH - user hash - SHA224 хэш от сертификата пользовате 0xCC 0xCC Ver_major Ver_minor - версия протокола клиента варианты ответа - 0x01,0x02 -+++[анонс адреса клиента] ++++[список прямых адресов клиента] +0x0B 0x0B -- см формат A4 0xA0, 0xA1, 0xA1 - аналогично сообщениям n2n -Если клиент настроен для приёма входящих прямых соединений между клиентами (минуя ноду), он может послать анонс своего -адреса. Получив анонс, другой клиент может создать соединение с этим адресом и закрыть соединение через ноду +Если клиент настроен для приёма входящих прямых соединений между клиентами (минуя ноду), он может послать список своих адресов. +Первыми в списке должны идти адреса локальной сети (если они есть) из подсетей 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, +чтобы клиенты, находящиеся в одной локальной сети могли соединиться напрямую. Далее следуют публичные адреса интернета. +Если клиент находится за NAT и пробрасывает открытый порт на свой локальный адрес, в адресе должен быть указан внешний порт. + Получив анонс, другой клиент может создать соединение с этим адресом и закрыть соединение через ноду + ++++[попытки прямого соединения провалились] +0x0C 0x0C (2 псевдослучайных байта) +отправляется инициатором, если он получил от вызываемого клиента список прямых адресов и все попытки подключения к полученным адресам оказались неуспешны. +После получения этого сообщения вызываемый клиент начинает попытки подключения к прямым адресам инициатора, если от инициатора был получен список прямых +адресов и прямые подключения разрешены настройками вызываемого +++[сообщение - текст в кодировке UTF8] 0x30 0x30 (длина сообщения в байтах- 2 байта в формате little-endian) сообщение в кодировке UTF8 +++[отчет о доставке предыдущего сообщения] -0x40 0x40 (2 случайных байта) +0x40 0x40 (2 псевдослучайных байта) +++ [запрос на отправку файла] 0x50 0x50 (длина сообщения - 2 байта, 9..263) (размер файла - 8 байт) имя файла в UTF-8, 1 - 255 байт +++ [подтверждение принятия файла] -0x51 0x51 (2 случайных байта) +0x51 0x51 (2 псевдослучайных байта) после получения этого сообщения отправитель начинает отправку файла +++ [отказ от приёма файла] -0x52 0x52 (2 случайных байта) +0x52 0x52 (2 псевдослучайных байта) +++ [фрагмент файла] 0x53 0x53 (длина фрагмента - 2 байта, 0 - 65532) фрагмент файла @@ -100,10 +110,10 @@ UH - user hash - SHA224 хэш от сертификата пользовате Пинг +++[пинг-запрос] - может быть отправлен любой стороной, как по управляющему соединению, так и по межклиентскому -0x68 0x68 (2 случайных байта) +0x68 0x68 (2 псевдослучайных байта) +++[пинг-ответ] -0x69 0x69 (2 случайных байта) +0x69 0x69 (2 псевдослучайных байта) @@ -137,7 +147,7 @@ UH - user hash - SHA224 хэш от сертификата пользовате Размер всего пакета не превышает 64кб +++[запрос списка узлов] @@@ -0x90 0x90 (2 случайных байта) +0x90 0x90 (2 псевдослучайных байта) +++[поиск клиента] - отправляется всем узлам. Узел-получатель отвечает на это сообщение, только если искомый UH найден среди локальных клиентов либо в кэше -- cgit v1.2.1 From 0b7e1040293e24a20460a3cf5707b99aef2c969c Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 27 Dec 2016 22:12:21 +0400 Subject: added new proto message definition - PICA_PROTO_DIRECTC2C_SWITCH --- doc/proto.txt | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc/proto.txt') diff --git a/doc/proto.txt b/doc/proto.txt index 53c13c5..b45e2d9 100755 --- a/doc/proto.txt +++ b/doc/proto.txt @@ -82,6 +82,11 @@ UH - user hash - SHA224 хэш от сертификата пользовате После получения этого сообщения вызываемый клиент начинает попытки подключения к прямым адресам инициатора, если от инициатора был получен список прямых адресов и прямые подключения разрешены настройками вызываемого ++++[переключение на прямое соединение] +0x0D 0x0D (2 псевдослучайных байта) +отправляется после успешного TLS хэндшейка на прямом соединении каждой из сторон по соединению через ноду, после отправки этого сообщения все следующие сообщения +отправляются по прямому соединению, получатель сообщения соответственно ожидает следующие соединения уже по прямому соединению. + +++[сообщение - текст в кодировке UTF8] 0x30 0x30 (длина сообщения в байтах- 2 байта в формате little-endian) сообщение в кодировке UTF8 -- cgit v1.2.1 From 4ef4db981bf4a417b8adf8a55817bf0c2a8ec8f9 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 14 Jun 2017 22:22:10 +0400 Subject: fix in proto doc --- doc/proto.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/proto.txt') diff --git a/doc/proto.txt b/doc/proto.txt index b45e2d9..49cb4a0 100755 --- a/doc/proto.txt +++ b/doc/proto.txt @@ -85,7 +85,7 @@ UH - user hash - SHA224 хэш от сертификата пользовате +++[переключение на прямое соединение] 0x0D 0x0D (2 псевдослучайных байта) отправляется после успешного TLS хэндшейка на прямом соединении каждой из сторон по соединению через ноду, после отправки этого сообщения все следующие сообщения -отправляются по прямому соединению, получатель сообщения соответственно ожидает следующие соединения уже по прямому соединению. +отправляются по прямому соединению, получатель сообщения соответственно ожидает следующие сообщения уже по прямому соединению. +++[сообщение - текст в кодировке UTF8] 0x30 0x30 (длина сообщения в байтах- 2 байта в формате little-endian) сообщение в кодировке UTF8 -- cgit v1.2.1