Почему сетевой ввод-вывод сериализован и не распараллелен?Сетевой ввод-вывод сериализован
ответ
Ну, фактические типы пакетов : (они могут принимать разные маршруты, например), но в какой-то момент вам понадобится поток, в котором вы читаете данные в том же порядке, который вы ставите это в том, что является ключевым пунктом TCP. Как еще вы это сделаете?
Вы всегда можете использовать отдельные разъемы, чтобы обеспечить дополнительный параллелизм? Или я неправильно понял ваш смысл?
Некоторые сетевые протоколы предлагают «вещания», но это не всегда доступны (например, многих сетевых устройств, таких нарочито быть сконфигурированы, чтобы блокировать UDP вещание)
яблоки и апельсины.
Serializing - это когда вы берете некоторые структурированные данные и выравниваете их в единую последовательность данных, которые могут быть легко переданы и затем десериализованы на другом конце для воссоздания исходной структуры.
Parallelizing - это когда вы делите задачу на несколько подзадач, которые могут выполняться одновременно, а затем объединяйте их результаты, чтобы получить то же самое, что и задача, выполняемая одним процессом.
Таким образом, распараллеливание не может заменить сериализацию, поскольку они используются для разных целей.
Поскольку разъемы для пайки кабеля дороже, чем увеличение мощности процессора (или для добавления более сложных микросхем для увеличения скорости линии). Сравните типы кабелей, которые обычно используются для связи в течение многих лет:
Параллельный кабель Centronics - 36 контактов.
кабель RS232 25 булавки, затем 9 штифты
Ethernet, витая пара - две пары (4 пин)
кабель USB - одна пара + питания.
Кроме того, переносить несколько каналов в паралелине по беспроводной или междугородной линии непросто.
Не могли бы вы объяснить, какие проблемы связаны с попыткой отправить данные в параллельных каналах по беспроводной сети на большие расстояния? – Aastha
Подумайте, как поток данных. Данные могут быть упорядочены и отправлены/получены неупорядоченным способом. Чтобы восстановить исходный поток, необходимо переупорядочить куски.
Пакеты, передаваемые по сети, могут путешествовать по разным маршрутам. Как сохраняется последовательность при получении пакетов? Насколько я знаю, пакеты нумеруются - будет ли нумерация не помогать в повторной сборке сообщения на конце получателя, даже если пакеты отправляются параллельно? Это может быть непригодно для потоковой передачи данных, но данные, такие как письма и т. Д., Могут быть распараллелены. – Aastha
Во-первых, моя нынешняя машина AMD работает Ubuntu Linux с 6CPU-ядра, и «пс -ef» дал:
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Apr18 ? 00:00:01 /sbin/init
root 2 0 0 Apr18 ? 00:00:00 [kthreadd]
root 3 2 0 Apr18 ? 00:00:00 [migration/0]
root 4 2 0 Apr18 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 Apr18 ? 00:00:00 [watchdog/0]
root 6 2 0 Apr18 ? 00:00:00 [migration/1]
root 7 2 0 Apr18 ? 00:00:00 [ksoftirqd/1]
root 8 2 0 Apr18 ? 00:00:00 [watchdog/1]
root 9 2 0 Apr18 ? 00:00:00 [migration/2]
root 10 2 0 Apr18 ? 00:00:00 [ksoftirqd/2]
root 11 2 0 Apr18 ? 00:00:00 [watchdog/2]
root 12 2 0 Apr18 ? 00:00:00 [migration/3]
root 13 2 0 Apr18 ? 00:00:00 [ksoftirqd/3]
root 14 2 0 Apr18 ? 00:00:00 [watchdog/3]
root 15 2 0 Apr18 ? 00:00:00 [migration/4]
root 16 2 0 Apr18 ? 00:00:00 [ksoftirqd/4]
root 17 2 0 Apr18 ? 00:00:00 [watchdog/4]
root 18 2 0 Apr18 ? 00:00:00 [migration/5]
root 19 2 0 Apr18 ? 00:00:00 [ksoftirqd/5]
root 20 2 0 Apr18 ? 00:00:00 [watchdog/5]
root 21 2 0 Apr18 ? 00:00:00 [events/0]
root 22 2 0 Apr18 ? 00:00:00 [events/1]
root 23 2 0 Apr18 ? 00:00:00 [events/2]
root 24 2 0 Apr18 ? 00:00:00 [events/3]
root 25 2 0 Apr18 ? 00:00:00 [events/4]
root 26 2 0 Apr18 ? 00:00:00 [events/5]
root 27 2 0 Apr18 ? 00:00:00 [cpuset]
root 28 2 0 Apr18 ? 00:00:00 [khelper]
root 29 2 0 Apr18 ? 00:00:00 [async/mgr]
root 30 2 0 Apr18 ? 00:00:00 [sync_supers]
root 31 2 0 Apr18 ? 00:00:00 [bdi-default]
root 32 2 0 Apr18 ? 00:00:00 [kintegrityd/0]
root 33 2 0 Apr18 ? 00:00:00 [kintegrityd/1]
root 34 2 0 Apr18 ? 00:00:00 [kintegrityd/2]
root 35 2 0 Apr18 ? 00:00:00 [kintegrityd/3]
root 36 2 0 Apr18 ? 00:00:00 [kintegrityd/4]
root 37 2 0 Apr18 ? 00:00:00 [kintegrityd/5]
root 38 2 0 Apr18 ? 00:00:00 [kblockd/0]
root 39 2 0 Apr18 ? 00:00:00 [kblockd/1]
root 40 2 0 Apr18 ? 00:00:00 [kblockd/2]
root 41 2 0 Apr18 ? 00:00:00 [kblockd/3]
root 42 2 0 Apr18 ? 00:00:00 [kblockd/4]
root 43 2 0 Apr18 ? 00:00:00 [kblockd/5]
root 44 2 0 Apr18 ? 00:00:00 [kacpid]
root 45 2 0 Apr18 ? 00:00:00 [kacpi_notify]
root 46 2 0 Apr18 ? 00:00:00 [kacpi_hotplug]
root 47 2 0 Apr18 ? 00:00:00 [ata/0]
root 48 2 0 Apr18 ? 00:00:00 [ata/1]
root 49 2 0 Apr18 ? 00:00:00 [ata/2]
root 50 2 0 Apr18 ? 00:00:00 [ata/3]
root 51 2 0 Apr18 ? 00:00:00 [ata/4]
root 52 2 0 Apr18 ? 00:00:00 [ata/5]
С выше, и можно увидеть, что многие из процессов ядра являются пер- cpu-core - включая ksoftirqd. Изучите документацию ядра Linux, сетевые драйверы используют ksoftirqd для реализации отправки данных. Таким образом, это распараллеливание на уровне ядра процессора.
На сетевой карте есть несколько «каналов» - особенно для высокоскоростных сетевых карт. И все это может обрабатывать прием и передачу данных одновременно - снова распараллеливание на уровне сетевой карты. Например:
http://www.colfaxdirect.com/store/pc/viewPrd.asp?idproduct=230&idcategory=0
(ищите "многоканальный").
Но когда он достигает провода Ethernet, так как все они имеют один и тот же провод ..... необходима сериализация на уровне провода. Но тогда полоса пропускания провода обычно намного выше, чем скорость обработки CPU или ethernet-карты.
- 1. Объект не сериализован
- 2. XML Сериализация: объект не сериализован
- 3. LinkedList не может быть сериализован?
- 4. Retrive сериализован в Appengine JDO
- 5. класс не может быть сериализован
- 6. сетевой сетевой диск недоступен
- 7. Подавить сетевой сетевой портал
- 8. Unity3D HLAPI сетевой сетевой плеер
- 9. Разработка сетевой/клиентской сетевой игры
- 10. Строковый массив не сериализован для json правильно?
- 11. Тип «Windows.Devices.Geolocation.Geopoint» не может быть сериализован
- 12. Будущий объект сериализован для сложного объекта
- 13. WCF - 'System.IO.Compression.GZipStream' не может быть сериализован
- 14. , который быстрее, сериализован, ini или XML
- 15. Java-объект сериализован без реализации сериализуемого интерфейса
- 16. Передача объекта, который будет сериализован java
- 17. В потоках Akka, Sink.fold() обрабатывается сериализован?
- 18. Тип 'System.Threading.Tasks.Task' не может быть сериализован
- 19. Почему класс bean должен быть сериализован
- 20. Как определить, может ли класс быть сериализован?
- 21. «Microsoft.Web.Services3.Addressing.Address» не может быть сериализован
- 22. Как исправить 'System.ServiceModel.Channels.ReceivedFault' не может быть сериализован
- 23. Тип 'System.Web.HttpRequest' не может быть сериализован
- 24. машинописный текст автоматически сериализован экземпляр класса?
- 25. Открыть/просмотреть защищенный паролем сетевой сетевой диск
- 26. Как захватить удаленный сетевой сетевой трафик?
- 27. Сетевой симулятор?
- 28. Сетевой метод
- 29. Сетевой разъем
- 30. Сетевой симулятор
Вы видели количество проводников в сетевом кабеле? – Joe
Этот вопрос может иметь несколько значений. Вы имеете в виду физический ввод-вывод или программный API? – slebetman