Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I've read a little about Internet protocols and deduced that on local area network, there is no need to use the IP protocol, though it's normally used.

Is there a possibility to turn off the IP protocol in Linux and use only MAC (ethernet) addresses for frame delivering? How would you do it?

I guess there will be a problem with TCP. I'm not sure if it can work on top of LLC layer.

The IP protocol overhead is so small that it's being used on LANs (with hubs) too?

share|improve this question
    
Could you link to the source that told you that? Are you not confusing something like IP routing rather than IP protocol itself? –  Mat Mar 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. –  xralf Mar 6 '12 at 20:25

4 Answers 4

up vote 9 down vote accepted

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.

share|improve this answer
    
Thanks, it looks interesting. –  xralf Mar 6 '12 at 20:31

It's possible.

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.

share|improve this answer

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...

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.