Linux ioctlによるネットワークインタフェース情報の取得手法

ioctlシステムコールとネットワーク制御の概要 Linuxカーネルのデバイスドライバやネットワークスタックとユーザ空間プログラムが通信する際、ioctl() が標準的な制御インターフェースとして利用されます。ソケットやキャラクタデバイスなどのファイルディスクリプタに対して特定のリクエストコードを渡すことで、ネットワークインタフェースのIPv4/IPv6アドレス、MTU、リ ...

6月27日 17:29 投稿

libmoon の構造と設定ファイルの使い方

ディレクトリ構成の概要 libmoon は高性能パケット処理を実現する Lua ベースのフレームワークであり、そのプロジェクト構成は明確に分離されています。以下が主要なディレクトリ構成です。 libmoon/ ├── bin/ ├── build/ ├── config/ ├── deps/ ├── examples/ ├── lib/ ├── scripts/ ├── src/ ├── test/ ├── CMakeLists.txt ├── README.md └── LICENSE bin/: コンパイ ...

6月22日 21:05 投稿

skb_in.cとskb_out.cの詳細解析

skb_in.cとskb_out.cの詳細解析 NetFilter_Skb_modプロジェクトは、Netfilterが提供するフック関数メカニズムを利用して、カーネルレベルでのパケットキャプチャと再送信を実現します。主にC言語でNF_IP_LOCAL_INおよびNF_IP_LOCAL_OUTの2つの段階におけるSKBネットワークパケット処理を実装しており、パケット内容の印刷、長さ測定、チェックサムの再計算を含みます。Netf ...

6月20日 19:56 投稿

ZooKeeper を用いたシンプルなサービス登録・検出機能(C++): 接続管理層の実装

ZooKeeper クライアントとの永続的な接続を管理し、自動再接続・監視機能を備えた単一ヒープ生成的なハンドラクラスを C++ で実装します。 コピー禁止基底クラス class CNonCopyable { protected: CNonCopyable() = default; virtual ~CNonCopyable() = default; CNonCopyable(const CNonCopyable&) = delete; CNonCopyable& operator=(const CNonC ...

6月3日 19:26 投稿

PythonとPygameを使用したネットワーク対戦五目並べの実装

ネットワーク対戦機能付き五目並べの実装方法 前回のSocketプログラミングの基礎知識を基に、PythonとPygameを使用してネットワーク対戦機能付きの五目並べゲームを実装します。 実装手順 サーバー側が接続を待機 TCP接続でクライアントがサーバーに接続して対局開始 勝敗判定後、一方が再対戦を提案 相手が承諾すれば新規対局を開始 コード構造 サーバーとクライアン ...

5月22日 03:46 投稿

Linux I/O多路復用におけるpoll関数の詳細とサーバー実装

Linux環境におけるI/O多路復用技術の一つであるpollは、複数のファイル記述子(ファイルディスクリプタ)の状態変化を効率的に監視するためのシステムコールです。selectの制限を克服し、より柔軟なネットワークプログラミングを可能にします。 pollシステムの概要 pollは、アプリケーションが多数の入出力チャネル(ソケット、パイプ、デバイスファイルなど)を同時に待 ...

5月17日 04:03 投稿