Форум: "Сети";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
ВнизСтруктура IP,TCP и ICMP Найти похожие ветки
← →
-=Demon=- (2004-04-08 19:39) [0]Всем привет. Народ если не сложно покажите как выглядет структура IP,TCP и ICMP. И как их склеивать для отправки.
← →
Verg © (2004-04-08 22:02) [1]RFC791 - IP
RFC792 - ICMP
RFC793 - TCP
RFC768 - UDP
← →
-=Demon=- (2004-04-09 12:21) [2]Не я конечно благодарен за такую помощь:-))))
Но нельзя ли поподробнее...
Если честно меня волнует то как в этих структурах выделяется место под данные.
Под словом структура я имею ввиду:
type
IPHeader =record
VerLen :byte; // версия и длина заголовка
TOS :byte; // тип сервиса
Len :Word; // длина всего пакета
ID :Word; // Идентификация
Flags :Word; // флаги и смещения
TTL :byte; // время жизни пакета
Proto :byte; // протокол
XSum :Word; // контрольная сумма
IPSrc :DWord; // IP-адрес отправителя
IPDst :DWord; // IP-адрес назначения
end;
А как выделяется место под информацию, и как склеить для отправки Например IP(заголовок) и (TCP-Пакет) я не знаю.
Пожалуйста помогите.....
← →
Rouse_ © (2004-04-09 12:30) [3]В смысле, ты хочешь руками пакет собирать?
Или еще что-то?
← →
Verg © (2004-04-09 13:04) [4]Струтура сетевого пакета
+----------------------+
! Заголовок (*Header) !
+----------------------+
! Данные !
+----------------------+
Пример структуры TCP/IP пакета:
+----------------+
! Заголовок IP !
+----------------+
! Заголовок TCP !
+----------------+
! Данные !
+----------------+
Заголовок в общем случае переменной длины, данные тоже.
Из-за этого, например, никогда не найти структуру (record, struct), описывающий заголовок TCP/IP. Только раздельно -
заголовок TCP, заголовок IP.
В структурах, описывающих заголовки пакетов того или иного протокола, описывают фиксированную часть заголовка. На Паскале при этом надо писать packed record, чтобы исключить несоответствие из-за "выравнивания" полей при компиляции.
← →
-=Demon=- (2004-04-09 18:13) [5]
> В смысле, ты хочешь руками пакет собирать?
> Или еще что-то?
Да. И мне надо описание структур Как TCP так ICMP и UDP. Втом смысле что какие поля имеют какие типы данных. И Как склеивать IP заголовок и TCP пакет. И сколько Бит данных обычно отводиться под информацию.
← →
Smithson © (2004-04-09 18:17) [6]Как склеивать - элементарно. В любом описании IP указывается, что за заголовком следует поле "данные", длинна которого указана в заголовке. Вот в эти данные и помещаешь TCP-пакет. Или ICMP. А вообще воткни снифер и послушай себя часок, а потом посмотри, что он там накопил. Будет база для анализа из реальных (= работающих) пакетов.
← →
-=Demon=- (2004-04-10 02:30) [7]Если можно покажите програмно как это делается.(Как склеивание так и сами описание структур). Хотя не, как склеивается я понял, покажите описание самих стуктур как TCP,ICMP и UDP так и IP. Заранее всем благодарен.
← →
-==- (2004-04-11 03:24) [8].
← →
-==- (2004-04-11 12:11) [9]Народ вот структуры которые есть у меня:
IPHeader =record
VerLen :byte; // версия и длина заголовка
TOS :byte; // тип сервиса
Len :Word; // длина всего пакета
ID :Word; // Идентификация
Flags :Word; // флаги и смещения
TTL :byte; // время жизни пакета
Proto :byte; // протокол
XSum :Word; // контрольная сумма
IPSrc :DWord; // IP-адрес отправителя
IPDst :DWord; // IP-адрес назначения
end;
PIcmp=^Icmp;
Icmp = record
icmp_type:Byte; //Тип
icmp_code:Byte; //Код
icmp_cksum:Word;//СRС до 1
icmp_id:Word;//Дескриптор
icmp_seq:Word;//Последовательность
icmp_data: DWORD;//Данные
end;
TCPHeader =record
SrcPort :Word;
DstPort :Word;
SeqNum :DWord;
AckNum :DWord;
DataOffs_Reserv_Cntrl :Word;
Wnd :Word;
XSum :Word;
end;
Они правельно описаны или нет. Если нет, укажите пожалуйста, где ошибка.
← →
-=Demon=- (2004-04-11 12:12) [10]Народ вот структуры которые есть у меня:
IPHeader =record
VerLen :byte; // версия и длина заголовка
TOS :byte; // тип сервиса
Len :Word; // длина всего пакета
ID :Word; // Идентификация
Flags :Word; // флаги и смещения
TTL :byte; // время жизни пакета
Proto :byte; // протокол
XSum :Word; // контрольная сумма
IPSrc :DWord; // IP-адрес отправителя
IPDst :DWord; // IP-адрес назначения
end;
PIcmp=^Icmp;
Icmp = record
icmp_type:Byte; //Тип
icmp_code:Byte; //Код
icmp_cksum:Word;//СRС до 1
icmp_id:Word;//Дескриптор
icmp_seq:Word;//Последовательность
icmp_data: DWORD;//Данные
end;
TCPHeader =record
SrcPort :Word;
DstPort :Word;
SeqNum :DWord;
AckNum :DWord;
DataOffs_Reserv_Cntrl :Word;
Wnd :Word;
XSum :Word;
end;
Они правельно описаны или нет. Если нет, укажите пожалуйста, где ошибка.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c