TCPとUDP:その違いは?

TCPとUDPがどのようにウェブ上でデータを転送しているのか、その主な違い、そしてどちらのプロトコルがあなたのニーズに最適なのかをご紹介します。
1 分読
TCP vs. UDP Comparison blog image

TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、現代のウェブ上でデータを転送する最も一般的な2つの方法である。ご存じないかもしれませんが、ほぼ毎日この2つを使っています。

その方法については、続きをお読みいただきたい!

なぜサーバーはすべてのデータを一度に送信できないのか?

ストリーミングが機能しない理由

ウェブサイトにアクセスしたり、ライブストリームを見たりすると、すべてのデータを同時に取得しているように思えるかもしれない。しかし、実際はそうではありません。インターネットはそのようには機能しない。

ネットワークに負担をかけないために、データは塊に分割される。500mbpsの接続で、100GBのビデオゲームをダウンロードしているとしよう。チャンキングがなければ、ルーターはデータを処理できず、ネットワークは這うように遅くなり、事実上クラッシュしてしまいます!

TCPやUDPといったさまざまなプロトコルが、これらのチャンクの送信方法を定義するために使用される。

  • TCP:チャンクは連続して送信され、検証される。これは郵便のやりとりに似ている。あなたのマシンは手紙を受け取り、それを読み、次の手紙を要求する。
  • UDP:すべてのチャンクは、50口径のデータ砲塔のように、矢継ぎ早に送信される!

伝送制御プロトコル

TCPはすべてのHTTP/HTTPSリクエストの中心にあります。TCPは、接続のすべての詳細を気にします。TCPでは、ハンドシェイクを開始すると、応答が順番に返ってきます。クライアントがレスポンスを受信するたびに、ACK(確認応答)をサーバーに送信します。こうすることで、サーバーは常に配信した情報の状態を知ることができる。

TCPでファイルをダウンロードしているとき、それが4つのチャンク(セグメント)に分割されたとしよう。サーバーは最初のチャンクを送信し、HTTPクライアントはすべてOKだったと伝えます。その後、チャンク2、3、4と同じプロセスを繰り返します。HTTPリクエストの作り方についてもっと学ぶことをお勧めする。

コア機能

TCPダイアグラム

TCPがどのように機能するか、ステップ・バイ・ステップで説明しよう。

  1. クライアント(あなたのスマートフォン)はハンドシェイクを開始し、サーバーにあなたのEメール履歴を要求する。
  2. 履歴は一度に送信するには大きすぎるため、チャンクに分割される(TCPでは、このチャンクはセグメントと呼ばれる)。
  3. サーバーは最初のチャンクを送信する。
  4. あなたの携帯電話は、最初のチャンクを受信したというACK(確認応答)を送信する。
  5. サーバーは2つ目のチャンクを送信する。
  6. あなたの携帯電話はもう一度ACKを送信する。

このプロセスは、すべてのデータが転送されるまでループで繰り返される。

アプリケーション

正確なデータを必要とするあらゆる場所で、TCPはフードの下で動作しています。TCPは次のようなアプリケーションで使用されています。

  • ウェブブラウジング:HTTP/HTTPS(HyperText Transfer Protocol)/(HyperText Transfer Protocol Secure)は、TCPを使ってブラウザにページを送信します。
  • 電子メール:SMTP(Simple Mail Transfer Protocol)、IMAP(Internet Message Access Protocol)、POP3(Post Office Protocol version 3)はすべてTCPを使い、メッセージが順番に届くようにします。
  • 大容量ファイルのダウンロードFTP(File Transfer Protocol)とSFTP(Secure File Transfer Protocol)は、お客様のデータを破損することなく、大容量のダウンロードが整然と行われることを保証します。

長所と短所

長所

  • ✅ 信頼性がある:TCPはすべてのデータを確実に配信する。
  • エラーフリー:チャンクの送信や処理に誤りがあった場合、TCPは必ずデータを再送する。

短所

  • 遅い:TCPはその厳格な精度ルールのため、しばしば遅い。
  • ネットワークの輻輳:トラフィックが多い場合、TCPはすべてが完璧に整列するのを待っている間に滞ってしまう。

ユーザーデータグラムプロトコル

