Jump to content

    
asen

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

Recommended Posts

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

Share this post


Link to post
Share on other sites
3 часа назад, mantech сказал:

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

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

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

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

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

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

 

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

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

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

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

Share this post


Link to post
Share on other sites
10 часов назад, jcxz сказал:

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

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

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

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

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

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

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

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

Edited by mantech

Share this post


Link to post
Share on other sites
22 минуты назад, mantech сказал:

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

 

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

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

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

 

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

Share this post


Link to post
Share on other sites
6 minutes ago, rx3apf said:

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

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

Share this post


Link to post
Share on other sites
53 минуты назад, mantech сказал:

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

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

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
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:

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

Share this post


Link to post
Share on other sites
25 минут назад, jcxz сказал:

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

 

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

Share this post


Link to post
Share on other sites
1 час назад, jcxz сказал:

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

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

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

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

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

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

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

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

Edited by mantech

Share this post


Link to post
Share on other sites
16 минут назад, mantech сказал:

 

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

 

 

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

Share this post


Link to post
Share on other sites
40 минут назад, mantech сказал:

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
6 minutes ago, rx3apf said:

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

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

 

9 minutes ago, rx3apf said:

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

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

Share this post


Link to post
Share on other sites
49 минут назад, jcxz сказал:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.