Перейти к содержанию
    

Посоветуйте легкий стек TCP/IP

На пакеты не бьем, контрольная сумма у файла есть. Инет не идеальный, но что может произойти ? Это же TCP, так там может что-то исказиться ? И по факту - не искажается. А вот не докачаться - сколько угодно, и да, бывает что не с первого раза, и если уж такое началось, то типично какое-то время повторяется. Ну, издержки мобильной связи...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, mantech сказал:

А зачем с ними возиться, они стандартные, раз сделал и все. А хттп - это парсить кучу текста, нестандартый протокол передачи файлов и пр... Ну вообщем на вкус и цвет...

"Кучу" - это один заголовок из нескольких строк??? Всего один(!), в самом начале. А дальше - просто поток байт файла через TCP-сокет. Без открываний/закрываний, ответов/ожиданий ответов и т.п.

Так что - уж явно попроще FTP оно будет.

И где там что-то "нестандартное"?

Если уж на то пошло, то принять файл с http-сервера можно простой терминалкой, подключившись на нужный TCP-порт и вручную передав HTTP-запрос из нескольких строк. В ответ будет выплюнут небольшой HTTP-заголовок, а затем - содержимое файла (просто двоичный поток байт).

Попробуйте-ка такое проделать с FTP!  :wink:

 

1 час назад, mantech сказал:

Это как интересно? Т.е. на пакеты не бьем, КС не формируем и не проверяем? Оригинально, интересно, у вас там инет идеальный или с какого раза успешно принимается файл, скажем килобайт 200-300?

А как Вы думаете передаются странички сайтов и файлы на них, картинки всякие и другие файлы? Думаете там что-то "бьётся на пакеты"? HTTP работает поверх TCP, который уже обеспечивает целостность данных. И ни на какие пакеты бить ничего не надо.

PS: Почитайте описание HTTP всё-таки. А то Вы похоже не знаете что это такое.  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, jcxz сказал:

PS: Почитайте описание HTTP всё-таки. А то Вы похоже не знаете что это такое.

Знаю, представте себе :biggrin: А еще знаю, как это все (загрузка страничек и пр) работает при хреновом инете, который тоже в курсе, как работает (не в масквабаде живу). А теперь ответьте на вопрос, раз уж у вас там так все здорово, зачем придумали все эти ftp и пр ?

10 часов назад, rx3apf сказал:

но что может произойти ? Это же TCP, так там может что-то исказиться ?

Пропасть пакет, например, не? :dirol:

10 часов назад, jcxz сказал:

Попробуйте-ка такое проделать с FTP! 

Без проблем, штука называется тотал коммандер, даже заголовки писать не нужно))) Очень удобно обновлять на устройстве файлы на сд-карте, чтоб не дергать ее постоянно в картридер...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, mantech сказал:

Пропасть пакет, например, не? :dirol:

 

Нет. Пропавший пакет будет перезапрошен, мы об этом не узнаем (этим занимается TCP). Нет связи - файл будет просто недокачан. Но никаких потерь или искажений там быть не может, файл или пришел в целости или не докачан. Поэтому применительно к передаче файла посредством http get - всякие там "Т.е. на пакеты не бьем, КС не формируем и не проверяем?" не имеют ни малейшего смысла. Сервер этим не занимается, это не предусмотрено. Если проблемы с передачей большого файла - ну можно, конечно, частичный get.

29 минут назад, mantech сказал:

Знаю, представте себе :biggrin:

 

Крайне сомнительно - иначе откуда это "парсить кучу текста, нестандартный протокол передачи файлов" ? С уверенностью могу сказать - Вы никогда не видели http-сессию "живьем". А там делов-то на несколько минут - поставить какой-нибудь teraterm и простенький махонький shttps.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, rx3apf said:

Но никаких потерь или искажений там быть не может, файл или пришел в целости или не докачан. 

Ну это не доказуемо.
Я видел как свитчеры меняли содержимое TCP пакетов и подставляли в них правильную контрольную сумму, видел как PC спокойно принимают пакеты с неправильной контрольной суммой. Про сторонние файрволы вообще молчу . Они ваш HTTP могут перепахать и изменить до неузнаваемости. 
Так что только AES-GCM!
Если, конечно, ваш чип это потянет. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

53 минуты назад, mantech сказал:

зачем придумали все эти ftp и пр ?

когда придумывали ftp, http еще не было.

56 минут назад, mantech сказал:

Пропасть пакет, например, не?

Нет. TCP вас известит об этом. Если только у вас там не совсем кривой стек.

Пока отправитель не получит подтверждение отправленного объема данных (объем определен в TCP windows size), он вообще не будет ничего отправлять дальше. Если пакет пропал, то вся передача встанет в попытке отправить повторно его.

Прошивку по любому надо шифровать. И конечно же должна быть проверка CRC всего файла (или еще лучше ЭЦП) перед прошивкой. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, mantech сказал:

как это все (загрузка страничек и пр) работает при хреновом инете,

При "хреновом" думаете FTP будет лучше работать? Ну-ну... Скорее - хуже. Так как ресурсов требует больше.

Цитата

зачем придумали все эти ftp и пр ?

Уж явно не для загрузки прошивок! :biggrin:

Цитата

Пропасть пакет, например, не? :dirol:

А что будет в этом случае с FTP? :russian_ru: Он ведь тоже поверх TCP работает как ни странно.

Цитата

Без проблем, штука называется тотал коммандер, даже заголовки писать не нужно))) Очень удобно обновлять на устройстве файлы на сд-карте, чтоб не дергать ее постоянно в картридер...