UDPは、TCPののんびりしたいとこのようなものだ。TCPはハンドシェイクと、データが完璧に届くまでコネクションを維持することがすべてだ。UDPのチャンクは技術的にはデータグラムと呼ばれる。UDPでは、私たちはひとつのリクエストを送信し、サーバーはその正確さを検証することなく、すべてのチャンクを連続して送信する。

応答を処理するとき、ACKシステムやハンドシェークはない。あなたのマシンは一つのリクエストを送り、そのデータを受け取る。サーバーはこのリクエストを聞いて、これらのチャンクを順不同にすべて発射して応答する。

コア機能

UDPダイアグラム

UDPでの処理は、もっと速く、ルーズだ。

  1. マシンがデータを要求する
  2. サーバーは、各チャンクを検証もACKもなしに矢継ぎ早に送信する。

データは可能な限り速く届くが、通常は順番が狂っている。サーバーは欠落したチャンクやデータの整合性など気にしません。

アプリケーション

  • ライブストリーミング:YouTubeのライブストリームを見るとき、携帯電話やテレビのアプリがリクエストを送信し、ストリームを開きます。そしてデータが飛び始める!
  • オンラインゲーム:最近のオンラインゲームでは、KB(キロバイト)、時にはMB(メガバイト)をわずか数秒で処理します。UDPは、最小限の待ち時間でゲームを画面に表示します。
  • DNS(ドメインネームシステム)ルックアップ:あなたがブライトデータブログに来たとき、DNSサーバーはUDPを使ってIPアドレスをあなたのブラウザに送信します。

長所と短所

長所

  • ✅ 猛烈な速さ:UDPは精度を気にせず、マシンガンのように全データを可能な限り高速で発射する。
  • ✅ 無駄がない:ハンドシェイクやACKに無駄なリソースがない。

短所

  • ❌ 信頼性がない:データが乱雑に届いたり、まったく届かないこともある。
  • ❌ ハンズオフ:UDPサーバーはライブストリームが機能していなくても気にしません。ただデータを送り続けるだけだ。

よくある誤解

誤解その1:TCPは常にUDPより遅い

はい、TCPはハンドシェイクとACKによって遅延を追加します。しかし、TCP Fast Open (TFO)やMultipath TCP (MPTCP)のような最新のプロトコルは、TCPの遅延を減らし、パフォーマンスを向上させています。ほとんどの場合UDPの方が高速ですが、微調整されたTCPはUDPさえも上回ることがあります。

誤解その2:UDPはストリーミングとゲームにしか使えない

リアルタイム・アプリケーションはUDPの主要なニッチ分野だが、これはライブ・ストリームやオンライン・ゲームに限った話ではない。低遅延取引、センサー技術、DNSでさえもUDPを利用することができます。

誤解その3:1つしか使えない

現代のテクノロジーは、実際にはTCPとUDPの両方を利用している。HuluやYouTubeでテレビを見る場合、初期接続、メタデータ、バッファリングなどの実際のセットアップはTCPを使って送信されることが多い。このコンテンツをストリーミングしている間、UDPは適応ビットレートとストリーム中のラグ低減のために使用されることが多い。

それぞれの使用時期

ユースケース 推奨プロトコル 信頼性 スピード 注文を保証する? 握手が必要か? パケットロスに強い なぜフィットするのか
ウェブブラウジング(HTTP/HTTPS) TCP ✔️ 遅い ❌ 遅い ✔️ ✔️ 全ページが正しい順序で読み込まれるようにする
電子メール(SMTP、IMAP、POP3) TCP ✔️ 遅い ❌ 遅い ✔️ ✔️ メッセージは完全かつ正確に伝えなければならない
ファイルダウンロード(FTP/SFTP) TCP ✔️ 遅い ❌ 遅い ✔️ ✔️ 大容量転送時のデータ破損を防ぐ
ビデオ通話 / VoIP UDP ✔️ Fast ✔️ 正確さよりもリアルタイムのコミュニケーションを優先
オンラインゲーム UDP ✔️ Fast ✔️ 枠を外すことよりも素早い対応が重要
ライブ・ストリーミング UDP ✔️ Fast ✔️ 欠落したパケットをドロップすることでバッファリングを回避
DNSクエリー UDP ✔️ Fast ✔️ 軽量リクエストは完全なコネクション処理を必要としない

