コンテンツにスキップ

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の上で動く
  • マイコンでも利用可能

ネットワーク通信の全ての基礎になる重要な仕組みである。