著作一覧 |
オライリーの高さんから、ハイパフォーマンスブラウザネットワーキングを頂いた。
どんな本かもわからなかったけど書影を張った甲斐があった(わけないだろうな)。実に良い本を頂けた。どうもありがとうございます。
この本は、名前の書名の通りに受け取ると妙にピンポイントだけど(なぜなら、ブラウザネットワーキングをハイパフォーマンスさせるための技術書だとしか読めないし、ブラウザネットワーキングって妙な言葉だけど、Webブラウザにしか関係しなさそうに読める)、全然違う。
この本は、小手先の技術書ではない。
だから、ネットワークにパフォーマンスを要求するためには、まずネットワークとは何でどのような技術で、どのような種類があり、それぞれにおいてどのような制約や特徴があるのか、からきちんと説明がある。
最初は、レイテンシ(遅延のこと。遅延といったって、伝播遅延、伝送遅延、処理遅延、キューイング遅延と分類している)と帯域という2つのパフォーマンスを決定する要素についての定義的な解説。
そしてとにかくTCP。TCPの速度を決定付ける技術について。
ではTCPを最適化する最も簡単かつ効果的な方法は? カーネルを最新バージョンに保つことだ。世界中の優秀な連中が絶え間ない改良をしている。ではどんな改良があるか、今となってはディスエーブルしたほうが良い技術(たとえばスロースタート)がなぜ(今となってはディスエーブルしたほうが良いとしても)導入されたのか、それはどのようなアルゴリズムで何を解決するために組み込まれたのか。
こういったことが実に手際よく説明されている。
パケットロスは全然OK。
UDP。UDPで工夫するよりTCPを使うほうがいいかもね。(いやまあ思い出すこともあって、でも20年近く前のカーネルが提供しているTCPよりバギーでもUDP上の独自アプリケーションプロトコルのほうが高速かつ高信頼だったこともあるとか)
TLS。HTTPSは遅くない。
WiFi。シャノン・ハートレーの定理。初めて知りました。C=BW*log2(1+S/N)
3G、LTE。
物理層レベルについても押さえながらモバイルネットワークの最適化までで2/5くらい。
で、怒涛のHTTP。最後はWebRTC(さすがに今日届いて3部目はほとんど目を通していない)。
ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化(Ilya Grigorik)
今一番重要なインフラは、もうCPUでもメモリでもディスクでもなく、ネットワーク(モバイル含むというか、モバイルの比重が非常にでかい)だ。
ということは、現在のIT技術の基礎の基礎たる知識はこの本から学べるということだ。
内容紹介にはインターネットにかかわるすべてのエンジニアに必携と書いてあるけど、インターネット関係なく、必読文献の1つだ。
ジェズイットを見習え |