Передача данных по сети, скорость

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Передача данных по сети, скорость

Сообщение Source » 04.03.2008 (Вт) 17:36

Т.к. я не нашёл раздела 'Общие вопросы программирования', пришлось влепить в 'Трёп', хотя вопрос трёпом не является.
1. Я передаю по UDP пакеты по 7500 байт. При минимальном пределе скорости 1КБит/с (указанном пользователем) мне надо получать 1 пакет приблизительно раз в минуту. Показатель текущей скорости в сети обновляется раз в секунду. Могу ли я при приёме 1 пакета целую минуту утверждать, что скорость = 1КБит/с? А вдруг уж нет связи и т.д.? Или же лучше разделить 7500 байт на 60 и получать каждую секунду 125 байт, оперативно определяя скорость? Но тогда возрастёт объём данных, передаваемых по сети, ввиду наличия в каждом пакете служебных данных (моих и протокольных). Отсюда второй вопрос:
2. Что вообще лучше для сети, вытягивать раз в минуту 7500 байт, либо же посекундно 125 байт? И почему?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 05.03.2008 (Ср) 6:44

ещё вопросы по UDP:
1. Я так понял, пакет размером 8192 байт не всегда пройдёт по сети, гарантированный размер 548 или 1400 байт. Весьма печально, расчёт был в проге на 8192... Я имел ввиду невозможность пройти пакету из=за архетектуры сети, а не из-за её загрузки. Или современные сети позволяют пакету=8192 байта проходить?
2. Когда сеть загружена, предпочтение отдаётся обработке TCP или же нет? Или же пакеты UDP просто отбрасываются, т.к. TCP - гарантированная доставка и д.б. выполнена, а на UDP можно отыграться.
3.Помехи ходят пачками. Связь то очень хорошая, то вообще никакая. Это связано как с особенностями линий связи, так и с архитекрурой серверов. Так ли это?
4. Какой таймаут оптимально выставлять на ожидание UDP пакета, 500 мс, 1000 мс для локалки, для внешнего инета?
5. Датаграмма более 1400 байт разбивается на блоки по 1400+остаток, которые потом склеиваются в датаграмму у получателя или как?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.03.2008 (Ср) 9:09

Source, ответы на твои вопросы зависят целиком и полностью от того, как настроено сетевое оборудование. Поэтому я бы не советовал ориентироваться на характеристики в твоей сети.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.03.2008 (Ср) 9:11

5. Датаграммы должны ходить одним пакетом. Если пакет превышает максимально допустимый размер, он дропается. Где-то может он и фрагментируется, а затем собирается, но на это не следует рассчитывать.
Lasciate ogni speranza, voi ch'entrate.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 05.03.2008 (Ср) 9:23

полазил по инету, абсолютный гарант прохождения пакета UDP 548 байт данных (с заголовком 576), также встречаются размеры 1400,1440,1500. Хотелось бы, конечно, побольше брать. На какую из этих цифр ориентироваться - 1400,1440,1500 (размер данных в пакете).
Какова вероятность того, что пакет 8192 байта не пройдёт (т.е. современное сетевое оборудование на какие размеры чаще настраивается)?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 05.03.2008 (Ср) 11:46

спасибо, что подсказали для определения времени отклика использовать ping :) Предполагая, что скорость протоколов UDP и ICMP особо не отличается, определил среднее время отклика. Но возникли вопросы:
1. время приема-передачи это время туда-сюда?
2. Если среднее время для телефонных линий 1000мс, то т.к. я пинговал внешний IP, надо ли ещё накидывать 1000мс на передачу пакета от прова юзеру?
3. Что показывает величина TTL?
4. Какое время ожидания ответа в ping по умолчанию?
5. Как может влиять размер пакета на скорость передачи? Т.к. UDP передаёт всё одной дейтаграммой, 32 байта и 8192 байта будут переданы с небольшой разницей по времени? Ping передаёт 32 байта, жаль там нельзя поставить другой размер, например 8192 байт.
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.03.2008 (Ср) 11:54

Ты хочешь неправильного.
Но в ICMP можно указать размер пакета, вплоть до 64Кб.
ping -l 8192 -f хост
Lasciate ogni speranza, voi ch'entrate.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 05.03.2008 (Ср) 18:41

Эксперементальным путём выяснил, что при пинге на 127.0.0.1 фрагментация пакета требуется при его размере >1492 байта. Значит, 8 байт отводится под заголовок ICMP, предельный размер дейтаграммы 1500.
Пиногвал IP прова по телефонной линии. Пропускает пакеты 2020 байт. Если плясать от 2048 байт и предположив, что пакет делится на 2 дейтаграммы, получим (2048-2020)/2=14, 14-8=6 байт на склейку дейтаграмм.
С чем связаны числа 1500, 576 (какие-то некомпьютерные)? Т.е., если я буду делать тест сети на определение максимального размера пропускаемого пакета, я буду плясать по размерам 8192,4096,2048,1500(?),576 (вычитая из них размеры заголовков). Или же настойщики сети могут поставить любой пропускной размер пакета вроде 3800(хотя это не будет эффективным, ведь поставили же 2048, хотя надо было 3000 (2 дейтаграммы по 1500)).
Размеры заголовков UDP аналогичны ICMP?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.03.2008 (Чт) 10:59

Source, ты не в том направлении думаешь.
Если тебе нужно обеспечить доставку больших пакетов, используй TCP, фрагментацию будет выполнять за тебя стек протокола.
Если у тебя много получателей и рассылка на каждого не рациональна, используй мультикаст.
Бродкасты предназначены для определенных целей и для твоих нужд подходят мало.
Lasciate ogni speranza, voi ch'entrate.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 06.03.2008 (Чт) 21:44

мультикаст может быть запрещён провайдером.
размеры пакетов мне надо знать для эффективной передачи данных.
на TCP переходить не буду.
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 07.03.2008 (Пт) 4:39

а вот какую скорость лучше показывать на отправляющей стороне, скорость переданных данных или скорость фактически полученных данных получателем (в запросе на получение данных буду передавать скорость получателя)? Ведь часть пакетов UDP может теряться после передачи!
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.03.2008 (Пт) 8:59

Бродкаст тоже может быть запрещен провайдером. Это даже более вероятно.
Lasciate ogni speranza, voi ch'entrate.

Source
Постоялец
Постоялец
 
Сообщения: 351
Зарегистрирован: 04.09.2007 (Вт) 11:21

Сообщение Source » 07.03.2008 (Пт) 9:24

Может, кто-нить ответит по другим вопросам, в большинстве оставшимся без ответа?
Буря мглою небо кроет, вихри снежные крутя, то как зверь с VB завоешь, то заплачешь, как дитя...


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList