結論

レイテンシとは、データを送ってから相手に届く(返事が返る)までの待ち時間です。単位はミリ秒(ms)で、小さいほど速く反応します。

この記事でわかること

  • CPUから海外まで、レイテンシの目安の早見表14行
  • 遅延0・20・100・300msで測ったHTTPの所要時間9種
  • 往復回数を減らす方法6つと、p50・p99の読み方

2026年10月23日更新|curl 8.5.0・iputils 20240117で実測

レイテンシは「1回の往復にかかる時間」です。1秒に運べる量(帯域幅)とは別の値で、Web ページや API は往復を何回もするため、レイテンシの影響が回数分だけ積み重なります。

flowchart TD
    A[PC・スマホ<br>送る] -->|片道の遅延| R[ルーター・回線<br>距離と混雑]
    R --> S[サーバー<br>処理する]
    S -->|片道の遅延| R2[ルーター・回線]
    R2 --> B[PC・スマホ<br>返事が届く]

急いでいる人向けに、よく調べられることの答えを先にまとめます。

知りたいこと 答え 詳しい節
レイテンシとは 送ってから届くまで(返るまで)の待ち時間 レイテンシとは
読み方 レイテンシ、レイテンシー(latency) レイテンシとは
高いと低い、どっちがいい 低いほうがよい(待ち時間が短い) 高い・低いの意味
ping 値との違い ping 値はレイテンシ(往復)を測った値 RTT・ping値との違い
帯域幅との違い 帯域幅は1秒に運べる量。レイテンシは時間 帯域幅との違い
目安 国内 数ms〜20ms台、米国 100〜160ms前後 目安の早見表
測り方 ping、Web なら curl -w 測り方
下げる方法 近くに置く・往復を減らす・接続を使い回す 下げる方法

