![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
Добрый день. У меня такая проблема. Я пытаюсь пощитать количество байт, переданных и принятых моим модемом за секунду. Делаю так:
И это все в таймере с интервалом 1с. (stats.dwBytesXmited+stats.dwBytesRcved-BytesIn-BytesOut)*8 должно давать количество бит за интервал ((stats.dwConectionDuration-time)/1000 должно быть длиной интервала в секундах, то есть близко к 1. Проблема в том, что иногда значение UsedBps становиться несколько большим, чем stats.dwBps Или я считать не умею, или не правильно понимаю значения, которыми заполняет структуру функция RasGetLinkStatistics. В любом случае прошу ткнуть меня носом. Спасибо. -------------------- Обижено школьников: 8 |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
брр.. непонятно в чем непонятки.
ты же считаешь мгновенное(в течение последней секунды) значение bps, а dwBps считается с момента установления линка. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
Насколько я знаю оно вообще не считается. До него договариваются железяки в процессе дозвона. И поэтому (как мне кажеться), за секунду не можт быть больше чем это значение.
Иначе почему dwBps не меняется в процессе всего соединения? -------------------- Обижено школьников: 8 |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
пардон, доку прочитал неверно.
тогда тут может быть только одна причина - сжатие. передаешь мег текста, протокол жмет до 10 кил - получаешь превышение установленной при хэндшейке величины bps. кстати, точно уже не помню, но вроде бывает(в зависимости от настроек), что после ретрейнов устанавливается скорость выше, чем была при установлении соединения. |
|||
|
||||
| mai62 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.2.2006 Репутация: 2 Всего: 3 |
bems
Мне кажется, тут есть две ошибки: 1. нельзя складывать принятые байты и переданные (что-то одно, ведь прием и передача могут идти параллельно); 2. нужно умножать не на 8, а на 10 (если не на 11), ведь кроме 8 бит данных есть еще стартовый и как минимум один стоповый биты. |
|||
|
||||
| bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
у меня dwCompressionRatioIn, dwCompressionRatioOut - нули
И что из них ограничено dwBps? То есть имеется в виду, что можно dwBps читать в это же время столькоже пересылать? не понял ничего...
Добавлено @ 08:50
Это сообщение отредактировал(а) bems - 4.8.2006, 08:46 -------------------- Обижено школьников: 8 |
||||||
|
|||||||
| mai62 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.2.2006 Репутация: 2 Всего: 3 |
Да. Исторически сложилось, что первые модемы подключались через последовательный порт, в котором есть отдельная физическая линия для передачи данных и отдельная для приема (и работать они могут одновременно). dwBps определяет скорость передачи данных по каждой из этих линий. Поэтому надо считать кол-во прошедших байтов по каждой из этих линий (каждому направлению передачи данных) отдельно. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
ну, для начала, это таки относящиеся к софтовому сжатию переменные. я же говорил про хардовое. а по поводу подсчета - умножать надо на 8, ибо стоповые биты и четности всякие - это из другой оперы. каким образом и сколько бит используется для передачи одного байта модемом в линии нам не сильно интересно - это сугубо его(модема) лично дело. режим передачи (дуплекс или симплекс) определяется настройками хардового протокола соединения. так что, похоже, надо просто выводить link bps, in bps, out bps. ps. могу ошибаться - давно дело было... ![]() Добавлено @ 14:02 опять же, есть подозрение, что значение dwBps(как и то, что выдает модем при соединении) является условным и приблизительным. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
а) то, что выдает модем при соединении является условным и приблизительным. есть подозрение, что значение dwBps тоже. б) есть подозрение, что эти значения условны и приблизительны. Насколько я знаю, dwBps это и есть то что выдает модем в строке CONNECT. Поэтому если ты имел ввиду вариант а, то расскажи пожалуйста о "то, что выдает модем при соединении" или дай ссылку. Что должно означать это значение, если оно условно и приблизительно. Не думаю ,что оно предназначено только для вывода пользователю. -------------------- Обижено школьников: 8 |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
не сказал точно, потому что не работал с этими функциями и не видел значений dwBps.
вариант а. цифра, указываемая модемом в строке коннекта является характеристикой скорости, а не точным значением пропускной способности. тебя не смущает тот факт, что эти цифры из таблицы и всегда округленные? - 9600,12000,14400,16800,19200,21600 итд итп. реальная скорость может быть как ниже(помехи, ретрейн с понижением), так и выше(сжатие, ретрейн с повышением(?)). ссылки не дам, ибо нет их у меня. зато в гугле есть. ps. для меня остается загадкой, какую именно правду ты ищешь и зачем она тебе... |
|||
|
||||
| mai62 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.2.2006 Репутация: 2 Всего: 3 |
Думаю надо считать отдельно и сравнивать каждое значение с dwBps.
Это не что иное как стандартные скорости обмена по последовательному порту. Конечно, они задают не реальную скорость обмена, а максимально достижимую. А точнее, это значение задает ожидаемую длительность одного бита как t=1/speed (именно это важно поскольку обмен по последовательному порту асинхронный и представление о длине бита должно быть приблизительно (+-5%) равным у обоих участников обмена (в данном случае модема и компьютера)). |
||||
|
|||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
спасибо
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |