2016-05-17 2 views
1

Я довольно новичок в сетевом программировании в целом и до сих пор сделал несколько приложений, используя UDP.Как реализовать опции (hop-by-hop) в IP-заголовке, в частности, IPv6?

1.) Кто на самом деле добавляет заголовок к дейтаграмме, стек TCP/IP операционной системы?

2.) Если я хочу повлиять на то, что находится в заголовке IPv6 с помощью расширений, каковы шаги? Это происходит в моем приложении UDP? Нужно ли использовать сырые сокеты?

Я беззаботно могу сообщить своей дейтаграмме адрес IP-адреса назначения & порт, и он попадает в заголовок, но я наивен и не понимаю процесс его возникновения.

Я пробовал исследовать это, но не могу найти много и верю, может быть, я не знаю, как правильно задать свой вопрос.

ответ

1

Для наиболее распространенных случаев использования операционная система предоставляет функциональные возможности для создания и анализа IP-пакета. Если вы хотите делать «особые» вещи, такие как добавление дополнительных заголовков расширений, вам часто приходится делать все это вручную.

Операционные системы часто также нуждаются в доступе администратора/корня, чтобы это не позволяло обычным пользователям делать то, что им не нужно.

+0

У меня есть права администратора/root. Что касается добавления заголовка расширения по ходу, вам нужны сырые сокеты или нет? Нужна ли мне библиотека? В основном я ищу идеи реализации. –

+0

Если ваша операционная система не предоставляет API для чего вы хотите, вам понадобятся сырые сокеты. Я бы посоветовал вам использовать библиотеку для синтаксического анализа и создания сырых пакетов, потому что написание собственного стека IP является склонным к ошибкам. –

Смежные вопросы