From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Netchannels: alternative TCP/IP stack?
Date: Tue, 13 Jun 2006 21:33:21 +0400 [thread overview]
Message-ID: <20060613173321.GA648@2ka.mipt.ru> (raw)
In-Reply-To: <20060608171555.GA10273@2ka.mipt.ru>
Hello, developers.
I've implemented simple rfc793 TCP/IP stack, which is currently tested
in userspace through packet socket. After ISO (~650Mb) transfer over
gigabit ethernet between two Linux boxes, file was not corrupted.
I would even say that stack is really trivial (1800 lines of code, 42K
of sources where TCP state machine takes about 12K), but it includes:
* routing table for src/dst IP and MAC addresses (O(n) access).
It includes static destination routing and ARP cache.
No dynamic ARP probes.
* socket-like (actually netchannel-like) interface for data reading.
* ethernet sending/receiving support.
* IP sending/receiving support.
* TCP (rfc793) state machine implementation.
* UDP code (not tested).
Current code does not have options and TCP extensions, ack generation
does not use any heueristics, no congestion control, no prediction
(although I have some doubts about that idea), no ICMP.
Sending was not tested yet.
Next option in agenda is to check various loss and reordering
issues. Then I plan to implement PAWS and timestamp TCP option.
MSS option would be usefull too.
I want to run various tests with congestions to collect some statistic
about generic TCP/IP behaviour, so I would like to ask
how much it will be frowned upon if I will use that simple stack for
netchannels (I plan to use only alternative TCP part with generic Linux
routing tables, IP and ethernet processing and so on)
and if miracle happens (it happens sometimes) and results will be better
than it is now [1] (it is planned if paid job will not get all the time)
and I will start pushing it upstream?
Or is it better to just make lobotomy right now?
1. Netchannel benchmarks vs. socket code.
http://tservice.net.ru/~s0mbre/old/?section=projects&item=netchannel
Thank you.
--
Evgeniy Polyakov
next prev parent reply other threads:[~2006-06-13 17:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-08 17:15 Netchannels: netchannel vs. socket. 2:0 Evgeniy Polyakov
2006-06-08 17:40 ` Evgeniy Polyakov
2006-06-08 23:00 ` Hans Henrik Happe
2006-06-09 5:09 ` Evgeniy Polyakov
2006-06-13 17:33 ` Evgeniy Polyakov [this message]
2006-06-29 9:38 ` Netchannels: progress report Evgeniy Polyakov
2006-06-29 17:19 ` James Morris
2006-06-29 18:15 ` Evgeniy Polyakov
2006-07-10 13:23 ` Netchannels: progress report. Sending benchmark Evgeniy Polyakov
2006-07-10 13:32 ` Evgeniy Polyakov
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=20060613173321.GA648@2ka.mipt.ru \
--to=johnpol@2ka.mipt.ru \
--cc=davem@davemloft.net \
--cc=netdev@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;
as well as URLs for NNTP newsgroup(s).