IPv4とIPv6の比較について
概要
- 一般的にIPv6のほうがv4より高速だとされているが、具体的に何が異なるのかを明らかにする
測定方法
- v4, v6の双方のインターフェイスを持つOCIのインスタンスに対して、/netperf/コマンドで、v4, v6の双方の通信回線を持つ家のPCから測定した
測定スクリプト
import os
import sys
import datetime
import time
import itertools
import json
from loguru import logger
for i in itertools.count(0):
ret = os.popen("netperf -H 138.2.4.109 -t TCP_STREAM -v 2 -- -o mean_latency,throughput,transaction_rate").read()
obj = {"proto": "ipv4", "raw": ret, "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
obj = json.dumps(obj)
logger.info(hash(obj))
logger.info(obj)
with open(f"data/{abs(hash(obj))}", "w") as fp:
fp.write(obj)
ret = os.popen("netperf -H 2603:c021:8007:f300:1:1:1:2 -t TCP_STREAM -v 2 -- -o mean_latency,throughput,transaction_rate").read()
obj = {"proto": "ipv6", "raw": ret, "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
obj = json.dumps(obj)
logger.info(hash(obj))
logger.info(obj)
with open(f"data/{abs(hash(obj))}", "w") as fp:
fp.write(obj)
time.sleep(180)
収集したデータ
データの可視化
結果
- スループットはIPv6に比べてIPv4は分散が大きい
- 必ずしも、IPv6がIPv4より早いわけではない
- レイテンシーについてはIPv6のほうが小さい