Как вы отправляете джумбограмму IPv6 с помощью winsock2?

Я хотел поэкспериментировать с размерами дейтаграмм> 64 КБ, но я застрял на этом вопросе. Я могу опубликовать код, если он будет полезен, но я обновил свой код сокета, чтобы использовать IPv6, основываясь на этом прекрасном примере: example-code.html" rel="nofollow noreferrer">http://cboard.cprogramming.com/networking-device-communication/67469-ipv6-multicast-example-code.html

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

int buffsize = 1024*1024;
auto err = setsockopt(socket, SOL_SOCKET, SO_SNDBUF, (char*)&buffsize, sizeof(buffsize));

Никакой ошибки не было возвращено, и когда я вызвал getockopt() для размера sndbuf, он сообщил о размере, который я установил, но попытка отправить дейтаграмму> 64 КБ просто привела к ошибке, что размер слишком велик.

Из чтения документов я понял, что для отправки jumbogram длина в заголовке пакета устанавливается равной 0, а размер полезной нагрузки помещается в заголовок опций IPv6 hop-by-hop. Однако я не вижу, как это сделать. Я экспериментировал, просто включив параметры перехода (я думаю?), Выполнив следующие действия:

int value(1);
auto err = setsockopt(mS, IPPROTO_IPV6, IPV6_HOPOPTS, (char *)&value, sizeof(value));

но это просто возвращает -1. Когда я вызываю getsockopt, он не возвращает ошибки, но изменяет значение исходящей длины на 0, поэтому я не знаю, что это значит.

В рамках изучения этого я столкнулся с парой SO, которые не дали мне ответа:
Кто-нибудь реализовал решение с использованием jumbograms UDP?
Поддерживает ли Winsock заголовки расширений IPv6?


person hphovercraft    schedule 30.04.2015    source источник
comment
IPV6_HOPOPTS не задокументирован как поддерживаемая опция IPPROTO_IPV6 для setsockopt(). Однако это задокументировано как доступная опция для WSASendMsg() и RIOSendEx().   -  person Remy Lebeau    schedule 30.04.2015
comment
Интересно, большое спасибо за информацию! Я не знал об этом API, исследовал его. Спасибо!   -  person hphovercraft    schedule 04.05.2015