TCP/IP¶
TCP/IPとは¶
TCP/IPはインターネット通信の基盤となるプロトコル群である。
簡単に言うと
ネットワークでデータを確実に届ける仕組みのセット
である。
TCP/IPの構成¶
TCP/IPは1つの技術ではなく、複数の層で構成されている。
代表的なモデルは以下。
アプリケーション層
トランスポート層
インターネット層
ネットワークインターフェース層
4階層モデル¶
① アプリケーション層¶
ユーザーが直接使う通信
例
- HTTP
- HTTPS
- FTP
- SMTP
- DNS
② トランスポート層¶
通信の信頼性を管理する層
代表
- TCP
- UDP
③ インターネット層¶
IPアドレスを使って通信経路を決める層
代表
- IP
- ICMP
④ ネットワークインターフェース層¶
物理通信の層
例
- Ethernet
- Wi-Fi
TCPとUDP¶
TCP/IPの中核となる2つのプロトコル。
TCPとは¶
TCP(Transmission Control Protocol)は
確実にデータを届ける通信
である。
特徴
- 順序保証
- 再送制御あり
- エラー検出あり
- 信頼性が高い
イメージ
送った順番通りに必ず届く
例
- Web通信(HTTP)
- ファイル転送
- メール
TCPの仕組み¶
TCPは3-way handshakeで接続する。
① SYN¶
クライアント → サーバー
接続したい
② SYN-ACK¶
サーバー → クライアント
OK、接続準備OK
③ ACK¶
クライアント → サーバー
了解、接続開始
これで通信が確立される。
UDPとは¶
UDP(User Datagram Protocol)は
速さ優先の通信
である。
特徴
- 軽い
- 速い
- 順序保証なし
- 再送なし
イメージ
届く保証はないが速い
例
- 動画配信
- 音声通話
- ゲーム通信
TCPとUDPの違い¶
| 項目 | TCP | UDP |
|---|---|---|
| 信頼性 | 高い | 低い |
| 速度 | 普通 | 速い |
| 順序保証 | あり | なし |
| 再送 | あり | なし |
IPとは¶
IP(Internet Protocol)は
データの宛先を決める仕組み
である。
例
192.168.1.10
役割
- 宛先指定
- ルーティング
- パケット分割
IPアドレス¶
ネットワーク上の住所。
例
IPv4: 192.168.0.1
IPv6: 2001:db8::1
ポート番号¶
同じIPでもアプリを識別する番号。
例
| サービス | ポート |
|---|---|
| HTTP | 80 |
| HTTPS | 443 |
| SSH | 22 |
イメージ
IP = 建物
ポート = 部屋番号
TCP/IP通信の流れ¶
例:Webアクセス
1. URL入力
2. DNSでIP取得
3. TCP接続確立
4. HTTPリクエスト送信
5. データ受信
6. TCP切断
パケットとは¶
TCP/IPではデータを小さく分割して送る。
この単位を
パケット
という。
構造
ヘッダー + データ
ルーターの役割¶
ルーターは
パケットの経路を決める機器
である。
例
PC → ルーター → インターネット → サーバー
LANとWAN¶
LAN¶
ローカルネットワーク
家や学校など。
WAN¶
広域ネットワーク
インターネット全体。
NATとは¶
NAT(Network Address Translation)は
複数端末を1つのIPで外に出す仕組み
である。
例
家の中:192.168.x.x
外:1つのグローバルIP
DNSとの関係¶
DNSは
ドメイン → IP変換
を行う。
例
google.com → 142.250.xx.xx
TCP/IPとHTTPの関係¶
関係はこうなる
HTTP
↓
TCP
↓
IP
↓
Ethernet / Wi-Fi
つまりHTTPはTCP/IPの上に乗っている。
マイコンとTCP/IP¶
組み込みでもTCP/IPは使われる。
例
ESP32
Raspberry Pi
構成
センサ
↓
マイコン
↓ TCP/IP
サーバー
STM32でも
- Ethernet
- Wi-Fiモジュール
を使えば可能。
TCP/IPスタック¶
OSやマイコンには
TCP/IPスタック
が必要。
例
- lwIP(STM32でよく使う)
- Linuxネットワークスタック
よくあるトラブル¶
ポート閉じている¶
通信できない。
IP間違い¶
接続できない。
ファイアウォール¶
通信がブロックされる。
NAT問題¶
外部からアクセスできない。
まとめ¶
TCP/IPはインターネット通信の基盤である。
- TCPは信頼性重視
- UDPは速度重視
- IPは宛先管理
- パケットで通信する
- HTTPなどはTCP/IPの上で動く
- マイコンでも利用可能
ネットワーク通信の全ての基礎になる重要な仕組みである。