I want to understand what implement an IP stack means.
I explain myself : I’ve wrote two Java little applications (Client-Server) which communicate over a LAN with TLS. In my code, I didn’t have to deal with IP addressing :
First I would get IP from the Server with an UDP multicast, and then I would create a SSL Socket and connect it to that IP address.
Now, I have to work on Suse, with C. And I have to implement an IP stack.
I don’t understand how an IP stack can be implemented in a application, I thought it was implemented in the OS.
Can someone explain what i’m missing ?
3
You can implement an IP stack whereever you want, in the kernel, in a driver, in a service, in a library, or in an app. Whatever makes the most sense in your case.
An IP stack is an application just like any other. You write it just like any other … well, actually, with an IP stack you have the huge advantage that you have a precise specification of the desired behavior, and don’t have to coax some fuzzy set of imprecise requirements out of a clueless client. The specification is so precise, in fact, that you can interpret the ASCII art diagrams from the RfC and automatically generate packet parsers from that. (That’s how the VPRI FONC project is able to implement a full IP stack in 30 lines.)