Здесь можно задать так много вопросов. Марк начал с серии хороших вопросов, но, в конечном счете, я думаю, что мы не сможем получить от вас достаточно информации о ваших программах, платформе и сети, чтобы дать вам полный ответ в Интернете.
Если бы я был в вашей ситуации, первое, что я хотел бы сделать, это провести небольшой анализ, чтобы понять, что происходит под одеялом. В частности, я бы использовал ProcMon для анализа системных операций, ведущих к передаче по сети и включающей ее, чтобы убедиться, что у меня есть точное время сети. Основываясь на этих выводах, я бы либо углубился в происходящее, либо использовал профилировщик производительности .NET, чтобы посмотреть, какие операции в стеке стоят вам наибольшее время.