С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
4 / 4 / 1
Регистрация: 03.07.2012
Сообщений: 37
1

TCP и производительность

26.12.2012, 20:06. Показов 774. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Такая ситуация. Нужно переслать больше количество информации по tcp соединению и записать эти данные на диск.
Данные отправляются порциями размером до 64 кб. ( структурами).
Нужно получить максимально возможную скорость передачи данных и при этом минимальные расходы ресурсов клиента и сервера. В какую сторону капать?
Заранее благодарю)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
26.12.2012, 20:06
Ответы с готовыми решениями:

TCP/IP пакеты. Как можно изменить служебные параметры заголовка TCP или UDP?
Всем привет! Работаю с передачей данных через интернет. Как можно изменить служебные параметры...

как создать TCP клиент, TCP сервер ? На С++
Очень нужна помощь!Как написать TCP клиент, TCP сервер. Например,клиент вводит строку с клавиатуры...

Производительность epoll_wait
Всегда делал для чтения с сокетов несколько потоков, и распределял конекты по потокам. То есть в...

Производительность сервера
Доброго времени суток. Пишу лаунчер, под приватный игровой сервер, собственно, проблем нет особых...

6
51 / 49 / 7
Регистрация: 31.10.2011
Сообщений: 98
26.12.2012, 20:43 2
Копните в сторону профилирования - найдите, что является узким местом, какой процент потери пакетов. Почитайте про быстрые ретрансмиты, delayed ack'и (если проблема в этом). Попробуйте разные протоколы сетевого уровня - ipv4, ipv6. В *nix скажите sysctl -a | grep tcp, смотрите, какие нужные вам ручки вы можете покрутить. Кроме того, реализаций tcp в ядре может быть несколько - попробуйте разные. Не забывайте, что передачу может аффектить состояние сети - если кроме вашего траффика есть другой, поэтому порпобуйте разные варианты congestion control.
1
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,415
26.12.2012, 20:50 3
Цитата Сообщение от RoXaSTry Посмотреть сообщение
Данные отправляются порциями размером до 64 кб
наверное без разницы какими кусками вы пихаете в поток - он будет резать на фрагменты без вас руководствуясь настройками. мб покрутить буфер передачи/приема
1
166 / 164 / 27
Регистрация: 20.04.2010
Сообщений: 607
27.12.2012, 09:30 4
Мой совет... Тупо записывайте данные в цикле, не заворачиваясь на прочее. Лучше этого быстродействие не получите. И на сколько мне известно,чем больше кусок вы закинете разом,тем лучше для карты.
1
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
29.12.2012, 10:07 5
простым увеличением буфера этого не добиться. Слишком много факторов, влияющих на передачу/приём. и если локально где-то система и будет работать приемлемо, то в другом месте может сильно просесть. А вообще это тема, если и не диплома, то курсовой точно.
0
4 / 4 / 1
Регистрация: 03.07.2012
Сообщений: 37
29.12.2012, 15:07  [ТС] 6
Цитата Сообщение от villu Посмотреть сообщение
простым увеличением буфера этого не добиться. Слишком много факторов, влияющих на передачу/приём. и если локально где-то система и будет работать приемлемо, то в другом месте может сильно просесть. А вообще это тема, если и не диплома, то курсовой точно.
Вопрос был задан для того, чтобы узнать, как это можно сделать, а не что мне в данном случае не поможет. И если для вас очень важно, то говорю, это мне нужно не для курсовой или диплома.
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
29.12.2012, 15:33 7
а я и не говорил что тебе нужно для диплома. я лишь сказал, что это не просто, вот так вот взять и получить "максимально возможную скорость". Люди по этой теме целые курсовые пишут с кучей выкладок и измерений.

из основных телодвижений - манипуляция размерами отправного/приемного буферов сокета (не путать с теми 65 килобайтами, что у тебя),
Смотреть на SO_SNDBUF/SO_RECVBUF
0
29.12.2012, 15:33
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
29.12.2012, 15:33
Помогаю со студенческими работами здесь

Зависит ли производительность приложения от версии ABI?
Привет народ, такой вопрос: начал тут копаться в командах GCC и наткнулся на -fabi-version= n, где...

Сцена зависает при запуске TCP-клиента, когда он подключен к TCP - серверу, при этом TCP-клиент полностью функционирует
Проблема описана в заголовке, и хотелось бы услышать ваше мнение, о том как можно решить проблему....

Реализовать на tcp сокетах переподключение к tcp серверу в случае потери соединения
Всем привет, подскажите как можно реализовать на tcp сокетах переподключение к tcp серверу в случае...

Если сервер TCP то и клиент тоже должен быть TCP?
Я полный новичок И я так понимаю есть TCP client (Sockets), TCP server (Sockets), и ClientSocket...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Блоги программистов
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(шес­­­­­­тиби­тный асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru