Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ограничение длины UDP пакета
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
evgen2
Использую EasyWEB из, например, кейловских примеров.
Обращаюсь к lpc2378 по UDP - все работает, пока посылаю меньше 256 байт. Как только больше - наворачивается в файле tcpip.c в строке

if (!(ReadFrameBE_EMAC() & (IP_FLAG_MOREFRAG | IP_FRAGOFS_MASK))) // only unfragm. frames

Т.е. UDP пакет оказывается фрагментированным. Хотя во всяких уных книжках написано, что разбиение на фрагменты начинается для фрагментов больше MTU (который обычно 1500 байт)

Собственно - вопросы:
* зависит ли граница начала разбиения на фреймы UDP-пакетов от расположения луны, эзернет-карточки PC, драйверов, версии TCP стека, версии оса "
* какие танцы нужно выполнить при открытии сокета со стороны PC чтобы не было фрагментации ?
* какие танцы можно исполнить со стороны AVR ? Вроде бы в хидерах есть некое IP_FLAG_DONTFRAG

#define IP_FLAG_DONTFRAG 0x4000 // don't fragment IP frame
#define IP_FLAG_MOREFRAG 0x2000 // more fragments available

Непонятно однако, к какому месту приклаадывать это IP_FLAG_DONTFRAG
KRS
Поставте на PC WireShark и посмотрите какие фреймы уходят!
evgen2
Цитата(KRS @ Apr 29 2010, 00:21) *
Поставте на PC WireShark и посмотрите какие фреймы уходят!

Ааа..Всё оказалось прозаичнее. На тестовом ноуте, с которого посылал пакеты какие-то вражеские шпиёны поставили MTU = 500 вместо стандартного 1500.
Может быть, этот шпиён - я сам, когда выполнял какие-то эксперименты..., но про это я очень хорошо забыл...

ЗЫ: от ыть, писал вроде ARM, а написалось AVR wassat.gif , совсем плохой к ночи стал...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.