Как использовать собственный протокол для передачи данных? - PullRequest
0 голосов
/ 22 февраля 2011

Друзья,

Мне действительно нужна информация.Я хочу разработать протокол с некоторыми полями в нем. После некоторого изучения сети я пришел к выводу, что могу использовать HDRINCL, чтобы сообщить ядру, что заголовки определены в программе.Но везде я видел, что они говорят, что все поля в заголовке IP и TCP должны быть определены.Могу ли я использовать HDRINCL для использования моего протокола ??

Также еще одно сомнение, предположим, я хочу, чтобы функциональность IP использовалась, как фрагментация, моим протоколом.Как позвонить им ??я могу сделать это?

1 Ответ

0 голосов
/ 23 февраля 2011

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

К сожалению, логика фрагментации, используемая в IP, очень тесно связана спротокол IP, поскольку он использует поля в заголовке IP для фрагментации и повторной сборки.Если вы спешите и не хотите беспокоиться о фрагментации, вы всегда можете ограничить свои пакеты меньшими, чем MTU.В противном случае я бы предложил использовать фрагментацию IP в качестве ориентира для разработки собственной фрагментации.

...