10 ms·
Ultrafast single TCP packet audio/visual experience
- joosters 9y agoResponse headers: HTTP/1.1 200 k Content-Length: 1163 content-encoding: deflate I guess the '200 k' instead of '200 OK' saves an extra byte! :) However, since they don't do any HTTP keep-alives (the connection sends a HTTP response and closes before you even send it anything), couldn't they save some space by dropping the Content-Length? It's an optional header.
- raggi 9y agoNot unless they switch to http/1.0. in 1.1 you need one of: content length, connection close, chunked encoding.
- joosters 9y agoTrue, their server should be returning HTTP/1.0. It's a shame that you can't get away with replacing the initial HTTP/1.0 with HTTP/1 and shave off another couple of bytes :) Edit: I wonder if you could go full retro and just return a HTTP/0.9 response (no HTTP headers at all, just the page contents). If they then put back the DEFLATE/GZIP header bits, perhaps a browser would spot that the contents are compressed and do the decompression...
- wmf 9y agoAlso ultraloud. Turn down the volume before clicking.
- ricardobeat 9y agoWhat is it? Nothing happens on mobile Safari.
- jedberg 9y agoNor mobile chrome. Guess I'll have to check it out later.
- lern_too_spel 9y agoWorks for me in mobile Chrome 63 and in mobile Firefox 55.
- bpicolo 9y agoThis will upset any cat in the vicinity
- tantalor 9y agoConfirmed, my cat freaked out.
- AtomicOrbital 9y agosame here - lol
- LeonM 9y agoCat freakout confirmed
- richdougherty 9y agoFor those you are wondering, this is a webserver that serves an HTML page in a single TCP packet. I guess ≤ 1500 bytes to avoid fragmentation - shows as 1.1KB in Chrome's network view. The HTML contains embedded JavaScript that runs a simple demo with animated ASCII and playing a LOUD changing audio tone. You can visit the demonstration website here: http://packet.city/ http://packet.city/ You can see a screenshot of the demo here: http://www.p01.org/128b_raytraced_checkboard/ http://www.p01.org/128b_raytraced_checkboard/
- ed 9y agoCaution: loud
- federicoponzi 9y agoOpened this on my phone with headphones. I had an heartattack.
- limaoscarjuliet 9y agoCounts as experience :)
- addHocker 9y agoBranded with bleeding ears. Dolby.
- mrdoob2 9y agoSo they're using p01's effect and they want to put ADs around it?
- microcolonel 9y agoHere's hoping it's a joke. ;- )
- ConfucianNardin 9y agoThe limit is 1460 - the IP and TCP headers occupy 40 bytes. Out of those another 63 are consumed by the HTTP headers. The full TCP payload is only 1226 bytes though, and the full HTTP payload 1163 bytes. The decoded HTML document is 1546 bytes.
- davrosthedalek 9y agoDoes the high pitched sound make my Amazon Echo order something?
- johansch 9y agoYou'll know in a day or two.
- robocat 9y agohttp://packet.city/ http://packet.city/ summary: A demo scene page that is smaller than a single IP frame and uses some flags to avoid other round trips. view-source:http://packet.city/ http://packet.city/ The page itself and view-source only work on some browsers. Use wireshark etc to see what it actually does.
- s_gourichon 9y agoWiresharked the thing. Here's the packet sequence it reported: -> DNS query A -> DNS query AAAA <- DNS reply A <- DNS reply AAAA -> TCP SYN <- TCP SYN,ACK -> TCP ACK -> HTTP GET <- HTTP reply <= That's the content! -> TCP ACK <- TCP FIN,ACK -> TCP FIN,ACK <- TCP RST <- TCP RST So, the full traffic is 14 packet, all small (DNS, TCP handshaking) except the one HTTP reply packet containing the full website.
- londons_explore 9y agoIt's still pretty sad that so many roundtrips are necessary... One could imagine a merged DNS and TCP syn packet, which goes to a DNS server who converts it to a TCP packet, and gets forwarded to the origin server.
- drvdevd 9y agoNice. I was just reviewing some TCP fundamentals with my friend for his class, specifically sliding windows and window control, etc. It's as if they took what we were just reading in a compsci textbook for class and directly monetized it.
- nqzero 9y ago>the greatest website to ever fit in a single TCP packet a blank page would be an improvement - that was seizure inducing
- fapjacks 9y ago:party_parrrot:
- rosstex 9y agoIs there a breakdown of the expanded HTML/JS?
- remar 9y agoBeen years since I went through Beej's socket programming tutorial but I still recognize his code ;)
- davidmurdoch 9y agoInteresting to see DEFLATE over GZIP here, as it is something I used to recommend maybe 7 or so years ago. I collected results for several years and began seeing more browsers dropping support for raw deflate (or switching to zlib deflate). I accidentally let my hosting account expire years ago and lost the server code and db for it, but managed to pull the HTML from the way back machine. I've backed up the results here: https://davidmurdoch.com/compression-tests-results/ https://davidmurdoch.com/compression-tests-results/. It's all pretty outdated now, but rather fun to look at. Anyone know if this is using raw DEFLATE or ZLIB (HTTP 1.1 DEFLATE)?
- TCM 9y agoHi, this website is really loud and if you are using Headphones I would mute it or turn them down a bunch. It also will autoplay the sound.
- mkj 9y agoNice work. I guess it'd just as quick if it sent up to ~4kB - that's the normal TCP initial window? https://tools.ietf.org/html/rfc3390 https://tools.ietf.org/html/rfc3390
- unmole 9y agoAt least in Linux, ICWND is set to 10 now: https://tools.ietf.org/html/rfc6928 https://tools.ietf.org/html/rfc6928
- mkj 9y agoHm. I what the distribution of latency vs bandwidth is like, whether 14kB or 2 round trips takes longer for most people?
- Dylan16807 9y agoProbably the two round trips. A semi-nearby server might be 50ms per round trip, and in that case any connection beating 1mbps can transfer 14KB in less than two round trips. A server could easily be 150-250ms away and make those round trips far worse.
- londons_explore 9y agoIt also depends on the buffer size. Some routers might only buffer 1 millisecond of line-rate data or less. If that's the case, that initial congestion window of 10 could overflow the buffer, causing loss and a much more costly double-round-trip to resend.
- Dylan16807 9y ago1 millisecond of buffering is geat on a high speed core link. But if you apply that to a 5 megabit connection you've basically decided you'll only buffer one packet. A slow-speed bottleneck link needs to have more capacity. The charts in http://www.nctatechnicalpapers.com/Paper/2011/2011-right-sizing-cable-modem-buffers-for-maximum-application-performance/download http://www.nctatechnicalpapers.com/Paper/2011/2011-right-siz... suggest that 64KB is often a good buffer size for end links, and that can absorb 10 packets fine.
- teh_klev 9y agoCAUTION: This is just about popped my speakers and my eardrums, this is pretty obnoxious behaviour regardless of the technical cleverness going on.
- Geee 9y agoHow is it that loud? It's not tolerable even on minimum settings on my iMac.
- avian 9y agoThey are producing a waveform that is constantly at the peak range of the digital-to-analog conversion. Most real-life audio recordings only very rarely, if ever, reach peak levels. Some (older?) Hi-Fi equipment was in fact designed with this assumption and playing a constant sine wave at peak levels would very quickly burn something out.
- mypalmike 9y agoTip: Shift + Option + Volume(up/down) adjusts volume by 1/4 of a bar.
- toothbrush 9y agoWow. I have been using OS X for quite a long time and this is the first i'm hearing of it! Thanks!
- bpicolo 9y agoHoly crud! That's so hidden
- iainmerrick 9y agoWow! How did you learn that?
- quickthrower2 9y agoAny direct link? Do I need to build this mofo?
- zengid 9y agoPro-tip: If you are doing additive synthesis and want to stack sine-waves in a harmonic series, please scale each successive n harmonic to an amplitude of 1/n. It creates a much more tolerable experience.
- gfody 9y agoalso maybe the title could have [LOUD!!!] or something like that. I didn't realize my system could make a noise that loud with vol at 50%.
- dhritzkiv 9y agoI set my system's volume to the lowest possible value before mute (1/64) and it was still extremely loud and unpleasant. I'm actually impressed.
- mortenjorck 9y agoFurther reading: https://en.wikipedia.org/wiki/Fletcher–Munson_curves https://en.wikipedia.org/wiki/Fletcher–Munson_curves
- kitotik 9y agoDesktop Safari: Can't find variable: AudioContext No room for vendor specific prefixes :|
- exikyut 9y ago# ## # # ### ### # # # # # # # ## # # # # # # # #### ## ## ### #
- kozak 9y agoLooks like the browser spends most of the loading time resolving DNS.
- sitkack 9y agoThe website should fit in the DNS response.
- londons_explore 9y agoGet a better DNS server... 4.2.2.2 or 8.8.8.8 are good choices.
- deleted 9y ago[deleted]
- wogna 9y agoWhy is the tcp socket set to busy poll for 1 microsecond?
- sitkack 9y agoWeb Scale?
- nathan_long 9y agoAll hail the rise of the Single Packet Web App.
- mypalmike 9y agoWanted: Web developer with 10+ years SPWA experience.
- tibbon 9y agoMy cat had opinions about the sound this website makes.
- jest7325 9y agoIt might be fast but does it handle load? Did you try to benchmark it with a service like https://ddostest.me https://ddostest.me
- convery 9y agoNow I'm curious, could one minimize this further? As in, making Chrome accept UDP to get rid of SYN/ACK etc.
- nfriedly 9y agoThey spend nearly 75% of the page weight on that party parrot image - if they dropped that, the rest of the page could probably be a lot more impressive (and less screechy!)
- DKnoll 9y agoWow, 25% of page weight wasted on extraneous cruft.