10
\$\begingroup\$

All the mouse movements, USB connections and other PC peripherals such as printers etc. are what is called serial communication. One bit per time.

So far so good. But when it comes to TCP protocol, Ethernet and internet it is not called serial communication anymore. But this is also bit per second stuff.

Why is that so? What is the main difference? I couldn't understand why it is not serial communication.

\$\endgroup\$
  • 4
    \$\begingroup\$ First: Printers for a very very long time used parallel communication. Next, can you provide a source claiming that the Internet is not serial? TCP itself looks serial to me. One packet is transmitted at one time and the fact that you can transmit several consecutive packets doesn't make it any more parallel. Modern Ethernet is actually parallel. You have 4 twisted pairs in a cable and each pair sends one bit at a time, so in a modern Ethernet you are sending 4 bits simultaneously. \$\endgroup\$ – AndrejaKo May 3 '12 at 18:43
  • \$\begingroup\$ if it is serial why do we use Ethernet card then? and secondly why it is not under serial communication in the books? \$\endgroup\$ – user16307 May 3 '12 at 18:45
  • \$\begingroup\$ Well it's a bit difficult for me to respond to that comment. \$\endgroup\$ – AndrejaKo May 3 '12 at 18:47
  • 1
    \$\begingroup\$ One one level we have general port types such as serial ports and parallel ports. On another level we have actual implementation of such ports such as the RS-232, RS-485 or USB for serial ports and IEEE 1284 or say ATA for parallel ports. \$\endgroup\$ – AndrejaKo May 3 '12 at 18:49
  • 1
    \$\begingroup\$ Each individual port type has its specifics. RS-232 is more or less easy to implement but is slow and has short range. Ethernet on the other hand is very complex and is often looked as a part of larger networking stack and has greater range and is much faster. \$\endgroup\$ – AndrejaKo May 3 '12 at 18:51
14
\$\begingroup\$

At least three reasons, probably:

  1. In the era when RS-232 ports were common, it so by far the most common means of bit-at-a-time communication, so much so that the term "serial port" became synonymous with "RS-232 port"; using the term "serial" in connection with anything else would add confusion. Note that USB avoids such confusion mainly because it seldom referred to as "Universal Serial Bus", so the existence of the word "serial" in its long-form name is a non-issue.
  2. In nearly all cases, RS-232 ports their logic-level equivalents transmit individual bytes as they are received from software, and individual incoming bytes available to software as they are received. By contrast, most Ethernet devices will wait until software has supplied an entire packet (between 64 and 1536 bytes) before they begin transmission, and will wait until they have received and validated an entire packet before they make any of it available to software. Although bits and bytes might be sent over the wire serially, software neither knows nor cares. It just knows that some short time after one controller is fed a packet and told to send it, another controller will report that a packet is available, and allow software to read it.
  3. A "serial port" is guaranteed to transmit bytes of data in the chronological sequence that software supplies them, and make them available to software in the chronological sequence they are received; it would be rather useless if it did not. All Ethernet and Internet systems guarantee that when a packet is sent from one node to another the arrangement of bytes made available to the recipient will match the arrangement of bytes supplied by the sender, but there is no common specification requiring that the chronological order in which data are transmitted have any relation to their arrangement within a packet. Further, there only guarantees that can be made with regard to chronological sequencing of packets relative to each other are highly vague. If packet X is delivered Sunday at 11:47am and packet Y is delivered the next day at 3:28pm, one can safely assume that Y was sent after X. On the other hand, if X is delivered at 1:47:12 and Y is delivered at 1:47:15, it's entirely possible that Y was sent first but X took longer to arrive.

Incidentally, a 10-base-T Ethernet connection sends individual bits in sequence, but higher-speed cabling often uses various signalling methods to send multiple bits at once.

\$\endgroup\$
  • \$\begingroup\$ so internet is a kind of serial communication with a delay. can we say it is non-realtime serial communication since first the serial data is stored before usage.? \$\endgroup\$ – user16307 May 3 '12 at 18:55
  • \$\begingroup\$ @cmd1024 Well the problem is that Internet is extremely complex. In fact it can work as a parallel communication medium, but we'd be getting into the murky waters of Internet routing here. It's not all that unusual for one packet to go one way and for another to go another way for some part of the transit between two computers on the Internet, so it can be parallel one part of the way. There are even ways for accessing Internet that allow use of several network interfaces and that would allow for fully parallel communication. \$\endgroup\$ – AndrejaKo May 3 '12 at 19:01
  • \$\begingroup\$ so internet is not serial it is mixed? do we all agree? \$\endgroup\$ – user16307 May 3 '12 at 19:04
  • 2
    \$\begingroup\$ @cmd1024 I think that it would be best to wait for clabacchio to finish writing his answer. The question you asked is very tricky since on one side Internet operates on a completely different level from simple RS-232 port. \$\endgroup\$ – AndrejaKo May 3 '12 at 19:10
  • 1
    \$\begingroup\$ Internet != Ethernet. I talk with some boxes using raw Ethernet, no ip or tcp/udp. Even that 802.3 is based on a phy that is just a differential serial line. \$\endgroup\$ – user9224 May 3 '12 at 22:40
6
\$\begingroup\$

Ethernet can be transmitted serially and generally was until the days of 1000BASE-T.

But it's packetized, you literally can not send a single valid byte as there is a pile of addressing, crc, etc. overhead. Ethernet also does not insure ordering between packets, so you might send packets A B and C but the receiver could get them in the order C A B. There is also collision detection and re-transmission baked in.

