Вот без примеров непонятно, что ты имеешь в виду. То есть, для конструктивного продолжения нужно на чем-то предметном обсуждать, а не в общем. Ну как, воскресенье прошло, начеркал?..
попробую пробиться через жжшечку. много не успел, в купе попался спиногрых сверактивный -- мозг вынесен нах.
DEF Eth :=
dst_mac := octets(6) format eth_addr
src_mac := octets(6) format eth_addr
ethtype := uint16 byteorder MSB format hex
DEF Eth := -- 802.1q
dst_mac := octets(6) format eth_addr
src_mac := octets(6) format eth_addr
tpid := uint16 byteorder MSB format hex eq 8100
tci := uint16 byteorder MSB is
vid := uint:12
cfi := uint:1
pcp := uint:3;
ethtype := uint16 byteorder MSB format hex
DEF IPoEth :=
Eth(ethtype eq 0800)
IP_hdr
DEF IP_hdr (size = ihl*4) :=
octet is
ihl := uint:4
ver := uint:4 eq 4;
tos := uint8;
total := uint16 byteorder msb
id := uint16 byteorder msb
uint16 byteorder msb is
frag_offset := uint:13
flags := uint:3 is
mf := uint:1
df := uint:1
ttl := uint8
proto := uint8
hdr_csum := uint16 byteorder msb
ip_src := octets(4) format ipv4
ip_dst := octets(4) format ipv4
options := fill IP_options
DEF UDPoIP :=
IP_hdr(proto eq 17)
UDP_hdr
DEF UDP_hdr :=
sport := uint16 byteorder msb
dport := uint16 byteorder msb
len := uint16 byteorder msb
udpcsum := uint16 byteorder msb format hex
получилось не очень хорошо, но в первом приближении так. не описана фрагментация, но мне кажется с этим можно справиться (надо ввести понятие stream и написать как ip фрагменты складываются в stream, который суть ip пакет размером более mtu. поскольку файрволу не надо терминировать в терминах ядра на себе протоколы, то такой путь вроде как возможен и нормален. ну и udp после этого будет не стекированным над ip заголовком, а внутри ip stream. а tcp будет свой stream порождать)
no subject
Date: 2012-05-25 07:13 am (UTC)попробую пробиться через жжшечку. много не успел, в купе попался спиногрых сверактивный -- мозг вынесен нах.
получилось не очень хорошо, но в первом приближении так. не описана фрагментация, но мне кажется с этим можно справиться (надо ввести понятие stream и написать как ip фрагменты складываются в stream, который суть ip пакет размером более mtu. поскольку файрволу не надо терминировать в терминах ядра на себе протоколы, то такой путь вроде как возможен и нормален. ну и udp после этого будет не стекированным над ip заголовком, а внутри ip stream. а tcp будет свой stream порождать)