* more than 65535 outbound connections
[not found] <85e0e3140703090016h609ecc5t504121a99bcd3e44@mail.gmail.com>
@ 2007-03-09 8:19 ` Niklaus
2007-03-09 8:36 ` Florian Weimer
2007-03-09 11:04 ` Matti Aarnio
0 siblings, 2 replies; 6+ messages in thread
From: Niklaus @ 2007-03-09 8:19 UTC (permalink / raw)
To: linux-kernel
Hi,
I could be wrong in the below description or might have misunderstood
many of the concepts , please correct appropriately.
65535 ports can allowed . So on a machine namely C you can have max
65535 outbound connections
What i was thinking was to send to another machines A and B from the
same port [X] and then when we get data from it to [X] we can the send
it to the correct application using stateful mapping or storing some
information . The machines A and B are unaware of this mapping from
the C machine.
Can we increase it by anymeans in the kernel. Does we have patches for the above
i read on the web that terry lambert has got 1.6 million simultaneous
connection ? how is the way it is done.
http://kerneltrap.org/node/277
Regs
Nik
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: more than 65535 outbound connections
2007-03-09 8:36 ` Florian Weimer
@ 2007-03-09 8:31 ` David Lang
2007-03-09 10:43 ` Niklaus
0 siblings, 1 reply; 6+ messages in thread
From: David Lang @ 2007-03-09 8:31 UTC (permalink / raw)
To: Florian Weimer; +Cc: Niklaus, linux-kernel
On Fri, 9 Mar 2007, Florian Weimer wrote:
>> i read on the web that terry lambert has got 1.6 million simultaneous
>> connection ? how is the way it is done.
>
> Multiple IP addresses, I guess.
what must be unique is the four-parts of a connection
source IP, source port, destination IP, destination port
as long as the set is unique any element can be re-used (a big webserver has one
IP and port on the server side, but many IPs and ports on the client side)
when you make a connection you have the option of not specifying the source IP
and port (letting the OS/library pick ones for you). some libraries will not
re-use the same source port for multiple connections, others will (with the
appropriate options)
if you want to have your program assign the source IPs and port itself you can
do so (you may have to also give the library/os a flag that tells it you know
what you're doing, and it's ok to let you re-use ports)
David Lang
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: more than 65535 outbound connections
2007-03-09 8:19 ` more than 65535 outbound connections Niklaus
@ 2007-03-09 8:36 ` Florian Weimer
2007-03-09 8:31 ` David Lang
2007-03-09 11:04 ` Matti Aarnio
1 sibling, 1 reply; 6+ messages in thread
From: Florian Weimer @ 2007-03-09 8:36 UTC (permalink / raw)
To: Niklaus; +Cc: linux-kernel
> i read on the web that terry lambert has got 1.6 million simultaneous
> connection ? how is the way it is done.
Multiple IP addresses, I guess.
--
Florian Weimer <fweimer@bfk.de>
BFK edv-consulting GmbH http://www.bfk.de/
Kriegsstraße 100 tel: +49-721-96201-1
D-76133 Karlsruhe fax: +49-721-96201-99
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: more than 65535 outbound connections
2007-03-09 8:31 ` David Lang
@ 2007-03-09 10:43 ` Niklaus
2007-03-09 11:11 ` Matti Aarnio
0 siblings, 1 reply; 6+ messages in thread
From: Niklaus @ 2007-03-09 10:43 UTC (permalink / raw)
Cc: linux-kernel
On 3/9/07, David Lang <david.lang@digitalinsight.com> wrote:
> On Fri, 9 Mar 2007, Florian Weimer wrote:
>
> >> i read on the web that terry lambert has got 1.6 million simultaneous
> >> connection ? how is the way it is done.
> >
> > Multiple IP addresses, I guess.
>
> what must be unique is the four-parts of a connection
> source IP, source port, destination IP, destination port
>
> as long as the set is unique any element can be re-used (a big webserver has one
> IP and port on the server side, but many IPs and ports on the client side)
>
> when you make a connection you have the option of not specifying the source IP
> and port (letting the OS/library pick ones for you). some libraries will not
> re-use the same source port for multiple connections, others will (with the
> appropriate options)
>
> if you want to have your program assign the source IPs and port itself you can
> do so (you may have to also give the library/os a flag that tells it you know
> what you're doing, and it's ok to let you re-use ports)
>
yes now lets take 2 dest machines , source ip is fixed , source port (2^16 - 1)
destip is fixed (a.a.a.a and b.b.b.b) ,dest port(2^16 -1) each ,
for a connection we have one port used , say connection 1 is
source ip,port 1 , a.a.a.a port 1
source ip,port 2 , a.a.a.a port 2
.
.
.
source ip,port 65535 , a.a.a.a port 65535
so total of 65535 connections (assume traffic is still going on, a
movie on a slow line dialup or 1kbps )
now if i try to open another connection (assume lots of file
descriptors are present) to a.a.a.a what happens
to b.b.b.b what happens
i think both will not get established as the OS doesn't have any free
source ports or am i wrong
> David Lang
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: more than 65535 outbound connections
2007-03-09 8:19 ` more than 65535 outbound connections Niklaus
2007-03-09 8:36 ` Florian Weimer
@ 2007-03-09 11:04 ` Matti Aarnio
1 sibling, 0 replies; 6+ messages in thread
From: Matti Aarnio @ 2007-03-09 11:04 UTC (permalink / raw)
To: Niklaus; +Cc: linux-kernel
On Fri, Mar 09, 2007 at 01:49:34PM +0530, Niklaus wrote:
> Hi,
>
> I could be wrong in the below description or might have misunderstood
> many of the concepts , please correct appropriately.
>
> 65535 ports can allowed . So on a machine namely C you can have max
> 65535 outbound connections
IP connections are quads (four-tuples), machine A and B IP addresses,
plus 16 bit port numbers at both ends.
You can have about 64 k * 3 G = 192 T connections out from a machine
to any single port number out there to all existing IP addresses.
If A.ip, B.ip, and B.port stay the same, A can setup up to some
10 - 50 thousand parallel connections. (Depending on allowed dynamic
source IP port number space at machine A.)
If either B.ip or B.port changes, A can reuse a port that is actively
connected to something. Resulting four-tuple is different -> connection
is different.
Does Linux reuse port numbers in this way ?
It most likely does, but I didn't verify.
> What i was thinking was to send to another machines A and B from the
> same port [X] and then when we get data from it to [X] we can the send
> it to the correct application using stateful mapping or storing some
> information . The machines A and B are unaware of this mapping from
> the C machine.
You want to make a "L4 switch" -- a "load balancer" ?
That thing is a NAT-box, and is really not making buffered TCP flows,
but rather mapping IP/TCP header rewriters to divert the flows to new
destinations.
> Can we increase it by anymeans in the kernel. Does we have patches for the
> above
>
> i read on the web that terry lambert has got 1.6 million simultaneous
> connection ? how is the way it is done.
>
> http://kerneltrap.org/node/277
With 50 thousand connections per single ( A.ip / B.ip / B.port ) set,
one needs only 32 B.ports or A.ip:s or B.ip:s to do that 1.6 million
parallel TCP streams.
Such does eat up lots and lots system kernel memory...
> Regs
> Nik
/Matti Aarnio
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: more than 65535 outbound connections
2007-03-09 10:43 ` Niklaus
@ 2007-03-09 11:11 ` Matti Aarnio
0 siblings, 0 replies; 6+ messages in thread
From: Matti Aarnio @ 2007-03-09 11:11 UTC (permalink / raw)
To: Niklaus; +Cc: linux-kernel
On Fri, Mar 09, 2007 at 04:13:00PM +0530, Niklaus wrote:
> yes now lets take 2 dest machines , source ip is fixed , source port (2^16
> - 1)
> destip is fixed (a.a.a.a and b.b.b.b) ,dest port(2^16 -1) each ,
>
> for a connection we have one port used , say connection 1 is
>
> source ip,port 1 , a.a.a.a port 1
> source ip,port 2 , a.a.a.a port 2
> .
> .
> .
> source ip,port 65535 , a.a.a.a port 65535
You do have some sort of fixation of having same port numbers at both ends.
In some rare applications that is done (e.g. with NTP server-server connections
using UDP), but it is very rare and never done with TCP.
Now if you have 65535 server ports at a.a.a.a, you can have very nearly
4000 million TCP streams in between them.
> so total of 65535 connections (assume traffic is still going on, a
> movie on a slow line dialup or 1kbps )
>
> now if i try to open another connection (assume lots of file
> descriptors are present) to a.a.a.a what happens
>
> to b.b.b.b what happens
>
> i think both will not get established as the OS doesn't have any free
> source ports or am i wrong
you are wrong.
> >David Lang
/Matti Aarnio
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-03-09 11:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <85e0e3140703090016h609ecc5t504121a99bcd3e44@mail.gmail.com>
2007-03-09 8:19 ` more than 65535 outbound connections Niklaus
2007-03-09 8:36 ` Florian Weimer
2007-03-09 8:31 ` David Lang
2007-03-09 10:43 ` Niklaus
2007-03-09 11:11 ` Matti Aarnio
2007-03-09 11:04 ` Matti Aarnio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®