pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

回線調査で使えるツール

これだ!

https://inokara.hateblo.jp/entry/2016/02/14/191853

そういえば、こんなのあった。

ある状況の回線

例)ラウンドトリップが〜、パケロス率が〜、等など

で、使いたいアプリケーションを動かして体感速度、スループットを確認できる。

https://www.dell.com/support/kbdoc/ja-jp/000139427/iperf-%E3%82%92-%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6-%E4%BD%BF%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-%E5%B8%AF%E5%9F%9F%E5%B9%85-%E3%82%92-%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B-%E6%96%B9%E6%B3%95


https://www.anritsu.com/ja-jp/test-measurement/solutions/tcp/index

https://milestone-of-se.nesuke.com/knowhow/test-tool/iperf3/

https://www.mankier.com/1/iperf3

NWスループットについて

https://xtech.nikkei.com/it/atcl/column/17/011900625/011900011/
https://xtech.nikkei.com/it/free/NNW/NETHOT/20041001/150663/

スループットとは?

最大転送レートのこと

測定には、64/128/256/512/1024/1280/1518バイトの7種類のフレームを使う。

機器の最大通信速度でフレームを流し、ロスなく最も多くの数のフレームを転送できた値がスループット
→サイズ毎に出すのかな?
 例)64バイトで?/pps

本来はパケット/秒(pps)で示す数値
ただ、ベンダは馴染みない為か、bpsで表記する。

ワイヤスピードとは?

最小サイズのフレームが理論的に考えられる最大数で流れている状態のこと。

イコール

「64バイトのフレームが最小のフレーム間隔である96ビットをキープしてびっちり詰まって流れている状態」

10Mイーサネットの場合で1秒間に1万4881個。100Mイーサネットなら,その10倍の14万8810個
この処理は、大きなフレームを処理するよりも負荷が高い。送出先ポートの判断を多くする為。

※1万4881個の計算根拠
・10Mbpsの1秒間の転送バイト数=10*1000*1000/8=1,250,000バイト
・最小フレームサイズは64バイト
 イーサネットヘッダ14バイト
 最小ペイロード46バイト
 FCS=4バイト
・プリアンブル8バイト ※物理ヘッダ。イーサネットのサイズに含まれず。
・最小フレーム間隔96ビット=12バイト
・1フレームに必要なバイト数=64バイト+8バイト+12=84バイト
・1,250,000/84=14,880.9

Ethernet LAN - イーサネットフレームのフォーマットとMACアドレス

ネットワーク入門サイト - ワイヤースピード

イーサネットフレームの最小・最大サイズ

Ethernet LAN - イーサネットフレームのフォーマットとMACアドレス

最小64byte、最大1518byte

・ヘッダーは14バイト、FCS4バイト。
・データ部は、最小で46byte、最大で1500byteのデータが入る。
・データが46byte未満である場合、ダミーのデータ「0」を追加して46byteにする。
・これをパディングと言う。
・ セグメント内での衝突検出を行うためには、フレームの全体長がFCSも含めて64byte以上である必要があるため、パディング処理が行われる。

ポイント

ネットワーク機器や回線速度としてのスループットは、パケットのヘッダーやプリアンブル、最小フレーム間隔も含めたフレームの全体サイズで計算したもの。データ部(ペイロード)の転送速度ではない。

なので、データ部(ペイロード)の転送速度でスループットを計算すると、データ部のサイズにより、最大スループットは変わる。

例)1Gb/sの回線の場合
ペイロードが100バイトのUDP→602Mb/s
ペイロードか1472バイトのUDP→957Mb/s
ペイロードが1448パイトのTCP→941Mb/s位
※この計算では、TCPはデータ転送・確認応答以外の3WHSなどによるスループット消費は考慮してない。TCPヘッダーオプション有りで計算。

最大ペイロードであれば、大体回線速度と同じ位になるって覚えておこう。

以下は動作検証の結果
https://pikesaku.hatenablog.com/entry/2022/11/20/124122

iperfの結果のスループットは、ペイロードの転送スループットと思われる。

NICのオフロード処理について

メモ

・LSO(送信時)だけでなく、LRO(受信時)もある。
・大きなファイル受信時も動くらしい。

TCPセグメンテーションオフロード無効化

# ethtool -K enp0s3 tso off gso off

Ubuntu 22.04.1 LTSのデフォルトのオフロード設定

# ethtool -k enp0s25 
Features for enp0s25:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ipv4: off [fixed]
        tx-checksum-ip-generic: on
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: on
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
tx-gso-list: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]
rx-gro-list: off
macsec-hw-offload: off [fixed]
rx-udp-gro-forwarding: off
hsr-tag-ins-offload: off [fixed]
hsr-tag-rm-offload: off [fixed]
hsr-fwd-offload: off [fixed]
hsr-dup-offload: off [fixed]

manで確認したパラメタ

       -K --features --offload
              Changes  the  offload parameters and other features of the specified network device.  The following feature
              names are built-in and others may be defined by the kernel.

           rx on|off
                  Specifies whether RX checksumming should be enabled.

           tx on|off
                  Specifies whether TX checksumming should be enabled.

           sg on|off
                  Specifies whether scatter-gather should be enabled.

           tso on|off
                  Specifies whether TCP segmentation offload should be enabled.

           ufo on|off
                  Specifies whether UDP fragmentation offload should be enabled

           gso on|off
                  Specifies whether generic segmentation offload should be enabled

           gro on|off
                  Specifies whether generic receive offload should be enabled

           lro on|off
                  Specifies whether large receive offload should be enabled

           rxvlan on|off
                  Specifies whether RX VLAN acceleration should be enabled

           txvlan on|off
                  Specifies whether TX VLAN acceleration should be enabled

           ntuple on|off
                  Specifies whether Rx ntuple filters and actions should be enabled

           rxhash on|off
                  Specifies whether receive hashing offload should be enabled

