Friday 13 March 2015

theory - Caculating baud rate of Ethernet per wire


I'm trying to find the answer to what should be a simple question. How do I calculate the physical rate bits are transmitted on an individual Ethernet wire?


I am interested specifically in 100 Mbps and 1,000 Mbps links. These Ethernet links use 8 wires as 4 separate twisted pairs and each pair therefore transmits 25 Mbps. A bit of reading (heh) tells me I am actually interested in the baud rate in which case I need to know the efficiency of the physical encoding schemes used for both of these links. I was also unsure if the quoted bit rates for Ethernet include overhead.


At this point I dived into the 802.3 standards on Ethernet which quite frankly for my purposes contain vastly too much information. I'm sure this is of interest to many people here but I found no instance of it posted before.



Answer




A 100BASE-TX device transmits on 1 pair (2 wires) and receives on another pair (2 more wires). Because of the 4B5B encoding -- for each 4 data bits, it transmits a series of 5 symbols -- 100BASE-TX has a 125 MHz symbol rate (sometimes called the baud rate) on each pair. Each symbol carries slightly less than 1 bit of information.


1000BASE-T -- Gigabit Ethernet over Cat5 cable -- has exactly the same 125 MHz symbol rate as 100BASE-TX. A 1000BASE-T device, among other tricks, transmits a 5-level pulse amplitude modulation symbol on each of the 4 pairs simultaneously. Each of those 4 symbols, transmitted simultaneously on 4 different wire pairs, carries 2 bits of information, giving a bit rate of 125 MSymbols/sec/pair * 2 bit/symbol * 4 pairs = 1000 Mbit/sec.


The 100 Mbps for 100BASE-TX and the 1000 Mbps for 1000BASE-TX are the maximum theoretical bit rates for those systems. Packet preambles, Ethernet framing, TCP/IP framing, TCP retries, etc. all eat up some of those bits, so the amount of real data bits transferred will be less.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...