TCP/IP
TCP/IPの概要
TCP/IPとは
TCP/IPは1983年に標準化された、インターネットの標準プロトコルです。TCP(Transport Control Protocol)とIP(Internet Protocol)を中心とした4階層のプロトコルスタック(ネットワークアーキテクチャ)で構成されています。
- TCP/IPプロトコルスタックはインターネットの標準プロトコル=デファクトスタンダード(事実上の標準)な通信プロトコルのこと。RFCにて標準化されている。
- TCPとIPという2つのプロトコルを中心に、4つのレイヤで構成されている。
- OSIプロトコルとTCP/IPプロトコルスタックのレイヤごとの対比は図の通り。
TCP/IPプロトコルの技術仕様は、IETF(Internet Engineering Task Force)によって標準化が推進されていて、規格はRFC(Request For Comments)というドキュメントとして公開されます。
IETFによる標準化のコンセプトとして、技術仕様は変化するものと捉えて、大まかな仕様だけ決め、実際に実装して動作することを重視する「Rough Consensus & Running Code」の考え方が採用されています。仕様を重視し、投票による仕様決定を行うISOやITUのようなコンセプトとは大きく異なります。
インターネットモデル
TCP/IPのプロトコルスタックは、インターネット標準として利用されることから、インターネットモデルとも呼ばれます。IETFでは4階層のプロトコルスタックと、それぞれの階層で動作するプロトコルを定義しています。
TCP/IP階層 | 主なTCP/IPプロトコル |
アプリケーション層 | HTTP、SMTP、POP、IMAP、FTP、DNS、DHCP、SNMPなど |
トランスポート層 | TCP、UDP |
インターネット層 | IP、ICMP、ARPなど |
ネットワークインタフェース層 | 規定なし(LANやWANの仕様を参照) |
表 8 TCP/IPプロトコルスタック
インターネットモデルの階層構造は、OSI基本参照モデルの各階層の役割と関連付けて考えることができます。ただし、必ずしもOSI基本参照モデルの階層との対応が完全に一致するものではありません。
IP アドレス
IP アドレスのクラス
IPの概要
IPの主な役割
IP(Internet Protocol)とは、インターネット層で動作するプロトコルです。OSI基本参照モデルのネットワーク層に相当するプロトコルであり、異なるネットワークを中継し、宛先のコンピュータ(ホスト)にパケットを届ける役割があります(End-to-End通信)。
IPアドレス
TCP/IPで通信するコンピュータや機器をホストといいます。各ホストにはIPアドレスが割り当てられます。
IPアドレスは、32ビットで構成される、インターネットにて通信相手のホストを識別するアドレス情報です。32ビットのアドレスを、8ビット(1バイト=1オクテット)単位に分け、ドット(.)で区切り、それぞれを10進数で表記します。このような表記方法をドット付き10進表記といいます。
ドット付き10進表記では、各オクテットとも、0~255の256通りの10進数で表現できます。
図 56 IPアドレスの表記
IPアドレスの構造
IPアドレスは、全32ビット(4オクテット)のうち、前半2オクテットのネットワーク部と、後半2オクテットのホスト部により構成されます。また、IPが扱うネットワークの単位は、ブロードキャストドメインとなります。
ネットワーク部は、ネットワークごとに、インターネット上で一意となるように割り当てられます。また、ホスト部は、ネットワークに接続するすべてのホストの中で一意となるように割り当てられます。
つまり、IPアドレスは、ネットワーク部とホスト部の双方で一意となることにより、インターネット上で重複しないアドレスとして利用できます。
図 57 ネットワークアドレスとホストアドレス
ネットワーク部(ネットワークアドレス)
ネットワーク部のアドレスは、IPアドレスの前半2オクテットを、ネットワーク(ブロードキャストドメイン)単位に割り当てます。そのため、同じネットワーク(ブロードキャストドメイン)に所属するホストは、同じネットワークアドレスを割り当てることになります。
ネットワーク自体に割り当てるアドレスを、ネットワークアドレスといいます。ネットワークアドレスは、ホスト部をすべて0に指定したアドレスとなります。
ホスト部(ホストアドレス)
ホスト部のアドレスは、IPアドレスの後半2オクテットを、ホストに割り当てます。同じネットワークに所属するホストには、それぞれ異なるホストアドレスを割り当てます。
IPアドレッシング
IPアドレッシングとは
ホストにIPアドレスを割り当てる方法を、IPアドレッシングといいます。IPアドレッシングには、クラスによってアドレスを割り当てる「クラスフルアドレッシング」と、クラスにとらわれずに自由にアドレスを割り当てる「クラスレスアドレッシング」の2つの方法があります。
クラスフルアドレッシング
クラスフルアドレッシングは、TCP/IPが公開された当初に定義された、クラスによるIPアドレッシングです。あらかじめ、5つのクラス(A~E)に分類しておき、そのうちクラスAからCまでをホストに割り当てるアドレスとして利用していました。
各クラスは、ネットワーク部の先頭4ビットまでのビット列によって決定され、それぞれオクテット単位でネットワーク部とホスト部が固定されます。
クラスA
クラスAは、先頭のビットが「0」から始まり、先頭から1オクテット分をネットワーク部、残りの3オクテット分をホスト部として割り当てます。
IPアドレスの範囲:0.0.0.0~127.255.255.255
クラスAで作成できるネットワークアドレス:128個
1ネットワークあたりのホストアドレス:16,777,214個
クラスB
クラスBは、先頭のビットが「10」で始まり、先頭から2オクテット分をネットワーク部、残りの2オクテット分をホスト部として割り当てます。
IPアドレスの範囲:128.0.0.0~191.255.255.255
クラスAで作成できるネットワークアドレス:16,384個
1ネットワークあたりのホストアドレス:65,534台
クラスC
クラスCは、先頭のビットが「110」で始まり、先頭から3オクテット分をネットワーク部、残りの1オクテット分をホスト部として割り当てます。
IPアドレスの範囲:192.0.0.0~223.255.255.255
クラスAで作成できるネットワークアドレス:2,097,152個
1ネットワークあたりのホストアドレス:254台
特殊なアドレス
IPアドレスの32ビットすべてを組み合わせると、約43億台のホストに割り当てられる計算となります。実際には、これらがすべてホストに割り当てられるわけではなく、一部は特定の用途に割り当てられる特殊なアドレスとして利用されます。特殊用途として予約されている主なアドレスは以下のとおりです。
クラスD、Eのアドレス
クラスDのアドレスは、ホストに割り当てられるアドレスではなく、通信相手を特定グループのホストだけに限定した、マルチキャスト通信の用途として割り当てられています。
また、クラスEのアドレスは、将来的な用途で使用するアドレスとして予約されており、クラスD同様、ホストに割り当てることはできません。
- あらかじめ用意されたネットワーク部とホスト部の分け方のパターンのことをクラスと言う。
- クラスはA~Eの5種類存在し、A,B,Cが一般的なネットワークで用いられるクラス、Dがマルチキャストで使用されるクラス、Eが実験用に予約されたクラスとなる。
- クラスAは大規模向け、クラスBは中規模向け、クラスCは小規模向けのクラスとなる。
- クラスを識別するため、IPアドレスの先頭値はクラスごとに決められた固定値が設定される。
クラスDの範囲:224.0.0.0~239.255.255.255
クラスEの範囲:240.0.0.0~255.255.255.255
ネットワーク部が「0」のアドレス
ネットワーク部の最初のオクテット(第1オクテット)が「0」の場合、「現在のネットワーク(this network)」を意味し、予約されていてホストに割り当てることはできません。
ネットワーク部が「127」のアドレス(ループバックアドレス)
ネットワーク部が「127」のアドレスは、自分自身のホストを指すループバックアドレスとして予約されています。
ネットワーク部が「169.254」のアドレス(リンクローカルアドレス)
ネットワーク部が「169.254」で始まるアドレスは、DHCPによるIPアドレスの自動割り当てが不調に終わった場合に、OSによって自動的に割り当てられるアドレスです。WindowsにはAPIPA(Automatic Private IP Addressing)という機能により、リンクローカルアドレスが割り当てられます。
ホスト部のビットがすべて「0」のアドレス(ネットワークアドレス)
ホスト部のビットがすべて「0(オールビット0)」となるアドレスは、ネットワークそのものに割り当てるネットワークアドレスです。そのため、ホストに割り当てることはできません。
ホスト部のビットがすべて「1」のアドレス(ブロードキャストアドレス)
ホスト部のビットがすべて「1(オールビット1)」となるアドレスは、ブロードキャストアドレスという特殊なアドレスです。ネットワークに所属するすべてのホスト宛の通信となるため、ホストに割り当てることはできません。
ユニキャスト・マルチキャスト・ブロードキャスト
IPでは通信を行う相手ホストの数によって、ユニキャスト、マルチキャスト、ブロードキャストの3種類の通信に分けられます。
ユニキャスト
ユニキャストは、相手ホストと1対1で行う通信をいいます。IPでは、相手ホストのIPアドレスを宛先に指定してパケットが送信されます。当然のことながら、送信されたパケットは、宛先に指定されたホストだけが受信します。
マルチキャスト
マルチキャストは、特定の複数ホストと1対多で行う通信をいいます。IPでは、マルチキャストアドレス(クラスD)を宛先IPアドレスとして指定すると、マルチキャストグループ(マルチキャストを受信するグループ)に所属するホストだけにパケットが送信されます。
マルチキャストグループは、IPと同じインターネット層のプロトコルであるIGMP(Internet Group Management Protocol)によって管理されます。
ブロードキャスト
ブロードキャストは、すべてのホストと1対ALLで行う通信をいいます。IPでは、ブロードキャストアドレスを宛先IPアドレスに指定すると、すべてのホストに対してパケットが送信されます。ブロードキャストアドレスは、IPアドレスのホスト部がすべて1であるアドレスを指します。
クラスフルアドレッシングの欠点
クラスフルアドレッシングでは、先頭のビットおよびネットワーク部とホスト部の境界が固定されることから、仕組みが単純で分かりやすいことが特徴です。10進表記されたアドレスの1オクテット目を見ただけで、クラスが判断できるのが大きな特徴です。
しかし、コンピュータが普及し、インターネットに接続するホストが急増してくると、クラスAおよびクラスBのホストアドレス部は、すべてのアドレス空間が実際に使用されることはなく、多くのホストアドレス空間が無駄になってしまいます。その結果、インターネットに接続するすべてのホストに対してIPアドレスが割り当てられない可能性が出てきました。
そこで、IPアドレッシングを効率的に実施できるような仕組みが導入されることになりました。
サブネットマスク
サブネットマスク(subnet mask)は、ネットワーク部とホスト部を分割するためのアドレスマスクです。サブネットマスクは、IPアドレスと同じく32ビットで構成され、ドット付き10進表記で表記します。ネットワーク部には「1」がセットされ、ホスト部には「0」がセットされます。
サブネットマスクの設定例
図 64 IPアドレスとサブネットマスク
- どこまでがネットワーク部かを表す情報をサブネットマスクと言う。サブネットマスクを用いてネットワーク部が決定されるアドレスはクラスレスアドレスと呼ばれる。
- IPアドレスと同じく32ビット列で表され、前方の1埋め部がネットワーク部を、後方の0埋め部がホスト部をそれぞれ表す。
サブネットマスクの仕組みが導入されることによって、従来のクラスに関係なく、柔軟にネットワーク部とホスト部を分割できるようになりました。そのため、ネットワークに収容するホスト数に応じたIPアドレスの割り当てが可能となりました。
しかし、ネットワーク部とホスト部の区切りの見分けがつかなくなったため、以降はIPアドレスとサブネットマスクの2つの情報が必要となり、併記されるようになりました。
クラスレスアドレッシング
クラスレスアドレッシングとは、クラスフルアドレッシングで採用されたクラスを使用せず、柔軟にIPネットワークを構成できるようにアドレスの割り当てる方法です。任意の位置でネットワーク部とホスト部を区切ることにより、1つのネットワークに収容するホストの台数に応じたネットワークを割り当てることができます。
クラスレスアドレッシングで割り当てられたIPアドレスは、一般的にIPアドレスとサブネットマスクを併記して記述しますが、IPアドレスの後をスラッシュ(/)で区切り、続けてネットワーク部のビット長を指定した表記方法を使用することもできます。このような表記方法をCIDR(サイダー)表記といいます。
図 65 クラスレスアドレッシングによるIPアドレスの表記
プライベート IP アドレスとグローバル IP アドレス
グローバルアドレスとプライベートアドレス
IPアドレスには、ホストがインターネットに直接接続できるかどうかによって、グローバルアドレスとプライベートアドレスの2種類に分けられます。
グローバルアドレス
グローバルアドレスは、インターネットに直接接続できるホストに割り当てられるアドレスです。グローバルアドレスは、全世界で一意である必要があるため、ICANN(Internet Corporation for Assigned Names and Numbers:アイキャン)という国際的な非営利団体によって管理されています。
プライベートアドレス
プライベートアドレスは、インターネットには直接接続せず、会社や家庭などの限られた範囲で利用するホストに割り当てられるアドレスです。プライベートアドレスは、あらかじめ特定のIPアドレス空間が予約されています。その予約された範囲内のアドレスについては、誰でも自由にホストに対して割り当てることができます。
プライベートアドレスとしてのアドレス空間は、ネットワークの規模により以下の3つの領域が予約されています。
表 10 プライベートアドレスの範囲
- IANA(ICAN)が管理する、インターネットで利用可能なIPアドレスをグローバル(パブリック)IPアドレスと言う。
- 各ネットワークで管理する、インターネットで利用できずネットワーク内でのみ利用可能なIPアドレスをプライベートIPアドレスと言う。
- グローバルIPアドレス/プライベートIPアドレスの考え方はIPアドレス枯渇問題をIPv4を利用したまま解決するために生まれた。
- プライベートIPアドレスの範囲はRCF1918によってクラスごとに定義されている。この範囲外はすべてグローバルIPアドレスとなる。
サブネット(Should)
演習 3-1 IP アドレスの確認
NAT(Network Address Translation)(Should)
NAT と NAPT(Network Address and Port Translation)(Should)
ARP(Address Resolution Protocol)(Should)
ARPの概要
ARPの主な役割
ARP(Address Resolution Protocol)は、インターネット層で動作するプロトコルで、IPアドレスとMACアドレスの関連付けをするためのプロトコルです。
宛先IPアドレスは、パケットの最終目的地となるホストを指定するため、パケットが宛先に届けられる間、同じアドレスを保持します。しかし、最終目的地へのパケット転送の過程において、次の転送先は隣接ノードへの通信となります。隣接ノードへの通信はデータリンクレベルで行われます。そのため、データリンクレベルのアドレスであるMACアドレスへ変換する必要があります。ARPは、宛先IPアドレスへパケットを転送する際に経由する次の転送先のMACアドレスを解決するために動作します。
- ARP(Address Resolution Protocol)はIPアドレスに紐づくMACアドレス(レイヤ2アドレス)を調べるためのプロトコル。このIPアドレスからMACアドレスを調べる一連の処理はアドレス解決と呼ばれる。
- ブロードキャストでネットワーク内の全ノードに「このIPアドレス誰?」という通信を行い、自分と認識したノードにMACアドレスを返送させる仕組み。フレームの宛先MACアドレスを決定するために必要。
- 何度もブロードキャストされることを防ぐためにARPテーブルが用いられる。
このように、IPパケットは、LANなどのデータリンクレベル通信を繰り返すことによって最終目的地まで届けられることにより、End-to-End通信を実現します。
ARPの動作
ARPの動作は大きく、ARP要求とARP応答に分けられます。
ARP要求
ARP要求(ARP Request)は、IPパケットを転送する前に、宛先IPアドレスをもとに次の転送先となる隣接ノードのMACアドレスを問い合わせる動作をいいます。ARPは、問い合わせ対象のIPアドレスをARPヘッダにセットして、すべての隣接ノードに対してブロードキャストを送信します。ARP要求の宛先は、MACアドレスのすべてのビットに「1」をセットした、MACブロードキャストアドレスになります。
ARP応答
ARP応答(ARP Reply)は、ARP要求に対しての回答となります。
ARP要求を受信したすべてのホストは、ARPヘッダにセットされた問い合わせ対象のIPアドレスと、自身のIPアドレスを照合します。
IPアドレスが一致しない場合は、自身への問い合わせでないと判断し、パケットを破棄します。IPアドレスが一致した場合は、ARP要求で受信したヘッダの宛先と送信元を入れ替え、送信元のIPアドレスに自身のIPアドレスをセットして、ARP要求を送信したホストに対してユニキャストで送信します。
ARP応答によって宛先のMACアドレスが入手できたら、送信元ホストは、送信対象のIPパケットを隣接ノード宛に送信します。
ICMP(Internet Control Message Protocol)(Should)
ICMP の役割
ICMP の例:エコー/エコー応答と ping
ICMPの概要
ICMPの主な役割
ICMP(Internet Control Message Protocol)は、インターネット層で動作するプロトコルです。IPはEnd-to-End通信の機能を提供しますが、相手先にパケットが届いたかどうかを確認する機能を持ち合わせていません。
そこで、IPの通信における低信頼性を補うために、ICMPは通信エラーが発生した際に、エラーメッセージを送信して送信元ホストに報告したり、相手ホストに対して問い合わせを行ったりします。
図 69 ICMPの動作概要
ICMPメッセージ
- ICMP(Internet Control Message Protocol)はエラー通知や問い合わせ情報を転送するためのプロトコル。ベストエフォート型のため通信状況やエラーの確認を行はないIPを補う役割を担い、IPとセットで用いられる。
- ICMPはインターネット層のプロトコルであり、IPの上位に位置づけられる。
ICMPによる、エラーや問い合わせに関するメッセージは、タイプ(Type)とコード(Code)で構成されています。タイプはメッセージの種別を、コードはタイプごとにメッセージの詳細情報を、それぞれ表します。
タイプ | 機能 |
0 | エコー応答 |
3 | リダイレクト |
5 | 宛先到達不能 |
8 | エコー要求 |
11 | 時間超過 |
表 11 主なICMPメッセージ
ICMPのコマンド ~ ping ~
- pingは特定ノードと通信できるか確認する際に用いられるコマンドの一種。
- エコー要求(タイプ8)を発信し、対象のノードからエコー応答(タイプ0)が返ってきたら接続OKと判断する。(エコー要求を受信したノードは必ずエコー応答を返すことになっている)
- 通常1回のpingで複数のエコー要求を送る。(Windowsの場合デフォルトで4回送信する)
ICMPのコマンド ~ traceroute ~
- tracerouteは特定ノードまでの経路情報を取得するためのコマンドの一種。
- コマンドはOSによって異なりWindowsだと「tracert」、Linuxだと「traceroute」で実行可能。
- TTLはルータによって1ずつ減らされるが、0になると該当ルータから送信元にエラー通知が行われる。tracerouteはこの仕組みを利用しており、TTL=1で送信&エラー通知してきたノード情報を記録→TTL=2で送信&エラー通知して来たノード情報を記録・・・というようにTTLを増やしながらデータ送信を繰り返すことで経路情報を取得する。
演習 3-2 パケットモニタリングツール Wireshark の使い方 (Should)
演習 3-3 Wireshark で ARP と ICMP のパケットを確認 (Should)
TCP と UDP
TCP と UDP の特徴
TCP(Transmission Control Protocol)
TCPの主な役割
TCP(Transmission Control Protocol)は、トランスポート層レベルで動作するコネクション型のプロトコルです。コネクション型のプロトコルは、通信の信頼性を提供します。
TCPは、IPが宛先のIPアドレスをセットして送信するだけである(コネクションレス型)のに対して、①パケット送信前に相手ホストとの間でコネクションを開設し、その後も、②パケットの順序を制御したり、③相手にパケットが届いたかどうかを確認したり、④届かなかったパケットを再送したりと、通信の信頼性を向上させるために動作します。
- TCP(Transmission Control Protocol)はIP同様インターネットにおいて標準的に利用されているプロトコルで信頼性の高い通信を実現するために使用されている。信頼性を高めるために送信元&宛先双方で状況を確認しあいながら通信する方式をコネクション型といい、TCPもその一つである。
- 送信データはセグメントという単位に分割され制御・送信される。
TCPヘッダは、通常、IPヘッダと同じ20バイトで構成されています。送信するデータ(ペイロード)により、オプションデータを追加して送信する場合があります。その際は、送信データが4バイト単位となるように、パディングを付加することがあります。
[参考]図 75 TCPヘッダフォーマット
コネクションの確立
- TCPを用いて通信を行う際は通信前に仮想のコネクションを確立する。
- 送信するためのコネクション確立は以下の2ステップで行われる。
①送信元から宛先に接続したい旨を伝えるため、SYNを1にしてセグメントを送信する
②SYN:1つのセグメントを受け取った宛先は接続を承認する場合、送信元にACKを1にしてセグメントを送り返す。
TCPで通信を行うホスト同士は、データの送受信を開始する前に、3つのパケット(セグメント)をやり取りしてコネクションを開設します。これを3 Way Handshake(3ウェイハンドシェイク)といいます。3 Way Handshakeによって開設されたコネクションは、一連の通信が終了するまで保持されます。
図 73 3 Way Handshake
- TCPでは通信前に必ずコネクション(接続)を確立するための情報のやり取りを行い、これを3ウェイハンドシェイクと呼ぶ。
- 3ウェイハンドシェイクは以下の3ステップで行われる。(送信元をA,宛先をBとする)
①A→Bの接続要求を伝えるため、AはBにSYN:1でセグメントを送信する。
②接続要求 & B→Aの接続要求を伝えるため、BはAにACT:1/SYN:1でセグメントを送り返す。
③接続承認を伝えるため、AはBのACK:1でセグメントを更に送り返す。
<参考>TCPにおけるデータ転送の流れ
確認応答と再送制御
通信するホスト間でコネクションが開設されると、以降、TCPは送信したデータが相手に届いたかどうかを、相手からの確認応答(Acknowledgement)を受信することによって確認します。確認応答は、TCPヘッダのACKビットに1をセットして送信することから、単にACKとも呼びます。
- 確認応答を受信できない場合、送信元はそのデータの転送は失敗したとしてもう一度送りなおす。(再送制御)
- TCPでは 「この時間待っても応答がなければ送信失敗とみなし再送する」 という再送タイマーが設定される。この待機時間はネットワークによって異なり、具体的には3ウェイハンドシェイクの際に最適な時間を算出、設定する。
- 一定回数再送しても確認応答の受信がない場合、送信元は接続を強制終了する。
コネクションの終了
通信するホスト間でやり取りするデータをすべて送受信できたら、開設していたコネクションを終了します。
- 接続の終了は3ウェイハンドシェイクと同様に以下の3ステップで行われる。(送信元をA、宛先をBとする。)
①A→Bの接続終了要求を伝えるため、AはBに FIN:1でセグメントを送信する。
②接続終了要求 & B→ Aの接続終了要求を伝えるため、BはAに ACK:1/FIN:1でセグメントを送り返す。
③接続終了承認を伝えるため、AはBにACK:1でセグメントを更に送り返す。
UDP(User Datagram Protocol)
UDPの概要
UDPの主な役割
UDP(User Datagram Protocol)とは、トランスポート層レベルで動作するコネクションレス型のプロトコルです。
コネクション型プロトコルのTCPが、通信の信頼性を提供しているのに対し、コネクションレス型プロトコルのUDPは通信の信頼性はないものの、TCPが行うさまざまな制御を簡素化し、高速な通信を提供します。
- UDP(User Datagram Protocol)はTCPのようなコネクション・送信データの制御や管理といった概念が一切ない、指定されたポート番号に何も考えずにデータを送るプロトコル。この通信方式はコネクションレス型と呼ばれる。
- UDPは信頼性を考慮しないベストエフォート型の通信とも言える。信頼性が必要ならば上位のアプリケーション層で補うしかない。
- UDPヘッダは非常に単純な構造であり、TCPとは扱うデータの性質も異なるため、UDPで扱うデータの単位はデータグラムと呼ばれる。
- オーバーヘッド(データ転送に付随して発生する処理負荷)が小さいため処理スピードが高速になる。そのためIP電話や動画ストリーミング、分割のない小さなデータの転送などで活躍する。
UDPは、TCPによる制御を必要としない少量の通信(DNSなど)や、動画、音声などのマルチメディア通信などで使用されます。
[参考]UDPヘッダフォーマット
UDPヘッダは、通常、8バイトで構成されています。
図 76 UDPヘッダフォーマット
ポート番号
DHCP (Dynamic Host Configuration Protocol)
演習 3-4 DHCP で自動取得した IP アドレスの確認
HTTP(Hypertext Transfer Protocol)
HTTP の動作
URL(Uniform Resource Locator)
メソッド (Should)
演習 3-5 Web サーバーの構築 (Option)
DNS(Domain Name System)
名前解決と DNS
演習 3-6 ホスト名での ping コマンドの実行
インターネットにおける名前解決
メールシステムとアプリケーション層プロトコル
3 章のまとめ
章末問題