「Linuxネットワークプログラミング」という本を書きました。 LinuxでCを利用してネットワークプログラミングを行うための解説書で、私にとって初の書籍執筆です。 昨年2月にソフトバンククリエイティブさんから書籍執筆のオファーを頂き、開始から約一年後の発売となります。 今回、C言語によるLinuxのネットワークプログラミング解説書籍を執筆する機会を頂けたのですが、書籍の大きな方向性として以下の点が挙げられます。 可能な限り、ソースコード全文を掲載する。断片的なソースコードだと手元で即座に試しにくい メインはIPv4を意識しながら書く ただし、getaddrinfo()を前提とし、IPv6が存在することを前提に書く IPv6移行がメインの書籍ではない。インターネットの世界がIPv4/IPv6デュアルスタックで運用されることになるという前提でネットワークプログラミング解説書を書いているだけ
Linuxでパケット受信契機のタイムスタンプ採取方法。 ユーザーアプリからはsetsockoptでSO_TIMESTAMPを設定しておき、recvmsgで受信する都度せっせとCMSG_DATA(cmsg)経由で取得する形での仕組みが用意されている。具体的なコーディングサンプルだと char inbuf[BUFSIZ]; char cmsgbuf[CMSG_SPACE(sizeof(struct timeval))]; struct cmsghdr *cmsg; struct msghdr msghdr; struct iovec msg_iov; struct timeval *pTime, tv; const int on = 1; setsockopt(sock, SOL_SOCKET, SO_TIMESTAMP, &on, sizeof(on)); msg_
Section: Linux Programmer's Manual (3) Updated: 1998-10-02 Index JM Home Page roff page 名前 CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR - 補助データにアクセスする。 書式 #include <sys/socket.h> struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *msgh); struct cmsghdr *CMSG_NXTHDR(struct msghdr *msgh, struct cmsghdr *cmsg); size_t CMSG_ALIGN(size_t length); size_t CMSG_SPACE(size_t length); size_t CMSG_LEN(size_t
Section: Linux Programmer's Manual (7) Updated: 2008-08-08 Index JM Home Page roff page 名前 rtnetlink, NETLINK_ROUTE - Linux IPv4 ルーティングソケット 書式 #include <asm/types.h> #include <linux/netlink.h> #include <linux/rtnetlink.h> #include <sys/socket.h> rtnetlink_socket = socket(AF_NETLINK, int socket_type, NETLINK_ROUTE); 説明 rtnetlink はカーネルのルーティングテーブルを読んだり変更したり するためのものである。これはカーネルが内部のサブシステムと 通信するためにも用いられて
Section: Linux Programmer's Manual (7) Updated: 2008-08-08 Index JM Home Page roff page 名前 netlink - カーネルとユーザー空間の通信 (AF_NETLINK) 書式 #include <asm/types.h> #include <sys/socket.h> #include <linux/netlink.h> netlink_socket = socket(AF_NETLINK, socket_type, netlink_family); 説明 netlink はカーネルモジュールとユーザー空間のプロセス間で 情報をやりとりするために用いられる。 netlink は、ユーザープロセスに対しては 標準的なソケットベースのインターフェースを、 カーネルモジュールにはカーネルの内部 API を提供
identd というのは,いわゆる ident プロトコル(RFC 1413)を実装したデーモンの総称です.最近は使われる場面も減ってきたかもしれませんが,DSAS では一部この identd の返答結果に基づいてアクセスの可否を決定しているサービスが存在します(※1).そのため,identd の返答速度は重要になります. ※1 ident プロトコルは,クライアントからサーバ側への TCP 接続に関して,サーバ側がクライアント側に,その TCP 接続を所有しているユーザは誰であるかを問い合わせるためのものです.問い合わせた結果を何に用いるかはサーバ次第ですが,その仕組み上,問い合わせるサーバ側は問い合わせ先となるクライアント側の identd が自分が期待した回答を返してくれるものと信頼していることが前提となります.つまり,インターネット上のクライアントの identd の返答に基づいて
Table of Contents1. 献辞2. はじめに2.1. 免責およびライセンス2.2. 事前に必要な知識2.3. Linux にできること2.4. この文書の管理についてのメモ2.5. 取得、CVS およびアップデートの投稿2.6. メーリングリスト2.7. この文書の構成3. iproute2 入門3.1. なぜ iproute2 なのか?3.2. iproute2 の概略3.3. 事前の必要条件3.4. 現在の設定を調べてみる3.5. ARP4. Rules - ルーティングポリシーデータベース4.1. 簡単なソースポリシールーティング4.2. 複数のアップリンク/プロバイダに対するルーティング5. GRE トンネル、その他のトンネル5.1. トンネルに関する一般的な事柄5.2. IP in IP トンネリング5.3. GRE トンネリング5.4. ユーザランドのトンネル6.
13.2.1. ipv4 全体一般的な注意ですが、ほとんどの速度制限機能は loopback に対しては効きません。 ですので、ローカルでのテストはしないでください。 制限は 'jiffies' 単位で与えられ、先に紹介したトークンバケツフィルタによって 適用されています。カーネル内部の時計は、1 秒あたり 'HZ' 刻み (あるいは 'jiffies') で動作します。 Intel では 'HZ' は大抵の場合 100 です。よって *_rate ファイルを、 例えば 50 と設定すると、一秒当たり 2 パケットを許可することになります。 トークンバケツフィルタは、十分なトークンが溜まった場合、 最大 6 パケットまでのバーストを許すような設定になっています。以下のリストの一部は、Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> と Andi Kleen
DeleGate reference manual version 9.9
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く