地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

TCP/IP

【TCP】tcpdump特定フラグのたったパケットを採取する方法

tcpdump -i eth0 '(tcp[tcpflags] & tcp-syn)' != 0 www.tcpdump.org syn以外もrstやらpshも取れるので割と重宝してます。

【Linux】net.core.(r|w)mem_maxあたりの話

概要 netstatの実行でたまに見るSendQとかRecvQの値の決定はどこで行っているかを確認した際のメモ Send-Q/Recv-Qとは Recv-Q このソケットに接続されたユーザープログラムに渡されなかったデータのバイト数。 Send-Q リモートホストに受け入れられなかった…

【TCP】acceptした相手を表示

accept(2) manページ accept(2)の第二引数addr 引き数は sockaddr 構造体へのポインタ。この構造体には接続相手のソケットのアドレスが入っている。構造体ポインタから接続元情報を表示することで接続相手が何者かを識別できる。 以下は最小限のサンプル。tc…

【C】signalfd + epoll のサンプル

typedef enum { MYOP_ERROR = -1, MYOP_NONE = 0, MYOP_QUIT, MYOP_WAITCHILD, /* snip */ } MyOperation_t; /** * AnalyseEvent - epoll_eventから任意のコマンドIDを導く */ MyOperation_t AnalyseEvent (struct epoll_event *event) { if (event->data.fd…

【TCP】TCPサーバーの非同期処理

手法 メリット デメリット select メモリやリソース消費が抑えられる 扱えるディスクリプタに制限がある一つのソケットの送受信処理の間に他のソケットを扱えない poll メモリやリソース消費が抑えられるディスクリプタ制限なし 一つのソケットの送受信処理…

【TCP】コネクション永続化

Persistent Connection数の上限値 Persistent Connection数の上限値を設定することで,一つのTCPコネクションで連続してリクエストを処理できるWebクライアント数を制御します。TCPコネクション数が指定した上限値を超えた場合,リクエスト処理終了後に切断…