
В сети, если приложение может генерировать поток данных, то почему данные не могут передаваться по сети как поток данных? Вместо этого, почему они разрезаются/разделяются на части перед отправкой по сети?
решение1
Я не думаю, что «сегментированный» — правильное слово для того, что вы описываете. Скорее, более подходящим было бы слово «пакетированный».
Существует множество причин для разбиения данных на пакеты, в том числе:
- В случае ошибки необходимо повторно отправить лишь небольшой фрагмент данных.
- Если несколько устройств используют одно соединение (что случается почти всегда, особенно когда небольшие сети объединяются в более крупные), разбиение данных на пакеты позволяет нескольким соединениям работать более или менее одновременно.
- Соответственно, это позволяет нескольким приложениям совместно использовать одно соединение.
- Аналогично - например, в случае VOIP или интерактивного трафика использование пакетов позволяет двум людям общаться друг с другом одновременно (представьте себе полный дуплекс, а не полудуплекс).
- Если промежуточное соединение выходит из строя или переполнено и используется совместно с другим соединением, данные необходимо разбить, чтобы воспользоваться этими связями.
- На аппаратном уровне передача данных порциями проще и эффективнее.
Сегментация — это нечто иное: она группирует компьютеры вместе и позволяет концентрировать доступ/контроль доступа между различными группами компьютеров, а также обеспечивает гибкость маршрутизации.
решение2
Возможно, лучше всего сравнить коммутацию пакетов с методом, который она заменила: коммутацией каналов. Коммутация каналов — это то, что используют телефоны. Когда вы хотите позвонить, вам нужно снять трубку и набрать номер кого-то, подождать, пока он ответит, затем, пока вы не повесите трубку, у вас будет выделенное соединение с этим человеком, по которому вы можете отправить столько данных, сколько захотите. Вы не сможете общаться с кем-то еще, пока не повесите трубку на этом канале, а затем не установите новый, и если вы не отправляете много данных, вы тратите большую часть емкости канала.
Пакетная коммутация позволяет вам обмениваться данными с кем угодно и где угодно, не беспокоясь о настройке и разрыве цепей. Не тратьте зря емкость на открытие недоиспользуемых линий, и вы можете вести несколько разговоров одновременно.