このセクションでは、私のコラム「コンピューター ネットワーク プロトコルのクイック スタート チュートリアル」のセクションとして TCP プロトコルを紹介します。
すべてのコンピュータ ネットワーク プロトコルの中で、TCP は最も広く使用されているトランスポート層プロトコルであるため、非常に重要です。上記で紹介した UDP プロトコルは比較的単純ですが、このセクションで紹介する TCP は、設計の初期段階でより多くの機能を搭載しているため、UDP に比べて比較的複雑です。このセクションの目的は、TCP の各分野を最初に紹介し、誰もが TCP プロトコルの機能を直感的に理解できるようにすることです。後の章では、TCP と UDP の違いについて個別に説明します。これは面接で最もよく聞かれる質問の 1 つでもあります。
UDP プロトコルを紹介する章では、UDP のポート アドレスと長さの情報がクライアントとサーバーの通信ニーズを満たすことができることがわかります。ただし、これは理想的な状況であり、実際のネットワーク通信では次の問題が存在する可能性があります。
- ネットワーク伝送でパケットロスが発生する
- ネットワーク送信で再送信が発生する
- 異常なネットワーク送信
- 相手が突然オフラインになってしまう
- データ処理速度が許容可能な速度に達していません
UDP などの単純なプロトコルでは上記の問題を解決できず、解決するには TCP ベースの通信が必要です。
RFC793
図 1 は、TCP の各フィールドを定義する RFC793 からの抜粋です。
図1
RFC は、プロトコル設計者によってプロトコル用に書かれた設計文書です。これは最も権威のある参考資料であり、通常、プロトコル開発者がさまざまなシステム プロトコル スタックを実装するための参考資料として使用します。そのため、設計文書では多くの詳細が明らかにされています。ただし、この種の教材は学習が難しすぎるため、初心者が学習することはお勧めできません。ただし、図 1 を見ると、元のプロトコル設計者が TCP プロトコルをどのように定義したかがわかります。この図の利点は、各フィールドが占めるバイト数が明確に示されていることです。
PCAP
図 1 を使用して、TCP のフィールドが十分具体的ではないことを示します。