Как найти количество эфемерных портов в использовании?

У меня есть ситуация, когда я сталкиваюсь с эфемерным истощением порта, которое затем вызывает исключения. Я хотел бы ограничить соединения, чтобы избежать этого. Есть ли способ определить количество используемых эфемерных портов?

Спасибо эрик

2 ответа

Для получения списка открытых соединений вы можете использовать команду netstat. Вопреки распространенному мнению (из других ответов) количество портов Ephemeral ограничено (4000 в Windows 2003, около 16000 в более поздних версиях, 16000 в большинстве Linux). Также обратите внимание, что освобождение порта занимает 4 минуты, как только он становится неиспользованным, поэтому это действительно может быть проблемой.

Есть статья на MSDN, посвященная этому: http://msdn.microsoft.com/en-us/library/aa560610%28v=bts.20%29.aspx

Единственный способ исчерпать эфемерные TCP-порты - это если вы клиент, и вы открыли почти 64 тыс. Исходящих соединений, а не закрыли их в течение последних двух минут.

Это иногда случается в тестовых сценариях, но не представляет реальной ситуации, поэтому не представляет особого интереса.

Признак этого - ошибки привязки при соединении. Если вы не получаете ошибок связывания, у вас нет этой проблемы.

Другие вопросы по тегам