Internetworking with Linux has been the most popular choice of developers. Not only in the server world where Linux has made its mark but also in the small embedded network OS market, Linux is the most popular choice.
All this requires an understanding of the TCP/IP code base.
Some products require implementation of firewall, and others require implementation of IPSec.
There are products that require modifi cations in the TCP connection code for load balancing in a clustered environment.
Some products require improving scalability on SMP machines. Most talked about is the embedded world, where networking is most popular. Real time embedded products have very specific requirements and need huge modifications
to the stack as far as buffer management is concerned or for performance reasons.
All these require a complete understanding of stack implementation and the supporting framework.
In the application layer, a client-side application is used to initiate communication with other hosts.
Transport layer (TCP/UDP)
The transport layer uses two protocols, TCP and UDP, to control the flow of information between hosts.
TCP is responsible for placing a message into datagrams, reassembling the datagrams upon arrival at their destination, and resending anything that gets lost.
Internet layer (IP)
The Internet protocol (IP) layer is used primarily for addressing hosts and routing, and does not provide any means for error correction or flow control.