|
|
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
Ситуация: хост должен держать открытыми _много_ (больше 64к) "живых" tcp-сессий. Есть техника, которая реализует это средствами iptables (раскидывает по алиасам какого-нибудь локального интерфейса). А как еще этого можно достичь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 15:45 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
Денис, спасибо за активность, но это не то... обратите внимание на слово "живых". Хост должен поддерживать "много живых" соединений. Насколько я понимаю, SO_REUSEADDR - это просто способ "быстро" закрывать сокеты, не дожидаясь подтверждения от peer о закрытии соединения. Ещё варианты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 16:05 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
code8Денис, спасибо за активность, но это не то... обратите внимание на слово "живых". Хост должен поддерживать "много живых" соединений. Насколько я понимаю, SO_REUSEADDR - это просто способ "быстро" закрывать сокеты, не дожидаясь подтверждения от peer о закрытии соединения. Ещё варианты ? вот ссылочка, где это обсуждается http://stackoverflow.com/questions/3229860/what-is-the-meaning-of-so-reuseaddr-setsockopt-option-linux ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 16:20 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
code8Денис, спасибо за активность, но это не то... обратите внимание на слово "живых". Хост должен поддерживать "много живых" соединений. Насколько я понимаю, SO_REUSEADDR - это просто способ "быстро" закрывать сокеты, не дожидаясь подтверждения от peer о закрытии соединения. Ещё варианты ?Прочитайте уже текст. Внимательно. жжTCP различает между соединения не по номеру локального порта, а по тупле {local_addr,local_port,remote_addr,remote_port} это верно в обе стороны, и на вход и на выход ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 16:22 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис, This socket option tells the kernel that even if this port is busy (in the TIME_WAIT state), go ahead and reuse it anyway. If it is busy, but with another state, you will still get an address already in use error. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 16:31 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
code8Журавлев Денис, This socket option tells the kernel that even if this port is busy (in the TIME_WAIT state), go ahead and reuse it anyway. If it is busy, but with another state, you will still get an address already in use error.тут противоречия нет никакого. SO_REUSEADDR позволяет использовать занятый сокет, это позволит с одного исходящего порта открыть много соединений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 16:37 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
А вообще если не нравится прямой путь, можете продираться через болото, я не против. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 16:38 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
Журавлев Денисcode8Журавлев Денис, This socket option tells the kernel that even if this port is busy (in the TIME_WAIT state), go ahead and reuse it anyway. If it is busy, but with another state, you will still get an address already in use error.тут противоречия нет никакого. SO_REUSEADDR позволяет использовать занятый сокет, это позволит с одного исходящего порта открыть много соединений. Денис, вам фраза in the TIME_WAIT state что говорит ? Вы проверяли способ SO_REUSEADDR ? Он работает ? На какой системе ? На какой версии ядра ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 17:34 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
а обязательно прям вот так именно на одном хосте держать ? есть же всякие балансеры, можно через днс раскидать на несколько хостов..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 11:23 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис, Да, Денис, Вы правы - это работает! Посыпаю голову пеплом... http://www.linux.org.ru/forum/development/6762711 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 00:49 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
Adekamer, в нашем случае, это уже, как бы, за балансером должно стоять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 00:51 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
code8Журавлев Денис, Да, Денис, Вы правы - это работает! Посыпаю голову пеплом... Поздравляю. code8 http://www.linux.org.ru/forum/development/6762711 Там тоже немало жира и 65тыс сокетов, 32 тыс тредов. Вы надеюсь не собираетесь тред/процесс создавать на каждый сокет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 08:44 |
|
||
|
Много соединений
|
|||
|---|---|---|---|
|
#18+
по поводу решения - где на один порт несколько сесий - это нифига не верное решение тк всякие наты и маскеды строят таблицы свои на основе как раз связки ип-порт а не внутренних заголовков пакетов поэтому если на пути окажется чтото маскирующее натяшее - то возможен пипец поэтому кушайте свои 64к и раздербанивайте задачу по разным ИП-хостам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2011, 10:36 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=37443832&tid=1484009]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
400ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 677ms |

| 0 / 0 |
