реклама на сайте
подробности

 
 
> Корректировка TCP/IP checksum без всех исходных
dimasen
сообщение Aug 27 2008, 13:55
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 59
Регистрация: 12-07-04
Из: Санкт-Петербург
Пользователь №: 313



Всем привет. Не знал в какую рубрику поместить эту тему. Надеюсь попал.
Вот с такой задачей столкнулся:
Нужно корректировать ЧекСуммы заголовков Езернет пакета, зная измение, например только одного байта.
Меня интересует, это вообще реально? Или без знания всех исходных слагаемых найти новую ЧекСумму не реально?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RamZoom
сообщение Jun 2 2014, 02:49
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 30-03-14
Пользователь №: 81 150



Не особо понял подсчет контрольной суммы вы имели ввиду, но постараюсь помочь:

// Put here the number of bytes transmitted in the UDP payload
// 18 minimum (smaller UDP payloads are possible but would need to be padded)
// 1472 maximum (1500 bytes = max Ethernet payload - 28 bytes = IP/UDP headers length)
parameter Tx_UDPpayloadlength = 18;

// "IP destination" - put the IP of the PC you want to send to
parameter IPdestination_1 = 8'd192;
parameter IPdestination_2 = 8'd168;
parameter IPdestination_3 = 8'd1;
parameter IPdestination_4 = 8'd100;

// calculate the IP checksum, big-endian style
wire [31:0] IPchecksum1 = 32'h0000C52D + Tx_UDPpayloadlength +
(myIP_1<<8)+myIP_2+(myIP_3<<8)+myIP_4+
(IPdestination_1<<8)+IPdestination_2+(IPdestination_3<<8)+(IPdestination_4);
wire [31:0] IPchecksum2 = ((IPchecksum1&32'h0000FFFF)+(IPchecksum1>>16));
wire [15:0] IPchecksum = ~((IPchecksum2&32'h0000FFFF)+(IPchecksum2>>16));
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 07:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016