Ядро Linux - какая функция содержит источник, где номера портов выбираются случайным образом? - PullRequest
9 голосов
/ 27 февраля 2010

Кто-нибудь знает, какая функция или файл в linux содержит алгоритм, который находит случайный порт для использования для системного вызова bind ()? Я охочусь по всему и не могу найти метод, который содержит этот алгоритм в источнике Linux.

Спасибо!

Ответы [ 3 ]

6 голосов
/ 27 февраля 2010

Это длинный и сложный кусок кода, который я не хочу пытаться взломать. : -)

Посмотрите на функцию inet_csk_get_portnet/ipv4/inet_connection_sock.c) для TCP и udp_lib_get_portnet/ipv4/udp.c) для UDP. Это действительно, по крайней мере, для 2.6.31, хотя может отличаться для разных версий.

0 голосов
/ 19 марта 2014

Я нашел эти два ресурса очень полезными, когда пришло понимание, как выбрать номер порта источника в linux:

  1. https://ixlabs.cs.pub.ro/redmine/attachments/199/AlocarePorturi-AlexandruCopot.pdf
  2. http://aleccolocco.blogspot.co.il/2008/11/ephemeral-ports-problem-and-solution.html
0 голосов
/ 27 февраля 2010
...