Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class proto_command {
...
virtual void * pack() const = 0;
};
class proto_hello: public proto_command {
struct {
const char[5] = "Hello";
} cmd_struct;
char * pack();
char * unpack();
};
Вполне вписывается и VPN туда, если рассматривать не с точки зрения функционала, а реализации.А ничего что у вас получается два Network Layer'а если вы используете IPSEC, скажем, а если вы используете VTUN без UDP, то у вас между двумя этими слоями ещё и Transport Layer появляется. И если вы ещё и 802.11 используете при этом, то у вас ещё парочка Transport Layer/Network Layer окажутся под Data Link Layer'ом.
смещение и длина некоторых полей могут также задаваться в структуре, но в основном используются изначально заданные смещения
Проектирование сетевых протоколов