Как работать с сырыми сокетами (SOCK_RAW) | Часть 4


Как работать с сырыми сокетами (SOCK_RAW) | Часть 4

Завершающая (4-я часть) статьи на тему «сырых сокетов» на языке С++. Первые три части вы можете прочитать по ссылкам:

 

Первая часть —>>

Вторая часть —>>

Третья часть — >>

 

0x6. Резюме

============

Результаты исследования данной статьи можно резюмировать следующим образом.
точки:

а. Linux

********

сокет (AF_INET, SOCK_RAW, 0); -> EPPROTONOSUPPORT
-----------------------------

сокет (AF_INET, SOCK_RAW, IPPROTO_RAW);
---------------------------------------
| |
| |
--------- ----------
| ввод | | выход |
--------- ----------
только дейтаграммы IP_HDRINCL: протокол: (указывается пользователем)
с прокотолом (по умолчанию установлен)
поле: 255
(IPPROTO_RAW)

сокет (AF_INET, SOCK_RAW, XXX);
-------------------------------
| |
| |
--------- ----------
| ввод | | выход |
--------- ----------
только дейтаграммы IP_HDRINCL: протокол: (указывается пользователем)
с прокотолом! IP_HDRINCL: протокол: XXX
поле: XXX
(что бы то ни было
может быть)

б. FreeBSD

**********

сокет (AF_INET, SOCK_RAW, 0);
---------------------------------------
| |
| |
--------- ----------
| ввод | | выход |
--------- ----------
все необработанные дейтаграммы IP_HDRINCL: протокол: (указывается пользователем)
! IP_HDRINCL: 0

сокет (AF_INET, SOCK_RAW, IPPROTO_RAW);
---------------------------------------
| |
| |
--------- ----------
| ввод | | выход |
--------- ----------
только дейтаграммы IP_HDRINCL: протокол: (указывается пользователем)
с помощью прокотола! IP_HDRINCL: IPPROTO_RAW
поле: 255
(IPPROTO_RAW)

сокет (AF_INET, SOCK_RAW, XXX);
-------------------------------
| |
| |
--------- ----------
| ввод | | выход |
--------- ----------
только дейтаграммы IP_HDRINCL: протокол: (указывается пользователем)
с прокотолом! IP_HDRINCL: протокол: XXX
поле: XXX
и только
* незарегистрированный *
протоколы

0x7. Заключение

===============

Несомненно, SOCK_RAW - мощный тип сокета, заслуживающий
кто-то серьезно интересуется сетевым программированием низкого уровня,
внимание. То, что мы обсудили в этой статье, - это всего лишь беглый взгляд на
сложное внутреннее устройство сети, которое имеет место в двух самых популярных сетях
стеки относительно сырых сокетов. Реализация механизма сырых сокетов может
звучит сложно, но на самом деле может стать хорошей отправной точкой для всех, кто хочет
чтобы вникнуть в детали того, что составляет основу сегодняшнего Интернета.
Я надеюсь, что этот текст сам по себе станет понятным руководством, но я
настоятельно советую всем, кто проявляет большой интерес к этому делу, получить в свои руки
на все книги, упомянутые в разделе «Ссылки». Они оказались бесценными и бесценными.
подробно объясните многие вещи, которые обычно воспринимаются как должное.

В будущем я надеюсь написать более ориентированный на безопасность текст,
помимо основных вещей, обсуждаемых здесь, и будет иметь дело с некоторыми из
необычные конечные случаи, которые скрываются в углах источников net int.

0x8. Рекомендации

===============

1. Иллюстрированный протокол TCP / IP. Том 2. Реализация.
2. Сетевое программирование Unix — Сетевой API сокетов
3. Понимание внутреннего устройства сети Linux
4. Исходники ядра Linux.2.6.24 и FreeBSD-7.0

SOCK_RAW Демистификация
автор: ithilgore — ithilgore.ryu.L@gmail.com
sock-raw.org / sock-raw.homeunix.org
Май 2008 г.

 

 

 

Первая часть —>>

Вторая часть —>>

Третья часть — >>

Источник https://sock-raw.org/papers/sock_raw (автоперевод)


Поделиться в соц сетях

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Есть идеи, замечания, предложения? Воспользуйтесь формой Обратная связь или отправьте сообщение по адресу replay@sciencestory.ru
© 2017 Истории науки. Информация на сайте опубликована в ознакомительных целях может иметь ограничение 18+