Russian Qt Forum
Ноябрь 23, 2024, 21:39
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
Вопрос по передачи файлов по сети
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос по передачи файлов по сети (Прочитано 5817 раз)
merke
Гость
Вопрос по передачи файлов по сети
«
:
Сентябрь 30, 2010, 16:35 »
Всем привет!
В общем есть клиент есть сервер! Они друг другу могут слать файлы. Шлю файлы паками по 1024 * 64 байта.
Подскажите оптимальный ли это размер куска передаваемого за один раз? Или следует увеличить размер передаваемых кусков? Если да, то подскажите размер.
Буду рад помощи!
Записан
crossly
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #1 :
Сентябрь 30, 2010, 19:08 »
что значит 1024*64... где это задается??
Записан
merke
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #2 :
Октябрь 01, 2010, 03:45 »
Это размер куска, который считываеся с файла и передается по сокету принимающей стороне.
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Вопрос по передачи файлов по сети
«
Ответ #3 :
Октябрь 01, 2010, 10:02 »
Мне кажется оптимальный размер можно выяснить только экспериментальным путем, и он скорее всего будет зависеть от оборудования/ОС. Не имеет смысла делать меньше ethernet frame 1500байт )
Возможные варианты:
1) потестить самому выявить некую константу и забить ее гвоздем
2) дать возможность пользователю покрутить эту настройку
3) сделать автоподбор опимального значения
Записан
Гугль в помощь
p166
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #4 :
Октябрь 01, 2010, 12:24 »
Цитата: navrocky от Октябрь 01, 2010, 10:02
Мне кажется оптимальный размер можно выяснить только экспериментальным путем, и он скорее всего будет зависеть от оборудования/ОС. Не имеет смысла делать меньше ethernet frame 1500байт )
Возможные варианты:
1) потестить самому выявить некую константу и забить ее гвоздем
2) дать возможность пользователю покрутить эту настройку
3) сделать автоподбор опимального значения
ethernet frame
на самом деле называется MTU (
http://ru.wikipedia.org/wiki/MTU
). На разных сетевых картах это значение может быть разным, но обычно оно равно 1500. Точное значение можно посмотреть в диспетчере устройств или через ifconfig. Максимальное значение определить можно только экспериментально, хотя если чтение идет в локальной гигабитной сети, то можно читать и мегабайтами без ущерба производительности.
Записан
Barmaglodd
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #5 :
Октябрь 01, 2010, 12:48 »
TCP или UDP? или ещё что?
Записан
crossly
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #6 :
Октябрь 01, 2010, 13:54 »
а для чего вообще файл резать на куски... ??
Записан
merke
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #7 :
Октябрь 01, 2010, 13:56 »
TCP! Потому что отослать файл размером 700 мб. нельзя за один раз!
Записан
k06a
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #8 :
Октябрь 02, 2010, 13:29 »
Отправлять по 64*1024 врядли получится . . .
Ведь поле размера данных внутри заголовка IP занимает 2 байта
и может принимать значения от 0 до (64*1024-1), а заголовки
TCP имеет размер от 20 до 60 байт,
UDP имеет размер 8 байт (включает 2 порта, размер и контрольную сумму)
Таким образом:
1. При передаче по TCP можно рассчитывать на: (64*1024 - 1) - 60 = 65 475 байт
2. При передаче по UDP можно рассчитывать на: (64*1024 - 1) - 20 = 65 515 байт
Я использую либо 63*1024, либо 64000.
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Вопрос по передачи файлов по сети
«
Ответ #9 :
Октябрь 03, 2010, 00:34 »
К чему такое стремление к 64Кб не могу понять, TCP всё равно порежет хз как.
Записан
Гугль в помощь
alexcpp
Гость
Re: Вопрос по передачи файлов по сети
«
Ответ #10 :
Октябрь 03, 2010, 01:57 »
90% ответов - ни о чем.
к примеру:
Цитировать
но обычно оно равно 1500
Вряд-ли автор понимает, что 1500 - это не байты
Александр
, прочтите
это
. Все вопросы отпадут.
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Вопрос по передачи файлов по сети
«
Ответ #11 :
Октябрь 03, 2010, 13:14 »
Что же это тогда если не байты - граммы чтоли? да и tcp тут причем когда речь шла об ethernet...
Цитировать
90% ответов - ни о чем.
это да, слишком много факторов (пропускная способность канала, нагруженность, латентность, тип канала, скорость диска, скорость компа и т.д.), просчитать оптимальный объем имхо не получится, только подбор..
И еще добавлю что все эти оптимизации дадут едва заметный на глаз прирост в скорости, я бы не парился..
Записан
Гугль в помощь
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...