Overall it's a whole lot more complicated that a serial connection.

\$\endgroup\$
  • \$\begingroup\$ Excellent point about packet sequencing. \$\endgroup\$ – supercat May 3 '12 at 19:36
  • \$\begingroup\$ Ordering if packets is handled by layers higher in the OSI stack than the phy Ethernet layer. You can certainly send one byte on an Ethernet line. It's just as meaningless as a single byte on an rs232 line. Both need a higher layer protocol to make sense of the byte. \$\endgroup\$ – user9224 May 3 '12 at 22:30
4
\$\begingroup\$

The answer is: the ISO-OSI stack.

OSI stands for Open Systems Interconnection (ISO is the International Standardization Organization), and it's a model which defines the structure used to transmit data between every kind of devices. Each level is a different abstraction layer, and adds rules or details that define the communication protocol.

While Internet (excluding things that are commonly associated with it, like HTTP) belongs to the upper layers (the Network layer), serial communication is just a way to define the Physical layer.

enter image description here

This is the OSI model stack, compared with the TCP/IP model used for Internet: you can see that Internet is defined at the network level, while the serial protocol (in strict sense, not the implementation) is defined by the physical layer, at the base of the stack.

From Wiki about the Internet protocol suite:

The Internet protocol suite is the set of communications protocols used for the Internet and similar networks, and generally the most popular protocol stack for wide area networks. It is commonly known as TCP/IP, because of its most important protocols: Transmission Control Protocol (TCP) and Internet Protocol (IP)

It has four abstraction layers, each with its own protocols. From lowest to highest, the layers are:

  • The link layer (commonly Ethernet) contains communication technologies for a local network.

  • The internet layer (IP) connects local networks, thus establishing internetworking.

  • The transport layer (TCP) handles host-to-host communication.

  • The application layer (for example HTTP) contains all protocols for specific data communications services on a process-to-process level (for example how a web browser communicates with a web server).

Ethernet and WiFi are examples of protocols that can work as Network Access Layer, providing the physical medium and the basic transmission rules (like the encoding of symbols) for the Internet connection.

Other protocols used at different layers of the stack are, as mentioned, TCP, UDP, HTTP and many others.

\$\endgroup\$
  • 7
    \$\begingroup\$ +1 Long answer: TCP is in a higher layer than serial communication. It doesn't matter for TCP whether the underlying means of communication is serial or not. \$\endgroup\$ – starblue May 3 '12 at 19:03
  • \$\begingroup\$ And there are ethernet over USB such as RNDIS. \$\endgroup\$ – user3528438 Dec 4 '16 at 16:14
3
\$\begingroup\$

Several people have given you good answers to your question.

But there's another distinction nobody has mentioned yet.

When we talk about serial and parallel peripherals for a PC, historically we talked about a point-to-point link. One computer talks to one printer or one modem (per cable). In general there is a master device that controls all communications over these links and slave devices that just do what they're told.

When we talk about Ethernet, we're talking about networking. Multiple computers are connected a network, and none of them is necessarily master or slave. In the early Ethernet protocols, multiple computers would actually be hooked up to the same coaxial cable. Nowadays generally Ethernet means point-to-point links but Ethernet includes protocols that enable communicating with multiple other devices in a peer-to-peer network.

Of course USB somewhat changes the picture for PC peripherals because its a multi-point network, but its still a peripheral interconnect with defined masters and slaves, rather than a peer-to-peer network.

So, I'd say that discussions of serial and parallel interfaces don't mention networking don't mention TCP or Ethernet because those things live in a completely different world from peripheral interconnects. Like when you talk about all the kinds of apples (Red Delicious, Braeburn, etc.) you never mention Gros Michel and Cavendish.

\$\endgroup\$
  • \$\begingroup\$ I think that you can come to that answer with the OSI model: the networking is defined at a higher level than the physical medium, so you first make the (point-to-point) connection, then define the rules to route the messages in a bigger mesh. \$\endgroup\$ – clabacchio May 4 '12 at 6:27
  • \$\begingroup\$ @clabacchio, Yes, OP asked about TCP which is a totally inappropriate level of the OSI stack to compare with serial/parallel interfaces. My answer is about Ethernet, which does go down to the physical layer. My answer may be a bit off topic but I'll leave it up in case someone finds it informative. \$\endgroup\$ – The Photon May 4 '12 at 15:52
0
\$\begingroup\$

In my work as a control system engineer for power plant design, we have hardwired IO (input/output) point lists and a separate "serial" points list. My preference is to call these "soft" point lists a "communicated point list" instead since they are typically Ethernet based (Modbus TCP, DNP3, Profinet etc.). Many colleagues still insist on using the historical "serial point list" title. I'm interested in hearing from others on the proper nomenclature for such lists.

\$\endgroup\$
-1
\$\begingroup\$

One byte at a time is also called serial communication, except by hardware people. Nobody cares how the signaling is done. Think about a modem. Although the RS-323 interface driven by a UART chip may be banging out the bits one at a time, the actual encoding done by the modem may use parallel encodings whereby multiple bits are transmitted at the same time.

Ethernet also used to be strictly serial (baseband pulses at a rate of 10 Mhz). Modern Ethernet protocols are not serial.

The word "serialize" is often used to mean "pack some data in memory into a byte-by-byte format" (where issues of bit order and such are taken care of way down in some datalink and physical communication layers).

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.