Создание сетевого протокола

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

Каждый клиент использует одно соединение, а сервак столько, сколько у него клиентов, но все они в массиве через один компонент. Поясни термен "диалог" и объясни, что с этими диалогами делать в моём случае.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Ок. В одном соединении шлется файл. Т.е. программа читает файл, бьет его на куски и пихает в буфер для передачи. Тут пользователь отправил параллельно сообщение. Оно ушло в тот же буфер для передачи. Как на том конце разберутся что к кчему относится.
Сообщения должны содержать идентификатор, который позвояет отличить один контекст от другого. Это и есть номер диалога (это еще в некоторых телефонных протоколах называют виртуальным соединением). Т.о. как бы параллельно можно организовать передачу разнородной информации.
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):Ок. В одном соединении шлется файл. Т.е. программа читает файл, бьет его на куски и пихает в буфер для передачи. Тут пользователь отправил параллельно сообщение. Оно ушло в тот же буфер для передачи. Как на том конце разберутся что к кчему относится.
Сообщения должны содержать идентификатор, который позвояет отличить один контекст от другого. Это и есть номер диалога (это еще в некоторых телефонных протоколах называют виртуальным соединением). Т.о. как бы параллельно можно организовать передачу разнородной информации
Нет. Connect делается один раз при загрузке проги. А файлов можно качать много. + тектовые сообщения. + управляющие пакеты с сервака. Как всё это раздлить? Или я не понял, что такое соединение? Каждый пакет имеет код типа, по которому различаются тектсовые сообщения, служебные пакеты, управляющие и куски файлов. А два файла как не смешать? И два текстовых сообщения? Разнородная инфа разделена сразу, а что делать с однотипной, но различной?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Vasilisk
Сообщения: 116
Зарегистрирован: 13 фев 2004, 18:43

atavin-ta писал(а):Предложите идею сетевого протокола прикладного уровня, поддерживающего чат сообщения, передачу файлов и управление самой приладой.


Что-то ты какой-то многостаночник - не может солдат в день два мешка брюквы съесть...
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):Что-то ты какой-то многостаночник - не может солдат в день два мешка брюквы съесть...
Не может два съесть, но может двести увидеть и по мешкам сосчитать. И кто про день говорит?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Разработка протокола - это сложная задача. Поэтому надо почитать сначала про OSI. Русских даже переводов и различных сочинений на тему этой спецификации в инете полно. По каким словам ее искать я уже написал.

Зачем это нужно: чтобы разбить задачу на подзадачи. Определяем, что физический уровень - это TCP-IP. Далее строим сетевой уровень, т.е. определяем, как приложения адресуют друг друга, как они хендшейкаются, что они делают при разрыве связи. Одно ли физическое соединение они держат, или создают несколько виртуальных соединений. (пакеты относящиеся к одному соединению помечены одним числом, а к другому - другим)

Следующий уровень - транзакций. Диалоги нужны за тем, чтобы определять успешно завершилась вся транзакция или нет. (пакет относящийся к определенному диалогу также передается с собственым ID) Например, файл полностью дошел или нет.

Только потом идет уровень представлений, где уже будет определенным числом обозначаться тип пакета, и показывать, что это: кусочек файла, или кусочек сообщения.

И т.д. по спецификации. Нет времени всю ее здесь пересказывать.

Также полезно изучить какую-нибудь готовую спецификацию протокола, родственного по назначению. Например SMPP.

Одновременно надо думать, как каждый уровень в протоколе (протокол в стеке протоколов) будет программно реализовываться.
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

Здесь пересказывать и не нужно. Скажи, где взять спецификации для примера и спецификации нижних уровней?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

в начале дал ссылку http://en.wikipedia.org/wiki/OSI_model, там превосходное описание OSI, да еще ссылки на десятки примеров протоколов, реализующих каждый уровень OSI
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

А на русском нельзя?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответить