aboutsummaryrefslogtreecommitdiff
path: root/pipermail/nel/2001-February/000252.html
diff options
context:
space:
mode:
Diffstat (limited to 'pipermail/nel/2001-February/000252.html')
-rw-r--r--pipermail/nel/2001-February/000252.html104
1 files changed, 104 insertions, 0 deletions
diff --git a/pipermail/nel/2001-February/000252.html b/pipermail/nel/2001-February/000252.html
new file mode 100644
index 00000000..a3922258
--- /dev/null
+++ b/pipermail/nel/2001-February/000252.html
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [Nel] NeL Network Engine</TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:cado%40nevrax.com">
+ <LINK REL="Previous" HREF="000249.html">
+ <LINK REL="Next" HREF="000253.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[Nel] NeL Network Engine</H1>
+ <B>Olivier Cado</B>
+ <A HREF="mailto:cado%40nevrax.com"
+ TITLE="[Nel] NeL Network Engine">cado@nevrax.com</A><BR>
+ <I>Thu, 22 Feb 2001 16:41:12 +0100</I>
+ <P><UL>
+ <LI> Previous message: <A HREF="000249.html">[Nel] agent service</A></li>
+ <LI> Next message: <A HREF="000253.html">[Nel] NeL Network Engine</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#252">[ date ]</a>
+ <a href="thread.html#252">[ thread ]</a>
+ <a href="subject.html#252">[ subject ]</a>
+ <a href="author.html#252">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>We are very pleased that you are interested by NeL and our project.
+Thanks to free software, we are now working in cooperation with the
+community. So let's discuss some network issues.
+
+Here is the purpose of this message:
+- Present the future of the NeL Network Engine
+- Ask for your input on a couple of points
+
+At present, the Nel Network Engine is single-threaded. We plan to
+rewrite the engine using multi-threading. The library will be made up of
+five layers:
+- Layer 0: socket wrapper (roughly, present CBaseSocket + listening
+socket functionalities)
+- Layer 1: multiple socket multi-threaded I/O mechanism
+- Layer 2: adapted to CMemStream (allows serialization)
+- Layer 3: adapted to CMessage (contains type information)
+- Layer 4: using callbacks (as presently used in the services and
+provided by CMsgSocket)
+
+The main features of Layer 1 are as follows:
+
+External view:
+The user programmer will be able to send data (A), to check if some data
+has been received (B), and if so to get a data block from the receive
+queue.
+
+Implementation:
+(A) When the user requests to send data, his data block is put into a
+send queue. The actual sending is triggered off by a time flush trigger,
+a size flush trigger or an explicit flush trigger (at the user's
+demand). Let's say the queue control is executed in the main thread, in
+an update() method, called evenly.
+(B) Each connection is handled by a separate thread that sleeps while
+not receiving data so that no CPU time will be used if nothing is
+received on a particular socket. When incoming data is actually
+received, it is put into a global receive queue (synchronized with a
+mutex of course) and popped when the user requests to receive a block.
+
+This implementation still raises a few questions:
+(A) If no buffer space is available within the transport system to hold
+the data to be transmitted, the actual sending will block. Has anybody
+come across this case ? When does this happen in practice ?
+(B) As we are building a *massively* multiplayer game, we expect to have
+a great number of connections (even if all clients won't be connected on
+the same machine), therefore a great number of threads. Does anybody
+know the scale limits on Linux systems (and on Windows BTW), i.e. the
+optimum and maximum thread numbers per process and per system ?
+
+I'm sure a lot of you are great Linux specialists, so you probably have
+an idea about this issues.
+
+Thanks.
+Olivier Cado
+--
+<A HREF="http://www.nevrax.org">http://www.nevrax.org</A>
+
+</pre>
+
+
+
+
+
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI> Previous message: <A HREF="000249.html">[Nel] agent service</A></li>
+ <LI> Next message: <A HREF="000253.html">[Nel] NeL Network Engine</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#252">[ date ]</a>
+ <a href="thread.html#252">[ thread ]</a>
+ <a href="subject.html#252">[ subject ]</a>
+ <a href="author.html#252">[ author ]</a>
+ </LI>
+ </UL>
+</body></html>