Я провожу тесты скорости с разными типами передачи файлов в моей сети.
Я заметил, что передача файлов Windows (SMB) медленнее, чем FTP, HTTP и другие типы протоколов.
Я думал, что это могло быть связано с постоянным подключением.
У меня есть несколько вопросов, а не один.
Использует ли передача файлов SMB постоянное соединение?
Передача файлов SMB отправляет по одному пакету за раз и ожидает подтверждения ACK? или они делают что-то вроде конвейерной обработки HTTP?
Могу ли я найти эту информацию для себя? (Сайт Microsoft бесполезен.)
Некоторые из этих вещей зависят от версии SMB ты говоришь о. Есть несколько разных диалектов и «вкусов». Там были целые книги, написанные о SMB / CIFS- Вы говорите о довольно широкой теме.
Исходный диалект SMB через TCP / IP отправляет команды через одно TCP-соединение между клиентом и сервером. Функциональности конвейерной обработки нет.
SMBv2 добавил функциональность конвейерной обработки, уменьшил общее количество команд и упростил протокол и в целом уменьшил двусторонний характер протокола, который способствовал снижению производительности при скрытых соединениях.
Внедрение CIFS - хороший ресурс по поводу оригинального протокола SMB. Для SMBv2 я бы сначала посмотрел на Документация протокола Microsoft. Некоторые другие ресурсы с точки зрения Samba:
SMB3 добавил много тоже больше функциональности. В блоге Windows Server на Technet есть подробности о функциональности SMBv3.