タグ

2023年7月11日のブックマーク (3件)

  • パケットキャプチャで理解する TLS1.3

    TLS は Transport Layer Security の略で、盗聴、あるいは通信相手のなりすましの可能性がある通信路において、安全に通信を行うための暗号通信プロトコルです。 書では、Go 言語を使って TLS サーバ・クライアントを用意し、その通信を Wireshark で観察しながら、TLS のプロトコルについて説明します。 書を読むことで、TLS の通信で実際にどのようなパケットが送受信されているかが確認でき、TLS の学習の助けになると思います。 また、TLS には複数のバージョンがありますが、記事では、最も広く使われており、かつ最新である TLS1.3 に焦点を当てます。

    パケットキャプチャで理解する TLS1.3
  • 秒間 10,000 リクエストを "簡単に"いなすゲームサーバーを Laravel で作る設計

    1秒間に PHP が受信する HTTP リクエストが最大 10,000 回以上——— そんな世界が存在します。その一つが 「ソーシャルゲーム」 です。メンテナンスが明けた瞬間、イベントが始まった・終わる瞬間、様々なタイミングでゲームサーバーは瞬間的に高負荷になります。もちろん、サービスをリリースし PR をたくさん出し始めたその瞬間が、プロジェクトで最も高負荷となるでしょう。それらに耐えうるサーバー構成が求められていますが、「リリース直後にサーバーがダウンした」「限定イベントが始まったらすぐ緊急メンテナンスが始まった」という話はちょくちょく聞こえてきます。その 瞬間的な高負荷(いわゆる "スパイク") に耐えるには、事前準備を怠らないことが重要です。 ソーシャルゲームにおいては、他の Web アプリケーションに比べ 書き込みヘビーなワークロード であることが多いです。読み込みは比較的簡単に

    秒間 10,000 リクエストを "簡単に"いなすゲームサーバーを Laravel で作る設計
  • Go言語でシンプルに構造体⇔バイナリの相互変換 - Qiita

    構造体をサクッとバイナリに変換したい! そんなときはencoding/binaryパッケージを使います。 構造体→バイナリ binary.Writeメソッドに構造体を渡すと上から順番にフィールドが並んだバイナリになります。 package main import ( "encoding/binary" "encoding/hex" "os" ) type A struct { Int32Field int32 ByteField byte } func main() { // 構造体つくる a := A{Int32Field: 0x123456, ByteField: 0xFF} stdoutDumper := hex.Dumper(os.Stdout) defer stdoutDumper.Close() // 構造体をバイナリにする binary.Write(stdoutDumper,

    Go言語でシンプルに構造体⇔バイナリの相互変換 - Qiita