I am often confused by these two words. What is the exact difference or relationship between these two?
Ethernet & TCP/IP
Is there any good book on industrial ethernet, or will just any good book on computer networks do?
The short explanation is that they are different levels or layers of a network. Ethernet covers the physical medium plus some low level things like message collision detection. TCP/IP worries about getting a message to where it is going.
TCP/IP is usually found on Ethernet, but it can be used on other networks as well. Also, you can have Ethernet without TCP/IP, and in fact a lot of proprietary industrial networks do exactly that. In addition, you can also run TCP/IP in parallel with other things like UDP on the same Ethernet connection.
Even if you have Ethernet plus TCP/IP, that just gets bundles of packets to where they are going. It doesn't give the packets any meaning. You need another protocol layer on top to do anything useful. A good example of that is Modbus/TCP. Ethenet provides the physical wiring and some low level protocol work, TCP/IP gets the data packets to the right place, and Modbus/TCP defines to the application software what the bits and bytes mean.
If you want to understand all this better, I would suggest reading some books on the basics of computer networks before looking at any industrial protocols. Don't worry about any of the advanced stuff. Just learn the basics of Ethernet, TCP/IP, addressing, sockets and ports, the difference between switches and hubs and how to "ping" an address. There are probably lots of sources on the internet where you can read this as well.
Once you understand the basics, then worry about the industrial networks. Most of the industrial networks are proprietary and secret, so what little public information there is talks around things rather than actually explaining anything. Modbus/TCP is one of the few that is actually open (many protocols claim to be open, but few actually are), and you can download the spec and read it to your heart's content. It's also a very simple protocol, so it's a good starting point for learning anything else.
In a nutshell (if possible?):
Ethernet = the hardware on which the frames travel
A frame basically consists of the Ethernet header, data payload, and error check.
TCP/IP = the set of rules that define how the data payloads in the frames are arranged and understood.
I think many people call frames 'packets', but if you get into the details of TCP/IP the term 'packet' means something a bit different.
Book on this subject:
Computer Networks 4th Ed. by Andrew S. Tanenbaum (doesn't dwell on Ethernet hardware)
Ethernet: The Definitive Guide by Charles E. Spurgeon (focus on hardware)
TCP/IP: Internetworking with TCP/IP By Douglas E. Comer, David L. Stevens (a little dated, but content valid, I think)
For something brief:
For these subjects any networking book will do. If you are interested in a quick definition of these items, Wikipedia (http://www.wikipedia.org/) is always a good place to start.
In short, Ethernet is just the physical connection to connect two or more devices and to exchange blocks of data. Where TCP/IP is layered on top of Ethernet to make sure the data is delivered and in the proper order when large amounts of data are transferred. More importantly, TCP/IP allows data to be routed between Ethernet networks and to remote destinations over many other means.
"Ethernet & TCP/IP: What is the exact difference or relationship between these two?"
Ethernet is a physical thing. It's about wires and voltages and connectors.
IP is about how messages gets routed from place to place. When the data leaves my computer, how does it know to how to get to Google?
TCP is about making sure the conversation has some rules about how to talk to each other, including making sure messages don't get lost along the way.
Sending data using the TCP/IP protocol suite over Ethernet is known as "Ethernet TCP/IP."
I'm massively over-simplifying here.
Another way to look at it; if you make a telephone call you get an awful lot accomplished. You're sending data to someone far away, and he's receiving it. But if they speak Mandarin and you speak French neither of you will get much out of the conversation. "Ethernet" is like the phone lines. An "IP address" is like a phone number. "TCP" is like the language.
Except it gets worse. Because inside that TCP message are dialects, if you will. For example, in your browser bar most addresses start with "http," but occasionally you'll see "https" or "ftp." When you configure Outlook you'll see things for "POP" and "SMTP" and "IMAP." This is the level that Modbus/TCP and EtherNet/IP sit at.
That brings up EtherNet/IP, a protocol developed by Rockwell Automation and currently controlled by the Open DeviceNet Vendors Association. See that capital "N"? ODVA controls three networks; DeviceNet, ControlNet, and EtherNet/IP. When ControlNet came out (again a Rockwell technology) it had a new protocol called "Control and Information Protocol." Later they changed this to "Common Industrial Protocol." When Rockwell wanted an Ethernet solution, they capitalized the "N" to make it fit into with DeviceNet and ControlNet, and then they put the /IP for "Industrial Protocol." Thus confusing the whole damn world, since everyone else use "IP" to stand for "Internet Protocol." Had they named it EtherNet/CIP we'd all be happy. If I ever find the guy at Rockwell/ODVA responsible for that atrocity I'm going to give him my own P.
Ethernet does not need TCP/IP, and vice versa. In fact, TCP/IP on top of Ethernet was very rare until the late 90s. Prior to need for TCP/IP for the Internet, most LANs used IPX/SPX, NetBEUI, or AppleTalk. Those protocols were rapidly killed off with the rise of the Internet, making TCP/IP the overwhelming standard for communications over Ethernet. Similarly, Ethernet is overwhelmingly the method that individual computers use to get to the Internet. There used to be other networks; ArcNet and Token Ring were big for a while. You could use modern buses, like FireWire or USB. And while Wi-Fi wireless communication is often called "Wirless Ethernet" that's a misnomer. It doesn't really count as Ethernet.
"Are there any good books on industrial Ethernet, or will just any good book on computer networks do?"
"The Industrial Communication Technology Handbook" is pretty good, though ungodly expensive. "Industrial Ethernet, 2nd Edition" is half the price and also quite good, though half the price is STILL ungodly expensive. I'd avoid a generic book on computer networks, but Wikipedia pages and google searches are probably worth a look.
Sage Automation, Inc.
James, I read your article... but I wanna to know how to implement Ethernet TCP, I mean, what's the general idea to achieve a connection? I am talking about the coding part.
Because I am a s/w developer and it's my job to establish this protocol. I am working with a dsPIC18f series controller. If you have any code related to Ethernet TCP, please send it to this id:
sumit. gpt1 at gmail. com
Sumit: "I'd like to know how to implement Ethernet TCP... I am working with a dsPIC18f series controller."
I'm afraid I'm not familiar with that controller. However, I'm going to assume you're working in C, and that the controller includes a TCP/IP stack, and that that stack has an interface similar to the pervasive *nix sockets API. In which case, you can search for "sockets tutorial" and get all kinds of good stuff. Also, consult with the documentation for your controller.
Sage Automation, Inc.
Hi! James, thanx for suggesting that to me.
Now I am not to worry about code because my seniors told me, don't worry about coding part I'll teach you fully. But I have to read the full data sheet for the ethernet part.
Now I am just reading our controller ethernet part. Hey! Tell me something about RS232 and RS485. James, for USB will we have to write or install the driver for USB or will it come automatically with the controller?
This is valid for Linux/Unix/Windows/OS-X/OpenVMS
If you want to see Modbus over TCP
P.S. TCP/IP can also be used on other media than ethernet.
On ethernet you can use ISO/OSI, DECnet, IPX, etc. also.
Ethernet is defined by IEEE 802.3 standard, that is also ISO 8802-3. This defines the physical (layer 1) and the MAC (media access control) part of the data link layer (layer 2). These are the lowest layers of the ISO 7-layer communications stack.
TCP/IP refers to the full suite of protocols defined for the Internet by the IETF (Internet engineering task force), the standards body for the Internet. TCP refers to a protocol used at layer 4 of the ISO stack (transportation), and IP refers to Internet protocol defined at layer 3 of the ISO stack. Actually, TCP/IP includes many other protocols, some of which are at the top of the ISO stack, the Application layer.
This protocol layering is done to allow the upper layers to be implemented on any lower layer. For example, Ethernet is only one such lower layer, but IEEE 802.11 a/b/g/n is another lower layer that happens to be wireless. Both support TCP/IP.
Richard H. Caro, Certified Automation Professional, CEO, CMC Associates,
2 Beth Circle, Acton, MA 01720
Tel: +1.978.635.9449 Mobile: +.978.764.4728
Subscribe to the CMC Wireless Report at http://www.CMC.us
Buy my books:
Automation Network Selection
Wireless Networks for Industrial Automation
The Consumer's Guide to Fieldbus Network Equipment for Process Control
Buy this book and save 50% or more on your next control system!!!
I do not need to connect different types of network together, only one Ethernet LAN network.
How is addressing handled if I bypass IP layer and run only TCP over Ethernet?
Thanks in advance.
> How is addressing handled if I bypass IP layer and run only TCP over Ethernet?
TCP only works because it assumes IP does certain things for it, so you cannot bypass IP and use TCP - that is like saying "I want a sport-car which can do 200mph, but I don't want a paved road!" (okay, ignoring 'salt-flats') :)
If you really don't want the overhead of TCP/IP, you can use 'EtherTypes' at a MAC level. In this case you manually address every packet with the destination MAC Address. Look up "Ethernet SNAP" or "802.2 LLC" for examples and perhaps sources of library code.
Just don't try to sell such a product these days. It is fine for a student project. Yet even for an internal company project, I (as a manager) would fire any engineer who wrote an 'EtherTypes' only application without considering the support/future implications.
Even "PROFINET I/O", which uses EtherTypes for the rapid/repetitive data sends uses UDP/IP to 'automate' the process of sharing MAC address information before hand. So Siemens didn't do this because they didn't want to write IP-layer code, but because they felt the TCP or UDP layers didn't offer added value in their specific narrow application.
> How is addressing handled if I bypass IP layer and run only TCP over Ethernet?
IP is the addressing of commercial networks since it is the NETWORK layer of communications. You cannot bypass it. On the other hand, you may bypass/ignore TCP. Often UDP is the TRANSPORT layer used for industrial networks that do not require adaptive routing. If you were to bypass IP, most connections would fail.
I'll give you a example to understand exactly the meaning of ethernet and TCP.
Suppose you called me by a phone and I received your call. You spoke English but I don't know English, I know French. In that process your phone is a ethernet and language is TCP and your my phone no. is IP.
Thanks. If you have any questions, please get back to me.
My e-mail id is--sumit. gpt1 at gmail. com
Ethernet Address (or MAC) is number that represent Network card & TCP/IP number is number assigned for this card on the network.
for example IMEI number of your mobile/SIM is Ethernet address and your mobile number that is used for calling is IP address.
Ethernet is an example of protocols included in the TCP/IP suite. It's at the data link (network access) level
by Perry S. Marshall, John S. Rinaldi
Is a complete overview of industrial Ethernet.