tag:crieit.net,2005:https://crieit.net/tags/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%9F%BA%E7%A4%8E%EF%BC%92%E7%AB%A0/feed 「ネットワーク基礎2章」の記事 - Crieit Crieitでタグ「ネットワーク基礎2章」に投稿された最近の記事 2021-04-30T11:07:45+09:00 https://crieit.net/tags/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%9F%BA%E7%A4%8E%EF%BC%92%E7%AB%A0/feed tag:crieit.net,2005:PublicArticle/17034 2021-04-30T09:54:34+09:00 2021-04-30T11:07:45+09:00 https://crieit.net/posts/ELT ネットワーク基礎2章まとめ(TCP/IP) <h1 id="TCP/IP入門"><a href="#TCP%2FIP%E5%85%A5%E9%96%80">TCP/IP入門</a></h1> <h2 id="通信とは?"><a href="#%E9%80%9A%E4%BF%A1%E3%81%A8%E3%81%AF%EF%BC%9F">通信とは?</a></h2> <p>・・・物理的に離れた人やコンピュータ同士が情報をやり取りすること</p> <h2 id="通信に必要なもの"><a href="#%E9%80%9A%E4%BF%A1%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%82%82%E3%81%AE">通信に必要なもの</a></h2> <p>「事前の取り決め・ルール」が必要になる。このルールを<strong>通信プロトコル</strong>という。<br /> 通信プロトコルとは、<strong>通信規約</strong>や<strong>通信手順</strong>のことを指す。</p> <h2 id="TCP/IPとは?"><a href="#TCP%2FIP%E3%81%A8%E3%81%AF%EF%BC%9F">TCP/IPとは?</a></h2> <p>TCP/IPとは現在ネットワーク上で標準的に使用されている<strong>通信プロトコルの集まり</strong>のことを指す。</p> <h1 id="OSI参照モデル"><a href="#OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB">OSI参照モデル</a></h1> <div class="table-responsive"><table> <thead> <tr> <th></th> <th>OSI参照モデル(7階層モデル)</th> <th></th> </tr> </thead> <tbody> <tr> <td>第7層</td> <td><strong>アプリケーション層</strong></td> <td>アプリケーションの種類やサービスに関する規定</td> </tr> <tr> <td>第6層</td> <td><strong>プレゼンテーション層</strong></td> <td>データの種類や表現形式に関する規定(文字コード、圧縮方式など)</td> </tr> <tr> <td>第5層</td> <td><strong>セッション層</strong></td> <td>通信の開始時、終了時のデータ形式や同期方式に関する規定(セッションの管理)</td> </tr> <tr> <td>第4層</td> <td><strong>トランスポート層</strong></td> <td>アプリケーション間通信の確保、制御に関する規定(アプリケーションの識別や信頼性および即時性の確保など)</td> </tr> <tr> <td>第3層</td> <td><strong>ネットワーク層</strong></td> <td>出発点から最終目的地までのエンド・ツー・エンドの通信を確保することに関する規定(経路選択や住所情報など)</td> </tr> <tr> <td>第2層</td> <td><strong>データリンク層</strong></td> <td>隣接する機器の間でデータ伝送を確実に行うことに関する規定(機器の識別やエラー訂正など)</td> </tr> <tr> <td>第1層</td> <td><strong>物理層</strong></td> <td>回線や機器類など、通信における物理的な要素すべてに関する規定(通信媒体や電気信号など)</td> </tr> </tbody> </table></div> <p>※7階層から下へ見ていく<strong>トップダウン方式</strong>と1階層から上へとみていく<strong>ボトムアップ方式</strong>の2つがある。<br /> 例:回線が壊れてつなぐことができないとかは、1層目の物理層のことを指す。<br /> 頭文字をとって「アプセトネデブ」と覚えると覚えやすい!</p> <h1 id="TCP/IPモデル"><a href="#TCP%2FIP%E3%83%A2%E3%83%87%E3%83%AB">TCP/IPモデル</a></h1> <div class="table-responsive"><table> <thead> <tr> <th></th> <th>OSI参照モデル</th> <th>TCP/IPモデル</th> <th>関連用語・プロトコル</th> </tr> </thead> <tbody> <tr> <td>第7層</td> <td>アプリケーション層</td> <td></td> <td></td> </tr> <tr> <td>第6層</td> <td>プレゼンテーション層</td> <td><strong>アプリケーション層</strong></td> <td>HTTP/SMTP/POP3/FTP他</td> </tr> <tr> <td>第5層</td> <td>セッション層</td> <td></td> <td></td> </tr> <tr> <td>第4層</td> <td>トランスポート層</td> <td><strong>トランスポート層</strong></td> <td>TCP/UDP/ポート番号</td> </tr> <tr> <td>第3層</td> <td>ネットワーク層</td> <td><strong>インターネット層</strong></td> <td>IP/IPアドレス/ルータ</td> </tr> <tr> <td>第2層</td> <td>データリンク層</td> <td><strong>ネットワークインターフェース層</strong></td> <td>MACアドレス/HUB(L2スイッチ)</td> </tr> <tr> <td>第1層</td> <td>物理層</td> <td></td> <td>LANケーブル/NIC</td> </tr> </tbody> </table></div> <p>7、6、5層はセットでアプリケーション層、2、1層もセットでネットワークインターフェース層となっている。<br /> 全部で<strong>4階層</strong>で構成されていることがわかる。</p> <h2 id="データ送信の処理"><a href="#%E3%83%87%E3%83%BC%E3%82%BF%E9%80%81%E4%BF%A1%E3%81%AE%E5%87%A6%E7%90%86">データ送信の処理</a></h2> <h3 id="コンピュータ同士の通信では、「カプセル化」を繰り返してデータを送信する"><a href="#%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E5%90%8C%E5%A3%AB%E3%81%AE%E9%80%9A%E4%BF%A1%E3%81%A7%E3%81%AF%E3%80%81%E3%80%8C%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96%E3%80%8D%E3%82%92%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B">コンピュータ同士の通信では、「カプセル化」を繰り返してデータを送信する</a></h3> <h1 id="カプセル化(TCP/IPモデル)"><a href="#%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96%28TCP%2FIP%E3%83%A2%E3%83%87%E3%83%AB%29">カプセル化(TCP/IPモデル)</a></h1> <div class="table-responsive"><table> <thead> <tr> <th>層名</th> <th>データの処理</th> </tr> </thead> <tbody> <tr> <td>アプリケーション層</td> <td>アプリケーションデータ:メッセージ(名称)</td> </tr> <tr> <td>トランスポート層</td> <td>TCPヘッダ/データ(アプリケーションデータ):TCPセグメント</td> </tr> <tr> <td>インターネット層</td> <td>IPヘッダ/データ(元データ+TCPヘッダ):IPパケット</td> </tr> <tr> <td>ネットワークインターフェース層</td> <td>Ethernetヘッダ/データ(元データ+TCPヘッダ+IPヘッダ)/Ethernetヘッダ:Ethernetフレーム</td> </tr> </tbody> </table></div> <p>カプセル化は<strong>トップダウン方式</strong>で行われていく。(上から下)<br /> <strong>アプリケーションデータにどんどんヘッダを追加していくイメージ</strong></p> <h1 id="非カプセル化"><a href="#%E9%9D%9E%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96">非カプセル化</a></h1> <div class="table-responsive"><table> <thead> <tr> <th>層名</th> <th>データの処理</th> </tr> </thead> <tbody> <tr> <td>アプリケーション層</td> <td>アプリケーションデータ</td> </tr> <tr> <td>トランスポート層</td> <td>TCPヘッダ/データ(アプリケーションデータ)</td> </tr> <tr> <td>インターネット層</td> <td>IPヘッダ/データ(元データ+TCPヘッダ)</td> </tr> <tr> <td>ネットワークインターフェース層</td> <td>Ethernetヘッダ/データ(元データ+TCPヘッダ+IPヘッダ)/Ethernetヘッダ</td> </tr> </tbody> </table></div> <p>非カプセル化は、<strong>ボトムアップ方式</strong>で行われていく(下から上へ)<br /> <strong>アプリケーションデータに追加されたヘッダをばらしていくイメージ</strong></p> <h2 id="ヘッダには制御情報が含まれている。"><a href="#%E3%83%98%E3%83%83%E3%83%80%E3%81%AB%E3%81%AF%E5%88%B6%E5%BE%A1%E6%83%85%E5%A0%B1%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82">ヘッダには制御情報が含まれている。</a></h2> <ul> <li>TCPヘッダには送信元/宛先に<strong>ポート番号</strong></li> <li>トランスポート層には送信元/宛先に<strong>IPアドレス</strong></li> <li>ネットワークインターフェース層には送信元/宛先に<strong>MACアドレス</strong><br /> 上記のような情報が含まれていてこれらの情報をもとに宛先のアプリケーションへデータを届けている。</li> </ul> <h2 id="MACアドレスとは"><a href="#MAC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%AF">MACアドレスとは</a></h2> <ul> <li>デバイス(ネットワークアダプタ)ごとにあらかじめつけられた固有番号</li> <li>ハードウェアにつけられているので物理アドレスとも呼ばれる</li> </ul> <p>MACアドレスの形式は6組2桁の16進数(0-9/A-F)で表記される。<br /> 例)B8:E5:56:C5:E4:56<br /> 最初の6桁は<strong>ベンダーコード</strong>と呼ばれ、各ベンダーに割り当てられている。</p> <h1 id="IPアドレスとMACアドレスの違い"><a href="#IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8MAC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AE%E9%81%95%E3%81%84">IPアドレスとMACアドレスの違い</a></h1> <h2 id="IPアドレス"><a href="#IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9">IPアドレス</a></h2> <ul> <li>IP(Internet Protcol)で住所情報として扱われる</li> <li>複数のネットワークを介した通信を可能にしている</li> <li>データの<strong>出発点</strong>/<strong>最終目的地</strong>を表す住所情報</li> </ul> <h2 id="MACアドレス"><a href="#MAC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9">MACアドレス</a></h2> <ul> <li>Ethernet(イーサネット)で住所情報として扱われる</li> <li>同じネットワーク内の通信で使われる</li> <li>データを<strong>次はどの機器に渡せばいいのか</strong>を表す住所情報</li> </ul> <h2 id="ポート番号"><a href="#%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7">ポート番号</a></h2> <p>どのアプリケーション宛ての通信なのかを識別する番号<br /> 端末の中ではさまざまなアプリケーションが動いていることからどのアプリケーションに届けタラいいのかわからなくなってしまう。これを解消すために必要な番号が<strong>ポート番号</strong>である。<br /> アプリケーション層から送られてきたアプリケーションデータに付与されている宛先のポート番号でトランスポート層内で判断をする。</p> <h5 id="ポート番号の種類"><a href="#%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E7%A8%AE%E9%A1%9E">ポート番号の種類</a></h5> <div class="table-responsive"><table> <thead> <tr> <th>タイプ</th> <th>ポート番号の範囲</th> <th>説明</th> </tr> </thead> <tbody> <tr> <td><strong>ウェルノウンポート</strong>(Well-known Port)</td> <td>0~1023</td> <td>ネットワーク通信において使用頻度の高いサービスを識別するためのポート番号(主にサーバ側で使用)</td> </tr> <tr> <td><strong>登録済みポート</strong>(Registered Port)</td> <td>1024~48151</td> <td>IANAによって登録された独自のアプリケーション用ポート番号</td> </tr> <tr> <td><strong>動的/プライベートポート</strong>(Dynamic and/or Private Port)</td> <td>49152~65535</td> <td>クライアント側で動的に使用されるポート番号(空いているポート番号をランダムに使用)</td> </tr> </tbody> </table></div> <h1 id="TCPとUDPの違い"><a href="#TCP%E3%81%A8UDP%E3%81%AE%E9%81%95%E3%81%84">TCPとUDPの違い</a></h1> <div class="table-responsive"><table> <thead> <tr> <th>プロトコル</th> <th>TCP</th> <th>UDP</th> </tr> </thead> <tbody> <tr> <td>通信方式</td> <td>コネクション型</td> <td>コネクションレス型</td> </tr> <tr> <td>信頼性</td> <td>高い</td> <td>低い</td> </tr> <tr> <td>転送速度</td> <td>低速</td> <td>高速</td> </tr> <tr> <td>上位プロトコル</td> <td>HTTP/SMTP/POP3など</td> <td>DHCP/DNS/SNMPなど</td> </tr> <tr> <td>特徴/主な用途</td> <td>3Wayハンドシェイクによるコネクションの確立、維持、切断を行う</td> <td>複数相手へ同じ内容のデータを送る(ブロードキャスト/マルチキャスト送信)</td> </tr> <tr> <td></td> <td>順序制御、再送制御、フロー制御を行う</td> <td>音声通話やビデオストリーミングなどリアルタイム性のあるデータの転送</td> </tr> <tr> <td></td> <td>Web閲覧、メール送受信、ファイル転送など</td> <td>信頼性を必要としない少量のデータ転送</td> </tr> </tbody> </table></div> <p>コマンドプロンプトで下記のコマンドを入力すると物理アドレスを見ることができる。<br /> <code>ipconfig/all</code><br /> 使用しているポート番号を確認したいときは、<br /> <code>netstat "n</code><br /> "nはDNSによる名前解決をしない場合などに用いる。</p> ko00w1