3 ms·
> Readers here would be expected to know all this. I'm not asking about the OSI model. I've long moved beyond that. Sorry that wasn't clear from my message I w
by waynesonfire 3y ago
> Readers here would be expected to know all this.
I'm not asking about the OSI model. I've long moved beyond that. Sorry that wasn't clear from my message I was typing in haste. I suspect very few readers here have implemented a TCP/IP stack or would even know where to begin. So, I'm acknowledging this.
There is a comment in this thread asking, "How did you even get started with this?" and it was able to successfully solicit the response that I was looking for.
- sitzkrieg 3y agothe osi model layers describe exactly what is going on in embedded systems (well all), though. look at a mcu board with ethernet. find the magjack. then the PHY, then the MAC, then...
- bvrmn 3y ago> the osi model layers describe exactly what is going on in embedded systems Unless it doesn't. OSI describes non-existing stack from the long gone past.
- Hikikomori 3y agoThe OSI model describes the OSI protocols, does not really describe what goes on exactly.
- spc476 3y agoStart at the hardware/IP layer. Easiest would be serial port for the hardware, and there are at least two methods of sending IP over serial, SLIP and PPP---there are documents out there that describe how those work. Then work on IP. IP itself is fairly easy---it's just best effort and IP options are just that---options. Then ICMP. Once you have that, then you can at least ping the device. UDP is the next easiest to implement, it's just portnumbers to an otherwise IP packet.
- ksherlock 3y agoTCP was designed in 1974. Ethernet was designed in 1980. UDP was designed in 1980. ICMP was designed in 1981. ARP was designed in 1982. Think about the computing power available in 1974 or 1980-1982. If you break it down into chunks and follow the RFCs it's manageable. tap gives you easy access to read/write ethernet packets. From there you can start sending ARP queries and responding to ARP requests. ICMP is simple, adds support for that and now you can ping. UDP? just as simple. TCP is more work but most of that is error handling and timeouts so skip them for now.