Winsock: максимальное количество TCP соединений

Тема в разделе "WASM.NETWORKS", создана пользователем iZzz32, 16 авг 2007.

  1. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Началось всё с 500000 подключений в Mail.Ru Agent (да, я знаю, что у них несколько (8?) серверов; да, я знаю, что у них Linux), но вот теперь такой вопрос интересует:
    (А вообще, тему удалить можно, извините).
     
  2. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    На winsock.com написано другое (что при использовании OverlappedIO возможна тысяча параллельных коннектов, а с остальными вариантами - асинхронными и синхронными - менее тысячи). Возможно статья устарела, но не думаю, чтобы сильно. Так же как и потоки - в мсдн написано, что количество потоков может быть не более 2028 (учитывая выделение на стек потока по дефолту 1 мб памяти) - при этом сказано, что при явном указании размера стека потока в CreateThread число потоков может быть гораздо большим. На самом деле на опыте собственном убедился в обратном (максимальное число потоков - 1972 - стек причем по 4 кб всего явно установленный)
     
  3. Pushkoff

    Pushkoff New Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    40
    Адрес:
    Донецк
    на геймдеве картинка есть вот такая
    [​IMG]
    Обратите внимание на количество подключений в последних строках
     
  4. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    вообще схема один клиент - один поток для большого к-ва соединений неприемлема.
    порты завершения обычно используют
     
  5. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    взята из книги
    там тестят на echo-серверах.

    Думаю, что серьёзно. Тот же nginx на rambler.ru
    держит (проксирует) 200000 соединений и, как говорит Игорь, это далеко не предел.
    Правда там FreeBSD стоят, но nginx собирается и под Windows, правда win-сборка не доступна
    публично и возможно не так производительна, как её *nux брат.
     
  6. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    там в основном проблема типа C10K

    http://www.opennet.ru/links/info/675.shtml
     
  7. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Большое спасибо всем за ответы.

    Практически всё, что меня интересовало, нашлось по ссылкам на странице C10K, кое-что на SysInternals.
    Понравилась вот эта презентация — понятно даже начинающему (правда, не про Windows).
     
  8. Gomes

    Gomes New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2007
    Сообщения:
    2
    Я делал около 100 000 подключений под 2000 сервером. Дальше загибались клиенты - было мало клиентских машин для тестов. Так что подключений может быть много, вопрос в том что они будут делать и хватит ли на это ресурсов.
     
  9. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    У меня возник такой вопрос по сокетам (не хочу новую тему создавать, решил спросить тут)
    создаю асинхронные сокеты, привязываю их к окну, может ли прийти сообщение от сокета если предыдущее ещё не обработано?
     
  10. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
  11. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Perre
    нафиг привязывать к окну? порты завершения рулят.
     
  12. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    slow, для сабжа — да, но для простенького сетевого клиента рулят именно оконные сообщения.
     
  13. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    iZzz32
    Не хочу спорить. Каждому свое ;о)
     
  14. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    Slow а как можно сделать без привязке к окну? К чему ещё можно привязывать? Не на патоках делать же ?
    Slow я в сетевую область только изучаю, и понятия не имею как лучше сделать простенький сервер к которому будет подключено максимум 1500 компьютеров.
     
  15. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    1500 не потянет ни в одном из случаев. 1500 потоков ты по любому не сделаешь. А с окнами он просто работать не будет, потому что очередь сообщений окна имеет очень конечный размер, и все сообщения поверх лимита просто исчезают в никуда. Проще говоря событийная модель не будет и при трети данного количества работать, знаю по опыту.
    А все нормальные сервера приличного размера, помойму только на select пишут. Не знаю был ли о нём тут разговор или нет.
     
  16. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    У Коко есть исходиники подобного сервера на select.
    Или хоть ссылку на документацию,
    Если можно объясните в двух словах как оно работает.
     
  17. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Perre, книга A. Jones, J. Ohlund «Network Programming for Microsoft Windows, 2nd Edition» ответит на многие твои вопросы, там же и исходники есть.
    Proteus, про только select можешь почитать в ссылках в сообщении №7 в этой теме.
     
  18. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Perre
    ну есть еще WSAEnumNetworkEvents и т.д.

    а можно и на пуле потоков. только в этом случае порты завершения удобнее.
     
  19. Perre

    Perre New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    100
    iZzz32 и slow спасибо буду разгребать
     
  20. Gomes

    Gomes New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2007
    Сообщения:
    2
    2Perre
    Изучай сразу порты завершения. На всякие select-ы и прочее забей.