Ethernet was developed in the 1970s as a broadcast-style network. Every host on the Ethernet network hooks into a cable and all hosts have to treat the Ethernet media as a party line. If one host is talking to another, all other hosts will see the information, and no other host will be able to communicate at the same time.
These days, the more common forms of Ethernet use a star configuration, where a cable from each machine runs into a switch or hub. This switch or hub then connects to routers to transfer packets outside the network. The advantage of the star-style network is that all the members of the network do not have to contend for access to the network all at once. The hub or switch is much faster at negotiating traffic. In addition, if the cable to one host goes down, none of the other hosts on the network will fall off the network and as a result the cabling used by these networks are of much higher quality, allowing for speeds up to 1Gbps, as opposed to 10Mbps for coaxial cable.
For machines to identify themselves, each Ethernet adapter has a unique address (Media Access Connector or MAC address) assigned to it by the Ethernet adapter manufacturer. When an Ethernet adapter wants to talk to another Ethernet adapter, it sends a message containing its own MAC address, as well as the receiving MAC address, down the entire Ethernet cable. If the receiving MAC address is on that run, it gets the message. Collisions occur when two Ethernet adapters try to transmit at the same time. If this happens, both adapters stop transmission, wait a random amount of time, and retransmit. Having too many collisions indicates a network that has very heavy traffic and is running inefficiently. To correct this, you may want to split the network into two networks or use a switch instead of a hub.
Each Ethernet packet has to and from Ethernet addresses along with IP to and from addresses, followed by the data, and finally some error checking data to verify that a packet arrives complete.
For a packet to get across from one subnet to another, a router is used. The router does not look at the Ethernet header, but instead looks at the protocol being used. If the router knows that a particular packet needs to be forwarded to another subnet, it forwards the packet.
What allows Linux (and TCP/IP) to make connections between an Ethernet address and an IP address is the Address Resolution Protocol (or ARP) cache. When the Linux machine starts talking on an Ethernet network, it starts asking (via ARP) what the MAC addresses for other machines on the subnet are.
Linux first sends an Ethernet broadcast asking for a mapping from an IP address to a MAC address. The receiving end with that IP address responds with an ARP reply, giving the IP address and its MAC address. Linux stores that MAC address in an ARP cache for future use. The cache times out every now and then, and this may happen several times a day. Don't worry, though - there are plenty of bits for everyone on the network. If a packet has to go through a router to get somewhere else, Linux addresses the Ethernet packet to the router and the router then picks it up and forwards it to the destination network.
To help vary the performance of TCP/IP over Ethernet and other physical mediums, there is an option for TCP/IP packets to set the maximum size of the IP packets. Each physical medium has its own Maximum Transmission Unit based on a balance of latency (the amount of time it takes a packet to cross the medium) and the amount of data that can be sent. Small packets have lower latency, but decreased performance, since a larger percentage of the packet is header and footer information for the packet. Large packets send more data efficiently, but have a higher latency. A satellite link would have small packets, since the latency is high (the packet already has a 1/2 second delay to get from the Earth to the satellite and back to the Earth). Ethernet can have a larger packet size, since Ethernet has a limited distance that a packet can travel.
These days, the more common forms of Ethernet use a star configuration, where a cable from each machine runs into a switch or hub. This switch or hub then connects to routers to transfer packets outside the network. The advantage of the star-style network is that all the members of the network do not have to contend for access to the network all at once. The hub or switch is much faster at negotiating traffic. In addition, if the cable to one host goes down, none of the other hosts on the network will fall off the network and as a result the cabling used by these networks are of much higher quality, allowing for speeds up to 1Gbps, as opposed to 10Mbps for coaxial cable.
For machines to identify themselves, each Ethernet adapter has a unique address (Media Access Connector or MAC address) assigned to it by the Ethernet adapter manufacturer. When an Ethernet adapter wants to talk to another Ethernet adapter, it sends a message containing its own MAC address, as well as the receiving MAC address, down the entire Ethernet cable. If the receiving MAC address is on that run, it gets the message. Collisions occur when two Ethernet adapters try to transmit at the same time. If this happens, both adapters stop transmission, wait a random amount of time, and retransmit. Having too many collisions indicates a network that has very heavy traffic and is running inefficiently. To correct this, you may want to split the network into two networks or use a switch instead of a hub.
Each Ethernet packet has to and from Ethernet addresses along with IP to and from addresses, followed by the data, and finally some error checking data to verify that a packet arrives complete.
For a packet to get across from one subnet to another, a router is used. The router does not look at the Ethernet header, but instead looks at the protocol being used. If the router knows that a particular packet needs to be forwarded to another subnet, it forwards the packet.
What allows Linux (and TCP/IP) to make connections between an Ethernet address and an IP address is the Address Resolution Protocol (or ARP) cache. When the Linux machine starts talking on an Ethernet network, it starts asking (via ARP) what the MAC addresses for other machines on the subnet are.
Linux first sends an Ethernet broadcast asking for a mapping from an IP address to a MAC address. The receiving end with that IP address responds with an ARP reply, giving the IP address and its MAC address. Linux stores that MAC address in an ARP cache for future use. The cache times out every now and then, and this may happen several times a day. Don't worry, though - there are plenty of bits for everyone on the network. If a packet has to go through a router to get somewhere else, Linux addresses the Ethernet packet to the router and the router then picks it up and forwards it to the destination network.
To help vary the performance of TCP/IP over Ethernet and other physical mediums, there is an option for TCP/IP packets to set the maximum size of the IP packets. Each physical medium has its own Maximum Transmission Unit based on a balance of latency (the amount of time it takes a packet to cross the medium) and the amount of data that can be sent. Small packets have lower latency, but decreased performance, since a larger percentage of the packet is header and footer information for the packet. Large packets send more data efficiently, but have a higher latency. A satellite link would have small packets, since the latency is high (the packet already has a 1/2 second delay to get from the Earth to the satellite and back to the Earth). Ethernet can have a larger packet size, since Ethernet has a limited distance that a packet can travel.