Предполагается, что вы работаете в Linux, похоже, что вы хотите использовать сокет семейства PF_PACKET
и типа SOCK_DGRAM
(см. man packet ).Эти сокеты будут автоматически включать заголовки Ethernet уровня 2 для вас, но вы можете указать остальную часть пакета выше этого уровня.
К сожалению, логика фрагментации, используемая в IP, очень тесно связана спротокол IP, поскольку он использует поля в заголовке IP для фрагментации и повторной сборки.Если вы спешите и не хотите беспокоиться о фрагментации, вы всегда можете ограничить свои пакеты меньшими, чем MTU.В противном случае я бы предложил использовать фрагментацию IP в качестве ориентира для разработки собственной фрагментации.