powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Биты, байты, пакеты и прочие "киты"
25 сообщений из 25, страница 1 из 1
Биты, байты, пакеты и прочие "киты"
    #38280752
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, подскажите пожалуйста какую нить книжку где доступно описано как работать с битами, байтами, пакетами, заголовками пакетов, контрольными сумами и прочим. Чтоб с примерчиками и тп. Может статья есть тут какая то?
Стыдно конечно, но с момента окончания колледжа не приходилось в жизни сталкиваться с этим. И тут на тебе - дали задание на работе (C#). А я вообще не бум бум... Читаю ТЗ и протокол взаимодействия с устройством а там сплошь и рядом незнакомые слова.
Помогите пожалуйста. Очень срочно надо. А если вдруг кто сподобится на краткое вводное объяснение что есть что, или типа того, буду очень признателен. Только пожалуйста без сарказма - сам понимаю примитивность вопроса.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280754
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может все-таки книжку прочитать?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280769
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonic,

Вы хоть немного обозначьте тему.
А то все сразу покрыть не получится, нам, например, одни только биты и байты в институте два или три семестра Соловьев рассказывал на ОТОВС-е.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280806
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skoleМожет все-таки книжку прочитать?


Ну таки да ) я это и прошу (в том числе)

Просто учитывая ограниченность по времени задачи, мне бы какие то точечные указания по обозначенным мною пунктам.

miksoftА то все сразу покрыть не получится, нам, например, одни только биты и байты в институте два или три семестра Соловьев рассказывал на ОТОВС-е.

да, я это понимаю и это меня пугает... :((

miksoftВы хоть немного обозначьте тему.


даже не знаю что именно обозначить...

Ну вот пример куска ТЗ:

Структура пакета
Заголовок 0x01 1 байт
Длина пакета 2 байта
Признак наличия неотправленных данных в архиве 1 бит
Тэг 1 1 байт
Данные, соответствующие тэгу 1 зависит от типа тэга

Контрольная сумма 2 байта

Вот можно как нить это более мене доступным языком расшифровать?

Причём чем дальше я читаю ТЗ, тем больше понимаю что мне каюк ....
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280812
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формируйте пакеты в поток и грудью на сокеты, вас же не переопределять TCP протокол заставляют. Стандартная задача.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280813
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
очень информативно ))
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280818
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что тут еще рассказывать? Пример написать? Я и на работе написался. Берешь байт, определяешь, кидаешь в массив, затем следующий, другой и т.д., получается пакет, открываешь сокет, устанавливаешь соединение по TCP, передаешь, ждешь подтверждения, что все байты дошли, закрываешь соединение.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280823
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нууу. воот. Уже что то ))
а ещё что нить вкусненькое есть?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280828
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вкусненькое на codeproject.com, а здесь болтология.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280917
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну например.
как понять эту строку:

Заголовок 0x01 1 байт


это значит что пришёл ко мне пакет 32 битный (тоесть 32 штуки нулей и едениц грубо говоря)
и самый первый бит у него - это заголовок? (тоесть либо 0 либо 1)? он кстати и является старшим для всего пакета?
или вот это:
Длина пакета 0x1A00 2 байта

как это можно описать в том стиле что я описал? и правильно ли я описал первый - заголовок?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280928
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ой не. пакет аказца не 32 битный, а 32 байтный... получается под заголовок (1 байт) выделено первые 8 бит?
грубо говоря вот он заголовок: 000000001 (или любые комбинации из 8 битов)
ну что тогда означает это - Заголовок 0x01? что этим хотели сказать?
и т.д.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38280960
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_MnemonicНу вот пример куска ТЗ:

Структура пакета
Заголовок 0x01 1 байт
Длина пакета 2 байта
Признак наличия неотправленных данных в архиве 1 бит
Тэг 1 1 байт
Данные, соответствующие тэгу 1 зависит от типа тэга

Контрольная сумма 2 байта

Вот можно как нить это более мене доступным языком расшифровать?Думаю, общую теорию тут штудировать не горит. Почитайте или поспрашивайте как такие вещие хранятся в используемом языке программирования. Структурой, массивом байтов или еще как... Возможно, окажется достаточно, чтобы кто-то (или профильном подфоруме, или в реале кто-то из более опытных коллег) просто ткнул пальцем в нужный раздел доки/хелпа.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38281062
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicну что тогда означает это - Заголовок 0x01? что этим хотели сказать? То, что первый байт (по порядку следования) является заголовком . А записано в нём может быть всё, что угоднодопустимо по ТЗ.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38281853
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот ещё такое. из описания протокола.
IMEI* – идентификатор модуля (восьмибайтовое целое);
и далее следует типа описан пример:

...сначала он посылает свой IMEI (15 байт) и версия протоколо (3 байта). Например, IMEI 123456789012345
версия протокола 1.1 передадутся как 313233343536373839303132333435312E31.

Объясните пожалуйста. Я не понимаю во-первых почему говорится IMEI - 8 байтовое, а посылается 15
и во-вторых - в какой системе исчисления представлены тут 123456789012345 и 1.1 Явно не в шестнадцатиричной....
Я чего то не допонимаю?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38281982
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicа вот ещё такое. из описания протокола.
IMEI* – идентификатор модуля (восьмибайтовое целое);
и далее следует типа описан пример:

