ネットワークについて(About network)
TCP/IP
Transmission Control Protocol / Internet Protocol)は通信を実現する基盤技術
中でも「通信の信頼性を確保する」役割を担っているのが TCP
IP とは Internet Protocol
IP とは、複数の通信ネットワークを相互に接続し、データを中継・伝送して一つの大きなネットワークにすることができる通信規約(プロトコル)の一つ。IP によって接続された世界規模の巨大なコンピュータネットワークをインターネット(the Internet)という。
ネットワーク層で用いられるプロトコル。(経路制御)
IP アドレスを用いて機器と機器をネットワーク上でつなぐような役割。 ・ パケット通信技術 ・ コネクションレス型通信
IP データグラム
IP で送受信するデータは一定の大きさに分割され、先頭に宛先アドレスや送信元アドレスなどの制御情報(IP ヘッダと呼ばれる)を付加した「IP データグラム」(IP datagram)と呼ばれる送受信単位で伝送される。このような伝送方式をパケット交換方式という。
TCP とは
TCP は「コネクション型」と分類され、送受信を行う機器間で通信の開始と終了を確認する。データ転送時には、送信側はデータを送信し、受信側はそれに対する確認応答である ACK(Acknowledgement)を返すことによって、両端のホスト間でデータが届いたかどうかを確認し合いながら確実にデータ転送を行う。
OSI 参照モデルではトランスポート層にあたる。
特徴
通常、データの送信単位にはデータ部とヘッダ部があり、ヘッダは各階層ごとにフォーマットが規定されている。
TCP では、両ホストはトランスポート層のヘッダのみを参照し、通信のやりとりを行う。通信する両者が同時にデータを送受信可能である全二重通信を提供
- TCP では送信単位のことを「セグメント」と呼ぶ
- セグメントが何番目まで送られたかを示すシーケンス番号
- 何番目まで受け取りました/次は何番目が欲しい」ということを示す確認応答番号 「受信可能なセグメント量」を示すウィンドウサイズ
コネクション管理
コネクションの確立 3 ウェイハンドシェイク
- 送信側から確立要求として SYN(synchronize)(コネクションの確立要求)フラグの有効化された TCP パケットを送信
- 受信側はこれに対する ACK(Acknowledgement)と、同時に受信側からの接続確立要求として同 TCP ヘッダの SYN フラグを有効化して送信(SYN+ACK)
- 送信側が受信側からの SYN に対する ACK パケットを送信
コネクションの切断:ハーフクローズ
- 送信側は最初に FIN(コネクション終了要求)を送信
- 受信側は ACK を送信し、続けて FIN を送信
- 送信側は FIN を受信して最後の ACK を送った後、一定時間待ってコネクション終了
ウィンドウ制御
TCP の送信側では、一度に転送可能なデータ量を表すパラメータであるウィンドウサイズ(swnd)が定義されている。 ウィンドウ内にあるセグメントは ACK を待たずに送信することができる。
ウィンドウ制御」が上位概念に相当し、スライディングウィンドウ方式に基づいてデータの転送を行う、というもの。送信ウィンドウサイズ swnd を決定するための方法が「フロー制御」と「輻輳制御」となる。 フロー制御は受信側から通知される受け入れ可能なウィンドウサイズ rwnd に基づいて送信ウィンドウサイズ swnd を決定するもの。輻輳制御は、ネットワークの輻輳をできるだけ抑えつつ、かつ効率よくデータを転送することを目的とし輻輳ウィンドウサイズ cwnd を決定するもの。 rwnd が cwnd よりも小さければ、rwnd を優先的に採用する。
フロー制御
二つの機器間でデータのやり取りを行う場合、相手から受信したデータはバッファメモリにいったん記録され、その後プロセッサから読み出されて処理される。 このとき、送信が速過ぎてバッファからあふれそうになったり、受信側が何らかの処理に忙しくてデータの処理を進められない場合などに、送信側の機器にこれを通知して、送信を一時中断したり、速度を低下させたりする。こうしたデータの流れの調整をフロー制御という。
輻輳制御
ネットワークの混雑(輻輳、ふくそうと言います)をできるだけ回避するような送信セグメント量の制御をおこなう。
他のプロトコル
ARP: Address Resolution Protocol
通信相手の IP アドレスから MAC アドレスを取得する。
RARP: Reverse-ARP
MAC アドレスから IP アドレスを取得。
ICMP Internet Control Message Protocol
IP パケット(データ)の送信処理時のエラー通知・制御のためのプロトコル。 Ping コマンドで用いられる。
Ping コマンドとは
Ping コマンドとはネットワークを確認したいホストに対して IP パケットを送信して、通信ができるかどうかを確認するコマンド
DHCP とは「Dynamic Host Configuration Protocol
IPv4 ネットワークにおいて通信用の基本的な設定を自動的に行うためのプロトコル
最初は DHCP クライアントは自身の IP アドレスも知らなければ、DHCP サーバの IP アドレスも知らないので全ての宛先(ブロードキャスト)に DHCP Discover メッセージを送信して、ネットワーク全体に問い合わせをする。 ブロードキャストをサポートしているプロトコルである UDP を使う。
SMTP: Simple Mail Transfer Protocol
メール送信用
POP3:Post Office Protocol
メール受信用 一回受け取ると、サーバーから消えるので複数台受信向きではない。
IMAP: Internet Message Access Protocol
メール受信用。Web メールとかは大体これ。 受信してもサーバーから消えないが上限がある。
ルーティングプロトコル 【 routing protocol 】
ルーティングプロトコルとは、ネットワーク上の経路選択を行うルータ間の通信に用いられるプロトコル(通信規約)の一つで、経路情報を交換するためのもの。通常はインターネット上でのルーティングに用いられるものを指す。
NTP とは
NTP(Network Time Protocol)は、コンピュータに内蔵されているシステムクロックをネットワークを介して正しく同期させるためのプロトコル。NTP により時刻同期を行うことで指定時間に正しくサービスを動作させたり、出力ログを正しく管理できたり、証明書を利用した認証なども正しく行うことができます。
Internet Relay Chat とは
サーバを介してクライアントとクライアントが会話をする枠組みの名称
参考
TCP/IP をわかりやすく - 通信プロトコルの基礎知識を図解で学ぼう