Почему все современные протоколы передают маленькие куски?
потому что если произойдет потеря/ошибка в одной из частей - она выкачивается снова. А теперь представте вы качаете 1 гиг - он качается уже 60% и "бац" - ошибка, вы начинаете качать снова с 0 - теперь уже 89% и снова ошибка. Закачка начнется снова с 0. Вы уже скачали 1.5 гига, но файла так и не получили.
1. Так быстрее - параллельная передача
2. Так надёжнее - вероятность ошибки снижается
3. Какие протоколы? Почти все протоколы, которые использую я, передают целые данные. Разбиение происходит на нижних уровнях.
4. Как бы tcp/ip в любом случае разбивает любые данные на пакеты по ~1кб