タグ

TCPに関するizariuo440のブックマーク (27)

  • TCPを使う(サーバ、SO_REUSEADDR):Geekなぺーじ

    前述したTCPサーバ例では、サーバを終了した直後にもう一度サーバを起動しようとすると、bindがエラーで終了することがあります。 ここでは、その問題を回避するためにSO_REUSEADDRを有効にする方法を説明したいと思います。 TIME_WAIT TCPサーバのプログラムを書いていて、TCPサーバを終了して直後にもう一度起動したときに、 bindが「Address already in use」というようなエラーで失敗してしまったとこは無いでしょうか? 「あれ?もうTCPのサーバプロセスは終了しているのに。何故、bind出来ないのだろう?」と思いつつ、 しばらく時間がたってからもう一度実行すると問題なくbindが成功したりします。 この問題はTCP自体の仕組み(仕様)によって引き起こされています。(winsockの問題ではなく、TCPの仕様です)。 具体的にはTIME_WAIT状態という

  • Simple Repeater `stone'

    stone は、アプリケーションレベルの TCP & UDP リピーターです。 ファイアウォールの内から外へ、あるいは外から内へ、TCP あるいは UDP を中継します。 stone には以下のような特徴があります。 1. Win32 に対応している 以前は UNIX マシンで構成されることが多かったファイアウォールですが、 最近は WindowsNT が使われるケースが増えてきました。 stone は WindowsNT/2000/XP あるいは Windows95/98/ME 上で、 手軽に実行することができます。 WindowsNT/2000/XP では NT サービスとして インストールすることも可能です。 もちろん、Linux, FreeBSD, BSD/OS, SunOS, Solaris, HP-UX などの UNIX マシンでも使うことができます。 2. 単純 わずか 10

    izariuo440
    izariuo440 2005/08/18
    パケットリピーター。
  • TCP/IP エラー処理 connect 編

    connect(2) のエラー TCP において connect(2) 呼出し時に発生する可能性のあるエラーは以下の通りです。 タイムアウト RST 受信 EHOSTUNREACH また ENETUNREACH シグナル受信 その他 まず、connect(2) 時の正常な流れをしっかり覚えておいてください。 (connect(2) を呼んで) SYN を送る SYN+ACK が返ってくる (ここで connect(2) から戻る) ACK を送る タイムアウト もし仮に、SYN を送ったものの、相手側から SYN+ACK が返ってこない場合は、 (ローカルの TCP スタックが) しつこく SYN を再送します。何度 SYN を送っても SYN+ACK が返ってこない場合はあきらめてタイムアウトします。 「SYN+ACK が返ってこない」というのは、例えば以下のようなケースが考えられます。

  • ファイアウォール (前編)

    実践で学ぶ、一歩進んだサーバ構築・運用術 今回は Linux サーバーのセットアップとファイアウォールの構築を目的とした, TCP/IP の基礎知識を解説します。 最近は個人ユーザーでもインターネットに常時接続しやすくなりましたが, セキュアなサーバーを構築するためには TCP/IP の仕組みを理解することが不可欠です。 第 7 回 ファイアウォール (前編) 会社を設立しました。 「株式会社ケイ・ラボラトリー」*1 という名称で, 次世代携帯電話のコンテンツ関連技術に特化した研究開発型企業です。 今後, Java を搭載した携帯電話が増えていくと予想されますが, 携帯電話のさまざまなリソース上の制約により, Java 搭載型携帯電話上で動くプログラムを開発することは, 一般のプログラマにとってはあまり容易ではありません。 開発ツールの提供や技術コンサルティングなどを通して, 携帯電話コン

  • Windowsネットワーク 第16...@IT:連載 基礎から学ぶ

    第16回 信頼性のある通信を実現するTCPプロトコル(3):基礎から学ぶWindowsネットワーク(3/4 ページ) TCP技術を習得するうえで非常に重要な項目として、「TCPの状態遷移図」というものがある。これはTCPプロトコルの規格書であるRFC793(STD0007)に掲載されている、TCPプロトコルの内部ステートを表現した図である。すでに解説したように、TCPでは接続ごとに、それぞれシーケンス番号やACK番号、オープン/クローズなどの処理状態といった「ステート(状態)」を持っている。このようなプロトコルを「ステートフルな(stateful、状態を持つ)」プロトコルという。TCP接続のオープンやクローズ、確立などに伴う、状態の変化を表現した図を「状態遷移図」という。 以下は、RFC793に記載されているTCPの状態遷移図を簡略化したものである(完全な状態遷移図についてはRFC793を

    Windowsネットワーク 第16...@IT:連載 基礎から学ぶ
  • TCP

    TCP はデータストリーム型のコネクションで、全二重であるとも言いますが、 データパケットの中身や順序についての保証がプロトコル上されています。 そのために常にデータは受けとられたかどうかのハンドシェークを行いながら 通信を行っています。こうした性質からTCPコネクションはフィルタリングで 良く制御出来るようになっています。ここでは、TCPヘッダのフラグの種類 とTCPコネクションの状態遷移について見ることで、TCPをフィルタリングする ために必要な知識を簡単に解説します。 TCPヘッダにはシーケンスやチェックサムなど多くのヘッダ情報がありますが、 中でもフィルタリングに関係するのはヘッダフラグ情報でしょう。ヘッダフラグ 情報には2byteのフィールドがあり、第10ビットから第15ビットまでにコネクション 状態に関する情報が格納されています。

  • http://codezine.jp/a/article.aspx?aid=101