ネットワークエンジニア を目指して

ようこそ「ネットワークエンジニアを目指して」へ!!
「ネットワークトラブルに恐れることなく立ち向かえるネットワークエンジニア」へと導くことを信条に、ネットワーク技術の解説とネットワークに関する情報を幅広く紹介します!

ホーム > TCP/IP技術(4) > TCP/UDP - ウインドウサイズを利用したフロー制御

TCP/UDP - ウインドウサイズを利用したフロー制御

Bookmark this on Hatena Bookmark   

 

信頼性を高めるための方法

TCP では信頼性を向上させるために以下の 3 つの技術を採用しています。

  • 相手が通信可能かどうかを確認する機能
    仮想コネクションの確立
  • 相手にパケットが届いたかどうかを確認する機能
    ACK による到達確認
  • 相手の処理能力に合わせてデータサイズを調整する機能
    ウインドウサイズを利用したフロー制御

今回は最後の「ウインドウサイズを利用したフロー制御」について
解説していきましょう。

 

ウインドウサイズを利用したフロー制御

3 ウェイハンドシェイクで仮想コネクションを確立し、
データの送信中は ACK パケットを使用して到達確認を実施する。

これだけでも、かなりの信頼性向上になっているわけですが、
TCP ではさらにもう 1 つの機能を利用して信頼性向上を図っています。

それは送信するデータ量。

以下のように送信側ノードがむやみにデータを送信した場合、
受信側ノードのデータ処理能力が低く、すべてのデータを受信できない
可能性が発生してしまいます。

 

ウインドウサイズ

 

このような状態が続けば、当然通信の信頼性は落ちてしまいます。

そのため受信側ノードの処理能力を考慮しつつ、最適なデータサイズを
送信する機能が必要になります。

この機能を「フロー制御」と呼びます。

 

フロー制御の動作

送信するデータのサイズは、何の情報で最適化されるのでしょうか?

それは「ウィンドウサイズ」を使用して最適化を行っています。
一度に受信できるデータのサイズを「ウインドウサイズ」と呼び、
送信側ノードは受信側ノードあら通知されるウインドウサイズに
従って、送信するデータのサイズを調整しています。

受信側ノードがどのようにウインドウサイズを通知するかと
いいますと、データを受信するたびに返信する ACK パケットに
ウインドウサイズを盛り込んで通知しているのです。

 

フロー制御

 

もし、受信側で処理できなくなった場合は、ウインドウサイズを「0」
にして ACK パケットを送信します。

すると、送信側ノードはデータの送信を中断します。

受信側ノードでデータ受信が出来る状態になると、改めて ACK パケット
を送信することで、データ送信が再開されます。

 

おすすめ記事

おすすめ書籍紹介

マスタリングTCP/IP 応用編
入門編を卒業したらこちら。
応用編も入門編と同様に豊富な図を使用し、TCP/IPに関するさらに詳細な解説を記している。
特にパッケットの構造はかなり詳細に解説しており、初心者にはすこしつらいかもしれないが非常に読みやすいのでぜひ読んでみてほしい。

インターネットルーティング入門 第2版
ネットワーク初心者の方にぜひおすすめしたい一冊。絵を豊富に使用し、「ルーティングとは」から始まり最後はRIP、BGP、MPLSまで深い解説ではなく、浅く満遍なく解説しています。
この本が理解できればルーティングスキルの第一歩を踏み出せるでしょう。

関連記事

トランスポート層(レイヤ 4)の役割
トランスポート層(レイヤ 4)の役割について

ポート番号
ポート番号について

コネクションとコネクションレス
コネクションとコネクションレスについて

UDP
UDPについて

TCP ヘッダ
TCP ヘッダについて

仮想コネクションの確立
TCP ヘッダについて

ACK による到達確認
TCP ヘッダについて

ウインドウサイズを利用したフロー制御
TCP ヘッダについて

TCPウインドウ制御
TCPウインドウ制御とスライディング・ウインドウについて

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: