Hubs are relatively old technology and are used to connect multiple computers
and devices together. An eight-port hub could connect eight computers, or even
be used to connect to more hubs, allowing large networks of devices. Hubs were
cheap but had a downside; they took packets , small pieces of information that
are assembled together to form a larger message, and forwarded them to every
device in the network, even to those that were not supposed to receive this
information. All computers on a network therefore i ltered all incoming trafi c,
and multiple communications could not happen at the same time. To avoid this,
switches were developed.
A switch is a network device that receives packets of data and can inspect
that packet to know where it is supposed to go. When it has that information, it
sends that packet to the correct port—and only to that port. All other devices on
the switch are free to communicate during this time. Today, it is becoming hard
to i nd hubs, but switches are readily available. On the back of your modem,
you probably have some RJ45 connectors for Ethernet cables; the chances are,
that is a switch.
Power over Ethernet, or PoE, is a way of powering remote devices directly by
the Ethernet cable.
Power is transmitted over a twisted pair, and as such, cables using PoE are not
normally gigabit-capable. There are exceptions, but they are currently expensive.
Arduinos are not normally PoE devices and cannot be used with a PoE-
powered cable, unless an optional module is supplied. The Arduino Ethernet
has an option to allow PoE, allowing the Arduino to be powered directly from
the cable. This means that your Arduino does not need to be powered by a bat-
tery, USB, or through the barrel jack connector, but it does require the Arduino
to be powered by a PoE-capable switch or injector. Imagine a network cable
running through your garden, powering an Arduino sensor in a place where
you do not have mains power.
Ethernet is a physical means of connecting computers together in small or large
networks, but to allow programs to talk to each other, an application layer is
required. The most commonly used is TCP/IP.
The TCP/IP protocol is relatively complex, but for most day-to-day usage, it is
easy to understand. Each device has an address, and data is sent to that address.