Could you link to the source that told you that? Are you not confusing something like IP routing rather than IP protocol itself?
–
MatMar 6 '12 at 20:13

Actually, it's nowhere written, but it's my deduction from the way Ethernet works. There is no need of routing, so that hub only sends the frame to every other device and the device will look if in the frame is its address. If it is it will accept the frame, if it is not if will destroy it.
–
xralfMar 6 '12 at 20:25

4 Answers
4

There are protocols like AoE (ATA over Ethernet) that allows communication without IP. The problem is that such protocols aren't that common. In fact, I can't see any at the moment, except for dinosaurs such as the old file sharing protocols of yore like Banyan Vines, DECNET, etc.

There's a reason why IP took over after all. The overhead doesn't represent much anymore to our hardware, and adds flexibility.

Doable in theory, but in practice so many unix programs and daemons nowadays expect at least a rudimentarily functional IP stack. Overhead is negligible, and certainly not worth the time and hassle you'll have explaining patiently to one piece of software after another that it shouldn't bother looking for even 127.0.0.1...

In theory you could send TCP packets directly in an Ethernet frame without an IP header, but it is not practically possible because applications using TCP expect to deal with IP addresses, not Ethernet MAC addresses. The IP headers only add about 20 bytes per packet of overhead, which is less than 2% of a 1500 byte Ethernet packet so it is negligible.

IIRC, you need a suitable socket and rights/capabilities. You'll need to deal with underlying media (MAC) addresses and make your own frames etc. It's not very different than what we do with a lot of embedded systems. See packet(7).

You won't have the niceties that IP give you, for very little price, like name resolution, routing, reliable streams, etc.

And like other answers say, you probably won't have much application support.