Javascriptの設定を有効にしてください。お使いのブラウザはJavaScriptをサポートしていないか、JavaScriptの設定が無効になっています。このサイトでは、JavaScriptを使用しています。すべての機能をご利用希望の方は、JavaScriptを有効にしてください。 PHPカンファレンス2025参加レポート③「PHPで作るTCP/IPプロトコル」 - COLOR CHIPS Webシステム・ITサービス コラム

L O A D I N G

PHPカンファレンス2025参加レポート③「PHPで作るTCP/IPプロトコル」

  • Webシステム
  • Today I Learned

2026.08.21

執筆者

M.N.

「なぜこれをやるのか」

PHPカンファレンス2025の振り返り、第3回です。

今回は「PHPで作るTCP/IPプロトコル」というセッションについてです。

正直に言うと、このセッションは前のセッションが少し早く終わって時間が空いたので、いわば「時間つぶし」で聴講したものでした。
当時のメモにも「時間潰しで聴講しているので、内容が薄いレポートですみません」と書いてあって、自分の正直さに笑ってしまいました。

ただ、内容自体はなかなか面白いものだったので、せっかくなので振り返ってみます。


なぜTCP/IPをPHPで実装するのか

セッションの冒頭では、「なぜこれをやるのか」という話がありました。理由として挙げられていたのは次の3つです。
・仕事に役立つ
・実装すると理解でき、記憶に残る
・楽しい
ここで言及している「楽しい」の理由として、プロトコルは仕様がきっちり決まっていて、通信相手が正しく動作するという前提のもとで実装が進められる、という話がありました。

普段の業務だと、仕様が曖昧だったり、相手の実装が想定と違ったりして苦労することが多いので、「仕様が決まっていて、通信できたときに達成感がある」というのは、なんだか羨ましいような、新鮮な感覚で聞いていました。

 

新鮮な発想・前提

PHPでソケット通信を扱う

PHPでソケット通信を行うには、ソケット拡張機能を使うとのことでした。

普段Webアプリケーションを書いているときは、HTTPより下のレイヤーを意識することはほとんどありません。
リクエストが届いて、レスポンスを返します。
その間にTCPやIPがどう動いているかは、フレームワークやサーバーが全部やってくれています。

従って、
「PHPでTCP/IPを扱う」という発想自体が新鮮で、「そんなこともできるんだ」という気持ちで聞いていました。


今回実装した範囲
セッションで紹介されていた実装範囲は、トランスポート層(第4層)の一部で、具体的には以下のような内容でした。
01  3ウェイハンドシェイク
02  Ack応答
03  クローズ処理
04  通信が落ちない前提の範囲

「通信が落ちない前提」というスコープの切り方も、なるほどと思いました。本来TCPは再送制御やエラー処理なども含む複雑なプロトコルですが、まず動く部分だけを切り出して実装する、という進め方は、何かを学ぶときの良いアプローチだと感じました。


TCPはOSが管理している、という壁

セッションの中で「TCPはOSが管理しているが、実装できるのか?」という問いが出てきました。

普段意識することはありませんが、TCP/IPのスタックは基本的にOSのカーネルが処理しています。
アプリケーションはその上に乗っているだけ、というのが通常の構成です。

これを回避するために、セッションでは「RAWソケット」を使う、という話がありました。
RAWソケットを使うとTCP以下の層を直接読み書きできるようになりますが、その代わりROOT権限が必要になるとのことです。

「OSがやっている処理に、アプリケーション側から踏み込んでいく」という感覚は、普段のWeb開発ではまず触れない領域なので、聞いているだけでも「裏側はこうなっているのか」という発見がありました。

 

実感できてデモとセッション所感

3ウェイハンドシェイクのダンプ

セッションの最後では、実際に3ウェイハンドシェイクの様子をダンプして見せる、というデモがありました。

普段「TCP接続が確立される」という一言で済ませている処理が、実際にパケットのやり取りとして可視化されると、「ああ、本当にこういう手順を踏んでいるんだ」というのが目に見える形で実感できました。

教科書で見る図と、実際に動いているものを見るのとでは、やっぱり納得感が違います。


振り返ってみての所感

当時のメモには、
「プロトコルの内容が決まっているので、それに合わせて実装すればできる、というのはわかりますが、なかなか自分でやろうと思わないので興味深かった」
と書いていました。

「実用というよりはプロトコルの理解のために趣味でやってる感じ」「業務にダイレクトに役立つことではない」とも書いてあり、当時の自分はやや辛口な評価をしていたようです。

ただ、
1年経って読み返してみると、このセッションで触れた「OSが普段やってくれている処理」「フレームワークが隠してくれているレイヤー」を意識する視点は、地味に役に立っている気がします。
たとえば、
通信周りで原因不明のエラーに遭遇したとき、「もしかしてTCPレベルで何か起きているのでは」という発想の引き出しが、ひとつ増えた感覚です。

直接業務に使うかどうかは別として、「ふだん見えていない層を覗いてみる」という体験そのものが、エンジニアとしての視野を広げてくれるものだったのかもしれません。

次回は、「PHPで始める振る舞い駆動開発(BDD)」についてレポートしたいと思います。
お読みいただきありがとうございました。

この記事に関連するColorChipsのサービス

BUSINESS

システム開発

業務効率化の答えはここに。
下町が誇る業務システムソリューション

COLOR CHIPS のWebシステム開発部では、業務効率化やDX推進を支援するシステムの受託開発を行っています。業務フローの見える化やシステム導入支援、運用まで一貫して対応し、企業ごとの課題に合わせた最適なソリューションを提供しています。

VIEW MORE

ITサービス

お客様のシステム運用をサポートし、
長期安定稼動のお手伝いをします

COLOR CHIPS の技術者がお客様の社内に常駐し、お客様システムの監視や運用などの各種サポート業務を行います。
お客様の社内で密接な関係を築きながら業務を行うことでより迅速に、かつご要望に添ったサービスをご提供しています。

技術開発

COLOR CHIPS 先端技術開発ラボ
先端技術で業務をより効率的に!

COLOR CHIPS の研究開発部門は、AI解析、クラウド/スマホアプリ開発、IoT・ウェアラブル機器など、多岐にわたる先端技術に挑戦するラボです。知識と好奇心を武器に、新たなソリューション創出を目指し、未来を切り拓く技術革新に取り組んでいます。

VIEW MORE

オリジナルデザイン時計

NEW COLORS
オリジナル腕時計製作について

NEW COLORSは、20年以上の実績を持つオリジナル腕時計製作の専門ブランドです。卒業記念品や周年記念、ノベルティ、OEMまで目的に応じたデザイン・仕様で対応。初心者でも安心の制作サポートや、ペットの写真から作る「うちの仔オリジナルクロック」など、心に残る記念品づくりをお手伝いします。

VIEW MORE

お問い合わせ
CONTACT

記事にある技術に関するお問い合わせなどは
こちらのフォームからおねがいいたします。

TOP