確認環境:Ubuntu 24.04.4 LTS・Linux カーネル 6.18。ネットワーク名前空間(ip netns。1台の中に独立したネットワークを作る仕組み)で、PC・ルーター・サーバーの3台分を作りました。ルーターとサーバーの間は TUN デバイス(パケットをプログラムで受け渡す仮想のネットワーク装置)でつなぎ、片道ごとに決めた時間だけパケットを止めて渡す Python 3.11.15 の中継で、往復 0・20・100・300ms の遅延を足しました(tc netem の delay と同じ働き。netem の書き方は man ページで確かめました)。測定は iputils 20240117 の ping・tracepath、traceroute 2.1.5、curl 8.5.0(OpenSSL 3.0.13・nghttp2 1.59.0)、iproute2 6.1.0 の ss、Python の http.client で行い、サーバーは Python の http.server(HTTP/1.1・TLS 1.3)と Hypercorn 0.18.0(HTTP/2)です。目安の値は Peter Norvig 氏の公開表、Microsoft Azure の公式のリージョン間の往復時間、光ファイバーの速さは査読論文、curl の各時間の意味は curl の公式ドキュメント、Windows の ping・tracert・pathping は Microsoft Learn、Mac は Apple サポート、パーセンタイルの考え方は Google の SRE 本、TCP の動きは RFC 5681 で確かめました(確認日 2026年10月23日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「レイテンシとは|意味・目安・測り方を遅延0〜300msの実測で解説」

レイテンシとは(意味・読み方・たとえ)

この節では、レイテンシという言葉の意味と、分野ごとに何を指すのかが分かります。

レイテンシ(latency)は、何かを頼んでから、その結果が始まる(届く)までの待ち時間です。 英語の latent(潜んでいる、表に出ていない)から来た言葉で、日本語では「遅延」「待ち時間」と訳されます。読み方は「レイテンシ」「レイテンシー」のどちらも使われ、意味は同じです。単位は時間で、ネットワークではミリ秒(ms。1000分の1秒)が使われます。

1宅配便でいうと

注文してから荷物が届くまでの日数がレイテンシ。トラックの大きさ(1回に運べる量)は帯域幅にあたる。

2会話でいうと

話しかけてから返事が聞こえ始めるまでの間。国際電話で返事が少し遅れて聞こえるのは、距離によるレイテンシ。

3Web ページでいうと

リンクを押してから最初の文字が出るまでの時間。ページは何十回も往復するので、1回の差が積み重なる。

分野ごとの「レイテンシ」の見分け表

同じ「レイテンシ」でも、何から何までの時間かが分野で違います。この記事は主にネットワークと Web・API のレイテンシを扱います。

分野 何から何までの時間か よく見る単位・例
ネットワーク パケットを送ってから届く(返る)まで ms。ping の time=20 ms
Web・API リクエストを送ってから応答が来るまで ms。p50・p99(後の節)
ストレージ・メモリ 読み出しを頼んでからデータが出てくるまで ns・µs。メモリの CL(クロック数)
音声(DTM・通話) 音が入ってから処理されて聞こえるまで ms。バッファの大きさで変わる
ライブ配信 配信者の映像が視聴者に映るまで 秒。YouTube の「低遅延」など
ゲーム 操作がサーバーに届き、結果が返るまで ms。画面の「ping 値」
FX・株の取引 注文を出してから取引所・業者に届くまで ms。約定のずれ(スリッページ)に関係

音声の例では、48,000Hz(1秒に48,000回の値)で256個ずつまとめて処理すると、256÷48,000=約5.3ms のレイテンシが1回分加わります。配信の例では、YouTube ヘルプが「低遅延」は通常10秒未満、「超低遅延」は通常5秒未満と説明しています。分野が違っても「待ち時間」という意味は同じです。

レイテンシと帯域幅・スループット・ジッター・RTTの違い

この節では、レイテンシと混同しやすい言葉の違いと、どれが体感の速さに効くのかが分かります。

レイテンシは「時間」、帯域幅とスループットは「量」です。 帯域幅は1秒に運べる最大の量(Mbps など)、スループットは実際に運べた量です。ジッターはレイテンシのばらつき、RTT は往復のレイテンシです。

言葉 意味 単位 たとえ(道路)
レイテンシ 送ってから届くまでの時間 ms 目的地までの所要時間
RTT(往復時間) 送ってから返事が戻るまでの時間 ms 行って帰ってくる時間
帯域幅 1秒に運べる最大の量 Mbps・Gbps 道路の車線の数
スループット 実際に1秒に運べた量 Mbps 実際に通れた車の数
ジッター レイテンシのばらつき ms 所要時間が日によって変わる幅
パケットロス 途中で消えたパケットの割合 % 途中で引き返した車
flowchart TD
    L[レイテンシ<br>1往復の時間] --> S[小さいデータ<br>API・ページの開始]
    B[帯域幅<br>1秒に運べる量] --> G[大きいデータ<br>動画・ダウンロード]
    S --> T[体感の速さ]
    G --> T

RTT・ping 値との違い

RTT(Round Trip Time、往復時間)は、往復のレイテンシのことです。 ネットワークでは片道の時間を正確に測るのが難しい(送る側と受ける側の時計を合わせる必要がある)ため、多くの場合、往復の時間を測って「レイテンシ」と呼びます。ping で出る time= の値や、ゲーム画面の「ping 値」は、この RTT です。

帯域幅とレイテンシ、どちらが効くか(実測)

小さいデータはレイテンシで、大きいデータは帯域幅で時間が決まります。 同じサーバーから 1KB・1MB・10MB のファイルを取得し、「遅延なし・速さ10Mbps」と「遅延100ms・速さの上限なし」を比べました。

条件 1KB 1MB 10MB
遅延0・帯域幅10Mbps 2.4ms 871.0ms 8,697.5ms
遅延100ms・帯域幅の上限なし 202.1ms 855.7ms 1,272.0ms
遅延100ms・帯域幅10Mbps 203.5ms 1,328.1ms 9,150.0ms

1KB(API の応答・小さな画像)

帯域幅が細い10Mbps でも 2.4ms で届いた
↔
レイテンシが大きい往復100ms だと 202.1ms。接続と要求の2往復分

小さいデータは、回線を太くしても速くならない

10MB(動画・ダウンロード)

帯域幅が細い10Mbps だと 8.7秒(10MB×8÷10Mbps=約8.4秒)
↔
レイテンシが大きい往復100ms でも 1.3秒

大きいデータは、帯域幅が時間の大半を決める

1KB は、帯域幅が細くても速く、遅延があると遅くなりました。10MB は逆で、帯域幅が細いと遅くなりました。「回線速度(Mbps)が速いのに反応が遅い」ときは、レイテンシを疑います。 速度テストの「ダウンロード 500Mbps」は帯域幅の値で、反応の速さは別に表示される ping 値(レイテンシ)で分かります。

ジッター(レイテンシのばらつき)

ジッターは、レイテンシが毎回どれだけ変わるかです。 往復20ms に片道 ±2ms 程度のばらつきを足して ping を20回送ると、最小と最大で約13ms の差が出ました。mdev がばらつきの大きさ(平均からのずれ)です。

20 packets transmitted, 20 received, 0% packet loss, time 3814ms
rtt min/avg/max/mdev = 16.879/20.971/29.594/2.950 ms

通話・Web 会議・ゲームでは、平均のレイテンシが小さくても、ジッターが大きいと音が途切れたり動きが飛んだりします。受け取る側は、遅れて来たパケットを待つためにバッファ(ためておく場所)を大きくするので、その分レイテンシも増えます。

レイテンシは何で決まる?(距離・機器・混雑・処理)

この節では、レイテンシがどんな時間の足し算でできているのかと、距離から最小のレイテンシを計算する方法が分かります。

レイテンシは「伝わる時間+送り出す時間+待つ時間+処理する時間」の合計です。 どれか1つが大きいと、全体が遅くなります。

内訳 何の時間か 大きくなる例
伝搬遅延 信号が距離を進む時間 海外のサーバー、遠いリージョン
送出遅延 データを線に送り出す時間(量÷帯域幅) 細い回線で大きなデータ
キューイング遅延 ルーターなどで順番を待つ時間 混雑、Wi-Fi の電波の取り合い
処理遅延 機器やサーバーが中身を処理する時間 重い SQL、遅い API、VPN の暗号化

距離:光の速さより速くはならない

光ファイバーの中の光は、真空中の約3分の2の速さ(1ミリ秒に約204km)で進みます。 米国の光ファイバー網の遅延を調べた論文(Bozkurt ほか、arXiv:1811.10737)は、ファイバーの中の光の速さを真空の約2/3とし、計算に 204,000km/秒を使っています。つまり、1,000km 離れると、片道だけで約4.9ms、往復で約9.8ms かかります。どんなに機器を速くしても、この時間は減りません。

東京からの直線距離(地球の表面に沿った最短距離)と、この速さで一直線に結んだときの最小の往復時間を Python で計算し、Microsoft Azure が公開しているリージョン間の実際の往復時間(中央値)と並べました。

"""東京からの直線距離と、光ファイバーで一直線に結んだときの最小の往復時間"""
import math
def km(a, b):
    (la1, lo1), (la2, lo2) = [(math.radians(x), math.radians(y)) for x, y in (a, b)]
    h = math.sin((la2 - la1) / 2) ** 2 + math.cos(la1) * math.cos(la2) * math.sin((lo2 - lo1) / 2) ** 2
    return 2 * 6371 * math.asin(math.sqrt(h))      # 地球の半径 6,371km
V = 204                                             # 光ファイバーの中の光の速さ(km/ミリ秒)
tokyo = (35.68, 139.69)
for name, pos in [("大阪", (34.69, 135.50)), ("ロンドン", (51.51, -0.13))]:
    d = km(tokyo, pos)
    print(f"{name}: 約{d:,.0f}km  最小の往復 {2 * d / V:.1f}ms")
東京から 直線距離 計算上の最小の往復 Azure の実測(中央値)
大阪 約396km 3.9ms 11ms
ソウル 約1,153km 11.3ms 29ms
シンガポール 約5,314km 52.1ms 72ms
米国西海岸(カリフォルニア) 約8,333km 81.7ms 107ms
米国東部(バージニア) 約11,061km 108.4ms 162ms
ロンドン 約9,559km 93.7ms 230ms

Azure の値は、Microsoft Learn「Azure ネットワーク往復待機時間の統計」の、Japan East から Japan West・Korea Central・Southeast Asia・West US・East US・UK South への往復の中央値(2026年7月30日までの30日間)です。実際の往復は、計算上の最小の1.3〜2.8倍でした。 ケーブルは一直線ではなく、海底ケーブルの陸揚げ地点や経由するネットワークを回るため、道のりが長くなります。ロンドンは2.5倍と大きく、直線から大きく外れた道のりを通っていると考えられます。

機器・混雑・処理

  • 経由する機器:ルーター・ファイアウォール・VPN 装置は、受け取ったパケットを調べてから送り出します。1台ごとの時間は小さくても、数が多いと積み重なります。
  • 混雑:回線やルーターが混むと、パケットが順番待ちの列(キュー)に並びます。夜の時間帯に遅くなる、大きなダウンロード中に ping 値が跳ね上がる、などはこれです。
  • Wi-Fi:同じチャンネルを使う周りの機器と、電波を送る順番を取り合います。有線 LAN にするとレイテンシとジッターが小さくなることが多いのはこのためです。
  • サーバーの処理:データベースの検索や外部 API の呼び出しを待つ時間は、ネットワークの外のレイテンシです。後の節の curl -w で、ネットワークとサーバーのどちらに時間がかかっているかを分けられます。

レイテンシの目安の早見表(メモリ・SSD・国内・海外)

この節では、「何 ms なら速いのか」を、コンピューターの中から海外まで1つの表で比べられます。

コンピューターの中の処理はナノ秒(ns。10億分の1秒)、ネットワークはミリ秒の単位です。 メモリの読み出しと海外との往復では、100万倍以上の差があります。

操作 レイテンシの目安 出典・測り方
CPU の L1 キャッシュから読む 0.5ns Norvig 氏の表
CPU の L2 キャッシュから読む 7ns Norvig 氏の表
メインメモリから読む 100ns Norvig 氏の表
1Gbps の回線で 2KB を送り出す 20µs(0.02ms) Norvig 氏の表
同じ PC の中(127.0.0.1 への ping) 0.026ms 実測
メモリから 1MB を続けて読む 250µs(0.25ms) Norvig 氏の表
ディスク(HDD)のシーク 8ms Norvig 氏の表
ディスク(HDD)から 1MB を続けて読む 20ms Norvig 氏の表
東京〜大阪の往復 11ms Azure の公開値
東京〜ソウルの往復 29ms Azure の公開値
東京〜シンガポールの往復 72ms Azure の公開値
東京〜米国西海岸の往復 107ms Azure の公開値
東京〜米国東部の往復 162ms Azure の公開値
東京〜ロンドンの往復 230ms Azure の公開値

Norvig 氏の表は「一般的な PC でのおおよその時間」として公開されているもので、SSD の値は載っていません。SSD のレイテンシは製品の仕様書で確かめます。表のネットワークの値は、データセンター間の専用の回線の値です。家庭やスマホからは、ここに自宅の回線や Wi-Fi、携帯電話網の分が足されます。

用途ごとの目安(ping 値)

NTT東日本の解説では、ping 値の目安を次のように分けています。

ping 値 評価 向いている用途
0〜15ms 非常に速い Web 会議・動画配信・オンラインゲーム
16〜30ms 速い 動画視聴
31〜50ms 普通 Web サイトの閲覧
51ms〜 やや遅い 快適に使えない場合がある

この値は国内のサーバーを相手にしたときの目安です。海外のサーバーは、上の表のとおり距離だけで 100ms を超えるので、同じ基準では比べられません。ゲームでは、1秒に60コマ描く画面の1コマが 1000÷60=約16.7ms なので、往復が数十 ms あると、操作の結果が数コマ遅れて表示されることになります。

レイテンシの測り方(ping・traceroute・curl -w)

この節では、レイテンシを OS ごとのコマンドで測る方法と、出力のどこを見るかが分かります。

何を知りたいか Windows Mac・Linux
相手との往復時間 ping 相手 ping -c 4 相手
どこで遅れているか tracert 相手・pathping 相手 traceroute 相手・tracepath 相手
Web の各段階の時間 curl.exe -w … curl -w …
回線全体の反応の速さ 速度テストの ping 値 Mac は networkQuality
使っている TCP 接続の RTT (標準のコマンドなし) Linux は ss -ti
1

ping で往復時間を測る

相手まで届くか、何 ms かかるかを見る。数回送って、平均とばらつきを見る。

往復

2

traceroute で区間を分ける

途中のルーターごとの時間を見て、どこから急に大きくなるかを探す。

区間

3

curl -w で Web の段階を分ける

接続・TLS・サーバーの処理・転送のどこに時間がかかったかを見る。

段階

ping(Windows・Mac・Linux)

ping は、相手に ICMP(ネットワークの制御用の小さなメッセージ)を送り、返事が来るまでの往復時間を表示します。 往復100ms の遅延を足した相手に、Linux で4回送った出力です。

ping -c 4 10.76.2.2
PING 10.76.2.2 (10.76.2.2) 56(84) bytes of data.
64 bytes from 10.76.2.2: icmp_seq=1 ttl=63 time=101 ms
64 bytes from 10.76.2.2: icmp_seq=2 ttl=63 time=101 ms
64 bytes from 10.76.2.2: icmp_seq=3 ttl=63 time=101 ms
64 bytes from 10.76.2.2: icmp_seq=4 ttl=63 time=101 ms

--- 10.76.2.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 100.561/100.646/100.831/0.108 ms
  • time=101 ms:1回ごとの往復時間(RTT)
  • rtt min/avg/max/mdev:最小・平均・最大・ばらつき(ジッターの目安)
  • 0% packet loss:返事が来なかった割合

Linux と Mac の ping は止めるまで送り続けるので、-c 4 で回数を決めます。Windows の ping は、Microsoft Learn によると既定で4回送り、/n で回数、/t で止めるまで送り続けます。Microsoft Learn の出力例は Reply from 192.168.239.132: bytes=32 time=101ms TTL=124 の形で、time= が往復時間です。

ping の返事が来ないことは、それだけでは「つながらない」の意味になりません。 ICMP をファイアウォールで止めているサーバーは多くあります。Web サーバーなら、次の curl -w で TCP 接続の時間を測ります。

traceroute・tracert・pathping(どこで遅れているか)

traceroute は、途中のルーターごとの往復時間を並べて、どの区間で遅くなるかを見るコマンドです。 PC → ルーター → 遅延100ms の線 → サーバー、という経路で実行しました。

$ traceroute -n -q 3 10.76.2.2
traceroute to 10.76.2.2 (10.76.2.2), 30 hops max, 60 byte packets
 1  10.76.1.1  0.024 ms  0.003 ms  0.002 ms
 2  10.76.2.2  100.474 ms  100.496 ms  100.496 ms

$ tracepath -n 10.76.2.2
 1?: [LOCALHOST]                      pmtu 1500
 1:  10.76.1.1                                             0.037ms 
 1:  10.76.1.1                                             0.007ms 
 2:  10.76.2.2                                           100.757ms reached
     Resume: pmtu 1500 hops 2 back 2 

1つ目(ルーター)までは 0.02ms、2つ目(サーバー)で 100ms に増えたので、ルーターとサーバーの間で遅れていると分かります。 時間は「そこまでの合計」なので、急に増えた所の手前の区間が原因の候補です。途中だけ大きくて先がまた小さい場合は、そのルーターが自分あての返事を後回しにしているだけで、通信は遅れていないことがあります。

Windows では tracert(既定で最大30ホップ、応答待ち4秒)と、pathping を使います。Microsoft Learn によると、pathping は経路上の各ルーターに一定期間(既定で1ルーターあたり100回)ping を送り、ルーターごと・区間ごとの遅延と損失の割合を表示します。時間はかかりますが、どの区間でパケットが落ちているかまで分かります。出力の読み方と * * * の意味は、関連記事「traceroute・tracertの使い方|見方と * ・!Hの意味を実例で」で扱っています。

curl -w(Web・API のどこに時間がかかったか)

curl -w を使うと、名前解決・TCP 接続・TLS・サーバーの処理・転送の各段階が何秒目に終わったかを表示できます。 curl の公式ドキュメントのとおり、どの値も「開始からの累積の時間」です。書式をファイルに書いておくと見やすくなります。

     名前解決: %{time_namelookup}s\n
     TCP接続: %{time_connect}s\n
     TLS完了: %{time_appconnect}s\n
   送信の直前: %{time_pretransfer}s\n
最初の1バイト: %{time_starttransfer}s\n
        合計: %{time_total}s\n
curl -s -o /dev/null -w @fmt.txt https://10.76.2.2:37602/f1.bin

往復100ms の相手に HTTPS で 1KB のファイルを取りに行った結果です。

     名前解決: 0.000023s
     TCP接続: 0.100554s
     TLS完了: 0.205742s
   送信の直前: 0.205800s
最初の1バイト: 0.310138s
        合計: 0.310200s
段階 かかった時間(差) 何の時間か
名前解決 0.00ms IP アドレスで指定したので DNS の問い合わせなし
TCP 接続 100.5ms 3ウェイハンドシェイクの1往復
TLS 105.2ms TLS 1.3 の鍵の交換の1往復
最初の1バイトまで 104.3ms 要求を送って応答が返る1往復+サーバーの処理
転送 0.06ms 1KB の本文を受け取る時間

小さなファイル1つでも、HTTPS では3往復(約310ms)かかりました。 「最初の1バイトまで」から「送信の直前」を引いた値(ここでは約104ms)は、ネットワークの1往復とサーバーの処理時間の合計で、TTFB(Time To First Byte)と呼ばれる値に近いものです。この差が往復時間(ping の値)より大きく伸びていれば、サーバーの処理が遅いと分かります。curl の公式サイトによると、curl は Windows 10 のビルド 17063 から標準で入っています。PowerShell の curl は Invoke-WebRequest の別名なので、curl.exe と書きます。curl のオプションの全体は、関連記事「curlコマンドの使い方|よく使うオプションとAPIの確認方法」で扱っています。

Mac の networkQuality と Linux の ss

Apple サポートによると、macOS Monterey 以降ではターミナルで networkQuality と入力すると、ネットワークの応答性を測れます。結果は RPM(1分あたりに何回往復できるか)で表され、「低い」「中間」「高い」の3段階に分けられます。詳しいオプションは man networkQuality で確かめます。

Linux では、使っている TCP 接続ごとに、OS が見積もっている RTT を ss -ti で見られます。往復100ms の相手につないだままの接続です。

$ ss -tin dst 10.76.2.2
State Recv-Q Send-Q Local Address:Port  Peer Address:Port Process
ESTAB 0      0          10.76.1.2:57392    10.76.2.2:37601
     bbr wscale:10,10 rto:304 rtt:101.214/12.29 ato:40 mss:1448 pmtu:1500 … minrtt:100.841 …

rtt:101.214/12.29 は、なめらかにした RTT とそのばらつき(ms)、minrtt:100.841 はこれまでの最小の RTT です。rto:304 は、返事が来ないときに送り直すまで待つ時間(ms)で、RTT が大きいほど長くなります。TCP の接続とポートのしくみは、関連記事「ソケットとは|TCPとUDPの違いをPythonの通信とtcpdumpで解説」で扱っています。

遅延を0・20・100・300msに変えて実測(ping・curl・keep-alive)

この節では、レイテンシが増えると Web の所要時間がどれだけ増えるのかを、同じ操作を遅延だけ変えて測った数値で確かめられます。

1台の Linux の中に、ネットワーク名前空間で PC・ルーター・サーバーを作り、ルーターとサーバーの間の線に遅延を足しました。サーバーでは HTTP(37601番)と HTTPS(37602番)で、1KB のファイル10個と 1MB・10MB のファイルを返しています。

flowchart TD
    PC[PC<br>10.76.1.2] --- RT[ルーター<br>10.76.1.1]
    RT ---|遅延を足す線<br>往復0〜300ms| SV[サーバー<br>10.76.2.2]

遅延の足し方(tc netem と、この記事の中継)

Linux では、ネットワークの試験用に tc コマンドの netem で遅延を足すのが一般的です。man ページ(tc-netem(8))の書き方は delay 時間 [ばらつき [相関]] で、例として次のコマンドが載っています。netem は、指定した装置から出ていくパケットを遅らせます。

tc qdisc add dev eth0 root netem delay 100ms          # 出ていくパケットを100ms遅らせる
tc qdisc change dev eth0 root netem delay 100ms 10ms  # ばらつき10msを足す
tc qdisc change dev eth0 root netem loss 0.1%         # 0.1%のパケットを落とす
tc qdisc del dev eth0 root                            # 元に戻す

この記事の測定では、netem と同じ働きをする Python の中継で遅延を足しました。 ルーターとサーバーにそれぞれ TUN デバイスを作り、片方から読んだパケットを決めた時間だけ止めてから、もう片方に書き込みます。往復で足したい時間の半分ずつを、行きと帰りで待たせます。

"""2つの名前空間の TUN をつなぎ、片道ごとに決めた時間だけ待ってから渡す遅延つきの線
usage: python3 delayline.py 往復の遅延ms [片道のばらつきms] [速さの上限Mbps]"""
import ctypes, fcntl, os, random, struct, sys, threading, time, collections
CLONE_NEWNET, TUNSETIFF, IFF_TUN, IFF_NO_PI = 0x40000000, 0x400454CA, 0x0001, 0x1000
libc = ctypes.CDLL(None, use_errno=True)

def open_tun(ns, name):                      # 名前空間に入ってから、その中の TUN を開く
    with open(f"/var/run/netns/{ns}") as f:
        libc.setns(f.fileno(), CLONE_NEWNET)
    fd = os.open("/dev/net/tun", os.O_RDWR)
    fcntl.ioctl(fd, TUNSETIFF, struct.pack("16sH", name.encode(), IFF_TUN | IFF_NO_PI))
    return fd

rtt = float(sys.argv[1]); jitter = float(sys.argv[2]) if len(sys.argv) > 2 else 0.0
rate = float(sys.argv[3]) if len(sys.argv) > 3 else 0.0
one_way = rtt / 2000.0                        # 片道の秒数
fd_r, fd_s = open_tun("s376-r", "tr"), open_tun("s376-s", "ts")

def pipe(src, dst):
    q = collections.deque(); cv = threading.Condition(); st = {"free": 0.0, "last": 0.0}
    def reader():
        while True:
            pkt = os.read(src, 65535); now = time.monotonic()
            if rate > 0:                      # 線が空くまで待つ(送り出す時間=大きさ÷速さ)
                st["free"] = max(now, st["free"]) + len(pkt) * 8 / (rate * 1e6); now = st["free"]
            d = one_way + (random.gauss(0, jitter / 1000) if jitter else 0.0)
            due = max(now + max(d, 0.0), st["last"]); st["last"] = due   # 追い越しはさせない
            with cv:
                q.append((due, pkt)); cv.notify()
    def writer():
        while True:
            with cv:
                while not q:
                    cv.wait()
                due, pkt = q[0]
            time.sleep(max(0.0, due - time.monotonic()))
            with cv:
                q.popleft()
            os.write(dst, pkt)
    threading.Thread(target=reader, daemon=True).start()
    threading.Thread(target=writer, daemon=True).start()

pipe(fd_r, fd_s); pipe(fd_s, fd_r)             # 行きと帰り
print(f"delayline rtt={rtt}ms jitter={jitter}ms rate={rate}Mbit", flush=True)
while True:
    time.sleep(3600)

名前空間と TUN デバイスは、次のように作りました。ルーターの転送の設定は、ルーターの名前空間の中だけで変えています。

for n in c r s; do ip netns add s376-$n; ip -n s376-$n link set lo up; done
ip link add c0 netns s376-c type veth peer name r0 netns s376-r     # PC とルーターをつなぐ
ip -n s376-c addr add 10.76.1.2/24 dev c0; ip -n s376-r addr add 10.76.1.1/24 dev r0
ip -n s376-r tuntap add dev tr mode tun; ip -n s376-s tuntap add dev ts mode tun
ip -n s376-r addr add 10.76.2.1/24 dev tr; ip -n s376-s addr add 10.76.2.2/24 dev ts
# 各装置を up にし、PC とサーバーにデフォルトゲートウェイを設定(略)
ip netns exec s376-r sysctl -qw net.ipv4.ip_forward=1
python3 delayline.py 100 &                                           # 往復100msを足す

中継そのものにかかる時間は、遅延0のときの ping の平均で 0.276ms でした(PC からルーターまでは 0.02ms)。下の表の「0ms」は、この中継の分を含んだ値です。

測った結果

各条件を3回ずつ測り、中央値を載せました。10ファイルの行は curl を1回起動して10個を順に取得した時間で、curl の起動の時間(数 ms)も含みます。

測ったもの 0ms 20ms 100ms 300ms
ping の平均 0.28ms 20.6ms 100.7ms 300.7ms
HTTP 1KB を1つ 1.5ms 42.0ms 202.5ms 603.6ms
HTTPS 1KB を1つ 6.1ms 67.1ms 306.3ms 910.7ms
HTTP 10個・接続を使い回す 14ms 240ms 1,127ms 3,337ms
HTTP 10個・毎回つなぎ直す 22ms 427ms 2,036ms 6,044ms
HTTPS 10個・接続を使い回す 16ms 266ms 1,229ms 3,656ms
HTTPS 10個・毎回つなぎ直す 39ms 661ms 3,106ms 9,067ms
HTTP 1MB を1つ 17.5ms 175.3ms 858.7ms 2,580.0ms
HTTP 10MB を1つ 169.8ms 305.1ms 1,280.0ms 3,798.3ms
2往復HTTP で1KB を1つTCP 接続+要求と応答
3往復HTTPS で1KB を1つTLS 1.3 の1往復が増える
31往復HTTPS で10個、毎回接続往復100msで3,106ms

所要時間は、ほぼ「往復の回数 × 往復時間」になりました。 HTTP の1KB は 202.5ms(約2往復)、HTTPS は 306.3ms(約3往復)で、遅延を3倍の300ms にすると、どちらもほぼ3倍になりました。帯域幅は同じなので、増えた時間はすべてレイテンシによるものです。

接続を使い回す(keep-alive)と往復が減る

HTTP/1.1 は、1つの TCP 接続で複数のリクエストを順に送れます(持続的接続、keep-alive)。 curl は同じサーバーへの2つ目以降の取得で接続を使い回し、%{num_connects}(新しく作った接続の数)が 1000000000 になりました。Connection: close を付けて毎回閉じさせると 1111111111 で、10回とも接続し直しています。

sequenceDiagram
    participant C as PC
    participant S as サーバー
    C->>S: TCP 接続
    S-->>C: 接続できた
    C->>S: 1つ目を要求
    S-->>C: 1つ目の応答
    C->>S: 2つ目を要求
    S-->>C: 2つ目の応答

1KB のファイル10個を取得した時間(往復100ms)短いほど速い。HTTP/2 は Hypercorn で同じファイルを返して測定

HTTPS 毎回3,106ms
HTTP 毎回2,036ms
HTTPS 使い回し1,229ms
HTTP 使い回し1,127ms
HTTP/2 同時440ms
  • HTTP で毎回つなぎ直すと約20往復(接続10回+要求10回)、使い回すと約11往復(接続1回+要求10回)で、時間は 2,036ms から 1,127ms に減りました。
  • HTTPS では、接続のたびに TLS の1往復も増えるので、毎回つなぎ直すと約31往復(3,106ms)、使い回すと約12往復(1,229ms)でした。HTTPS ほど、接続を使い回す効果が大きくなります。
  • MDN の「HTTP/1.x のコネクション管理」も、短命な接続ではリクエストごとに TCP のハンドシェイクが起き、持続的接続ではその時間を節約できると説明しています。

HTTP/2 で同時に送る

HTTP/2 は、1つの接続の中で複数のリクエストを同時に送れます(多重化)。 HTTP/2 に対応したサーバー(Hypercorn)に同じ10個のファイルを置き、curl の --http2 -Z(同時に取得)で測りました。

$ curl --http1.1 (10個を順に)      → 1.1:1 1.1:0 … 1.1:0   1,243ms
$ curl --http1.1 -Z (10個を同時に)  → 1.1:1 1.1:1 … 1.1:1     340ms
$ curl --http2 -Z (10個を同時に)    → 2:1 2:0 … 2:0           440ms

2:1 2:0 … は「HTTP のバージョン:新しく作った接続の数」です。HTTP/2 は接続1本のまま、10個を 440ms(約4往復)で取得しました。 HTTP/1.1 で同時に取ると 340ms とさらに短くなりましたが、接続を10本作っています(1.1:1 が10個)。接続の数が増えると、そのたびに TCP と TLS の往復が要り、サーバーが受け持つ接続も増えます。HTTP/2 は、接続1本のまま往復の回数を減らせる方法です。

大きなファイルもレイテンシで遅くなる理由

1MB のファイルは、往復0ms で 17.5ms、往復100ms で 858.7ms と、約50倍になりました。帯域幅は同じなのに遅くなったのは、TCP が最初から全力では送らないためです。TCP は、届いたことの確認(ACK)を受け取るたびに、一度に送ってよい量を増やしていきます(スロースタート)。 RFC 5681 は、ACK を1つ受け取るごとに最大1セグメント分ずつ増やすと定めていて、結果として1往復ごとにおよそ倍に増えます。往復時間が長いほど、量が増えるまでの時間も長くなります。

レイテンシが高い・低いとは?(ゲーム・配信・Web会議・API)

この節では、「高い」「低い」がどういう状態で、使い方ごとにどんな影響が出るのかが分かります。

レイテンシは低いほうがよい値です。 「低レイテンシ」は待ち時間が短く反応が速いこと、「高レイテンシ」は待ち時間が長く反応が遅いことを指します。速さ(Mbps)のように「高いほどよい」値ではないので、逆に覚えないように気をつけます。

使い方 レイテンシが高いと起きること 気にする値
オンラインゲーム 撃ったのに当たらない、相手がワープする ping 値(往復 ms)とジッター
Web 会議・通話 話し始めがかぶる、音が途切れる 往復の ms・ジッター・パケットロス
ライブ配信 視聴者のコメントへの反応が遅れる 配信の遅延(秒)の設定
Web サイト 最初の表示までが遅い TTFB・往復の回数
API・マイクロサービス 画面の操作1回の応答が遅い 応答時間の p50・p99
データベース 1件ずつ問い合わせると合計が遅い 1回の往復の ms × 回数

レイテンシが効くもの(往復の多いもの)

ゲーム・通話・Web 会議の反応

ページの表示開始、API の呼び出し

データベースへの小さな問い合わせの繰り返し

帯域幅が効くもの(量の多いもの)

動画の画質、大きなファイルのダウンロード

バックアップ、OS のアップデート

クラウドへの大量のアップロード

アプリやデータベースでは、「1回の往復の時間 × 往復の回数」で考えます。 たとえば、アプリのサーバーとデータベースが往復1ms の距離にあっても、1画面で SQL を100回順に送ると、それだけで 100ms になります。同じ処理を、サーバーとデータベースを別のリージョン(往復11ms)に置いて行うと 1.1秒です。まとめて1回で取得する、近くに置く、のどちらかで短くできます。

p50・p99の見方(平均ではなくパーセンタイル)

この節では、API やサービスのレイテンシを「平均」ではなく「p50・p99」で見る理由と読み方が、実測で分かります。

p50 は「全体の50%がこの時間以内に終わった」、p99 は「99%がこの時間以内に終わった」という値です。 p50 は中央値で、ふつうのリクエストの速さを表します。p99 は遅いほうの1%を除いた最悪に近い値で、テールレイテンシ(遅い裾の部分)と呼ばれます。Google の SRE 本は、99パーセンタイルのような高い値は「起こりうる最悪に近い値」を、50パーセンタイルは「典型的な値」を示し、平均だけを見ると遅いリクエストの変化が見えなくなる、と説明しています。

往復20ms(ばらつきあり)の線の先に、95%は 5ms、5%は 100ms かかる API を置き、同じ接続で1000回呼び出して測りました。

"""同じ接続で /api に1000回リクエストし、所要時間の平均・p50・p90・p99・最大を出す"""
import http.client, time, statistics
c = http.client.HTTPConnection("10.76.2.2", 37601)
ms = []
for _ in range(1000):
    t = time.perf_counter(); c.request("GET", "/api"); c.getresponse().read(); ms.append((time.perf_counter() - t) * 1000)
ms.sort()
q = lambda p: ms[min(len(ms) - 1, int(len(ms) * p / 100))]
print(f"件数 {len(ms)}  平均 {statistics.mean(ms):.1f}ms  p50 {q(50):.1f}ms  p90 {q(90):.1f}ms  p95 {q(95):.1f}ms  p99 {q(99):.1f}ms  最大 {ms[-1]:.1f}ms")
print("100ms以上かかった件数:", sum(m >= 100 for m in ms))
件数 1000  平均 33.7ms  p50 28.6ms  p90 32.4ms  p95 120.6ms  p99 126.4ms  最大 129.2ms
100ms以上かかった件数: 55
値 結果 読み方
平均 33.7ms 遅い5%が混ざり、どちらの実態も表していない
p50 28.6ms ふつうのリクエストは約29ms
p90 32.4ms 90%は約32ms 以内
p99 126.4ms 100回に1回は 126ms ほどかかる

平均は 33.7ms で「速い」ように見えますが、1000回中55回は 100ms を超えていました。 1画面で API を10回呼ぶ画面なら、10回のうちどれか1回でも遅いと画面全体が遅くなるので、p99 のような遅い側の値が体感に効きます。目標(SLO)を決めるときは「p99 を 200ms 以内」のように、パーセンタイルと時間をセットで決めます。多数のリクエストを送ってパーセンタイルを測る方法は、関連記事「負荷テストの進め方とk6の使い方|スクリプト例と結果の読み方」で扱っています。

レイテンシを下げる方法(CDN・リージョン・接続の再利用・キャッシュ)

この節では、レイテンシを短くする方法を、「距離を縮める」「往復を減らす」「待ちを減らす」に分けて選べます。

レイテンシを下げる方法は、「1往復を短くする」か「往復の回数を減らす」かの2つです。 距離による時間は光の速さで決まっているので、遠い相手との1往復は短くできません。その場合は回数を減らします。

方法 何が減るか 向いている場面
CDN を使う 距離(利用者の近くから返す) 画像・CSS・JS・動画などの配信
利用者に近いリージョンに置く 距離 日本の利用者向けのサービス
接続を使い回す(keep-alive・接続プール) TCP・TLS の往復 API の呼び出し、DB への接続
HTTP/2・HTTP/3 を使う 往復の回数(同時に送る) 多数の小さなファイルを読む Web ページ
キャッシュする 往復そのもの 何度も同じデータを読む処理
まとめて1回で送る 往復の回数 SQL の N+1、API の連続呼び出し
有線 LAN にする・混雑を避ける 待ち時間・ジッター ゲーム・Web 会議
  • 1サーバーは利用者の近くにあるか東京の利用者に米国東部から返すと、距離だけで往復160ms前後かかる
  • 2静的なファイルを CDN から返しているかCDN は利用者の近くのサーバーに写しを置き、遠くまで取りに行かずに返す
  • 3接続を毎回作り直していないか実測では HTTPS 10回で31往復が12往復に減った
  • 4HTTP/2 以上で配信しているか実測では10個のファイルが1本の接続で約4往復に収まった
  • 5ループの中で1件ずつ問い合わせていないか100回の往復は、1回の往復が1msでも100msになる
  • 6同じデータを毎回取りに行っていないかキャッシュに当たれば、ネットワークの往復そのものが無くなる

Cloudflare の解説も、CDN は静的なコンテンツを分散したサーバーにキャッシュし、利用者の近くから配信することで読み込みの時間を短くする、と説明しています。キャッシュの置き方と有効期限の決め方は、関連記事「キャッシュ設計の戦略一覧:Cache-Asideなど5方式の違いとTTLの決め方」で扱っています。

家庭やオフィスで ping 値を下げたいときは、Wi-Fi を有線 LAN にする、大きなダウンロードやアップロードを同時に行わない、ルーターを再起動する、ゲームのサーバーの地域を近くにする、の順に試すと、効果を比べやすくなります。

レイテンシが高いときの原因と切り分け

この節では、「遅い」と感じたときに、どこが原因かを順に絞り込めます。

  1. 1ping で往復時間を測るいつも通りの値か、急に大きくなったか、ばらつき(mdev)が大きいかを見る
  2. 2自宅・社内のルーターに ping するルーターまでで既に遅ければ、Wi-Fi や LAN の中が原因
  3. 3traceroute・pathping で区間を見るどのホップから急に増えるかで、回線・プロバイダー・相手側を見分ける
  4. 4curl -w で段階を分けるTCP 接続は速いのに最初の1バイトが遅ければ、サーバーの処理が原因
症状・出力 考えられる原因 確かめ方・直し方
ルーターまでの ping が数十 ms・ばらつく Wi-Fi の電波が弱い・混んでいる 有線にして比べる。ルーターに近づける
ダウンロード中だけ ping が跳ね上がる 回線の混雑で順番待ちが増えた 大きな通信を止めて測り直す
特定の海外サイトだけ遅い 距離(伝搬遅延) 近いリージョン・CDN を使う
traceroute の途中から急に増える その区間の回線・プロバイダー側 pathping で損失の割合も見る
途中のホップだけ大きく、先は小さい ルーターが自分あての返事を後回しにしている 最後のホップの値で判断する
time_connect は小さいが time_starttransfer が大きい サーバーの処理(DB・外部 API) サーバー側のログ・処理時間を調べる
毎回 time_appconnect に時間がかかる 接続を使い回していない keep-alive・接続プールを使う
ping は返らないが Web は開く ICMP を止めている curl -w の time_connect で測る
VPN を使うと遅くなる VPN の装置を経由する遠回りと暗号化 VPN を切った値と比べる

家の中が原因か外が原因かは、自宅のルーター(デフォルトゲートウェイ)に ping すると分かります。 自分の外向きの IP アドレスと、NAT の内側と外側の違いは、関連記事「グローバルIPの確認方法|コマンド・プライベートIPとの違いとNATを実演」で扱っています。

よくある質問

Q. レイテンシとは簡単に言うと何ですか? A. データを送ってから届く(返事が返る)までの待ち時間です。単位はミリ秒(ms)で、小さいほど反応が速くなります。宅配便でいえば、注文してから届くまでの日数にあたります。

Q. レイテンシとレイテンシー、読み方はどちらが正しいですか? A. どちらも英語の latency のことで、意味は同じです。記事や製品によって「レイテンシ」「レイテンシー」の両方が使われます。

Q. レイテンシは高いのと低いの、どっちがいいですか? A. 低いほうがよい値です。「低レイテンシ」は待ち時間が短いこと、「高レイテンシ」は待ち時間が長く反応が遅いことです。回線速度(Mbps)とは逆なので注意します。

Q. レイテンシと ping 値の違いは? A. ping 値は、ping コマンドなどで測った往復のレイテンシ(RTT)の値です。ゲームや速度テストで表示される「ping」は、ほぼレイテンシと同じ意味で使われています。

Q. レイテンシと遅延の違いは? A. レイテンシの日本語訳が「遅延」で、同じものを指します。ネットワークでは、パケットが届くまでの時間を「遅延時間」「レイテンシ」のどちらでも呼びます。

Q. レイテンシの目安は何 ms ですか? A. 国内のサーバーなら数 ms〜20ms 台、東京から米国は往復100〜160ms 前後、ヨーロッパは200ms 台が、データセンター間の公開値です。NTT東日本の解説では、ping 値15ms 以下を非常に速い、51ms 以上をやや遅いとしています。

Q. レイテンシと帯域幅(通信速度)の違いは? A. 帯域幅は1秒に運べる量、レイテンシは1往復にかかる時間です。実測では、1KB のファイルは帯域幅を10Mbps に絞っても 2.4ms、往復100ms の遅延があると 202ms かかり、小さいデータはレイテンシで時間が決まりました。

Q. レイテンシを下げるにはどうすればよいですか? A. 利用者の近くにサーバーを置く・CDN を使う(1往復を短くする)か、接続を使い回す・HTTP/2 を使う・まとめて送る・キャッシュする(往復の回数を減らす)かです。家庭では有線 LAN にすると下がることが多くあります。

Q. ジッターとは何ですか? A. レイテンシのばらつきです。ping の mdev や、最小と最大の差で分かります。通話やゲームでは、平均が小さくてもジッターが大きいと音や動きが途切れます。

Q. p99 レイテンシとは何ですか? A. 全体の99%のリクエストがその時間以内に終わった、という値です。実測では平均 33.7ms に対して p99 は 126.4ms で、平均だけでは遅い1%が見えませんでした。

Q. ゲームのレイテンシは何 ms なら快適ですか? A. 国内のサーバーで ping 値が15ms 以下なら非常に速い、30ms 以下なら速い、という目安が公開されています。1秒60コマの画面では1コマが約16.7ms なので、往復が数十 ms あると操作の結果が数コマ遅れて表示されます。

まとめ

  • レイテンシは、データを送ってから届く(返る)までの待ち時間。単位は ms で、低いほどよい。
  • 帯域幅は「1秒に運べる量」、スループットは「実際に運べた量」、ジッターは「レイテンシのばらつき」、RTT は「往復のレイテンシ」。
  • レイテンシは「距離+送り出し+順番待ち+処理」の合計。光ファイバーでは 1,000km ごとに往復約9.8ms かかり、これより速くはならない。
  • 東京から大阪は往復11ms、米国西海岸は107ms、ロンドンは230ms(Azure の公開値)。メモリは 100ns で、100万倍以上の差がある。
  • 測るときは ping(往復)、traceroute・tracert・pathping(区間)、curl -w(Web の段階)を使う。
  • Web の所要時間は「往復の回数 × 往復時間」。往復100ms で HTTPS の10ファイルは、毎回つなぎ直すと 3,106ms、使い回すと 1,229ms、HTTP/2 で同時に取ると 440ms だった。
  • API のレイテンシは平均ではなく p50・p99 で見る。

次に読むとよい記事です。経路の区間ごとの調べ方は関連記事「traceroute・tracertの使い方|見方と * ・!Hの意味を実例で」で、TCP の接続のしくみは関連記事「ソケットとは|TCPとUDPの違いをPythonの通信とtcpdumpで解説」で扱っています。

参考・出典

確認日はいずれも 2026年10月23日です。

  • Microsoft Learn「Azure ネットワーク往復待機時間の統計」:https://learn.microsoft.com/en-us/azure/networking/azure-network-latency
  • Bozkurt ほか「Dissecting Latency in the Internet's Fiber Infrastructure」(arXiv:1811.10737):https://arxiv.org/abs/1811.10737
  • Peter Norvig「Teach Yourself Programming in Ten Years」(Approximate timing for various operations on a typical PC):https://norvig.com/21-days.html
  • NTT東日本「レイテンシとは?」:https://business.ntt-east.co.jp/column/service/flets-hikari/latency.html
  • Cloudflare「レイテンシーとは」:https://www.cloudflare.com/ja-jp/learning/performance/glossary/what-is-latency/
  • Google「Site Reliability Engineering - Service Level Objectives」:https://sre.google/sre-book/service-level-objectives/
  • everything curl「Available --write-out variables」:https://everything.curl.dev/usingcurl/verbose/all-variables.html
  • MDN「HTTP/1.x のコネクション管理」:https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/Connection_management_in_HTTP_1.x
  • RFC 5681「TCP Congestion Control」:https://www.rfc-editor.org/rfc/rfc5681
  • man7.org「tc-netem(8)」:https://man7.org/linux/man-pages/man8/tc-netem.8.html
  • curl「curl shipped by Microsoft」:https://curl.se/windows/microsoft.html
  • Microsoft Learn「ping」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/ping
  • Microsoft Learn「tracert」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/tracert
  • Microsoft Learn「pathping」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/pathping
  • Apple サポート「Apple ネットワーク応答性テストで Wi-Fi をテストする」:https://support.apple.com/ja-jp/101942
  • YouTube ヘルプ「ライブ配信の遅延について」:https://support.google.com/youtube/answer/7444635?hl=ja

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「レイテンシとは|意味・目安・測り方を遅延0〜300msの実測で解説」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?