Re: Strange connect behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux