* 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: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: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: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 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
* 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
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®