Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> raw socke 
:(
    Опции темы
Maledictus
Дата 16.5.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 7.9.2008
Где: Республика Белару сь, Борисов

Репутация: 1
Всего: 1



собственно вопрос в следующем: объясните пожалуйста какая связь между константами в заголовках пакетов и данными из rfc.
Цитата

/*
 * Definitions for IP type of service (ip_tos)
 */
#define    IPTOS_TOS_MASK  0x1E
#define    IPTOS_TOS(tos)  ((tos) & IPTOS_TOS_MASK)
#define    IPTOS_LOWDELAY  0x10
#define    IPTOS_THROUGHPUT    0x08
#define    IPTOS_RELIABILITY    0x04
#define    IPTOS_LOWCOST  0x02
#define    IPTOS_MINCOST  IPTOS_LOWCOST

/*
 * Definitions for IP precedence (also in ip_tos) (hopefully unused)
 */
#define    IPTOS_PREC_MASK    0xe0
#define    IPTOS_PREC(tos)                ((tos) & IPTOS_PREC_MASK)
#define    IPTOS_PREC_NETCONTROL  0xe0
#define    IPTOS_PREC_INTERNETCONTROL    0xc0
#define    IPTOS_PREC_CRITIC_ECP  0xa0
#define    IPTOS_PREC_FLASHOVERRIDE    0x80
#define    IPTOS_PREC_FLASH  0x60
#define    IPTOS_PREC_IMMEDIATE  0x40
#define    IPTOS_PREC_PRIORITY  0x20
#define    IPTOS_PREC_ROUTINE  0x00


Это данные из netinet/ip.h о типе сервиса и приоритете для протокола ip

Цитата

биты 0-2  приоритет
бит 3     0 - нормальная задержка, 1 - малая задержка
бит 4     0 - нормальная пропускная способность,
             1 - высокая пропускная способность
бит 5     0 -  обычная достоверность, 1 - высокая достоверность
биты 6-7 зарезервированы
      0     1     2     3     4     5     6     7

   +-----+-----+-----+-----+-----+-----+-----+-----+

   |     приоритет   |  D  |  T  |  R  |  0  |  0  |

   +-----+-----+-----+-----+-----+-----+-----+-----+

Приоритет
   111 - управление сетью
   110 - межсетевое управление
   101 - CRITIC/ECP
   100 - более, чем мгновенно
   011 - мгновенно
   010 - немедленно
   001 - приоритетно
   000 - обычный маршрут


это из rfc791

вот почему IPTOS_LOWDELAY = 0x10, как это значение получено? Так же и с остальными.
Как например задать приоритеты для raw socketa?
Будут ли все значения универсальны для  Windows/Unix?

И, будьте добры, объясните когда необходимо использовать htons?
Заранее благодарю

PM MAIL ICQ Jabber   Вверх
Олег2005
Дата 16.5.2009, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Цитата(Maledictus @  16.5.2009,  11:47 Найти цитируемый пост)
вот почему IPTOS_LOWDELAY = 0x10, как это значение получено? Так же и с остальными.
Как например задать приоритеты для raw socketa?
Будут ли все значения универсальны для  Windows/Unix?

И, будьте добры, объясните когда необходимо использовать htons?

Если вы фабрикуете собственный IP-заголовок для отсылки по рав-сокету, то вы можете самостоятельно поставить в поле TOS все что хотите.
Однако большинство IPv4-маршрутизаторов это поле игнорируют.  
htons() используется обязательно для преобразования номера порта (целое число) из порядка байтов хоста в порядок байтов сети.
PM MAIL WWW MSN   Вверх
Maledictus
Дата 17.5.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 7.9.2008
Где: Республика Белару сь, Борисов

Репутация: 1
Всего: 1



Я знаю, что игнорируют. Я пишу свой генератор пакетов, вот поэтому и хочу разобраться во всех подробностях. 
Как это я могу писать что хочу? А как тогда определить что именно я отправил в пакете?
PM MAIL ICQ Jabber   Вверх
Maledictus
Дата 21.5.2009, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 7.9.2008
Где: Республика Белару сь, Борисов

Репутация: 1
Всего: 1



Опять поднимаю в топ: подскажите как мне задать уровень приоритета в IP? Констант для этого нет, но я их могу определить сам, только вот не могу разобраться, как, например, 101-в битовом виде(CRITIC/ECP для приоритета в поле сервиса IP-пакета) перевести в тип 0x...В нете не смог найти описания. или единственный способ, это так и записать 3 бита??
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.4957 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.