エンジニアのエンジニアによるエンジニアのためのサイト
Toggle navigation
TOP
技術
書籍
資格
業務
イベント・セミナー
ニュース・お知らせ
検索
News
07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。
無料会員登録
メールアドレス
パスワード
パスワードを忘れた場合
Login
Tweet
TOP
投稿内容
TCP通信について
投稿者: Nakamaさん
投稿日:2021/05/25 17:22
更新日:
3
分類
技術
テクノロジー
ネットワーク
キャリア
運用・保守
投稿内容
今回は、OSI参照モデルのトランスポート層で使用されている代表的なプロトコルTCPについてご紹介していきます。
OSI参照モデルとは、通信を行うための機能を7つの階層に分け、それぞれの役割を定めた基本的な概念です。その、第4階層にあたるトランスポート層の主な役割は、上位にあたるアプリケーション層で利用されているプロトコル間での通信を制御することです。受信したデータを対象のアプリケーションに渡すといった上位層と下位層の橋渡しを行っています。
トランスポート層で使用されている代表的なプロトコルが「TCP」と「UDP」となります。
【TCP】
TCPは、データ送信前に相手と通信可能か確認し、コネクションを確立してデータの送受信を行うコネクション型のプロトコルです。上位層から渡されたデータにTCPヘッダを付与し、それをTCPセグメントとして下位層に渡します。
TCPの特徴として、「接続の確立」「データ順序の確保」「ウィンドウ制御・フロー制御」があります。
◯3ウェイハンドシェイクでの接続の確立(例:A ⇒ Bへの接続)
TCP接続の開始する際に、Aは「SYNフラグ」をBに送信し、端末間で同期をとります。
フラグを受け取ったBは、「SYNフラグ」にプラスして、「ACKフラグ」を送信要求の応答としてAに返信します。
「SYNフラグ」と「ACKフラグ」を受け取ったAは、「SYNフラグ」の応答として「Ackフラグ」のみをBに返します。
〇データ順序の確保
データを送信できるサイズには、上限が設けられているので上限を上回る場合、分割して送信されます。分割してもデータを正しい順序に並び替えられるように目印として、「シーケンス番号」を割り振ってデータのやり取りをおこないます。
〇ウィンドウ制御とフロー制御
データを送信するとACKフラグがオンになった確認応答が返信されます。基本的には、1つのデータに対して1つのACKフラグを返して、またデータを送信して…を繰り返します。データが多くなる場合、一つづつ応答を待っていると効率が悪いので、ウィンドウというデータ領域のバッファを用意して、ウィンドウサイズ上限に達するまでACK応答を待たずにデータをまとめて送れば、データの転送効率が上がります。
しかし、複数端末からデータが同時送信されると負荷が高まり、受信者側が処理しきれない場合があります。その場合、受信者側はウィンドウサイズを一時的に小さくして、データ送受信を制御します。負荷が減り受信可能な状態になるとウィンドウサイズを大きくして通知します。このデータ量を制御する仕組みをフロー制御といいます。
以上、TCP通信についてでした。
参考にしていただけると幸いです。
コメント
コメントする
戻る