tags:

views:

46

answers:

5

Why is network I/O serialized and not parallelized?

+1  A: 

Well, the actual packets kind of are (they could all take different routes, for example), but at some point you're going to want a stream where you read the data out in the same order you put it in - that being a key point of TCP. How else would you do this?

You could always use separate sockets to give additional parallelism? Or have I misunderstood your meaning?

Some network protocols do offer "broadcast", but this is not always available (for example many network devices such will deliberately be configured to block UDP broadcasts)

Marc Gravell
A: 

Wikipedia is your friend :)

http://en.wikipedia.org/wiki/Serial_communication#Serial_versus_parallel

steve a
A: 

Apples and oranges.

Serializing is when you take some structured data and flattens it into a single sequence of data that can easily be transmitted and then deserialized on the other end to recreate the original structure.

Parallelizing is when you divide a task in several sub-tasks that can be run simultaneously, and then combine their results to get the same thing as if the task was run by a single process.

So, parallelizing can not replace serializing as they are used for different purposes.

Guffa
A: 

Because soldering cable connectors is more expensive than adding more processor power (or to add more complicated chips for greater line speed). Compare types of cables typically used for communication over years:

Centronics parallel cable - 36 pins.

RS232 cable 25 pins, then 9 pins

Ethernet twisted pair - two pairs (4 pin)

USB cable - one pair + power.

Moreover, it is not easy to transfer several channels in paralel over wireless or long distance.

danatel
Could you please explain what issues are involved in trying to send data in parallel channels over wireless for long distance?
Aastha
A: 

Think it as a stream of data. The data can be chunked and sent/received in an unordered way. To reconstruct the original stream the chunks have to be reordered.

fabrizioM
Packets when transmitted over the network may be travelling on different routes. How is the sequentiality preserved while receiving the packets? As far as i know, the packets are numbered - will that numbering not help in reassembling the message at the receiver's end even if the packets are sent parallely?This may not be useful in streaming data, but data like mails, etc. can be parallelized.
Aastha