Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Наткнулся на странную проблему: виндовс7 медленно шлет UDP локалке. В гигабитной сети не могу 100 мбит перешагнуть, при том что теже 100 мбит получаю по внутрисети провайдера (запускаю прием дома в линуксе). Физически: гигабитный роутер, к нему подключены все компы и инет. TCP дает гигабит (wget c локального HTTP сервера). Алгоритм передачи следующий: отправитель шлет непрерывный набор пакетов (окно), получатель подтверждает прием первого пакета окна, отправитель получив подтверждение шлет следущее окно. Окно от 32 пакетов. По локалке подтверждение приходит после отправки первого пакета, по внутри-инету после 5-10. Т.е. в обоих случаях поток получается непрерывный. При этом проц не загружен даже на 10%. Увеличение окна (с 32 до 128) в локалке вообще никакого эффекта не дает, та же скорость. Оно понятно, т.к. подтверждение приходит после первого. Подозреваю что надо еше какие-то флаги сокета поставить. Знать бы какие. Такое впечатление что есть какая-то синхронность при отправке (иначе как получаю ответ после первого пакета неуспев второй отправить), может она как-то отключается? Сейчас так происходит Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. PS Завтра попробую на одном из компов линукс поднять, чтобы окончательно убедится что проблема именно в винде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:38 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, Предположение: TCP применяет congestion control и устанавливает оптимальную скорость отсылки, соответствующую физическому каналу. А ваш протокол основанный на UDP не умеет этого, и вы отправляете пакеты слишком часто и они забивают канал (и возможно буфер отправки). В итоге большинство пакетов теряются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:44 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TПри этом проц не загружен даже на 10%.Это от 10% ядра или от всего проца? Сколько ядер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:46 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Если слать через localhost, т.е. на одном компе отправитель и приемник, то получаю 800-900 мбит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:48 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TПри этом проц не загружен даже на 10%.Это от 10% ядра или от всего проца? Сколько ядер? Ядра. всего 4. Проц i7 3.7 ГГц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:49 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА ваш протокол основанный на UDP не умеет этого, и вы отправляете пакеты слишком часто и они забивают канал (и возможно буфер отправки). В итоге большинство пакетов теряются. Ни одного не теряется. Контроль потерь есть, логи и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:51 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, размер пакета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 21:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Изопропилразмер пакета? Максимальный. Содержимое UDP 1472 байта, в т.ч. полезные данные 1456 байт. Тестовые 10240000 байт это 7033 пакетов. Поправил отправку: окно теперь уходит в цикле. До этого была проверка входящих после каждого отправленного пакета. Отключил лишние логи. Получил ускорение на localhost, передача полезной инфы 131 мбайт/с (~1,3 гигабита), а по сетке стабильно 8-8,2 мбайт/с, до линукса 10 через инет (внутрисеть провайдера) :( Пошел ставить линукс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 08:32 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TПри этом проц не загружен даже на 10%.Это от 10% ядра или от всего проца? Сколько ядер? Гы, а почему проц вообще должен быть загружен? Ну да, что-то он там управляет, но нагрузка-то основаная тупо на сеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 12:15 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Затестил линуксом. Результат: если вместо вин7 на компе запускаем линукс, то скорость отправки с 8,2 понимается до 50-55 мбайт/с. Может и до 100 поднялось бы на тесте линукс-линукс, но у меня возможен только тест линукс-виндовс. Главное что это доказывает что железо ни при чем. Дальше интереснее. По ходу тестов обнаружил интересную багофичу вин7. sendto() может подвиснуть из-за конретного значения IP. тест Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. результат на 2-х компах с Win7send 1472 byte to 192.168.0.1:57691 OK pause 0 msec send 1472 byte to 169.254.160.21:57691 OK pause 2793 msec оба IP не из моей подсети. Есть третий комп, там W7 не совсем исходная, правили что-то в реестре связанное с сетью, чтобы проблем не было из XP к ней цепляться. На этом компе тест прошел по нулям и скорость UDP повыше 12-13 мбайт/с, я с него тестил отправку через инет, поэтому было 10, а не 8,2. Не знаю связано это явление или нет с проблемой медленной скорости, но порешать как-то надо, менять настройки ОС не вариант, в идеале настройкой сокета полечить, в крайнем случае сверять локальные IP со своими на общую подсеть, прежде чем слать туда чего-либо. Вобщем подтверждается что в винде надо настройками играться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:13 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, 169.254.* - это link local address. Они могут по-другому рутерами обрабатываться (даже точнее - должны). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:21 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
А еще конкретнее - они не должны маршрутизироваться между подсетями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:22 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyDima T, 169.254.* - это link local address. Они могут по-другому рутерами обрабатываться (даже точнее - должны). это никак не объясняет подвисание sendto() почти на 3 секунды !!! Это ж UDP, сунул в буфер и трудись дальше, а винда пусть разбирается слать роутерам или сразу выкинуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:40 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, В доке есть такое примечание: When issuing a blocking Winsock call such as sendto, Winsock may need to wait for a network event before the call can complete. Winsock performs an alertable wait in this situation, which can be interrupted by an asynchronous procedure call (APC) scheduled on the same thread.Возможно, наведет на какие-то мысли. Правда, что это за network event - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:51 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima Tподвисание sendto() почти на 3 секунды !!!Случаем, это не ожидание arp-ответа? Что если этот адрес внести как фиксированную запись в arp-таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:52 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima Tподвисание sendto() почти на 3 секунды !!!Случаем, это не ожидание arp-ответа? Что если этот адрес внести как фиксированную запись в arp-таблицу? Проблема в том что я не знаю что вносить, а что нет. Работает так: отправитель и получатель, каждый открывает случайный UDP порт (в примере видно addr_in.sin_port = htons(0);) и каждый через сервер посылает все свои интерфейсы (IP:порт) второму и начинают на них слать тестовые пакеты, пришел правильный ответ - связь есть, шлем инфу. Данный адрес был от интерфейса для связи с виртуалкой на втором компе, понятно что первый комп не достучится по нему, но такой нездоровый глюк с подвисанием я не ожидал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 14:55 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima T, В доке есть такое примечание: When issuing a blocking Winsock call such as sendto, Winsock may need to wait for a network event before the call can complete. Winsock performs an alertable wait in this situation, which can be interrupted by an asynchronous procedure call (APC) scheduled on the same thread.Возможно, наведет на какие-то мысли. Правда, что это за network event - не знаю. Буду читать вечером, может нарою чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 15:02 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Ты по-прежнему веришь в сказочку, что UDP производительнее TCP. Ню-ню... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 15:10 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли слать через localhost, т.е. на одном компе отправитель и приемник, то получаю 800-900 мбит. Глубина и полезность этого эксперимента поражают своим размахом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 17:17 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТы по-прежнему веришь в сказочку, что UDP производительнее TCP. Ню-ню... Слабенький наброс )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 17:17 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТы по-прежнему веришь в сказочку, что UDP производительнее TCP. Ню-ню... Мои тесты показывают что не медленнее, хотя можно оценивать результаты по разному. На коротких дистанциях одинаково. Выжал ведь все 100 мбит из 100 мбитной внутренней сетке провайдера. ТСР не дает мне возможности соединить двух клиентов, которые в одном городе, в одном провайдере или вообще в локалке. Каждый сидит за брэндмауэром виндовса и НАТом роутера. Может в виндовсе еще дадут порт открыть, а в роутере точно никто мапить порты не будет. Остается поднять свой сервер где-нибудь и гонять через него. А где поднять? На хостинге, на виртуалке. Только хостинги ближайшие нормальные в Москве, для клиентов это 2000-4000 км по проводам, по среднему 6000 км (клиентА-сервер-клиентБ), это 20 мс со скоростью света только в один конец. Это в идеале, реально еще больше, т.к. задержки на оборудовании, т.е. 30-40 мс. Реально они максимум в сотне км друг от друга. Думаю дальше сам посчитаешь что быстрее: по TCP 6000 км или по UDP 100 км? И сообщения у меня небольшие (10-100 кб), за 20 мс даже с потерями долетят несколько раз. С TCP все-равно придется связаться, т.к. через GSM-свистки потери гигантсткие, наверно чтобы скайп не пользовали и торрентами каналы не забивали. В целом пока все идет нормально, осталось с засадой от виндовса разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 17:26 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima Tчерез GSM-свистки потери гигантсткиеПопробуйте номера портов поварьировать. По идее, например, с 53 портом такого не должно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 17:29 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima Tчерез GSM-свистки потери гигантсткиеПопробуйте номера портов поварьировать. По идее, например, с 53 портом такого не должно быть. Уже написал что второй абонент за роутером, там НАТ точно не даст 53 порт, выдаст какой-нибудь на свое усмотрение. Это направление вообще тупиковое, у меня нет доступа к оборудованию соединяющихся, и желания нет админить там что-то, т.к. платить за это никто не будет. Таких немного, для них проще сделать TCP до сервера, а дальше UDP. Большинство по UDP без потерь шлют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 17:45 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima Tтам НАТ точно не даст 53 портDNS-же как-то работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 17:50 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Вы плохо понимаете какой фигнёй мается автор. А DNS работает "на общих основаниях" - пакет на сервер отправляет "nat-ируемый" компьютер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 18:01 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВы плохо понимаете какой фигнёй мается автор.Возможно :) Basil A. SidorovА DNS работает "на общих основаниях" - пакет на сервер отправляет "nat-ируемый" компьютер.Совсем "на общих" - сомневаюсь, иначе бы потери пакетов сильно мешали бы серфингу (на современных сайтов бывает используется по несколько десятков доменов сразу). Но, возможно, каким-то приоритетом обладают только DNS-пакеты к собственному операторскому серверу. Тут узнать можно только попробовав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 18:11 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoft(на современных сайтов бывает используется по несколько десятков доменов сразу) IMHO & AFAIK нормальный dns клиент запросы кеширует. Иначе dns сервера верхнего уровня банально бы легли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 18:13 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftСовсем "на общих" - сомневаюсь, иначе бы потери пакетов сильно мешали бы серфингуЧто же за нашествие непуганных оптимистов??? Неужели весна так влияет??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 18:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Что касаемо 53 порта, замечено: НАТам запутывание не нужно, они стараются дать внутреннему клиенту тот же порт на внешке, какой есть в локалке. Т.е. если я начну слушать 53 порт, то и за НАТом скорее всего будет 53. Но если в локалке будет две моих проги на 53 порту, то 100% одна будет не на 53 и это не решить никакими настройками НАТа. Фиг с ними с GSM-свистками, у меня таких клиентов немного, 2-3% максимум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:04 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВы плохо понимаете какой фигнёй мается автор. Если хорошо понимаешь - поделился бы опытом, т.к. забег по граблям вынужденная необходимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:07 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TНо если в локалке будет две моих проги на 53 порту, то 100% одна будет не на 53 и это не решить никакими настройками НАТа.За все наты не поручусь, но приличные наты учитывают адрес другой стороны. Так что, думаю, не 100%. Да и часто ли за свистком сидит целая локалка, а не одинокий комп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:08 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftДа и часто ли за свистком сидит целая локалка, а не одинокий комп? Затупил, виноват. Дествительно надо попробовать свистки полечить сначала 53 портом на стороне свистка. Спасибо за идею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:18 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Я думаю что если на DNS порте обнаружится существенный трафик, то его источник быстро придавят )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Не люблю быть ТС, т.к. очень много не по теме отвечать приходится. Всем ответил, хорошо/плохо, другой вопрос. Хватит глумиться, не для того топик заводил. Давайте по теме. Есть какие-нибудь мысли как виндовс заставить отдать UDP гигабит в локалке? Меня устраивают 80 мбит, которые имею, но обидно что не 1000 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Дима вот тебе до кучи http://stackoverflow.com/questions/47903/udp-vs-tcp-how-much-faster-is-it http://www.maketecheasier.com/5-more-ways-to-increase-network-speed-via-registry-editor-windows/ https://ru.wikipedia.org/wiki/Iperf Надеюсь поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:41 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Код теста Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. Тупо вызов sendto() в цикле. Результат на Win7 Код: plaintext 1. 2. 3. 4. Т.е. скорость отправки 14720000 / 1669 = 8680 кбайт/сек. или 86 мбит в гигабитной сетке :( Вывод: тормозит sendto(), чем занимается непонятно, т.к. проц более 1-2% не грузит. Адрес в тестах стоял реальный, там линукс, он принимал. Я линукс вырубил, стало так Код: plaintext 1. 2. Это же капец полный. Загрузка проца 0%. Чего виндовс делает? Пингует перед отправкой каждого пакета? Потестил указывая несуществующие IP из своей локалки - такое же зависание. Надо как-то лечить эту фигню. Пока мысль мерить время, все что подвисло - вносить в черный список и больше на них ничего не слать. Поизучал что можно через setsockopt() понастраивать, ничего подходящего не нашел. Где еще можно покопаться? Что-то менять в реестре виндовса наихудший вариант, пока надеюсь без него обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 09:41 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TЯ линукс вырубил,ну а на arp-ы отвечать кто будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 10:18 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TЯ линукс вырубил,ну а на arp-ы отвечать кто будет? Наверно из-за них. Добавил таймаут отправки 1 мс Код: plaintext 1. 2. 3. 4. sendto() стал давать ошибку на несуществующих адресах, но все равно висит 3 сек, а не 1 мс. Придется время засекать и черный список заводить. На тормоза отправки на реальный адрес это никак не влияет, т.к. существующий адрес уже есть в кэше ARP. Затестил по 100 мбитной сетке - 2 мбита максимум. Похоже я не одинок в таких тестах . МС походу специально такую гадость сделали. Решил вынести отправку в отдельный поток, пусть хотя бы там тормозит. Попробую слать сразу несколькими потоками, может один сокет переварит такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 11:52 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TПопробую слать сразу несколькими потоками, может один сокет переварит такое.по моей же ссылке вышеIssuing another blocking Winsock call inside an APC that interrupted an ongoing blocking Winsock call on the same thread will lead to undefined behavior, and must never be attempted by Winsock clients. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 11:55 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TПоизучал что можно через setsockopt() понастраивать, ничего подходящего не нашел. Где еще можно покопаться? Что-то менять в реестре виндовса наихудший вариант, пока надеюсь без него обойтись.SO_SNDBUF? А еще можно попробовать вместо sendto вызвать один раз connect (да, для udp тоже можно) и дальше слать send - вдруг оно по другому будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 13:33 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Нашел лекарство Код: plaintext 1. 2. 3. 4. Оказывается есть блокирующие UDP сокеты. 640 мбит виндовс-виндовс. УРА !!! Не гигабит, но уже что-то. Чтобы еще ускорить наверно надо другие проблемы решать. Линуксу от этой опции поплохело, в два раза медленнее стал. PS МС оправдан, но все равно странно что так сильно тупило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 13:40 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, а оно до адресата доходит? If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode. On nonblocking stream-oriented sockets, the number of bytes written can be between 1 and the requested length, depending on buffer availability on both client and server machines. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 13:53 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
BarloneDima T, а оно до адресата доходит? If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode. On nonblocking stream-oriented sockets, the number of bytes written can be between 1 and the requested length, depending on buffer availability on both client and server machines. Доходит, потерь 0. Вписал в рабочую прогу. Добавил 3 Мб буфера SO_SNDBUF, окно отправки 32 пакета, т.е. всего 48 кб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 14:08 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima Tзабег по граблям вынужденная необходимость.Моё мнение вас не устроило, а добавить к уже сказанному мне нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 16:02 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Дима IPerf пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 16:16 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДима IPerf пробовал? Если я правильно его понимаю, то 500 мбит он подтвердил, а когда прошу больше, он дает меньше 500. результаты Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 17:57 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
А попробуй дернуть вообще без ограничителя 500m ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 17:59 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonА попробуй дернуть вообще без ограничителя 500m А напиши как :) Как я понял это не ограничитель, а требуемая скорость. Без -b он берет дефолтный 1 мбит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:08 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
вот какая фигня получается Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:13 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
ОК. Я понял. Значит для клиентской части измерителя необходимо указывать -b Но в этом варианте Код: plaintext 1. была достигнута скорость 511 Mbits/sec при отправке пакетов по UDP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:18 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonПосмотри как тут. http://openmaniak.com/iperf.php Вообще минимум параметров. Ты там TCP пролистай, про UDP поищи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. я тут добавил только -w 3m - это размер буфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:18 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Ну значит твоё приложение как-то работает с UDP по другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:20 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Я-бы для начала создал идеальный тракт. 2 линукс-машинки соединил-бы обратным патч-кордом. Проверил что карточки включены в гигабит. Погонял-бы эту утилиту iperf. Убедился-бы что там действительно достигается скорость хотя-бы порядка приближённого к паспортному. И потом аккуратно подключил-бы одну Windows-машинку в этот измерительный стенд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:22 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonОК. Я понял. Значит для клиентской части измерителя необходимо указывать -b Но в этом варианте Код: plaintext 1. была достигнута скорость 511 Mbits/sec при отправке пакетов по UDP. Затестил на отправки 500 Мб. Моя посылалка в неразогнаном виде дала 830-840 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:22 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Я-бы почитал форумы по Winsock2. Там есть какой-то клин. Limitation. И его наверняка где-то обсуждали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:40 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonНу значит твоё приложение как-то работает с UDP по другому. Я в первом посте писал как работает. Первый пакет окна подтверждается. Окно 32 пакета. maytonЯ-бы для начала создал идеальный тракт... Надоело уже. выжал 80% и нормально. Это не 8% как было. Завтра еще затестю iperf`ом скорость через TCP, для сравнения, сразу не догадался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 18:59 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Только не мучай меня загадками. Когда пишешь "Затестил на отправки" - я терзаюсь. Чем затестил? Своим софтом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 19:00 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonТолько не мучай меня загадками. Когда пишешь "Затестил на отправки" - я терзаюсь. Чем затестил? Своим софтом? Своим. Те же два компа, тоже самое направление передачи что и iperf`ом. Условия почти одинаковые, в обоих случаях сетка была не нагружена. Алгоритм не скрываю (но реализацию не дам, т.к. там еще много чего намешано, не выковырять). Алгоритм такой: первый пакет описание сообщения (размер пакета, количество пакетов, контрольная сумма и т.п.), далее отправитель шлет окна фиксированного размера (начальное 8 пакетов) каждые 20 мс. В первом пакете окна устанавливает флаг запроса подтверждения. Получатель при получении окна с флагом отправляет подтверждение и в нем указывает список недостающих пакетов. Оправитель приняв подтверждение меняет окно (нет потерь окно+=окно/5+1, есть потери окно-=количество потеряных в окне). В случае запроса потерянных они сразу же высылаются в следующем окне. По результату получения всех пакетов получатель шлет подтверждение приема. Отправитель получив подтверждение останавливает отправку. В случае быстрой доставки (локалка например) интервал не выдерживается, подтверждение первого пакета последнего отправленного окна сразу запускает отправку следующего. Суть описал, но есть ньюансы реализации. Главное не вносить никакой синхронности (долго шел до осознания этой банальности). Я ее внес только для ускорения в локалке. Если прохождение пакета до получателя и обратно 50 мс, и при этом ждать подтверждения каждого окна, то эти 50 мс станут основным тормозом. Почему именно так (из наблюдений): 1. Подтверждать первый пакет - обычно он не теряется, теряется хвост если слишком много пакетов не входит в буфер очередного шлюза. 2. Интервал 20 мс - долго думал, с одной стороны кривые часы (в XP шаг 10 мс), с другой квант времени выделяемый процессу виндовсом, с третьей разные скорости каналов (12 кбайт/с GPRS и гигабит в локалке), с четвертой потери на длинных окнах (в магистральных каналах на окне из 48 пакетов уже потери начинаются). Вобщем выбрал максимум 32 пакета за 20 мс (2,3 мбайт/с), минимум 1 (72,5 кбайт/с). Ктати это и привело к поднятию темы, т.к. за 20 мс не уходило 32 пакета. 3. Размер пакета - ставлю флаг запрета дефрагментации пакета (IP_DONTFRAGMENT) и при подключении шлю до сервера проверки разного размера (у серверов в инете 1472 гарантированно), максимально подтвержденная - максимальный размер пакета (в диапазоне 1372-1472). Отправка данных размером минимума из максимумов отправителя и получателя. Вобщем неплохо работает как для быстрых и медленных каналов, так и для очень далеких точек на быстром канале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 20:23 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Собсно ... software которое работает на UDP - толерантно даже к потерям первого пакета. Если это был фрейм mp3, или кадр видео-трансляции то и хер с ним. Восстановится с 100-го пакета заново. Главное чтобы FSM восстанавливалась в некое "нулевое" состояние периодически. Если это видео- или аудио- кодек то сам транслируемый сигнал должен периодически формировать мета-информацию. Что у тебя за трафик? Что за алгоритм - непонятно. Может тебе не нужен UDP ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 20:28 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЧто у тебя за трафик? Что за алгоритм - непонятно. Может тебе не нужен UDP ? Тут писал 17343378 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 20:36 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Вообще это распределенная система обмена сообщениями любого размера. Шина данных. Без какого-либо центрального сервера. Т.е. есть группа серверов готовых соединить двух абонентов, при том что падение одного-двух серверов никак не влияет на работу всей системы. Абсолютно распределенная система со 100% отказоустойчивостью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 20:40 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonЧто у тебя за трафик? Что за алгоритм - непонятно. Может тебе не нужен UDP ? Тут писал 17343378 Я не понимаю как тебе поможет UDP? Ты пишешь про GSM и гигабит? Чувак ! жиэсэм работает на килобитах. На жалких (!) килобитах. Ты даже не почувствуешь улучшений. Только усложнишь протокол контроля над приёмом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 20:48 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... Тут писал 17343378 Я не понимаю как тебе поможет UDP? Ты пишешь про GSM и гигабит? Чувак ! жиэсэм работает на килобитах. На жалких (!) килобитах. Ты даже не почувствуешь улучшений. Только усложнишь протокол контроля над приёмом. У этих жалких килобитов большие буферы для кэша, хуже что они тупо рубят UDP, 1-2 пакета из окна проходят. Это 2-3% клиентов, можно на них пока просто забить, потом сделаю TCP туннель до сервера в инете. Тоже писал 17343472 Наверно надо главное рассказать, иначе просто непонятно задлянафига эта хрень. А главное вот в чем: есть приложение (точнее набор приложений) через которое работают мои клиенты со своими котрагентами (тоже мои клиенты), работают ежедневно 24 часа в сутки. Сейчас весь обмен между всеми идет через центральный сервер. Стоит ему упасть - через 5-10 минут все три телефона техподдержки звонят не умолкая, на каждый звонок дается отработанный ответ "попробуйте повторить через 15-20 минут" и ложится трубка чтобы она тут же зазвонила и это сказать следующему. Больше чем на 30-40 минут сервер не падает. Если он не падает, то звонков всего 5-10 в день. У меня техподдержка изучила весь инет и все фильмы посмотрела на работе :) Но однажды DDoS`ом сервер положили на сутки, точнее меньше, но стандартная реакция провайдеров в подобных случаях "извините, но нам не нужен такой клиент", т.е. идите лесом и не мешайте нам работать. Вот тогда я и пришел к понимаю того что нужна не скорость а надежность. 100% надежность неубиваемая ничем. Сейчас проблемы частично порешаны дублированием большинства подсистем, но это полумеры. Рост клиентов и обрастание сервисами требующими трафика тоже привело к тому что сервер в пиковые моменты перегружен. Трафик через него 10 Тб в сутки. А есть потребность еще нагрузку увеличить. А тут и надежность, и трафик, и масштабируемость неограниченная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 21:16 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Тоесть ты хочешь сказать что пишешь "мега-распределённую" 100% доступную систему которая каким-то чудесным образом решает проблемы "падающего" центрального сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 00:15 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Я так понимаю, это продолжение темы http://www.sql.ru/forum/1124178/p2p-po-udp?hl= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 07:38 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonТоесть ты хочешь сказать что пишешь "мега-распределённую" 100% доступную систему которая каким-то чудесным образом решает проблемы "падающего" центрального сервера? Да. Только не любого центрального сервера, а моего. По сути это просто хранилище для обмена документами. Всегда доступный файлообменник с логированием обмена и веб-мордой для администрирования доступа. Если утрированно описать: есть два типа пользователей, пользователь типа А получает некоторую инфу от пользователей типа Б, работает с ней и результат отправляет Б. Проблемы выхода в инет на стороне А - решает А. На стороне Б - Б. Но А не интересует что у Б проблемы. Пользователь А может захотеть поработать в любой момент, поэтому пользователь Б регулярно освежает свою инфу на сервере. В идеале А должен обращаться напрямую к Б. Сервер нужен только потому что пользователи Б не всегда доступны. И инфа разная: одну главное принять и гарантированно доставить, другая становится неактуальна через несколько минут, третья - несколько миллионов файликов из которых раз в год может понадобится 5-10, но очень срочно, четвертая ... По сути мне нужна система обмена сообщениями произвольного размера. Начал с джабера, там проблема с размерами (100 кб очень много), изучал очереди сообщений (разные *MQ), там тоже не совсем то, а потом появилась мысль чем UDP-пакет не сообщение? :) Изначально все строилось под диалап, т.е. зацепился-скачал/отправил-отцепился, сегодня все на выделенках сидят. Тут уже морально устарел мой сервер, пора менять архитектуру. обещанный тест iperf по TCP Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 08:13 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
BarloneЯ так понимаю, это продолжение темы http://www.sql.ru/forum/1124178/p2p-po-udp?hl= Нет. Тут и там разные части одной темы. Тот пока не реализованный. Заготовка для версии 2.0 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 08:20 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
А работа с документами предполгает только чтение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 08:57 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonА работа с документами предполгает только чтение? Да. Чтение имеющихся и создание новых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:10 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Я о другом. Могут ли одновременно два пользователя открыть 1 документ и редактировать его? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:20 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЯ о другом. Могут ли одновременно два пользователя открыть 1 документ и редактировать его? Нет. После создания и отправки документ никем не правится. По аналогии с платежкой: отправил в банк - править нельзя. Захотел отменить (пока банк не успел деньги списать) - шли документ "отмена платежа" и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:28 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TПо сути мне нужна система обмена сообщениями произвольного размера.По описанию сильно на E-mail похоже. Правда, если реализовать через E-mail, то у каждого абонента должен быть свой почтовый сервер, хотя бы простенький, иначе p2p не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:43 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftПо описанию сильно на E-mail похоже. или просто UUCP ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:45 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonЯ о другом. Могут ли одновременно два пользователя открыть 1 документ и редактировать его? Нет. После создания и отправки документ никем не правится. По аналогии с платежкой: отправил в банк - править нельзя. Захотел отменить (пока банк не успел деньги списать) - шли документ "отмена платежа" и т.д. В твоей системе допускается "дубль" документа? Ну тоесть док который создан 1 раз но дошёл дважды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:49 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TПо сути мне нужна система обмена сообщениями произвольного размера.По описанию сильно на E-mail похоже. E-mail не решает проблему быстрой проверки доступности получателя. Это ключевой момент. Например А требуется инфа от Б (его текущее состояние), А может получить самую свежую версию прямо от Б, а может из общедоступного кэша не очень свежую, но свежее чем есть у А. Можно конечно и почтой реализовать, но как-то коряво получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 09:58 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TE-mail не решает проблему быстрой проверки доступности получателя.Ну если только по причине двух встречных NAT-ов (т.к. обычный E-mail работает по TCP). В остальных случаях - не вижу, почему нет. Впрочем, я не настаиваю, это так - мысли вслух... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 10:03 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
У почтового протокола совершено другой левел требований. Для него характерен возврат недоставленных пактетов писем обратно отправителю. И схема маршрутизации стоит еще на уровень выше TCP. Там - маршрут определяется топологией почтовых серверов. И требования к скорости реакции сильно отличаются от доставки пакетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 10:07 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДля него характерен возврат недоставленных пактетов писем обратно отправителюЭто мелкие частности. Это можно отключить или не использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 10:15 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftНу если только по причине двух встречных NAT-ов (т.к. обычный E-mail работает по TCP). В остальных случаях - не вижу, почему нет. И НАТов тоже, но не только, тот же пример, рабочее состояние: А отправил, ждет ответа, непрерывно долбит свой почтовик "Есть чего? Есть чего? Есть чего? ...". Б непрерывно долбит свой. Зачем? Я бы сравнивал не с почтой, а с аськой, интернет мессенджеры ближе по функционалу. По сути задача А максимально быстро получить ответ, т.е. алгоритм: спросить у Б, недоступен - спросить у С. Хотя может я не понимаю глубину твоей мысли. Намекни попрозрачней :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 10:26 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TА отправил, ждет ответа, непрерывно долбит свой почтовик "Есть чего? Есть чего? Есть чего? ...". Б непрерывно долбит свой. Зачем?Действительно, зачем долбить-то? SMTP предполагает соединение по инициативе той стороны, которая хочет отправить письмо. Появилось что отправить - отправляем напрямую целевому абоненту. Не смогли целевому - отправляем на центральный сервер (или один из них по всему миру). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 10:40 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonВ твоей системе допускается "дубль" документа? Ну тоесть док который создан 1 раз но дошёл дважды? Есть такая болячка. Решается контролем дублей на принимающей стороне. Долго ломал голову над гарантированной доставкой: пришел к выводу что на уровне транспорта задача нерешаема. Можно сделать супер надежный транспорт, который сообщит отправителю о доставке, а вышестоящий обработчик получателя сглючит и ... сообщение недоставлено. В итоге решил что транспорт должен быть надежен на 99,9%. Отправитель передав транспорту считает что ушло. Если транспорт не получил подтверждение доставки - сообщает отправителю, отправитель решает как быть дальше. Вобщем контроль на более высоком уровне. Там виднее что делать в каждом конкретном случае. Для гарантированной доставки транзакция на верхнем уровне (не делал еще): А готовит сообщение, отправляет Б (или в кэш С если до Б не дошло), сообщение получает статус "отправлено" (изменения запрещены), Б по приему сообщает что обработано, если Б долго не подтверждает А шлет запрос проверки получения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 11:06 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, мне кажется ты пытаешся строить свою p2p сетку. Ну... или развитие этой идеи приведёт тебя к p2p протоколам. Без центрального сервера. Но я-бы искал решение просто в использовании TCP и нескольких резервных серверов в облаке. И еще почитай про SCTP. Возможно натолкнёт на мысли. https://ru.wikipedia.org/wiki/SCTP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 11:48 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonDima T, мне кажется ты пытаешся строить свою p2p сетку. Ну... или развитие этой идеи приведёт тебя к p2p протоколам. Без центрального сервера. Уже отказался от этой идеи. Надо как минимум авторизоваться чтобы в сетку войти, поэтому надо несколько серверов для авторизации, а раз они есть, то пусть они и занимаются сведением клиентов и отслеживанием кто в сети. Так эффективнее и безопаснее. maytonНо я-бы искал решение просто в использовании TCP и нескольких резервных серверов в облаке. Облако - дурацкое слово от маркетологов. В реале это просто возможности виртуализации в датацентре провайдера, т.е. добавить памяти, места на диске, мощности проца, переселить работающую виртуалку на другую железку. Только сейчас DDoS`ом ложат не клиента, а сразу датацентр. В такие моменты улетучится твое облако и сиди кури пока вернется. Вышеупомянутые мои сервера уже в облаках, счастье не наступило. Самое плохое - когда облако глючит то связь с сервером всплесками появляется и только мешает работе всей системы, т.к. он вроде жив, но работать с ним невозможно. Причем это не только UDP касается, иногда так переклинит что по ssh вроде цепляется, а что-либо там сделать невозможно. Пришлось изобретать систему самовыключения сервера на такие случаи. Вроде работает. Есть с десяток виртуалок в разных датацентрах, недоступными бывали все, кто час, кто сутки. Про TCP: можно безболезненно заменить общение клиентов с серверами с UDP на TCP, архитектуру это никак не меняет, клиент уже поддерживает постоянную связь с одним из серверов и гонит через него трафик если не получается напрямую. Т.е. отказавшись от UDP я просто теряю функционал прямой связи двух клиентов. Зачем отказываться? Что быстрее: 6000 км по TCP или 100 км по UDP ? maytonИ еще почитай про SCTP. Возможно натолкнёт на мысли. https://ru.wikipedia.org/wiki/SCTP Почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 13:07 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Еще до кучи. Теорема CAP. Не знаю будет-ли полезна. Но если да - то неплохо. https://ru.wikipedia.org/wiki/Теорема_CAP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 18:05 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЕще до кучи. Теорема CAP. Не знаю будет-ли полезна. Но если да - то неплохо. https://ru.wikipedia.org/wiki/Теорема_CAP Банальные очевидные фразы, сам до этого дошел. Не знал что этому название есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 18:59 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Хотя он дальше ушел, наверно поэтому я не профессор :), я изначально расщепление исключил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 19:02 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
По теме: после патча сокета во внутрисети провайдера (100 мбитной) скорость с 10`000 кбайт/с поднялась до 11`000+ кбайт/с. Сделал вывод что служебный трафик при грубых расчетах надо выкидывать делением на 9, а не на 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 19:13 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЕще до кучи. Теорема CAP. Не знаю будет-ли полезна. Но если да - то неплохо. https://ru.wikipedia.org/wiki/Теорема_CAP Спасибо за ссылку. Cильно задумался. Нужно выходить за рамки псевдоаксиом вдолблеых общепринятым образованием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2015, 21:45 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
На хабре. Обсуждение CAP. http://habrahabr.ru/post/231703/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2015, 21:24 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonCAP быстро, качественно, дёшево - выберите два ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2015, 21:35 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Изопропилбыстро, качественно, дёшево - выберите два Как верно сказал один менеджер проекта: (С)Конечно быстро и дешево. Качество же все равно получится "как всегда" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 17:47 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Пытался классифицировать известные мне информационные системы. сервисы DNS удовлетворяют критериям availability, partition tolerance. Oracle RAC удовлетворяет consistency, availability. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 18:09 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Вообще конечно этот Кап никакая не теорема. Просто забавное наблюдение. Из практики. Это как наблюдали-наблюдали за электроном и вдруг увидели что он находится в квантованных состояниях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 18:11 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Почитал хабр. Не сказать что прям такое супер что-то, но на мысли натолкнули. Транзакции с кэшем очень даже можно замутить. Например есть N синхронизированных узлов с одними и теми же данными, проводим транзакцию с одним, он прежде чем подтвердить дублируется на большей половине (т.е. для 5 узлов достаточно дополнительно на 2-х), на остальных распространяем после подтверждения. Это то что сходу в голову пришло. Хороша пища для размышлений. Может правда ну его нафиг этот ACID и центральную БД. Буду думать. Может в версии 2.0 чего-то такое внедрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 18:28 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TВ идеале А должен обращаться напрямую к Б.Подумалось... А это нормально, что вы фактически хотите сообщать ip-адреса одних клиентов другим клиентам? Если попадется один или несколько неблагонадежных клиентов, то очередной DDOS может быть обращен уже на кого-то из добросовестных клиентов, что (помимо, собственно, потери этого клиента) может негативно повлиять на репутацию всей системы. Или я это уже загоняюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 18:31 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TМожет правда ну его нафиг этот ACID и центральную БД. Буду думать. Может в версии 2.0 чего-то такое внедрю. Собственно... всё завит от идеи которая заложена и задачи. Если взять наш мир. Так он нихрена не централизован и несогласован. И разделен. А принципы CAP - это абстракции которые мы натягиваем на свои системы чтобы добиться хотя-бы какой-то устойчивости со стороны SR. БД Oracle - это возможноть проводить финансовые транзакции. Гео-поиски от яндекса и гугла - возможность быстро находить гео-объекты. И пох что последние несогласованы. Для таких вещей как география и не нужна вобщем-то согласованность. Ну... может и нужна но толерантность к несогласованию у нее весьма высокая. Взять текстовый гугло-поиск. Там вообще - лаг. Когда выравниваются индексы по тексту - ХЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 18:44 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TВ идеале А должен обращаться напрямую к Б.Подумалось... А это нормально, что вы фактически хотите сообщать ip-адреса одних клиентов другим клиентам? Если попадется один или несколько неблагонадежных клиентов, то очередной DDOS может быть обращен уже на кого-то из добросовестных клиентов, что (помимо, собственно, потери этого клиента) может негативно повлиять на репутацию всей системы. Или я это уже загоняюсь? я писал так 17350418 В идеале А должен обращаться напрямую к Б. Сервер нужен только потому что пользователи Б не всегда доступны. Если Б заддосят - это его проблемы, для того нужен мой сервер с кэшем. С кэша можно забирать почти анонимно, адрес будет видеть только кэш. Воткнул gsm-свисток и качай. Уронить GSM шлюз надо постараться :) Я конечно помогу проблему порешать, но гораздо вероятнее что у Б вырубят электричество или копая теплотрассу выкопают его оптоволокно. Можно тупо ограничить выход udp в инет только моими серверами. Тогда общение со всеми через них. Т.к. это оконечное подключение - дополнительно попросил другой IP у провайдера и забыл про ддос. Решаемо. Но ддосить не будут (или будут но не из-за меня), нет ярковыраженных ключевых клиентов, это специфика бизнеса. Лично меня могут, есть неадекватные конкуренты. Также есть абсолютно посторонние соседи в том же датацентре где и я, при современном ддосе падает датацентр, это наиболее частое явление из всех выше перечисленных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 19:00 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonDima TМожет правда ну его нафиг этот ACID и центральную БД. Буду думать. Может в версии 2.0 чего-то такое внедрю. Собственно... всё завит от идеи которая заложена и задачи. Если взять наш мир. Так он нихрена не централизован и несогласован. И разделен. +1 Нафиг не надо централизовываться там где не надо. в большинстве случаев: если задача решена на 90-95% этого достаточно. Если при этом оставшиеся 5-10% не выкинуты за борт, просто по ним предложено более убогое решение. В реальном мире есть понятие КПД, никто не стремится сделать его 100%, точнее стремятся, но спокойно живут с тем какой есть. Лично я давно уже придерживаюсь такой практики: решено на 90% - нормально, на 99% - идеально. Кто предъявляет за оставшийся 1% - в итоге сами соглашаются что это придирки. Закон Парето никто не отменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 19:22 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли Б заддосят - это его проблемыТехнически - да, его. А репутационно? Dima Tнет ярковыраженных ключевых клиентовПри слабых абонентских каналах не проблема заддосить сразу несколько сотен/тысяч ваших клиентов тупым флудом. Главное - узнать их более-менее свежие адреса. И уже неважно, что половина атак уйдет мимо. Надеюсь, конечно, что такого никогда не случится, но мало ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 19:29 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TКто предъявляет за оставшийся 1%Похоже на мой случай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 19:30 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TЕсли Б заддосят - это его проблемыТехнически - да, его. А репутационно? Попробуй докажи. Может просто меня выбрали как способ вычислить где он. miksoftDima Tнет ярковыраженных ключевых клиентовПри слабых абонентских каналах не проблема заддосить сразу несколько сотен/тысяч ваших клиентов тупым флудом. Главное - узнать их более-менее свежие адреса. И уже неважно, что половина атак уйдет мимо. Надеюсь, конечно, что такого никогда не случится, но мало ли? Тут узнать проблематично. Софт закрытый. Авторизация. Клиент всех других клиентов не знает, спрашивает сервер. Нет такого состояния "попинговать всех". Тут разве что слушать куда идут пакеты. Поэтому максимум десяток-другой потенциальных жертв с кем общается прослушиваемый. Накопится десяток - по логам можно будет вычислить наводчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 19:43 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TТут узнать проблематично. Софт закрытый.Элементарно. tcpdump/wireshark никто не отменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 19:53 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TТут узнать проблематично. Софт закрытый.Элементарно. tcpdump/wireshark никто не отменял. я про это написал "разве что слушать куда идут пакеты". отконкретной ноды идут они далеко не всем. Вообще проблема ддоса из серии как уговорить гопника: "он тебе бъет в лицо, а ты его убеждаешь словами что он не прав". Так нерешаемо. Тут надо переходить на тот же уровень общения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 20:06 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
miksoftDima TКто предъявляет за оставшийся 1%Похоже на мой случай Да, есть такое что оставшийся 1% требует столько же трудозатрат (если не больше) как предыдущие 99. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 20:10 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TТут узнать проблематично. Софт закрытый. Авторизация. Клиент всех других клиентов не знает, спрашивает сервер. Нет такого состояния "попинговать всех". Тут разве что слушать куда идут пакеты. Поэтому максимум десяток-другой потенциальных жертв с кем общается прослушиваемый. Накопится десяток - по логам можно будет вычислить наводчика. Насколько я себе понимаю вопрос. Любая DDOS атака несёт за собой вполне конкретную цель. Например - свалить сайт конкурента. На выборах - сайт конкурирующей партии. Эта-же атака имеет конкретную цену. Хацкеры редко работают бесплатно. Значит кто-то должен оплатить работу сотен тыщ ботов. Хацкеры также не хотят лишний раз светить своих ботов и диапазоны адресов в регионе. Поэтому скорее всего будут экономить и не размениваться на пустяки. И в контексте вышесказанного. Кому нужен Dima T со своими GSM-свистками? Да он хакерам нужен как и Лимонадный Джо... Вот в таком аспекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 20:24 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДа он хакерам нужен как и Лимонадный Джо... Вот в таком аспекте. В анекдоте было не лимонадный, а неуловимый, типа "нафиг никому не нужен, потому неуловимый" :) К сожалению лично я нужен, своими решениями как за пару копеек решить многотысячную задачу кое-кому бизнес попортил очень сильно. Про ддос: Ддос штука недорогая, цены в инете, но нет смысла на ддосе заостряться, в любой защите всегда бьют в самое слабое место. Ну сделаю я супер защиту от ддоса, перейду дорогу кому-то сильно большому по бизнесу, пришлют гопников, сломают мне шею, или ментов, которые меня в СИЗО посадят, тоже недорого организовать. Зачем заморачиваться на изощренный ддос? Я к тому что в гадостях не надо мыслить только ИТ-категориями. Суть не в этом, эта тема вообще неинтересна, она была интересна когда попал первый раз, сейчас выработано 100500 стратегий обороны. Как уже выше написал ищу 100% отказоустойчивость для работы конкретного оконечного узла, он не должен видеть что где-то что-то не работает, если у него все нормально, то для него вся система должна выглядеть абсолютно работоспособной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 21:30 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Да пофиг. Лимонадный гуглится тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 21:40 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДа пофиг. Лимонадный гуглится тоже. Вобще пофиг, оба не в тему ) Безнаказанное нарушение ACID гораздо интереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 21:45 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Новости Хабр просматриваю. Каждый второй топик тебе в пыщь. http://habrahabr.ru/post/249563/ Везунчик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 22:05 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonНовости Хабр просматриваю. Каждый второй топик тебе в пыщь. http://habrahabr.ru/post/249563/ Везунчик... Спасибо, почитаю. Я хабр регулярно почитывал, пока эту чудохрень усиленно дописывать не начал в свободное время. Затягивает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 22:14 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Почитал, половину не понял. ИМХУ борьба с последствиями. Надо причину убирать, т.е. децентрализовывать. Чудохрень рулит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2015, 22:38 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Добавил TCP-туннель, для UDP. С дефолтными параметрами TCP не взлетело в гигабите, чуть выше 100 мбит. Поставил сокетам буфера приема/отправки 0,5 Мб, стало веселее. Тестил между двумя компами воткнутых в один гигабитный роутер. Гонял 100 Мб в обе стороны. Т.к. под TCP не заточено, просто туннель для UDP, то немного пошаманил с настройками, для UDP окно 32 пакета, в TCP 128 (потом допилю чтобы в TCP пихалось пока не перестанет влазить). Статистика (туда/обратно мбайт/сек): мой UDP: 85/90 мб/с ТСP 65/80 мб/с Грустно. Оказывается заголовок TCP больше (40 байт против 28 у UDP), а я шлю максимальными UDP пакетами (1472 байта данных при MTU Ethernet`а 1500), урезал порцию до 1460. Стало 89/92 мб/с, тут TCP уже победил :( Ради спортивного интереса запусил UDP c окном 128 и буферами 15 мб - результат 91/95 мб/с. Пытался выдавить из TCP столько же, не смог. Тестил FAR`ом, копирует гигабайтные файлы 88-89 мб/с. Вывод: в локалке UDP быстрее. По инету пока не готов сказать, недописано. Как будут результаты - отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2015, 20:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Что-то не взлетает у меня TCP в инете. Тестю до виртуалок разной удаленности. UDP быстрее, местами в разы. Есть мысль что рубят скорость TCP злобные провайдеры, но пока ее отодвигаю, исхожу из того что сам что-то не доделал. Может кто подскажет что подкрутить. Пока немного помогло увеличение буферов до 0,5 Мб, пробовал 5 Мб ничего не меняется, значит что-то еще мешает. Я об этом Код: plaintext 1. 2. 3. 4. 5. 6. 7. Что еще подкрутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 19:28 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Есть мысль что рубят скорость TCP злобные провайдеры Сколько ты хочешь "выжать" из Инета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 19:38 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЕсть мысль что рубят скорость TCP злобные провайдеры Сколько ты хочешь "выжать" из Инета? Больше чем выжимаю по UDP между теми же пирами. Я почти проникся тем что TCP быстрее, теоретические основания этому есть (заточка оборудования под TCP и т.п.), хочется подтвердить на практике. Результатами замеров пока не хочу делится (как минимум надо перемерить на свежую голову), сначала сам переварю, пока предполагаю что у меня что-то не так, все-таки UDP долго затачивал, а тут пока просто не взлетело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 20:03 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Главный вопрос стоит так: как сильно использовать TCP. Минимально туннель до сервера (чтобы с него GSM-свистки гарантированно принимали/получали), максимально заменить UDP там где это даст ускорение. Истина где-то посередине. Пока в поисках оптимальной стратегии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 20:12 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, мне кажется странным что основная твоя конфигурация - это машина на базе Windows. Не пробовал рассмотреть варианты CentOS, FreeBSD ? Там сетевые возможности более "взрослые". Идеальная платформа для экспериментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 20:22 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonDima T, мне кажется странным что основная твоя конфигурация - это машина на базе Windows. Не пробовал рассмотреть варианты CentOS, FreeBSD ? Там сетевые возможности более "взрослые". Идеальная платформа для экспериментов. Это был первый этап, локалка, она обычно win-win. Какой смысл уходить от реальности? В инете виртуалки debian7x64, разной удаленности (ping от <1 мс до 50 мс), на них мои сервера. Сейчас второй этап - ускорение связи с виртуалками, т.е. win-linux. linux-linux пока не проверяю, в моем случае это сервер-сервер, по проекту тут нагрузка должна быть незначительна, основная клиент-клиент, т.е. win-win. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 20:30 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonDima T, мне кажется странным что основная твоя конфигурация - это машина на базе Windows. Это реальность, все клиенты на виндовсе. В поисках сферического коня можно уйти в сторону, но в результате получу только оценку производительности того что есть (КПД). В этом есть смысл для оценки потенцила дальнейшего роста, но не более того. Пока меня интересует максимальное повышение производительности того что есть. По простому: хочется сделать хорошо и забыть на 10 лет (как в прошлый раз). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 20:52 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Дима. Я не так глубоко разбираюсь в TCP/IP в разрезе Windows-кодинга. Но ты решаешь задачу оптимизации со многими неизвестными. Поэтому я уточню. Из умных книжек нам известно что оптимизировать канал можно по двум аспектам. 1) Latency 2) Throughput Задержка и пропускная способность. Это две независимых характеристики и в некоторых случаях они противовесят друг другу. На графике выглядят как гипербола. Тоесть если мы ставим задачу - увеличить отклик (уменьшение Latency) то мы забиваем болт на другие характеристики. К примеру системы управления. Они передают мало информации. Во много раз меньше пакета. Это несколько бит. Но эти несколько бит должны переданы максимально надёжно и быстро и с квитированием. Это одно направление. И другое. Проектируем телевидение. Пофиг какая латентность. Пускай даже это будет 3-5 секунд. Главное чтоб полоса была толстая. Тут и пакеты до 2Гигабайт. И возникает вопрос. Какого класса система тебе нужна? Еще одно. Из умных книжек мы также знаем что не существует такого понятия как "скорость Интернета". Это маркетинговая уловка которой кормят хомяков подключающихся к прову. Ну... в крайнем случае есть некая скорость "последней мили". Где пров хотя-бы владеет кабельным оборудованием и может осуществлять регулирование и мониторинг. Поэтому возникает вопрос. Что ты исследуешь? Скорость Интернета? Это - метафора. Нету интернета. есть конкретная скорость конкретного канала. Вобщем как-то вот такие вот вопросы в таком аспекте. Буду рад услышать каменты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2015, 23:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonКакого класса система тебе нужна? Система передачи данных (сообщений с данными), т.е. доставка должна произойти обязательно и желательно максимально быстро. Все ситуации сводятся к обмену между двумя клиентами (А и Б). Каждый может быть как прогой с тыкающим в нее клавой и мышей юзером, так и роботом висящим где-то в фоне на каком-нибудь сервере. Два вида обмена: 1. Двунаправленный: А отправляет запрос инфы, Б в ответ присылает инфу. Запрос маленький (до килобайта) ответ побольше (10-100 кб). Тут скорость важна, т.к. А ждет ответа. 2. Однонаправленный: А отправляет инфу Б. Размер инфы 1 Мб. Скорость не критична, но чем быстрей тем лучше. Далее имеем варианты доставки: 1. Через сервера (А и Б не знают где кто, для этого каждый регается на одном из серверов), т.е. худший случай А -> СерверА -> СерверБ -> Б 2. Напрямую (если знают) Изначально первая доставка начинается с варианта 1 и в процессе (по возможности) перестраивается на вариант 2. Т.е. в целом так для двунаправленного обмена: А отправляет по в.1 запрос, запрос влазит в первый пакет, который по приходу запускает подготовку ответа на Б, в это время транспорт перестраивается на в.2 и ответ идет по наикратчайшему пути. Чем конкретно будут обмениваться? Да хоть чем, хочется максимальной универсальности. Из идей что можно дополнительно прикрутить сверху: резервные копии гигабайтных бэкапов, просмотр окна проги позвонившего юзера (мини VNC) и т.д. и т.п. Может мои клиенты (человеки) под свои нужды захотят как-то мой транспорт использовать. maytonЧто ты исследуешь? Скорость Интернета? Это - метафора. Нету интернета. есть конкретная скорость конкретного канала. Скорость конкретного канала между случайными А и Б. Точнее я исследую как из канала выжать максимум, т.е. как максимально эффективно подстроится под каждый вид канала. В целом сейчас все чудесно работает пока UDP пакеты не начинают теряться в большом количестве, что опускает полезную скорость ниже плинтуса. Например на GSM-свистках. Тут надо TCP. Ну а раз он есть, то почему бы не только свисткам его дать? Плюсы у TCP есть. Минусы: для быстрой работы надо память под буфера для каждого соединения. Вобщем исследую плюсы и минусы всех составляющих и их комбинаций, чтобы понять как использовать. Можно P2P по TCP сделать (например есть робот к которому часто обращаются, замапить порты на роутере, обращающийся будет знать и цепляться). Вопрос надо ли это? Будет ли польза? Опыты в локалке уже показали что в локалке пользы не будет, т.к. UDP не теряется. В целом пока строю стратегию как мой транспорт должен работать, для этого нужна статистика как разные каналы могут работать и что из них можно выжать подстройкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 09:15 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, в процессе настройки канала между А и Б какие у нас есть факторы? Чем мы можем оперировать? Я хочу составить реестр возможностей. Протокол (+ дополнительные опции): TCP -TCP packet length (bytes) -TCP window size UDP -UDP packet length Что еще есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 13:10 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Наблюдения: 1. Размер данных: стоит только начать давать на байт больше чем MTU, так сразу фрагментация замедляет передачу. Особенно заметно на быстром канале. 100 мбит падает до 50-60 если давать блок данных чуть больше. Например если MTU 1500, даешь 1461 байт данных + 40 заголовки TCP и IP т.е. пакет 1501 - тормозит, опускаешь данные до 1460 скорость TCP поднимается с 60 до 100 мбит. Причем данная корявость только в виндовсе, из линукса скорость не падает. 2. Виндовс делает маленькие буфера приема/отправки. Например если с буфером по дефолту скорость 2 мбайта/с, задаешь буфер побольше растет до 2,9-3. Линуксу повышение бесполезно. Вобщем пока все наблюдения говорят о корявости виндовса в работе с TCP. По поводу тестов скорости UDP vs TCP, то UDP чуть быстрее (2-3%) пока нет потерь, соответственно если потерь больше 2-3%, то TCP быстрее. Считаю эти 2-3% выигрыш за счет простоты протокола. Правда есть неадекватные оконечные провайдеры (у меня такой на резервном канале), там TCP медленнее на 15-20% (2,0 против 1,6-1,7 мбайт/с, тариф 40 мбит). То ли TCP душат, то ли анализировать пытаются, то ли UDP рубить не умеют, то ли еще чего. Тестил через два канала до далекого сервера: пинг 30 мс, 1500 км по карте (если не врут с раположением датацентра). В итоге все упорядочилось, статистика стала объяснимой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 20:58 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonDima T, в процессе настройки канала между А и Б какие у нас есть факторы? Из уравнения с многими неизвестными многие неизвестные выпали. См. предыдущий пост. Сделаю TCP от каждого клиента к серверу и между серверами. Скорости прохождения пакета: А->Б меньше 1 мс А->Сервера->Б 30-50 мс Если А-Б могут установить TCP-соединение - устанавливать. Если не могут, то тут нерешенные задачи: 1. в какой момент прекратить А->Б и переключится на А->Сервера->Б 2. Кто из двоих проблемен? как определить кому в будущем приорететнее общаться через сервера? Известны потери в процессе передачи А->Б, можно замерить TCP скорость А->Сервер и Б->Сервер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 21:20 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima T, а это не у тебя в своё время udp пакет через говнопровайдера не проходил (на торрентовый похожий) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 21:27 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima T, а это не у тебя в своё время udp пакет через говнопровайдера не проходил (на торрентовый похожий) ? Хорошая у тебя память :) У меня, тоже самый говнопровайдер, мой резервный канал, порешал просто, пакеты xor`ятся 4 разными масками, первые два бита задают номер маски для расшифровки. Т.к. рубятся по маске редко, то хватает для прохода фильтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 21:32 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Изопропил, я решение там писал с кодом 15819840 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 22:06 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TИзопропил, я решение там писал с кодом 15819840 собственно для борьбы с такими гуманоидами и прочими любителями вклиниться в трафик интенсивно https продвигается мозилла и хром http/2 грозятся только поверх tls поддерживать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2015, 22:24 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TНаблюдения: 1. Размер данных: стоит только начать давать на байт больше чем MTU, так сразу фрагментация замедляет передачу. Особенно заметно на быстром канале. 100 мбит падает до 50-60 если давать блок данных чуть больше. Например если MTU 1500, даешь 1461 байт данных + 40 заголовки TCP и IP т.е. пакет 1501 - тормозит, опускаешь данные до 1460 скорость TCP поднимается с 60 до 100 мбит. Причем данная корявость только в виндовсе, из линукса скорость не падает. 2. Виндовс делает маленькие буфера приема/отправки. Например если с буфером по дефолту скорость 2 мбайта/с, задаешь буфер побольше растет до 2,9-3. Линуксу повышение бесполезно. Вобщем пока все наблюдения говорят о корявости виндовса в работе с TCP. По поводу тестов скорости UDP vs TCP, то UDP чуть быстрее (2-3%) пока нет потерь, соответственно если потерь больше 2-3%, то TCP быстрее. Считаю эти 2-3% выигрыш за счет простоты протокола. Правда есть неадекватные оконечные провайдеры (у меня такой на резервном канале), там TCP медленнее на 15-20% (2,0 против 1,6-1,7 мбайт/с, тариф 40 мбит). То ли TCP душат, то ли анализировать пытаются, то ли UDP рубить не умеют, то ли еще чего. Тестил через два канала до далекого сервера: пинг 30 мс, 1500 км по карте (если не врут с раположением датацентра). В итоге все упорядочилось, статистика стала объяснимой. Дима. Ты действительно думаешь что 2-3% потенциальной скорости - это та вещь за которую нужно бороться. И решать различные проблемы канала? И писать кастомный софт? И создавать свой протокол? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 14:14 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДима. Ты действительно думаешь что 2-3% потенциальной скорости - это та вещь за которую нужно бороться. И решать различные проблемы канала? И писать кастомный софт? И создавать свой протокол? Если заказчик за 2-3% готов заплатить как за удвоение - конечно нужно )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 14:28 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДима. Ты действительно думаешь что 2-3% потенциальной скорости - это та вещь за которую нужно бороться. Нет, я же написал что прощаю TCP эти 2-3%. maytonрешать различные проблемы канала? И писать кастомный софт? И создавать свой протокол? Не надо утрировать, я же тебе расписывал суть задачи 17392803 . Соединение А-Б в большинстве случаев по TCP невозможно из-за технических ограничений (на роутерах никто не захочет порты мапить, компам постоянные IP давать, слишком много лишних телодвижений). Гнать все через сервера не лучший вариант: во первых создаем узкое место в виде серверов-передастов, т.е. в один прекрасный день все начнет тупить и надо будет что-то делать. Во-вторых сервера просто физически далеко (нет у нас датацентров на каждом углу), тоже писал что 100 км по UDP намного быстрее 6000 км по TCP. В третьих это уже есть. Потом софт все равно писать, какой-то протокол все равно изобретать. Я ж не просто эмулятор TCP пишу. Да и с TCP не все так гладко. Например в схеме А->Сервер->Б если скорость А->С значительно выше С->Б, то серверу надо где-то хранить то что накачал от А, пока Б это выкачивает. Т.е. опять надо какой-то протокол управления входом от А. Про два сервера еще не задумывался (А->СерверА->СерверБ->Б), тут вообще жесть с кучей неизвестных. Проводил пробный тест на живых юзерах, слали тестовое сообщение на эхо-клиента: показал что 70% трафика прошло напрямую. Оставщиеся 30% это не минимум, то что успело пролететь через сервера пока прямое соединение организовывается. В общем задумка жизнеспособна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 15:20 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Про 2-3% вы не в ту сторону смотрите. Я же писал уже про время отклика, это главное. Представим обычную трехзвенку, клиент обращается к серверу приложения. В локалке - чудесно, надо доп.офисы - поднимаем vpn. Быстро, но дорого, т.к. админа надо. Начальство говорит надо в инете чтобы было, делаем клиента в виде сайта, уже не быстро но все равно дорого. А тут пофиг где клиент, в локалке или где-то рядом связанный с локалкой одним провайдером или во втором провайдере, которые сязаны внутригородским узлом обмена трафиком. vpn получается на уровне конкретной проги. Свобода полная: хоть из дома работай, хоть в трех офисах как в одной сети. Для организации канала затрат 0, сам организуется. И это реально т.к. внутрисети нормальных провайдеров уже гигабиты, а локалки обычно 100 мбит, т.е. допофис не поймет разницы если будет прямая связь центральным офисом. Просто берем ноут с прогой и едем куда надо, подцепляемся к инету - прога работает. Т.е. совсем другая степень свободы. Но все упирается в время отклика: незаметное время для человека 1/16 сек. (62,5 мс). Если в это время уложится, то пользователю будет казаться что прога мгновенно реагирует на его действия, не уложится - прога тормозит. Сам понял это когда сидел дома в терминале до офиса через вайфай, вроде 50 мбит в тестах по локалке, 100 мбит до офиса по внутрисети, но пошаговая стратегия какая-то, час поработаешь и бесить начинает, взял перфоратор, просверлил дырку, кинул провод и терминал залетал. Тут цель таже - кто захочет чтоб залетало - просто посоветовать воткнуть провод вместо вайфая. Захочет - воткнет. А если начать гонять трафик через сервера то этот прогон просто сожрет большую часть этих 60 мс и на полезную работу времени не останется. В моем случае это 30-50 мс, скорость света она нифига не быстрая, всего 300 км/мс, а рядом нормальные сервера поднять проблематично. Победить эти 30-50 мс значит сэкономить 50-70% времени на полезную работу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 21:07 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Я как-то шутки ради прикидывал какой будет лаг с интернетом между Землёй и Марсом. Ну... вобщем 22 минуты самое короткое время летит радио-сигнал (в наилучшем положении планет). Вот так вот. И это - пакет в одно направление!!! О SYN/ACK речи даже нет. Речь просто об одно-направленном вещании. А ты говоришь - 30-50 мс. Транслировать ТВ - можно. А вот о сигналах оперативного управления можно забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 21:28 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonА ты говоришь - 30-50 мс. Если смотреть глобальнее, то проблема в финансовых подходах: восновном продают результат, т.е. "систему под ключ", хотите переделать, пожалуйста, вот вам новая "система под ключ". А тут на тебе самоконфигуриющаяся система, продавать нечего, да еще ти за конфигуратором следи, прямой конфликт финансовых интересов. С другой стороны кто первый внедрит - тот победитель. Капитализм, будь он не ладен. maytonЯ как-то шутки ради прикидывал какой будет лаг с интернетом между Землёй и Марсом. Ну... вобщем 22 минуты самое короткое время летит радио-сигнал (в наилучшем положении планет). Вот так вот. Откроешь офис на марсе - обращайся, что-нибудь придумаем :), у меня юзеры дальше 100 км редко от офиса разъезжаются :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 21:55 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima Tпродавать нечего и зачем тогда это нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 22:33 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли смотреть глобальнее, то проблема в финансовых подходах: восновном продают результат, т.е. "систему под ключ", хотите переделать, пожалуйста, вот вам новая "система под ключ". А тут на тебе самоконфигуриющаяся система, продавать нечего, да еще ти за конфигуратором следи, прямой конфликт финансовых интересов. С другой стороны кто первый внедрит - тот победитель. Капитализм, будь он не ладен. Я не очень верю в самоконфигурирующую систему. Особенно в условиях когда между А и B трейсроут показывает OVER 9000 устройств каждое из которых со своей характеристикой. С различными настройками QoS. С основными и резервными каналами. С "матрёшкой" протоколов. Если-бы у тебя была задача - проектировать сеть под конкретную специфику ПО. В условиях когда ты сам выбираешь оборудование, и софт. Тогда можно было-бы что-то придумать. Заточить под длины сообщений. А так. Игра на чужом поле. В условиях постоянно меняющихся характеристик канала. Вобщем как-то это всё очень печально. Хотя... твой энтузиазм воодушевляет. Надеюсь тебе заплатят за доработку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 22:39 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonОсобенно в условиях когда между А и B трейсроут показывает OVER 9000 устройств каждое из которых со своей характеристикой. Это где такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 23:11 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Ну ладно... метафорически выразился. Чё нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 23:48 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЧё нельзя? Нельзя так пугать. Я подумал что до Марса уже проложили кабель по астероидам )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2015, 23:50 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonЯ не очень верю в самоконфигурирующую систему. Что смущает? Конфигуратор прост: А и Б залогинились, сообщили серверу кто-где, потом просто поддерживай связь с сервером и спрашивай у сервера где тот кто тебе нужен. Чтоб сервер не был узким местом - подними несколько и репликацию состояния между ними. 100% надежность задешево . maytonОсобенно в условиях когда между А и B трейсроут показывает OVER 9000 устройств каждое из которых со своей характеристикой. Тут уже заточка на уровне прикладного софта. Есть быстрый отклик - переключайся в режим толстого клиента, нет - работай тонким (кэшируйся по максимуму), работать будет, но с затуплениями. Не нравится - выкинь GSM-свисток и воткни провод. maytonЕсли-бы у тебя была задача - проектировать сеть под конкретную специфику ПО. В условиях когда ты сам выбираешь оборудование, и софт. Тогда можно было-бы что-то придумать. Заточить под длины сообщений. Я ж не центробанк и не ФАПСИ, это они себе могут позволить собственные большие сети. Мне скромнее надо быть, у меня только софт свой, интернет наше всё :) maytonНадеюсь тебе заплатят за доработку. В этом плане все отлично. Платежеспособная потребность есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 07:43 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДима. Ты действительно думаешь что 2-3% потенциальной скорости - это та вещь за которую нужно бороться. И решать различные проблемы канала? И писать кастомный софт? И создавать свой протокол? mayton, ты неправ! Поизучал немного TCP (опыт реального использования меньше двух недель см. выше когда начал). Эйфория от его простоты и быстрости улетучилась. Ничего там не просто если хочешь асинхронно с ним работать, надо городить свой протокол поверх. UDPшная надстройка подошла для ускорения TCP (с небольшими поправками), но на медленных каналах только усложняет все. В принципе есть мысли как сгладить проблемные места, но не нравятся они мне, полумеры какие-то. Сейчас отдельный топик заведу про асинхронную работу с TCP. С одной стороны пока пишешь - мысли упорядовачиваются, с другой - может кому пригодятся мои измышления, может кто идею подкинет или в нужную сторону направит (спецов по TCP тут вроде много). По поводу скоростей TCP и UDP: до хостингов это не 2-3%, а до 2-3 раз. Один из случаев шлю 3 мб туда-обратно (раз 20 запускал): UDP стабильно дает под 60 мбит (пару раз 40-50), TCP туда от 20 до 40 (один раз под 60), обратно 40-60. Как они строют распределение пропускной способности не знаю, но вижу что строют и затачивают на исходящий трафик, а UDP эту заточку просто не попадает, хотя тоже не факт что при большом UDP-трафике не начнут против него затачиваться. Это хороший хостинг (он падает меньше всех из мною используемых), на плохом все отлично 100 мбит в обе стороны по обоим протоколам (может больше, я по 100 мбит подключен), но этот хостинг может запросто упасть на пару дней (было), как понимаю просто криворукие админы не умеют сбаллансировать нагрузку и при ддосе все просто умирает, т.е. сделал вывод там где умные админы скоростей ожидать не стоит, а там где тупые - надежности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 19:17 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TПо поводу скоростей TCP и UDP: до хостингов это не 2-3%, а до 2-3 раз. Один из случаев шлю 3 мб туда-обратно (раз 20 запускал): UDP стабильно дает под 60 мбит (пару раз 40-50), TCP туда от 20 до 40 (один раз под 60), обратно 40-60. Как они строют распределение пропускной способности не знаю, но вижу что строют и затачивают на исходящий трафик, а UDP эту заточку просто не попадает, хотя тоже не факт что при большом UDP-трафике не начнут против него затачиваться.. Скорее всего ты наткнулся на TCP-shaper. Для UDP его просто не настраивали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 20:12 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonСкорее всего ты наткнулся на TCP-shaper. Для UDP его просто не настраивали. Я в нескольких местах на него наткнулся. Описал один из случаев. То что он появится для UDP не сомневаюсь, если ощутимый трафик будет. Но сомнительно что он появится в оконечных подключениях, т.е. те самые А-Б которые не могут себе TCP позволить. Они будут ограничены только скоростью своего безлимитного тарифа. Как показали мои испытания на моем говнопровайдере - заявленные 40 мбит я получаю по UDP стабильно, а по TCP через него не видел больше 30-32, т.е. как-то он зажимает TCP. Второй провайдер почти одинаково пропускает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2015, 22:01 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
UP. Дима. Друзья. Хорошая тема стухла. На днях подключу свой Raspberry-Pi к ноутбуку. Полезность эксперимента в том что подключу к ноуту перевернутым патч-кордом и можно померять скорость на максимуме. Между двух Линуксов вобщем. На Raspberry стоит какой-то клон Debian. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 20:52 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Тема не стухла. Я ее думаю вместе с акторами. Но как-то рука не поднимается взять и написать. Наверно пора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 20:55 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonНа днях подключу свой Raspberry-Pi к ноутбуку. Полезность эксперимента в том что подключу к ноуту перевернутым патч-кордом и можно померять скорость на максимуме. Тухлый эксперимент, не могут они гигабит выжать, процы слабые. Мерил на кубике (cubie), из 100 мбит с трудом 50 выдает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 20:59 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Да я тут не про акторы. А про сетку. Померять. Но это первичная цель. Вторичная : померять всё тоже самое под SSL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 21:00 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Ну и wifi. Давно хочу добраться до него. Разгромить этот маркетинговый шлак. На коробке написано - 300Мбит. Посмотрим какие там триста. Еще интересно когда роутер держит 2 соединения. Как он там? По частотам? По частоте + ВРК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 21:04 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonНу и wifi. Давно хочу добраться до него. Разгромить этот маркетинговый шлак. На коробке написано - 300Мбит. Посмотрим какие там триста. Еще интересно когда роутер держит 2 соединения. Как он там? По частотам? По частоте + ВРК? Это как с дисками. Может и есть 300 потоком в одну сторону, а туда-сюда - тормоза. Я уже писал что в терминале работаю, дома вайфай в нем впн до работы и терминал, по вайфаю было как в пошаговой стратегии, прокинул провод от роутера до компа - стало все хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 21:17 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonДа я тут не про акторы. А про сетку. Померять. Но это первичная цель. В этой теме я понял что гигабит это не про сетку. Подготовка к отправке в сеть тоже должна соответствовать, т.е. тормоза начинаются в подготовке данных для отправки. Надо параллелить, т.е. акторы )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 21:24 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TЭто как с дисками. Может и есть 300 потоком в одну сторону, а туда-сюда - тормоза. Я уже писал что в терминале работаю, дома вайфай в нем впн до работы и терминал, по вайфаю было как в пошаговой стратегии, прокинул провод от роутера до компа - стало все хорошо. Windows-терминал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 21:34 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonWindows-терминал? RDP Рабочее место в виртуалке, цепляюсь по VPN к офису, дальше по RDP к виртуалке. Если в офисе, то просто RDP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 21:39 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonWindows-терминал? RDP Рабочее место в виртуалке, цепляюсь по VPN к офису, дальше по RDP к виртуалке. Если в офисе, то просто RDP У меня было подозрение что RDP фиксирует не графическую картинку как Radmin или VNC, а поток графических событий. Доказать это предположение я не смог. Это был эпизод когда я наблюдал дикие тормоза толстого клиента двузвенки в момент отрисовки контрола типа ComboBox. Когда я подключался через Radmin или VNC (независимо от опций графики или сжатия) я получал нормальную скорость. И тогда у меня возникло подозрение что RDP требует очень низкой латентности как-раз для мелких каллбеков в обе стороны когда нужен не поток кадров в одну сторону (любой модем вытянет куле) а именно каллбек. Реквест и респонс. И респонс - без лагов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 23:16 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
RDP он разный. Для Windows 7/Server 2008R2, в версии 8.0 , обновлены клиентские и серверные компоненты. Есть RemoteFX for WAN, умеющий использовать UDP. В версии 8.1 обновлён RDP-клиент Windows 7/Server 2008R2, чтобы использовать разные фишки обновлённых RDP-хостов с Windows 8.1/Server 2012R2. Отдельно замечу, что все эти обновления - "рекомендуемые", а не "важные". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2018, 23:58 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonУ меня было подозрение что RDP фиксирует не графическую картинку как Radmin или VNC, а поток графических событий. Ну это как бы документированный факт: по RDP прёт метафайл GDI примитивов. Поэтому-то библиотеки, отрисовывающие контролы самостоятельно, (включая Qt и дельфийскую VCL) при работе через него так тормозят. Тут он от Х ничем не отличается. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 00:20 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonНу и wifi. Давно хочу добраться до него. Разгромить этот маркетинговый шлак. На коробке написано - 300Мбит. Посмотрим какие там триста. Еще интересно когда роутер держит 2 соединения. Как он там? По частотам? По частоте + ВРК? Там 12 каналов вроде бы, и еще есть возможность сдваивания. Но в целом, я поебрался с микротиком - довольно печально все. Может быть и 300, а через минуту 70. Но уже есть 820.11 ac, только я не видел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 00:23 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovmaytonУ меня было подозрение что RDP фиксирует не графическую картинку как Radmin или VNC, а поток графических событий. Ну это как бы документированный факт: по RDP прёт метафайл GDI примитивов. Поэтому-то библиотеки, отрисовывающие контролы самостоятельно, (включая Qt и дельфийскую VCL) при работе через него так тормозят. Тут он от Х ничем не отличается. Давай ссылку, потому что с Висты через ГДИ все меньше работающих. А изменений в работе РДП я не замечаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 00:25 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Кто может на винду поставить RDP + VNC и сравнить субъективно? На графическом приложении где очень много всяких контролов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 00:42 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
maytonУ меня было подозрение что RDP фиксирует не графическую картинку как Radmin или VNC, а поток графических событий. Доказать это предположение я не смог. У меня такое же подозрение. Доказать случайно получилось: запускал расчет с выводом состояния (счетчик) в контрол и при работе в локалке считалось быстрее чем издалека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 08:15 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonУ меня было подозрение что RDP фиксирует не графическую картинку как Radmin или VNC, а поток графических событий. Доказать это предположение я не смог. У меня такое же подозрение. Доказать случайно получилось: запускал расчет с выводом состояния (счетчик) в контрол и при работе в локалке считалось быстрее чем издалека. У тебя хоть картинка менялась. Счетчик. А у нас - хуже было. UI внешне не меняется - но непонятный сетевой трафик идёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 12:25 |
|
||
|
Как выжать весь гигабит по UDP?
|
|||
|---|---|---|---|
|
#18+
SiemarglДавай ссылку, потому что с Висты через ГДИ все меньше работающих. А изменений в работе РДП я не замечаю https://docs.microsoft.com/ru-ru/windows/desktop/TermServ/remote-desktop-protocol On the server, RDP uses its own video driver to render display output by constructing the rendering information into network packets by using RDP protocol and sending them over the network to the client. On the client, RDP receives rendering data and interprets the packets into corresponding Microsoft Windows graphics device interface (GDI) API calls. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2018, 12:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2017824]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
143ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 257ms |

| 0 / 0 |