結論適切な仕事に適切なツールを選ぶ

TCPとUDPはどちらも、インターネット上でのデータ転送において重要な役割を果たしています。TCPは信頼性と正確性を保証するため、ウェブブラウジング、電子メール、ファイル転送に最適です。一方、UDPは速度を優先するため、ライブストリーミング、オンラインゲーム、リアルタイム通信に適しています。

プロキシに関しては、適切なプロトコルがすべての違いを生むことがあります。ウェブスクレイピングやデータ収集、セキュアなブラウジングのために安定した信頼性の高い接続が必要な場合は、TCPを使用したHTTP/HTTPSプロキシが最適です。しかし、ストリーミングやゲームなど、スピードと低遅延を優先する場合は、UDPをサポートするSOCKS5プロキシが必要なパフォーマンスを提供できます。

以下のプロキシ・サービスのセレクションをご覧ください:

  • レジデンシャル・プロキシ:自宅のインターネット接続で、実際の消費者デバイスを通じてウェブにアクセスする。
  • データセンタープロキシ:最新のデータセンターで利用可能な最高のハードウェアと帯域幅でお客様のリクエストをルーティングします。
  • モバイルプロキシ:住宅用と似ているが、リクエストは携帯電話データネットワーク上のモバイルデバイスを経由する。
  • ISPプロキシ:特定のインターネットサービスプロバイダを経由してトラフィックを実行します。
  • ウェブアンロッカー自動的にターゲットサイトに最適なプロキシに接続します。CAPTCHAも手間もかかりません。

無料トライアルに登録して、今すぐ始めましょう!

クレジットカードは必要ありません

あなたは下記にもご興味がおありかもしれません

web scraping with claude blog image
ウェブデータ

2025年のクロードによるウェブスクレイピング

Pythonを使ってWebスクレイピングを自動化し、構造化データを楽に抽出するClaude AIの使い方を学ぶ。
18 分読
Building AI-Ready Vector Datasets for LLMs blog image
AI

LLMのためのAI対応ベクトルデータセット構築:Bright Data、Google Gemini、Pineconeを使ったガイド

