Цитата(taoga @ Aug 27 2011, 22:10)

Я попытался написать код, который посылает данные из обработчика tcp_sent(), но похоже этот обработчик вызывается 4 раза в секунду, скорость передачи соответственно очень медленная.
Для непрерывной передачи вроде бы и нужно из tcp_sent() посылать. Для достижения высокой скорости передачи должен быть достаточного размера TCP_SND_BUF и, возможно, размеры иных буферов, участвующих в передаче. Там много настроек, и очень легко выделить память не туда, где она действительно нужна. Полезно включить статистику и попытаться понять, есть ли где-либо нехватка памяти. Также надо посылать помногу, вплоть до того момента, пока tcp_write() не перестанет возвращать ERR_OK. В общем, стараться держать буфер передачи заполненным.
Цитата(taoga @ Aug 27 2011, 22:10)

Очень мало примеров и информации.
Да, есть такая особенность у lwip. Стек бесплатный, "вы получаете то, за что заплатили". Опираясь на свой опыт, могу предположить, что для использования lwip в своих проектах народ просто становится экспертами по lwip, а эксперту сторонняя помощь уже не нужна. Ну а потом отвечать на чужие вопросы просто времени нет. Но вообще есть англоязычные списки рассылки на домашней странице проекта. В этих списках на вопросы отвечают. Можно даже пошерстить их архивы: Ваша проблема не экзотическая, её неоднократно решали.
Update:
Да, забыл, для быстрой передачи нужно отключить Nagle Algorithm. То есть после установления соединения сделать "tcp_nagle_disable(pcb);".