知っているに越したことはないのですが。言えば、以下の場合には必要となるでしょう。アプリケーションのパケットレベルのデバッグをする場合。出力を解析したりする場合。なってくると思います。いらないという方は適当に読み飛ばしてください。特徴TCPとUDPの、ユーザ側から見た基本的な違いを以下に示します。そのままの形で受信側に届きます。明確な電文の区切りがあります。(*2)ストリーム......送信されるデータは無限の長さを持ちます。電文の区切りがありません。(*3)コネクションレス型通信と呼ばれます。(*4)コネクション型通信と呼ばれます。TCPの方がUDPより高級なプロトコルであることは明白ですね。これらのことを実現するために、TCPでは以下のことが必要となります。送達確認(ACK)到着順序保証フロー制御では、1つずつ説明していきましょう。接続を待つのかを前もって決定しておく必要があります。後者をサーバ・アプリケーション(以下サーバ)と呼びます。接続確立時のシーケンスは以下のようになります。これを3ウェイ・ハンドシェークと呼んでいます。便宜上、クライアント←サーバの転送を下り、その逆を上りと称します。14バイト目(下6ビット)にあるフラグの中の各ビットのことです。上りコネクションの確立を試みる。自らもSYNビットを立てることにより、下りコネクションの確立を試みる。下りコネクションの確立を承認する。コネクションを確立するような感じになります。TCPは全2重(同時に双方向の通信ができる)通信を行うということです。ACKはSYN(接続要求)に対する肯定応答として使用されました。肯定応答という意味になります。立てるということです。行うことができるということです。バイトまでは正常に受信したことを相手側に知らせます。電文に区切りがないので(論理的には)以下のようなことができます。その方のご指摘をそのままの形で追加しておきます。ありがとうございました。このセグメントで消費されるシーケンス番号は0から99番ですよね。ある100番をACK番号として返すわけです。データが途中で抜けた場合はそれ以降のACKを返しません。(データ抜けが発生しない)。一定時間にACKが返らないと、データの再送を行います。自分がすでにACKを返した分のデータ・ストリームは無視(破棄)します。フロー制御フロー制御とは、受信側が受信データの処理が追いつかなくなったとき、送信側に対してのデータ転送の中止/再開を指示することです。このしくみがないと、データ抜けなどを起こしてしまいます。シリアル通信など使われるフロー制御としては、XON/XOFFという文字を使って行うソフトウェア・フロー制御と、モデムの信号線をオンオフすることによって行うハードウェア・フロー制御というものがあります。TCPレベルで行われるフロー制御は、TCPヘッダ内のウィンドウというフィールドで行われます。ウィンドウは、受信側のバッファサイズの残りバイト数と思えばいいです。これが0で送られたということは、受信側のバッファにまだ処理していない(上位に渡していない)データが溜まりすぎて空きがなくなってしまったことを示します。ウィンドウが0の間は、送信側は(ACKを返すなどのために)TCPパケット自体は送信しますが、実データ部は送りません。送信側データはTCP/IPスタック上にあるバッファに溜められていますので、アプリケーションの送信動作がすぐに停止してしまうということはありません。