Macでネットワーク内のTCP及びUDPの送受信サイズを確認する方法

2023.01.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

  • t_o_dと申します。
  • ネットワークの送受信サイズを調査して通信量を確認したい場合があります。
  • 今回はMacで「TCP,UDP」の各送受信サイズを調べる方法を記録します。

環境

  • mac OS Ventura 13.1

結果

  • 以下のスクリプトをターミナルに貼り付けて実行すると、ネットワーク内のTCP及びUDPの合計送受信サイズを出力します。
nettop -J bytes_in,bytes_out -l 1 |
awk '
$2~/tcp/{
  tcp_in+=$4
  tcp_out+=$6
}
$2~/udp/{
  udp_in+=$4
  udp_out+=$6
}
END{
  print "TCP受信量",tcp_in
  print "TCP送信量",tcp_out
  print "UDP受信量",udp_in
  print "UDP送信量",udp_out
}
'
  • 実行後、以下のように各サイズが出力されていることを確認します。
TCP受信量 11xxx
TCP送信量 66xxx
UDP受信量 11xxx
UDP送信量 66xxx

内容

  • 上記のスクリプトではnettopコマンドを利用しています。
  • このコマンドはリアルタイムでネットワーク内のアプリやトラフィックなどの情報を出力するプログラムであり、通信状態の把握やボトルネックの発見などに便利です。
  • 今回は実行時点の送受信サイズをテキストとして出力したいので、nettopの以下のオプションを利用しています。
    • -J 列名 : 指定列のみの表示。bytes_in,bytes_outのように複数指定の場合はカンマを利用。
    • -l 1 : 状態をログモードで出力。1を指定で実行時点状態をテキストで出力。
  • つまりnettopから出力される情報をawkに渡して、TCP及びUDPの各サイズを計算するというスクリプトとなっております。

補足

  • 基本操作や他オプションについてはこちらから確認できます。

まとめ

  • nettopはデフォルトではもちろんオプションを活用すれば、ネットワーク情報の取得に大変役立ちます。
  • こうしたMacの標準コマンドは豊富にあるため、適宜調査及び活用していきます。

参考

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。