Подскажите как можно разбить файл на пакеты Ethernet+IP+TCP|UDP|ICMP. Меня интересует разбитие файла в тот момент когда файл готовится к передаче на другой хост. К сожалению я пока не знаю с помощью чего разбивается файл на пакеты(наверное с помощью дров) и как это делается. Наверное лучше выразится как разбить файл на части пакеты стека протолов TCP/IP, выполнить фрагментацию пакетов, если надо и сохранить каждый пакет хотя бы в отдельный файл для анализа или в бд(все пакеты одного файла). Можно ли как то решить эту задачу на языке программирования высокого уровня не ассемблере, если да, то подскажите как.
И еще может в курсе как потом из пакетов, которые получились при разбиении файла, собрать этот же файл? Проверить целостность его после сборки можно будет наверное с помощью контрольной суммы. Данный пример мне нужен чисто ради научного интереса, не для Download Manager, с ним все проще(Там среда сама разбивает файл на фрагменты и отправляет фрагменты на другой хост, где эти фрагменты собираются в файл и сохраняются на диск). Интересует сам процесс сбора и разбиения файла на фрагменты(пакеты) и отправки по сети.
Та ну ладно. А зачем тогда форумы нужны. Я то надеялся на помощь зала. Звонок другу уже использовал))
System0x29A, тебя интересует то как пакеты формируются ? если да, то это обширная тема - читай RFC и задавай более частные вопросы. Или тебя интересует то как отправить уже сформированный пакет?
Да нет, меня интересует, как можно собрать из перехваченных сниффером пакетов, сообщение или файл? А также как вручную разбить например текстовый или любой бинарный файл на пакеты, поменять значения заголовков протоколов IP и TCP,отправить измененные пакеты на другой хост?
а можно ведь все таки рфц почитать или в гугле на одной из "приблизительно 38 100 000" страниц, узнать что такое OSI, как по ее уровням распределены протоколы, и как согласно seq/ack, если у вас все таки tcp, все собрать
System0x29A, по TCP гонятся потоки данных. Никаких заголовков формировать не надо. В своём протоколе просто пошли два сообщения: info: size name len name data data: data bytes
ээ, а куда это записать? Можно поподробнее. И как это решит проблему разбиения файла на пакеты и обратно?
В сокет открытого TCP соединения. Батенька, читайте книжки по сетевому программированию и потом сами напишите прогу в ответ на свой вопрос "как мне передать файл по сети".
Все же уже написали, что тебе нужно. 1. Первым пакетом отправляешь имя файла, размер и атрибуты, если они тебе нужны. 2. Последующими пакетами отправляешь сам файл по кускам. Куски выбираешь как тебе хочется с учетом ограничений на размер пакета. На другой строне: 1. Получаешь имя файла и размер. 2. Принимаешь пакеты по очереди с строишь из них файл по порядку, пока не наберется данных размером в файл. Если тебе нужно передавать много файлов, то можешь ввсети сигнатуру. По-типу первый байт = 1, если это данные, и равен 0, если это информационный поток.
Forever max7C4 а при чем тут это все? тс явно узазал что его интересует работа с необработанными пакетами,
TSS Тогда можно придти к выводу, что хоть ТС и утверждает, но RFC он и в глаза не видел. А если и видел, то очень не точный перевод. В оригинале все есть, и таких вопросов возникать не должно.