URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6941
[ Назад ]

Исходное сообщение
"IP layer сокет, как?"

Отправлено geragray , 14-Ноя-07 16:03 
Как создать сокет который бы читал данные с определенного порта, но не только TCP/UDP layer а еще и IP layer. По моему подходит только RAW сокет, с последущим отсечением Мак уровня? Или я не прав?

Содержание

Сообщения в этом обсуждении
"IP layer сокет, как?"
Отправлено Arifolth , 14-Ноя-07 16:26 
>Как создать сокет который бы читал данные с определенного порта, но не
>только TCP/UDP layer а еще и IP layer. По моему подходит
>только RAW сокет, с последущим отсечением Мак уровня? Или я не
>прав?

не прав.
заголовки канального уровня будут только при использовании
sock_packet (пакетного сокета)
в socket_raw выцеплять заголовок IP пакета вам всё равно прийдётся с setsockopt/ip_hdr include. а по порту прийдётся фильтровать самому.


"IP layer сокет, как?"
Отправлено geragray , 14-Ноя-07 16:49 
>заголовки канального уровня будут только при использовании
>sock_packet (пакетного сокета)
>в socket_raw выцеплять заголовок IP пакета вам всё равно прийдётся с setsockopt/ip_hdr
>include. а по порту прийдётся фильтровать самому.

Простите, не понял. С tcp/udp сокетом понятное дело никакого сетевого уровня в заголовках пакета я не увижу. А вот если буду использовать RAW с setsocopt(blahblah, IP_HDRINC), то получу только данные + IP headers или же там мак тоже маячить будет? Мне же нужнен пакет только с IP уровнем. Сорри если туманно выражаюсь.


"IP layer сокет, как?"
Отправлено Arifolth , 14-Ноя-07 17:05 
>>заголовки канального уровня будут только при использовании
>>sock_packet (пакетного сокета)
>>в socket_raw выцеплять заголовок IP пакета вам всё равно прийдётся с setsockopt/ip_hdr
>>include. а по порту прийдётся фильтровать самому.
>
>Простите, не понял. С tcp/udp сокетом понятное дело никакого сетевого уровня в
>заголовках пакета я не увижу. А вот если буду использовать RAW
>с setsocopt(blahblah, IP_HDRINC), то получу только данные + IP headers или
>же там мак тоже маячить будет? Мне же нужнен пакет только
>с IP уровнем. Сорри если туманно выражаюсь.

с tcp/udp сокетом вы не увидите tcp/udp заголовка.
с raw сокетом без setsockopt/IP_HDRINCLUDE вы увидите tcp/udp заголовок.
с raw сокетом с setsockopt/IP_HDRINCLUDE вы увидите tcp/udp+ip заголовок.
(http://www.opennet.ru/base/dev/allpacke.txt.html например)
с пакетным сокетом вы увидите ethernet заголовок + tcp/udp/ip заголовоки.
(http://www.senie.com/dan/technology/sock_packet.html вкратце)


"IP layer сокет, как?"
Отправлено geragray , 14-Ноя-07 17:09 
>с tcp/udp сокетом вы не увидите tcp/udp заголовка.
>с raw сокетом без setsockopt/IP_HDRINCLUDE вы увидите tcp/udp заголовок.
>с raw сокетом с setsockopt/IP_HDRINCLUDE вы увидите tcp/udp+ip заголовок.
>(http://www.opennet.ru/base/dev/allpacke.txt.html например)
>с пакетным сокетом вы увидите ethernet заголовок + tcp/udp/ip заголовоки.
>(http://www.senie.com/dan/technology/sock_packet.html вкратце)

Ok, большое спасибо, это я как раз и хотел узнать.