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

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


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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

Объясните пожалуйста. Я не понимаю во-первых почему говорится IMEI - 8 байтовое, а посылается 15
и во-вторых - в какой системе исчисления представлены тут 123456789012345 и 1.1 Явно не в шестнадцатиричной....
Я чего то не допонимаю?
...
Рейтинг: 0 / 0
31.05.2013, 19:11
    #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
31.05.2013, 19:14
    #38281985
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Биты, байты, пакеты и прочие "киты"
P.S. Насколько помню, байты (как и биты) обычно любят нумеровать с нулевого, а не с первого (то есть первый по сути будет уже вторым... после нулевого). Хотя могу ошибаться, так как в разные протоколы вникать не приходилось
...
Рейтинг: 0 / 0
31.05.2013, 19:37
    #38282003
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Биты, байты, пакеты и прочие "киты"
Програмёр, спасибо большое!
Сейчас вот заглянул в "Таблицу символов" и действительно увидел что всё соответствует.
Получается у цифры 1 и у строки 1 разное шестнадцатиричное значение?
...
Рейтинг: 0 / 0
31.05.2013, 20:15
    #38282045
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Биты, байты, пакеты и прочие "киты"
J_MnemonicПрограмёр, спасибо большое!
Сейчас вот заглянул в "Таблицу символов" и действительно увидел что всё соответствует.
Получается у цифры 1 и у строки 1 разное шестнадцатиричное значение?

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

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

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

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

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

И чтобы на всякий случай отмести всякие сомнения про OCI — модель на практике не применяется, применяется только главный принцип, только поэтому ее и надо знать.
...
Рейтинг: 0 / 0
01.06.2013, 19:49
    #38282535
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Биты, байты, пакеты и прочие "киты"
MasterZivКогда используешь TCP, не надо ждать подтверждения. Потому что не бывает, что байты не дошли.шо, даже при выдернутом сетевом шнуре доходят?
...
Рейтинг: 0 / 0
02.06.2013, 12:11
    #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
02.06.2013, 12:24
    #38282758
J_Mnemonic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Биты, байты, пакеты и прочие "киты"
всё. решился вопрос )
делаю так:
Код: c#
1.
2.
            byte[] bytes = new byte[] { 0x0031, 0x002E, 0x0031 };
            MessageBox.Show(System.Text.Encoding.ASCII.GetString(bytes));
...
Рейтинг: 0 / 0
05.06.2013, 17:25
    #38287170
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Биты, байты, пакеты и прочие "киты"
tanglirMasterZivКогда используешь TCP, не надо ждать подтверждения. Потому что не бывает, что байты не дошли.шо, даже при выдернутом сетевом шнуре доходят?

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

Иногда да.

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

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

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


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