Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #96917
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Marko Rauhamaa <marko@pacujo.net> |
| Newsgroups | comp.lang.python |
| Subject | Re: Lightwight socket IO wrapper |
| Date | Mon, 21 Sep 2015 09:56:44 +0300 |
| Organization | A noiseless patient Spider |
| Lines | 39 |
| Message-ID | <87fv28p8er.fsf@elektro.pacujo.net> (permalink) |
| References | <CAPTjJmpLyuy==kY4hj11pGkRedhBS5vevitmzeDvwz8rQpSSag@mail.gmail.com> <20150921015514.GA70236@cskk.homeip.net> <mailman.17.1442803211.28679.python-list@python.org> <876134e683.fsf@elektro.pacujo.net> <mailman.20.1442810914.28679.python-list@python.org> |
| Mime-Version | 1.0 |
| Content-Type | text/plain |
| Injection-Info | mx02.eternal-september.org; posting-host="b7cb1518d23ec19d482dcc9c31d30fdd"; logging-data="1811"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+1VEU/4eMdgKfFfhPaQQQz" |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
| Cancel-Lock | sha1:t0WWUeS2o1e5FM9MmIPy3HSNMOc= sha1:+deZmrZuyogp5xGDIAG/TncI060= |
| Xref | csiph.com comp.lang.python:96917 |
Show key headers only | View raw
Chris Angelico <rosuav@gmail.com>: > On Mon, Sep 21, 2015 at 2:39 PM, Marko Rauhamaa <marko@pacujo.net> wrote: >> Chris Angelico <rosuav@gmail.com>: >> >>> If you write a packet of data, then write another one, and another, >>> and another, and another, without waiting for responses, Nagling >>> should combine them automatically. [...] >> >> Unfortunately, Nagle and delayed ACK, which are both defaults, don't go >> well together (you get nasty 200-millisecond hickups). > > Only in the write-write-read scenario. Which is the case you brought up. Ideally, application code should be oblivious to the inner heuristics of the TCP implementation. IOW, write-write-read is perfectly valid and shouldn't lead to performance degradation. Unfortunately, the socket API doesn't provide a standard way for the application to tell the kernel that it is done sending for now. Linux's TCP_CORK+TCP_NODELAY is a nonstandard way but does the job quite nicely. >> As for the topic, TCP doesn't need wrappers to abstract away the >> difficult bits. That's a superficially good idea that leads to >> trouble. > > Depends what you're doing - if you're working with a higher level > protocol like HTTP, then abstracting away the difficult bits of TCP is > part of abstracting away the difficult bits of HTTP, and something > like 'requests' is superb. Naturally, a higher-level protocol hides the lower-level protocol. It in turn has intricacies of its own. Unfortunately, Python's stdlib HTTP facilities are too naive (ie, blocking, incompatible with asyncio) to be usable. Marko
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Lightwight socket IO wrapper Chris Angelico <rosuav@gmail.com> - 2015-09-21 12:40 +1000
Re: Lightwight socket IO wrapper Marko Rauhamaa <marko@pacujo.net> - 2015-09-21 07:39 +0300
Re: Lightwight socket IO wrapper Chris Angelico <rosuav@gmail.com> - 2015-09-21 14:48 +1000
Re: Lightwight socket IO wrapper Marko Rauhamaa <marko@pacujo.net> - 2015-09-21 09:56 +0300
Re: Lightwight socket IO wrapper Michael Ströder <michael@stroeder.com> - 2015-09-21 09:02 +0200
Re: Lightwight socket IO wrapper Marko Rauhamaa <marko@pacujo.net> - 2015-09-21 10:57 +0300
Re: Lightwight socket IO wrapper Michael Ströder <michael@stroeder.com> - 2015-09-21 10:29 +0200
Re: Lightwight socket IO wrapper Marko Rauhamaa <marko@pacujo.net> - 2015-09-21 11:47 +0300
Re: Lightwight socket IO wrapper MRAB <python@mrabarnett.plus.com> - 2015-09-21 13:26 +0100
csiph-web