Формирование TCP на С#
От: Аноним  
Дата: 31.08.10 12:03
Оценка:
Ситуация. Есть байтовый массив (byte[]) содержащий в себе IP пакет внутри которого находится TCP пакет. Нужно заменить данные внутри TCP пакета и отправить его дальше. Для приема и отправки используется библиотека winpcfilter. С ней разобрался. Проблема с расчетом контрольной суммы измененного TCP пакета. Порыскав нашел ссылку с кодом http://www.rsdn.ru/Forum/Info/FAQ.network.tcp.checksum.aspx
Автор: butcher
Дата: 19.01.04
Насколько понимаю, это на C++. Не все в этом коде понятно. Например, что делает
if (iSize) usChksum+=*(unsigned char*)usBuf; и в каких случаях срабатывает.
Так же, насколько понимаю, нужно для расчет формировать псевдозаголовок. Вроде бы с этим справился, хотя может и ошибся. В любом случае, мои попытки расчитать контролькую сумму даже для неизмененного пакета не совпадают с контрольной суммой в самом пакете. Значит считаю неправильно. Может быть кто-то сможет объяснить смысл вышепреведенной строки и как ее правильно использовать в моем случае (когда есть не ссылка на область памяти, а байтовый массив)? Или может у кого-то есть код на C# по расчету контрольной суммы?
P.S. Пытался рыться по Интернету, но в общем и целом натыклася либо на словесное описание, либо на вышеприведенный код, который не вполне понимаю.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.