大規模言語モデル(LLM)は、私たちが情報にアクセスし、インテリジェントなアプリケーションを構築する方法を変革しています。LLMの可能性を最大限に引き出すには、特にドメイン固有の知識や独自のデータを使用する場合、高品質で構造化されたベクトルデータセットを作成することが重要です。LLMの性能と精度は、入力データの品質に直接結びついています。準備不足のデータセットは劣悪な結果をもたらす可能性があり、一方、十分にキュレーションされたデータセットはLLMを真のドメイン・エキスパートに変えることができます。 このガイドでは、AIに対応したベクターデータセットを生成するための自動パイプラインの構築方法を順を追って説明する。 課題:LLMのためのデータ収集と準備 LLMは膨大な汎用テキストコーパスで学習されますが、商品関連のクエリへの回答、業界ニュースの分析、顧客フィードバックの解釈など、特定のタスクやドメインに適用すると、不足することがよくあります。LLMを真に役立てるには、ユースケースに合わせた高品質のデータが必要です。 このデータは通常、ウェブ上に分散していたり、複雑なサイト構造の背後に隠されていたり、ボット対策によって保護されていたりする。 当社の自動ワークフローは、データセット作成の最も困難な部分を処理する合理化されたパイプラインでこれを解決します: コア技術の概要 パイプラインを構築する前に、関連するコアテクノロジーと、それぞれがワークフローをどのようにサポートしているかを簡単に見ておこう。 ブライトデータスケーラブルなウェブデータ収集 AIに対応したベクターデータセットを作成するための最初のステップは、関連性のある高品質なソースデータを収集することです。ナレッジベースやドキュメンテーションのような内部システムから得られるものもあるが、大部分は公共のウェブから得られることが多い。 しかし、最近のウェブサイトは、CAPTCHA、IPレート制限、ブラウザフィンガープリントなどの高度なボット対策メカニズムを使用しているため、大規模なスクレイピングは困難である。 Bright Dataは、データ収集の複雑さを抽象化するWeb Unlocker APIでこの課題を解決します。プロキシのローテーション、CAPTCHAの解決、ブラウザのエミュレーションを自動的に処理するため、データへのアクセス方法ではなく、データに集中することができます。 Google Gemini: インテリジェント・コンテンツ・トランスフォーメーション Geminiは、Googleによって開発された強力なマルチモーダルAIモデルのファミリーであり、様々なタイプのコンテンツを理解し処理することに優れている。私たちのデータ抽出パイプラインにおいて、Geminiは3つの重要な機能を果たします: このAIを活用したアプローチは、特に以下のような使用例において、脆弱なCSSセレクタや壊れやすい正規表現に依存する従来の方法よりも大きな利点をもたらす: AIがデータ抽出プロセスにどのような変化をもたらしているかについては、Using AI for Web Scrapingをご覧ください。スクレイピングのワークフローにGeminiを実装するための実践的なチュートリアルをお探しの場合は、包括的なガイドをご覧ください:GeminiによるWebスクレイピングをご覧ください。 文の変形意味埋め込み文の生成 エンベッディングは、高次元空間におけるテキスト(または他のデータタイプ)の密なベクトル表現である。これらのベクトルは意味的な意味を捉え、コサイン類似度やユークリッド距離のようなメトリクスを用いて測定される、類似したテキスト片を近接したベクトルで表現することを可能にする。この特性は、セマンティック検索、クラスタリング、検索拡張生成(RAG)のようなアプリケーションで重要である。 Sentence Transformersライブラリは、高品質の文や段落の埋め込みを生成するための使いやすいインターフェースを提供する。Hugging Face Transformersの上に構築され、意味タスクのために微調整された幅広い事前学習済みモデルをサポートしています。 このエコシステムで最も人気があり、効果的なモデルの1つがオールMiniLM-L6-v2である: より大きなモデルはより微妙なエンベディングを提供するかもしれないが、all-MiniLM-L6-v2は性能、効率、コストの間で非常に優れたバランスを提供する。その384次元ベクトルは ほとんどの実用的なユースケース、特に初期段階の開発やリソースに制約のある環境では、このモデルで十分すぎる。エッジケースにおける精度のわずかな低下は、通常、スピードとスケーラビリティの大幅な向上によって相殺されます。そのため、AIアプリケーションの最初のイテレーションを構築する場合や、控えめなインフラストラクチャでパフォーマンスを最適化する場合は、all-MiniLM-L6-v2を使用することをお勧めします。 Pineconeベクトル埋め込み画像の保存と検索 テキストがベクトル埋め込みデータに変換されると、それを効率的に保存、管理、照会するための専用のデータベースが必要になります。従来のデータベースはこのために設計されていません。ベクトル・データベースは、埋め込みデータの高次元の性質を扱うために特別に設計されており、RAGパイプライン、セマンティック検索、パーソナライゼーション、その他のAI駆動型アプリケーションに不可欠なリアルタイムの類似性検索を可能にします。 Pineconeは、開発者フレンドリーなインターフェイス、低レイテンシの検索パフォーマンス、完全に管理されたインフラストラクチャで知られる人気のベクトルデータベースです。ベクトル検索インフラストラクチャの複雑さを抽象化することで、複雑なベクトルインデックスと検索を効率的に管理します。主なコンポーネントは以下の通りです: Pineconeは2つのデプロイメントアーキテクチャを提供する:ServerlessとPod-Based です。ほとんどのユースケース、特に開始時や動的な負荷に対処する場合は、シンプルさとコスト効率からサーバーレスが推奨されます。 セットアップと前提条件 パイプラインを構築する前に、以下のコンポーネントが適切に設定されていることを確認する。 前提条件 各APIキーの生成方法については、以下のツール固有の設定セクションを参照してください。 必要なライブラリのインストール このプロジェクトのコアとなるPythonライブラリをインストールする: これらのライブラリーは提供している: 環境変数の設定 プロジェクトのルート・ディレクトリに.envファイルを作成し、APIキーを追加する: ブライトデータ設定 Bright DataのWeb Unlockerを使用するには: 実装例と統合コードについては、Web Unlocker GitHub […]
6 分読
AI

LLMにおけるスーパーバイズド・ファインチューニングとは?

このPythonガイドでは、概念、ツール、ワークフロー、そしてAIプロジェクトを向上させる実践的な例を取り上げています。
7 分読