Is it at all possible for me to manually send and recieve data via an ethernet cable? Like a home-made ethernet shield without the shield and just putting the wires of the cat5 cable into the arduino's i/o pins? Or is the protocol too large and complex to fit on an arduino?
Thus for a 10 Mbps Ethernet LAN, the preamble sequence encodes to a 5 MHz square wave!
That leaves three single cycle AVR machine instructions to detect the preamble. This is your first homework assignment. Using just three machine instructions, develop a routine to detect an Ethernet preamble.
For a 10 Mbps LAN, the signal spectrum lies between the 5 and 20 MHz.
At 20MHz that leaves 0.8 machine instructions to handle the incoming data stream. This is your second homework assignment. Using 0.8 machine instructions, develop a routine to process and store an incoming Ethernet frame.
Good luck!
What about via serial using SLIP? Would that be any easier?
Using 0.8 machine instructions, develop a routine to process and store an incoming Ethernet frame.
Oh, it's not THAT bad. You have 0.8 instructures PER BIT of the incoming frame! If you use an external ethernet PHY chip, you might even be able to send/receive 4 bits at a time or so, at only 2.5MHz... You'd still need magnetics and stuff too...
Didn't Ubicom (origianlly Scenix) have some chips that essentially did ethernet processing in software, with a tiny bit of hardware support (manchester decoder and shift register?) Of course, those chips ran at 100MHz. And they weren't a big success...
Microchip also created a chip (enc28j60) that has you do the Protocol Work in software. Guido Socher http://www.tuxgraphics.org/electronics/200606/article06061.shtml got it to work with Atmel chips and NuElectronics got Guido's solution converted to the Arduino... As you can see if you look for it... The PHYSICAL layer speed is why these ETHERNET chips need to run between 25 and 50 mhz.
With just the Physical & Data Layer work done by the Microchip part, you are left with precious little room for code to make the Arduino work for you since the Transport and Protocol layer support needs to be in the Atmega chip. It pretty much mandates a Atmega328 to leave enough for you to work with.
The WIZ chip used in the official Ethernet shield does all the Physical and Data Layer work as well as all the (TCP/IP) Transport and Protocol layer work in the chip. Leaving room for your code.
I've worked with Ethernet since 1980... for one of the companies that helped invent Ethernet... working as a network guy. This "Ethernet" stuff is actually stuff I know pretty well. I wish you could understand that your question about "just attaching to arduino pins" is the equivalent to wanting to know which wire you should move under the hood of your car that will make your car give you 50 more miles per gallon of fuel.
Oh, and SLIP is a protocol for Modems and terminal ports not Ethernet ... You have a serial port... I'm sure you can find an RFC on SLIP you can work from.
For reference, there was this press release on an open source IPv6 stack for AVR that fits in 11kB or so (I'm not familiar with the details; I don't know how far that stack extends.)