0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ネットワーク知識入門3

Last updated at Posted at 2024-09-17

概要

ネットワークについて、知識不足を感じたため、学習をし始めました。
業務は、Web系のコーディングがほとんどですが、原点を理解しないと知識が深まらないため、さらに学んでいきます。

ネットワーク知識入門1
ネットワーク知識入門2

TCP/IP

TCP/IPとは

デファクトスタンダードである。
4つのレイヤで構成されている。(OSIは7つだった。)

スクリーンショット 2024-09-13 22.57.41.png
出典:OSI参照モデルとTCP/IPの階層の違いとは?

TCPを使う場合は、トランスポート層のデータ + ヘッダを「TCPセグメント」、インターネット層のもの「IPデータグラム」という。UDPを使う場合は、「UDPセグメント」になる。

インターネット層

【IP】
データの送り元と送り先をつなぐ通信経路全体のこと。(エンドツーエンド)
IPアドレスを通じて、エンドツーエンドの通信を行う。
IPアドレスは一意!
論理アドレスなので、状況によって変化する。MACアドレスは変化しない、物理アドレス。

特徴
コネクションレス型:送信するだけ。届いたかどうかは感知しない。
ベストエフォート型:保証はしない通信タイプ。
データ回復もしない。
→ スピーディーにやり取りを行うことができる

種類
主流はIPv4(32ビット)だが、枯渇してきているので、IPv6(128ビット)が進められている。

ヘッダ
送信元、宛先のIPなどで、20バイトで定義される。

  • フラグメンテーション(識別子・フラグ・グラグメントオフセット)
    MTU(マキシマム トランスミッション ユニット)を超えている場合、分割してから送信されること。

  識別子:もともと同じデータは同じ識別子を持たせる
  フラグメ:データがまだあるかという情報を持たせる
  オフセット:どのデータなのか

→ 端末に付くごとに、分割して、組み立てを繰り返すので、効率が悪い。そのため、あまり使われていない。
⇨ TCPセグメンテーションが補っている!!

  • サービスタイプ
    データの優先度、データの処理の重みを伝えるもの

  • TTL
    ルータを中継できる回数。
    データが転送し続けるのを防ぐもの。

  • プロトコル
    プロトコルの番号データ、ドメイン、IPアドレスの取り決めなどをしている

デフォルトゲートウェイ
ノードは世界との入り口で、その外のネットワークの出入り口になるが、デフォルトゲートウェイ。
ネットワークAの中にノード① → ルーター → ネットワークBの中のノード②

ちなみにルーターは複数のポートを持っている。
そのため、複数のIPアドレスを持つができる。

【ARP】
データを送信する際に、宛先のIPアドレスはわかってもMACアドレスがわからない場合がある。
それを助けるのが、ARPの役割。
IPアドレスからMACアドレスを調べる一連の処理は、アドレス解決という。

イメージ
MACアドレスは端末の住所、IPアドレスはネットワークの住所。

ブロードキャスト

同じネットワークにいる全員に対して同じ内容を送り付けること

引用:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

⇨ ARPがブロードキャストで、 MACアドレスを要求するリクエストを送る。該当のMACアドレスをユニキャスト(宛先のノードから送信元へのやり取り 1:1)で送る。

一度送信したことあるMACアドレスは送信元のノードがARPテーブルなるもので保管する。

【ICMP(インターネット コントロール メッセージ プロトコル)】
IPはエラーとかを教えてくれないので、その点を補うプロトコル。

ping
特定のノードと通信できるかを確認する際のコマンド。
エコー要求を送信し、エコー応答が帰ってきたらOK.

$ ping [option] [対象のIPアドレスまたはドメイン名]

traceroute
ノードまでの経路を取得するコマンド。
Windowsだと、trancert。

$ traceroute [対象のIPアドレスまたはドメイン名]

トランスポート層

【ポート番号】
アプリケーションを特定するための番号。

  • ウェルノウンポート:予約済みポート番号
ポート番号 プロトコル TCP/UDP 概要
20, 21 FTP TCP File Transfer Protocol. データ転送(20)とコントロール(21)用のポートがある。ファイル転送の基本プロトコル。
22 SSH TCP Secure Shell. 暗号化された安全なリモートアクセスを提供。Telnetの代替として広く使用。
23 Telnet TCP 平文でのリモートアクセス。セキュリティ上の理由から現在は非推奨。
25 SMTP TCP Simple Mail Transfer Protocol. メール送信用の標準プロトコル。
53 DNS TCP/UDP Domain Name System. ホスト名とIPアドレスの変換を行う。主にUDP使用、大きなパケットはTCP。
67, 68 DHCP UDP Dynamic Host Configuration Protocol. IPアドレスなどのネットワーク設定を自動配布。67はサーバー、68はクライアント用。
69 TFTP UDP Trivial File Transfer Protocol. 認証なしの簡易ファイル転送。主に初期設定やファームウェア更新に使用。
80 HTTP TCP Hypertext Transfer Protocol. Web通信の基本プロトコル。平文での通信。
110 POP3 TCP Post Office Protocol version 3. メール受信用。通常、メールをサーバーからダウンロード。
123 NTP UDP Network Time Protocol. ネットワーク上の時刻同期に使用。精度の高い時刻同期が可能。
143 IMAP TCP Internet Message Access Protocol. メール管理用。メールをサーバー上で管理可能。
161, 162 SNMP UDP Simple Network Management Protocol. ネットワーク機器の監視・管理用。161は一般クエリ、162はトラップ(警告)用。
443 HTTPS TCP HTTP over SSL/TLS. 暗号化されたWeb通信。現在のWeb標準。
520 RIP UDP Routing Information Protocol. 小規模ネットワークでの経路制御に使用。より大規模なネットワークではOSPFやBGPが一般的。
  • 登録済みポート:サーバー側で決められているポート
  • ダイナミックポート:自由に使用可能

トランスポート層は、ポート間で問題なく通信をするために定義されるプロトコルの集まり

【TCP・UDP】
TCP
TCPは確実に!
コネクション型で情報を送り合いながら、通信をする方式を取る。
セグメント単位で分割して、制御、送信する。
(例)SYN:1(接続していい?) → ACK:1(いいよ!)
上記でコネクションを確立できる。

TCPセグメンテーション:データを分割する
MSS一度に運べる量

トランポート層のルールで、あらかじめ小さいデータを送るようMSSを決める。ヘッダーのオプションに書く。
MTU(各ノードで決められている)に引っかからないようにする。

シーケンス番号:送信元から宛先に送信する分割を元に戻すための番号。
ACK番号:宛先から、受信したいシーケンス番号を送る。

TCPには応答タイマーが設定され、送信元は確認が受信できなかったら、失敗と見て、データを送り直す。つまり再送制御を行う。

応答を待たずに、どんどん送信することができるようにウィンドウ制御を行う。
データをバッファに預け、通信速度を早くする。溜めておけるサイズは、ウィンドウサイズという。

サーバーが高負荷状態の時に、バッファがウィンドウサイズを下げて、フロー制御(受信側)する。

ウィンドウサイズ以外に、輻輳ウィンドウがあり、徐々に確認するためにデータを増やしながら送る。これは送信側が判断する。
上記をスロースタートという。輻輳ウィンドウは、ウィンドウサイズを超えない。

UDP
UDPは速度!
UDPは確認とか行わず、ただ送るだけ。単純構造。
データ単位はデータグラム。動画ストリーミングやIP電話などで使われる。
メールとかは向いていない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?