I asked this question back in 2009. The actual TCP/IP protocol is simply that - a protocol. Under the hood, Unix and Windows implement TCP/IP in the same way; how else would they be able to talk to each other?
The difference, as Len said, is in the APIs. Windows implements the BSD API so you can do basic portable socket programming, but if you want something with higher performance, you have to delve into platform specifics, or use a third party library. I assume since you're asking this question, you want to learn this stuff for yourself.
I implemented a IO Completion Port based system, and while I can't share the exact code, I can point you towards some of the resources I learned from, such as this codeproject page, this MSDN article, and this one.