>этой структуры, за счёт того что между полями ставится разделитель( 1
>пустой байт)Нет никаких разделителей. Есть выравнивание. И что это за система, где эта структура занимает 6 байт? На i386 и amd64 она занимает ровно 8 байт.
>сети через сокет(как масив байтов). А на другой плотформе( куда мы
>передаем нашу структуру) разделитель между полями структуры 2 байта. И поэтому
>при работе с полученым массивом байтов как со структурой test может
>получится колизия. ???
Может получиться что угодно. На разных платформах могут быть совершенно разные размеры int, char, разные правила выравнивания и разный порядок байт (little/big endian). Поэтому для бинарных протоколов надо использовать типы с фиксированным размером (u)int(8|16|32)_t, hton* и ntoh* функции для преобразования порядка байт (man ntohs) и упакованные структуры.
>И ещё такой вопрос как работают протоколы основаные на tcp/ip например ftp
>или icq? эти протоколы тоже должны (наверное) передавать структуры по сети
>между разными платформами. Как они заботятся о том что эти структуры
>будут иметь одинаковый размер на всех платформах?
Протокол может быть текстовым (какими и являются, например, ftp, http, smtp, pop3 и множество других). Если бинарным, тогда см. выше. Чтобы облегчить жизнь программиста во втором случае, придумали такие вещи как protocol buffers и библиотеки для работы с ASN.1. А первое можно довести до маразма, использовав XML.