From: Eric Dumazet <dada1@cosmosbay.com>
To: brice.videau@imag.fr
Cc: linux-kernel@vger.kernel.org
Subject: Re: Strange connect behavior
Date: Mon, 30 Oct 2006 11:32:57 +0100 [thread overview]
Message-ID: <200610301132.57769.dada1@cosmosbay.com> (raw)
In-Reply-To: <4545D2FA.3030802@imag.fr>
On Monday 30 October 2006 11:24, Videau Brice wrote:
> Hello,
>
> While writing some client server application in c, we noticed a strange
> behavior : if we try to connect endlessly to a given local port where
> nobody is listening, and if the port is >= to 32768, after several
> thousands tries ( Connection refused ) connect will return 0.
> This behavior is not exhibited when port is < 32768.
>
Hello Brice
Yes, it's quite possible your attempts are hitting themselves.
Hint :
cat /proc/sys/net/ipv4/ip_local_port_range
When you connect(), TCP stack automatically chose a source port and bind your
outgoing socket. If the chosen port happens to be 35489 (your 'destination'
port), then the connect succeeds (you're connected to yourself), as specified
by TCP specs.
> We confirmed this behavior in kernel 2.6.17-10, 2.6.18-1, 2.6.8, on x86
> and 2.4.21-32 on ia64, on several hardware configurations.
> Distribution is debian or ubuntu.
>
> Attached is a source file that demonstrate this behavior.
> ./a.out port_number
>
> Sample execution :
>
> ./a.out 35489
> Out port : 35489
> connect try 1 failed : Connection refused
> connect try 2 failed : Connection refused
> connect try 3 failed : Connection refused
> .....
> connect try 6089 failed : Connection refused
> connect try 6090 failed : Connection refused
> Connection success : 6091 try
> Connection closed
> last error : Connection refused
>
>
> Is this behavior to be expected?
> Can it be disabled?
>
> Thanks in advance.
>
> Regards,
>
> Brice Videau
next prev parent reply other threads:[~2006-10-30 10:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-30 10:24 Strange connect behavior Videau Brice
2006-10-30 10:32 ` Eric Dumazet [this message]
2006-10-30 11:24 ` Videau Brice
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200610301132.57769.dada1@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=brice.videau@imag.fr \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox