Упаковка IP в uint32

Является ли упаковка char IP[4] (192.168.2.1) в uint32 детализированной как часть каких-либо RSI/ISO/ органов стандартизации (т. Е. Кто-нибудь здесь https://en.wikipedia.org/wiki/List_of_technical_standard_organisations)? Я знаю, что это стандарт для разных языков и инструментов, но мне интересно, является ли он частью какого-либо международного стандарта, и если да, то какой? Это должно детализировать, например, используемый порядок байтов.

Нужно знать, как я пишу спецификацию, и я не хочу заново изобретать колесо, описывая технику.

2 ответа

Решение

Все IP-адреса (и, фактически, все многобайтовые номера, используемые в стандартном сетевом стеке), отправленные по проводам, находятся в " сетевом порядке", который имеет порядковый номер.

То, как представить четыре байта чего-либо в программе, зависит от программиста, хотя они, как правило, позволяют компилятору решать, какой из них, конечно, использует то, что использует нативное оборудование.

Из чего определяется порядок байтов в сети как big-endian?...


RFC1700 заявил, что так и должно быть. (и определил сетевой порядок байтов как big-endian). Теперь он заменен RFC-3232, но эта часть остается прежней.

В документации интернет-протоколов существует соглашение о том, чтобы выражать числа в десятичном виде и отображать данные в "старшем порядке" [COHEN]. То есть поля описываются слева направо, с наиболее значимым октетом слева и наименее значимым октетом справа.

Ссылка, которую они делают, это

On Holy Wars and a Plea for Peace 
Cohen, D. 
Computer

Тезисы можно найти на IEN-137 или на этой странице IEEE.

Резюме:

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

Делается вывод, что схемы с прямым и обратным порядком байтов могли быть возможны. Нет лучшей / худшей схемы, и ее можно использовать вместо другой, если она согласована во всей системе / протоколе.

Это зависит от того, куда направляется этот IPv4-адрес.

Для фактического использования IP, то есть в сетевых пакетах, упаковка всегда использует сетевой порядок байтов, т.е.

Если вы используете что-то другое, то вы, конечно, можете определить упаковку так, как хотите.

Другие вопросы по тегам