...сначала он посылает свой IMEI (15 байт) и версия протоколо (3 байта). Например, IMEI 123456789012345
версия протокола 1.1 передадутся как 313233343536373839303132333435312E31.

Объясните пожалуйста. Я не понимаю во-первых почему говорится IMEI - 8 байтовое, а посылается 15
и во-вторых - в какой системе исчисления представлены тут 123456789012345 и 1.1 Явно не в шестнадцатиричной....
Я чего то не допонимаю?

Потому что 15 символов. Ну, то есть протокол предусматривает общение с помощью строк. А строка - это набор символов (в данном случае символы от 0 до 9), каждый из которых будет закодирован в один байт (то есть числовое представление символа). Вот и получаем 15 байт.

Для примера. мы число 200 можем записать как число в 1 байт (0xC8), но если мы будет его писать как строку, то запишем в 3 байта (по байту на символы 2, 0, 0). Версия протокола по тому же принципу.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38281985
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Насколько помню, байты (как и биты) обычно любят нумеровать с нулевого, а не с первого (то есть первый по сути будет уже вторым... после нулевого). Хотя могу ошибаться, так как в разные протоколы вникать не приходилось
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38282003
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр, спасибо большое!
Сейчас вот заглянул в "Таблицу символов" и действительно увидел что всё соответствует.
Получается у цифры 1 и у строки 1 разное шестнадцатиричное значение?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38282045
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_MnemonicПрограмёр, спасибо большое!
Сейчас вот заглянул в "Таблицу символов" и действительно увидел что всё соответствует.
Получается у цифры 1 и у строки 1 разное шестнадцатиричное значение?

Конечно. Число - это прямое значение хранимое в ячейке памяти. А символ - это уже представление этого значения из ячейки человеку. То есть оно проходит преобразование по таблицам (разные кодировки - разные символы при одинаковом значении).

Ну вроде остальное из представленного по протоколу понятно. Разве только вижу с заголовком проблемы возникли... Так вот, заголовок пакета - это обычно его описание... Туда вталкиваются обычно сервисные значения по пакету (тип пакета, тип данных пакета и т.д.) Так что он может описываться любым количеством байт/бит. Его возможные значения обычно описываются в документации к протоколу :)
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38282088
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skoleЧто тут еще рассказывать? Пример написать? Я и на работе написался. Берешь байт, определяешь, кидаешь в массив, затем следующий, другой и т.д., получается пакет, открываешь сокет, устанавливаешь соединение по TCP, передаешь, ждешь подтверждения, что все байты дошли, закрываешь соединение.

Когда используешь TCP, не надо ждать подтверждения. Потому что не бывает, что байты не дошли.

Есть такая книжка, называется
Стивенс и другие. Название не помню.
Но автор и так выведет.

Ну ещё про модель OCI можно причитать, это достаточно в википедии.

И чтобы на всякий случай отмести всякие сомнения про OCI — модель на практике не применяется, применяется только главный принцип, только поэтому ее и надо знать.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38282535
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКогда используешь TCP, не надо ждать подтверждения. Потому что не бывает, что байты не дошли.шо, даже при выдернутом сетевом шнуре доходят?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38282751
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно.
Судя по таблице, а она в показывает символы в Unicode, строка "1.1" соответствует 0x31, 0x2E, 0x31
пытаюсь перевести эти байты в строку и посмотреть на неё через MessageBox выходят другие иероглифы (в приложеннии)
вот так перевожу символ Unicode в строку и показываю
Код: c#
1.
2.
            byte[] bytes = new byte[] { 0x31, 0x2E, 0x31 };
            MessageBox.Show(System.Text.Encoding.Unicode.GetString(bytes));




что не так делаю?
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38282758
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё. решился вопрос )
делаю так:
Код: c#
1.
2.
            byte[] bytes = new byte[] { 0x0031, 0x002E, 0x0031 };
            MessageBox.Show(System.Text.Encoding.ASCII.GetString(bytes));
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38287170
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirMasterZivКогда используешь TCP, не надо ждать подтверждения. Потому что не бывает, что байты не дошли.шо, даже при выдернутом сетевом шнуре доходят?

Иногда да.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38287292
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivtanglirпропущено...
шо, даже при выдернутом сетевом шнуре доходят?

Иногда да.

Ну да ладно. По wifi? :)

"Гарантированный" протокол передачи данных не гарантирует, что переданные данные 100% прийдут адресату. Он гарантирует, что любые данные, полученные адресатом являются правильными. Так что при выдёргивании кабеля адресату будет сообщено об утери соединения и всё. Данные никаким магическим образом к нему не долетят.

P.S. чисто моё мнение на основании статей, прочитанных мной ранее во время краткого увлечения протоколами передачи данных.
...
Рейтинг: 0 / 0
Биты, байты, пакеты и прочие "киты"
    #38287466
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как зомби вылазят из стека драйверов сетевой карты ))
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Биты, байты, пакеты и прочие "киты"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]