ftp がファイル (アップロードとダウンロードの両方) をブロック サイズで転送することは誰もが知っています。内部ネットワークのスループットを向上させるブロック サイズを知るために、Python でスクリプトを作成しています。タイムアウトしたブロック数、再送が必要なブロック数など 試したftplibでは、
ftp.set_debuglevel(2)
ただし、これはブロック レベルの操作をキャプチャせず、より高いレベルのファイル転送操作のみがログに記録されます。一般に、ftplib または ftp でブロック レベルの操作をキャプチャするにはどうすればよいですか?
ここに私が試したコードがあります、
from ftplib import FTP
ftp = FTP('server.name')
ftp.login()
ftp.set_debuglevel(2)
ftp.cwd('/path/')
ftp.retrbinary('RETR file.zip', open('file.zip', 'wb').write)
ftp.quit()
更新:この目的に使用できる場合は、wireshark タグも追加します。