Russian Qt Forum
Ноябрь 23, 2024, 21:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по передачи файлов по сети  (Прочитано 5824 раз)
merke
Гость
« : Сентябрь 30, 2010, 16:35 »

Всем привет!

В общем есть клиент есть сервер! Они друг другу могут слать файлы. Шлю файлы паками по 1024 * 64 байта.

Подскажите оптимальный ли это размер куска передаваемого за один раз? Или следует увеличить размер передаваемых кусков? Если да, то подскажите размер.

Буду рад помощи!
Записан
crossly
Гость
« Ответ #1 : Сентябрь 30, 2010, 19:08 »

что значит 1024*64... где это задается??
Записан
merke
Гость
« Ответ #2 : Октябрь 01, 2010, 03:45 »

Это размер куска, который считываеся с файла и передается по сокету принимающей стороне.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #3 : Октябрь 01, 2010, 10:02 »

Мне кажется оптимальный размер можно выяснить только экспериментальным путем, и он скорее всего будет зависеть от оборудования/ОС. Не имеет смысла делать меньше ethernet frame 1500байт )

Возможные варианты:
1) потестить самому выявить некую константу и забить ее гвоздем
2) дать возможность пользователю покрутить эту настройку
3) сделать автоподбор опимального значения
Записан

Гугль в помощь
p166
Гость
« Ответ #4 : Октябрь 01, 2010, 12:24 »

Мне кажется оптимальный размер можно выяснить только экспериментальным путем, и он скорее всего будет зависеть от оборудования/ОС. Не имеет смысла делать меньше ethernet frame 1500байт )

Возможные варианты:
1) потестить самому выявить некую константу и забить ее гвоздем
2) дать возможность пользователю покрутить эту настройку
3) сделать автоподбор опимального значения

ethernet frame на самом деле называется MTU (http://ru.wikipedia.org/wiki/MTU). На разных сетевых картах это значение может быть разным, но обычно оно равно 1500. Точное значение можно посмотреть в диспетчере устройств или через ifconfig. Максимальное значение определить можно только экспериментально, хотя если чтение идет в локальной гигабитной сети, то можно читать и мегабайтами без ущерба производительности.
Записан
Barmaglodd
Гость
« Ответ #5 : Октябрь 01, 2010, 12:48 »

TCP или UDP? или ещё что?
Записан
crossly
Гость
« Ответ #6 : Октябрь 01, 2010, 13:54 »

а для чего вообще файл резать на куски... ??
Записан
merke
Гость
« Ответ #7 : Октябрь 01, 2010, 13:56 »

TCP! Потому что отослать файл размером 700 мб. нельзя за один раз!
Записан
k06a
Гость
« Ответ #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 Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #9 : Октябрь 03, 2010, 00:34 »

К чему такое стремление к 64Кб не могу понять, TCP всё равно порежет хз как.
Записан

Гугль в помощь
alexcpp
Гость
« Ответ #10 : Октябрь 03, 2010, 01:57 »

90% ответов - ни о чем.
к примеру:
Цитировать
но обычно оно равно 1500
Вряд-ли автор понимает, что 1500 - это не байты Подмигивающий

Александр, прочтите это. Все вопросы отпадут.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #11 : Октябрь 03, 2010, 13:14 »

Что же это тогда если не байты - граммы чтоли? да и tcp тут причем когда речь шла об ethernet...

Цитировать
90% ответов - ни о чем.

это да, слишком много факторов (пропускная способность канала, нагруженность, латентность, тип канала, скорость диска, скорость компа и т.д.), просчитать оптимальный объем имхо не получится, только подбор..

И еще добавлю что все эти оптимизации дадут едва заметный на глаз прирост в скорости, я бы не парился..
Записан

Гугль в помощь
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.