Packet TracerでIPフラグメント動作の確認

Packet Tracerの機能で気づいたよかった点

  • シュミレーションモードでパケットキャプチャ的な情報が得られる。

 View→Shumilation Mode

  • pingではパケットサイズ指定できないが、Traffic Generator機能でパケットサイズ指定できる。
  • 使いこなすとWANシュミレーションもできるみたい。

 Configuring the DSL Modem and WAN Emulation Cloud in Packet Tracer - YouTube

フラグメントパケット動作を確認

 
 PC0からPINGサイズ1472でPC1にパケットを送ったら以下動作を確認。
 ①Router1→Router2送信時にフラグメント
 ②PC1はパケット再構成し、PING応答
 ③Router2→Router1間も、フラグメントなしで転送
 ④Router1→PC0間も、フラグメントせず転送
 ★フラグ要否は、アウト時に判断されてと思われる。Router0のPC0側のIFのmtuも1280にしたら、Router0→PC0への戻りパケットもフラグメントされた。

国際専用線サービスについて

SONET/SDH詳細

21世紀のMAN(Metro Area Network)伝送を振り返る | ネットワンシステムズ
特集:MANと光技術の最新トレンドを探る - Part.2

バックボーン技術の基本「SONET/SDH」
現在、WANを構成する光技術はさまざまなものが用いられているが、基礎となるのはSONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)だ。SONET/SDHは、電話回線などの低速な回線をTDM(Time Division Multiplexing)と呼ぶ方式で高速な回線に積み上げていく階層的な多重方式だ。
https://atmarkit.itmedia.co.jp/fnetwork/tokusyuu/12man/zu04.gif

光伝送の標準 SDH/SONETとは?(第34回)(2ページ目) | 日経クロステック(xTECH)
https://www.hitachihyoron.com/jp/pdf/1991/05/1991_05_08.pdf

考察

このあたりの技術はよく理解できず。。。。
国際専用線では、
①SONET/SDH(電話回線を何本も重ねたもの・ディジタル通信)
Ethernet(イーサ専用線)
これらが使われてる。

L2スイッチがMTU以上のフレームを受信した時の動きは?

L2スイッチがMTU以上のフレームを受信した時の動きは?

https://www.allied-telesis.co.jp/support/list/wireless/mws_gp/613-002363_A/docs/overview_04_refsw_02_l2feat_040208_jumbofrm.html

アライドテラシスのL2は破棄。

ジャンボフレームの設定を行います。
通常、Ethernetフレームの最大送受信サイズは、ヘッダーを含めて1522バイトと規定されており、これを超える大きさのEthernetフレームは破棄されます。

1522バイトが最大ってことは、タグ付きvlanを考慮してくれてる。vlan使うだけで、MTUは意識したことないし。
http://tonetsutomu.com/tone/node/304
これも同じ認識。

https://www.google.com/amp/s/internet.watch.impress.co.jp/docs/column/nettech/1088/812/amp.index.html

ただし、10GBASE-Tになると話はまた別だ。転送速度が10倍ということは、フレーム数も10倍になる。結果、フレーム処理が追い付かないか、追いついてもCPU利用率が非常に高くなってしまう問題が再び出現することになった。

Cat5とCat6のケーブルの違い

【入門】帯域幅とスループットの違い - (O+P)ut
上記URLより引用
・通信の世界でも最高周波数と最低周波数の差が広い方が単位時間あたりに送れる情報量は大きくなる。
帯域幅が広いほど送れる情報量が大きい、つまり通信速度が速くなる。
・この意味での帯域幅は周波数の差なので単位はヘルツ
・デジタル通信における帯域幅は比喩的な意味であり、周波数の幅を意識することなく一定の間隔でパルスを"1"か"0"で送付する。
・「パルスの幅が短い」つまり単位時間あたりに転送可能な情報量が大きい場合に「帯域幅が広い」という

https://haisenrescue.com/blog/cat6cat5/
→あってそう。
 Cat5とCat6は周波数が違う。またパルスの幅を短くする工夫がCat6にはあるのだろう。

何故ルーターは、PathMtuDの動作ができる?

→推測 IPヘッダで長さが分かる為。

フラグメントパケットの再構成はどこで起きる?ルーター毎?ゴールだけ?

→ゴールだけ。複数経路がある場合、フラグメントされたパケットが、別経路で流れる可能性がある為。
https://www.alaxala.com/jp/techinfo/archive/manual/AX7700R/HTML/10_10_/APGUIDE/0084.HTM
https://www.google.com/amp/s/internet.watch.impress.co.jp/docs/column/nettech/1088/812/amp.index.html

なぜフラグメント起きるとパフォーマンストラブル起きるの?

→推測 

※MTUサイズ変更
https://tomoyuki65.com/how-to-change-mtu-settings-in-windows-10/
https://www.ginnokagi.com/2011/12/windows-vista7.html

Win10でMTUを1000にしたら、TCPセグメントサイズも変わるか?

かわった。そりゃそうだ。
1500の時

1000の時

unicodeとは?

メモ

〜引用ここから〜
Unicodeユニコード)は、符号化文字集合文字符号化方式などを定めた、文字コードの業界規格。

文字集合(文字セット)が単一の大規模文字セットであること(「Uni」という名はそれに由来
する)などが特徴である。

日本の文字については当初より JIS X 0201JIS X 0208JIS X 0212を、Unicode 3.1 からは JIS X 0213 の内容も収録している。

Unicodeでは文字符号化形式としてUTF-8UTF-16UTF-32の3種類が定められている。
〜引用ここまで〜

ポイント

unicode文字集合であり、エンコード方式も定義あり。utf-8等。