Причём тут готовый FTP-клиент (коим является тотал командер)?

Я вас прошу - вручную (отправкой байт вручную через TCP-сокет-ы) воспроизвести работу FTP. Т.е. - вручную сэмулировать FTP-клиент. Сможете?  :biggrin:

3 часа назад, rx3apf сказал:

С уверенностью могу сказать - Вы никогда не видели http-сессию "живьем".

+++  :good3:

 

Цитата

А там делов-то на несколько минут - поставить какой-нибудь teraterm и простенький махонький shttps.

Можно проще. Есть очень удобная терминалка для этого: "TCP/UDP Net Assistant". Её одной достаточно чтобы вручную скачать какой-нить файл с любого HTTP.

3 часа назад, AlexandrY сказал:

Если, конечно, ваш чип это потянет. :biggrin:

Любой МК потянет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

25 минут назад, jcxz сказал:

Можно проще. Есть очень удобная терминалка для этого: "TCP/UDP Net Assistant". Её одной достаточно чтобы вручную скачать какой-нить файл с любого HTTP.

 

Ну, teraterm я предложил чисто для того, чтобы для начала глянуть, как вообще выглядит ответ на http GET. А shttps - для того, чтобы тянуть не с любого, а со своего, с заведомо предсказуемым содержимым (ну и вообще штука хорошая, хотя есть и другие простенькие сервера, но эту я как-то сразу полюбил). А по сути - без разницы, конечно, все настолько тривиально, что один раз попробовать и увидеть много проще, чем объяснять такие вещи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, jcxz сказал:

Я вас прошу - вручную (отправкой байт вручную через TCP-сокет-ы) воспроизвести работу FTP. Т.е. - вручную сэмулировать FTP-клиент. Сможете?

Издеваетесь? Я еще не совсем кукушкой-то дернулся:biggrin:

1 час назад, jcxz сказал:

Причём тут готовый FTP-клиент (коим является тотал командер)?

Ага, я смотрю, вы тут постоянно хттп вручную парсите... Когда нечего сказать, такую хрень и лепят...

1 час назад, jcxz сказал:

"TCP/UDP Net Assistant". Её одной достаточно чтобы вручную скачать какой-нить файл с любого HTTP.

Из той же оперы, наверно каждый раз вручную тянете.. Кстати, обратно, т.е. "загружать" на сервак тоже наверно вручную грузите??  :biggrin:

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, mantech сказал:

 

Ага, я смотрю, вы тут постоянно хттп вручную парсите... Когда нечего сказать, такую хрень и лепят...

 

 

Вообще-то это именно Вы "лепите хрень" совершенно не по делу ("парсить кучу текста, нестандартный протокол передачи файлов"). Вам объясняют, как оно в реальности, а Вы - снова за свое...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 минут назад, mantech сказал:

Издеваетесь? Я еще не совсем кукушкой-то дернулся:biggrin:

Ну вот то-то...

40 минут назад, mantech сказал:

Ага, я смотрю, вы тут постоянно хттп вручную парсите... Когда нечего сказать, такую хрень и лепят...

В чём именно хрень?? Если вы не понимаете как работает HTTP или TCP и несёте откровенную чушь - вот именно вы и "лепите хрень".

Вот не понимаю - зачем рассуждать о том, о чём понятия не имеете? Ведь по всем вашим постам из этой темы видно, что вы не понимаете как работает HTTP. Да и TCP - тоже не понимаете как работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, jcxz said:

Да и TCP - тоже не понимаете как работает.

Да тут верят, что в TCP данные исказиться не могут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если специально поставить задачу исказить данные - да, могут, конечно. Но по факту обычно файл или приходит "как есть" или не приходит (ну, приходит частично, и эта часть приходит без искажений). По любому, проверить целостность файла не повредит (равно как и сигнатуры, версии и прочее). Но тут-то нам пытаются рассказать про какие-то немыслимые сложности с парсингом ответа на http get, о сложностях с приемом файла. Тому, кто хоть раз это делал на практике - такую дичь просто читать смешно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, rx3apf said:

Если специально поставить задачу исказить данные - да, могут, конечно.

Даже не специально. Клиенты одного мобильного оператора, например, наблюдали в своём TCP трафике его рекламу.

 

9 minutes ago, rx3apf said:

По любому, проверить целостность файла не повредит (равно как и сигнатуры, версии и прочее).

Не повредит - это очень мягко. Должно быть сделано обязательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

49 минут назад, jcxz сказал:

Ведь по всем вашим постам из этой темы видно, что вы не понимаете как работает HTTP. Да и TCP - тоже не понимаете как работает.

Расслабьтесь уже, конечно не понимаю, коли стек свой написал и хттп и фтп сервера сделал, ясно дело, нужно еще раза 3 это снова повторить по-новой, тогда что-то да пойму :biggrin:

35 минут назад, rx3apf сказал:

Если специально поставить задачу исказить данные - да, могут, конечно.

А я вот не специально делал, да все-равно редко да метко, но проскочит...

36 минут назад, rx3apf сказал:

Но тут-то нам пытаются рассказать про какие-то немыслимые сложности

Не передергивайте, про "немыслимые" никто не говорил.

45 минут назад, aaarrr сказал:

Да тут верят, что в TCP данные исказиться не могут.

Да пусть верят, жалко что-ли)))

1 час назад, mantech сказал:

Кстати, обратно, т.е. "загружать" на сервак тоже наверно вручную грузите??  :biggrin:

Так и не получил ответа... А интересно)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...