TCP/IPプロトコルの役割と構成

 インターネットや社内ネットワークなど、私たちが日々使っている通信の“土台”になっているのが TCP/IPプロトコル です。
 Webサイトを開いたり、メールを送ったり、SSHでサーバーに接続したりする際にも、すべての通信はこのTCP/IPの仕組みによって支えられています💡

 この記事では、TCP/IPとは何か、どんな仕組みで通信を成り立たせているのかを、図やコマンドを交えてやさしく解説します✨

🌐 TCP/IPとは

TCP/IPとは Transmission Control Protocol / Internet Protocol の略で、
「インターネット通信のための基本ルール群(プロトコルスイート)」 を指します。

つまり「TCPとIPを中心に、複数の通信規約を組み合わせたプロトコルの集合体」です。

項目説明
名称TCP/IP(Transmission Control Protocol / Internet Protocol)
種類プロトコルスイート(複数の通信規約の集合)
主な目的コンピュータ同士がネットワーク上でデータ通信を行うための共通基盤
主な利用例Web通信(HTTP/HTTPS)、メール(SMTP/POP3/IMAP)、リモート接続(SSH)など

💬ポイント
つまり、TCP/IPがなければ今のインターネットは存在しません。
あらゆる通信アプリケーションは、この仕組みの上で動いています🌍

🧩 TCP/IPの階層構造

TCP/IPは「階層モデル」に基づいて構成されています。
通信を「役割ごと」に分けて整理することで、柔軟で拡張性のある設計が可能になっています。

TCP/IPモデルは以下の 4階層構造 に分かれます👇

階層主な役割代表的なプロトコル説明
アプリケーション層アプリケーション同士の通信HTTP, FTP, SMTP, SSHユーザーが直接使う通信(Web, メールなど)を扱う。
トランスポート層通信の信頼性・データ転送制御TCP, UDPデータを確実に、または高速に転送する仕組みを提供
インターネット層経路選択(ルーティング)とアドレス管理IP, ICMPデータを目的地まで届けるための経路を決定
ネットワークインターフェース層物理的な通信制御Ethernet, Wi-Fiネットワーク機器間の実際のデータ送受信を行う。

💬ポイント
このように、TCP/IPモデルでは階層ごとに役割が明確に分かれているため、
下位の層を変更しても上位のアプリケーションに影響を与えない柔軟な構造になっています。

⚙️ TCPの役割(Transmission Control Protocol)

TCPは 信頼性の高いデータ通信 を実現するプロトコルです。
通信相手と「接続を確立」し、データを順序どおりに、欠落なく届ける仕組みを持っています。

TCPの特徴説明
接続指向型通信通信前に「三者間ハンドシェイク」で接続を確立
順序制御送信した順番通りにデータを再構築
再送制御パケット損失時に再送要求を出す。
フロー制御相手の受信能力に応じて送信速度を調整
輻輳制御ネットワーク混雑を回避するための制御を行う。

💬ポイント
TCPを使う代表的なサービスは、HTTP・FTP・SSH・SMTP などです。
これらは「確実に届くこと」が重要な通信に使われています。

TCP通信の確認コマンド

AlmaLinux 9.6 では、netstatss コマンドを使ってTCPの通信状況を確認できます。

[suzuki@AlmaLinux ~]$ ss -t -a
State     Recv-Q    Send-Q    Local Address:Port     Peer Address:Port
ESTAB     0         0         192.168.1.10:ssh       192.168.1.20:52634
オプション説明
-tTCPソケットを表示
-uUDPソケットを表示
-aLISTEN/ESTABLISHEDなどすべての状態を表示
-n名前解決を行わずにアドレスを表示

💡ポイント
上記の出力では、TCPの接続状態(ESTAB=Established)が確認できます。

🌐 IPの役割(Internet Protocol)

IPは データのルーティング(経路選択)とアドレス指定 を行うプロトコルです。
 TCPが「データの順序や信頼性」を担当するのに対し、IPは「どこにデータを届けるか」を決定します。

IPの特徴説明
コネクションレス型通信を確立せず、データを独立して送信
アドレッシング送信元と宛先をIPアドレスで識別
ルーティング最適な経路を選んでデータを転送
フラグメンテーション大きなデータを分割して送信

💬ポイント
IPは単独では信頼性を保証しないため、TCPと組み合わせて使われることが一般的です(=TCP/IP)。
一方、動画配信やDNSなどでは、信頼性より速度を重視してUDPを使うこともあります。

IP通信の確認コマンド

[suzuki@AlmaLinux ~]$ ip addr show
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic noprefixroute ens33
       valid_lft 172800sec preferred_lft 172800sec
コマンド説明
ip addr showIPアドレスの確認
ip route showルーティングテーブルの確認
pingIP通信の疎通確認

💡ポイント
AlmaLinuxでは「ip」コマンドが「ifconfig」よりも推奨される最新ツールです。

🔍 TCP/IPの利用例

用途使用プロトコル説明
WebブラウジングHTTP / HTTPS (TCP)Webサーバーとブラウザ間の通信
メール送受信SMTP / POP3 / IMAP (TCP)メールサーバー間の通信
ファイル転送FTP (TCP)ファイルのアップロード・ダウンロード
DNS問い合わせUDP名前解決(ドメイン名 → IPアドレス)
リモート接続SSH (TCP)セキュアなサーバー管理用通信

💬ポイント
 このように、私たちが使うほぼすべてのネットワークアプリケーションは、TCP/IPの上で動いています。

🧱 TCP/IPとOSI参照モデルの対応関係

TCP/IPモデルOSI参照モデル(7階層)主なプロトコル
アプリケーション層アプリケーション層 / プレゼンテーション層 / セッション層HTTP, FTP, SSH
トランスポート層トランスポート層TCP, UDP
インターネット層ネットワーク層IP, ICMP
ネットワークインターフェース層データリンク層 / 物理層Ethernet, PPP

💡ポイント
OSIモデルは理論的な通信モデル、TCP/IPは実際に動く通信体系。
両者の対応関係を理解しておくと、ネットワークトラブルの分析がしやすくなります。

🌈 まとめ

  • TCP/IPはインターネット通信の基盤となるプロトコルスイート。
  • TCPは信頼性のある通信を提供し、IPはデータの経路とアドレスを管理。
  • 4階層構造(アプリケーション・トランスポート・インターネット・ネットワーク層)で柔軟に設計されている。
  • AlmaLinuxでは ip や ss コマンドを使ってTCP/IP通信の確認や管理が可能。

現代のネットワーク通信は、すべてこのTCP/IPの上で動いています。
その仕組みを理解することで、トラブルシューティングやネットワーク設計の力がぐんと上がります💪