[TCP / IP]ネットワークプログラミング:05TCP原則 - 概要

TCP簡単な分析と議論のこの記事では、主要な原則。

I / OバッファにTCPソケット

以上がどこに残っているデータこと、この一端から送信されるデータのTCPトラフィックデータボーダレス特性は、必ずしも一回受信端ではない導入しましたか?

実際には、関数呼び出しはすぐにすぐにデータを受信して​​いない、読み取り関数呼び出しの後にデータを送信しない書き込み。示され、以下の書き込み関数呼び出しの瞬間、移動するデータ出力バッファ(適切な侯は、他の入力バッファに送信する場合)、読み取り機能は、インスタントを呼び出し、データが入力バッファから読み出されます。

 TCPソケットI / Oバッファ

 TCPのI / Oバッファは、次の特徴があります。

  • I / O、個々のTCPソケットに存在するバッファ
  • I / Oバッファ生成され、自動的に作成されたTCPソケット
  • 送信データがレガシーをバッファ送信しても継続するソケットを閉じます
  • バッファに入力されたデータを破棄しますソケットを閉じます

場合を考える、受信側入力バッファサイズは50バイトであり、何が起こるかを受信端に出力側バッファサイズは100バイト、データの送信100バイトの送信端で送信しますか?受信側のバッファオーバーフロー?TCPは、TCPのプロトコルである、データフロー(フロー制御)、制御するので、実際には、受信機は適切に、このような状況に対処することができる窓をスライドする(スライディングウィンドウ)メカニズムを確保しました。

バッファが読み出されるべきデータを有するとき、読み出し関数の戻りタイミングが受信され、書き込み関数呼び出しとデータを読み出す交換について、書き込みタイミング関数呼び出しは、出力バッファに送信側データに戻される(ブロックモード)。

 内部TCPは1作品:ソケットが相互に接続されています

 全体的に、TCPソケットは、次のような経験を処理するために作成から消えます:

  • 他のソケットとの接続を確立するには
  • 他のソケットとのデータ交換
  • 互いのソケット接続を切断します

以下に示すようにTCPソケットの接続を確立するプロセスは、プロセスは、いわゆる3ウェイハンドシェイク(スリーウェイハンドシェイク)機構です。

 TCPソケット接続プロセス

[SYN]配列番号:1000、ACK: -

すなわち、同期メッセージが送信前にデータを送受信する第1の接続要求メッセージフィールドSYN(同期)を使用して確立しました。SEQ値1000は、ACKフィールドが空である、パケット数を示します。

[SYN + ACK] SEQ:2000、1001 ACK

ACKフィールドの端にフィードバックされ、値1001は、受信したメッセージ番号1000の終了を示します。

その理由の道であり、パケット数を確認することで、すぐに見ることができると再送は、信頼性の高いTCPメッセージであるデータの損失が発生した場合にパケットを失いました。

ホストA最終ディスカッションACKメッセージに3ウェイハンドシェイクについて、何が起こるかパケットロスであれば?

最後のACKメッセージが失われた場合、サーバー(ホストB)がSYN + ACKメッセージを再送しない、RSTパケットではなく、閉じた状態に直接送信され、目的は、SYNフラッド攻撃を防ぐためである。別の考慮、最初のクライアントの場合サーバーとソケットとの接続を確立するのに長い時間が閉じているため、サーバーに到達するのに長い時間のために、ネットワークの輻輳により、SYNメッセージの端のホスト、およびクライアントが原因ではない、この時点で、サーバーは、それゆえ、応答ACKメッセージを受信することができず、 SYN + ACKメッセージを再送信する必要はありません。

TCP 2の内部の仕組み:他のホストとのデータ交換

以下に示すように、2つの側面は、有効な接続を確立するスリーウェイハンドシェイクの後、データ交換のプロセスが続きます。

 TCPソケットのデータ交換プロセス

SEQ値+ + 1送信バイト数:スリーウェイハンドシェイクのメッセージフィールドと同一の通信手順の上方に、ACKメッセージフィールド値をにより算出されることに留意されたいです。プラス1メッセージに送られるが、お互いに通知する前に受信された、残りのデータを次に送信することができます。パケットが発生した場合はどう失われるのでしょうか?

 TCPソケットのデータ伝送エラー処理

図示された手順としては、データパケットの再送を完了するために、TCPソケットは、ACK応答を待つためにタイマーを開始します。対応するタイマータイムアウトが発生した場合(タイムアウト)が再送されます。

切断とソケット接続:TCP 3の内部の仕組み

プロセスのTCPソケット終わりも非常にエレガントです。直接データオフ相手が送信される場合は双方が切断されたときに交渉する必要があるので、でも、問題があるでしょう。このプロセスは、以下、すなわち四の光波(フォーウェイハンドシェイク)プロセスが示されています。

 TCPソケット切断処理

フィールドを運ぶFINパケットがFINメッセージを送信した後に切断する切断であり、各当事者を示します。

おすすめ

転載: www.cnblogs.com/Glory-D/p/12075652.html