Well, "in" and "out" I suppose, but you probably knew that. Depends on "which card" of course. Some info here (as always):
http://wiki.osdev.org/Main_PageMenuetOS (the 32-bit version) will connect. When I last tried it, my card was not supported. I recall that there was some nice documentation on how to add a card if your card wasn't supported. Essentially "find a C driver and re-write it in asm", as I recall. I think that's how I'd approach it if I were in your position - see how Linux does it for "my card" and try to extract the "essentials".
If I were smarter than I actually am, I'd probably design the "interface" before I tried to implement the details for "my card", in order to ease the transition to "any card". In reality, I'd probably code up specifics for "my card" and plan to work out the interface later... which I'd probably never get to...
The "usual thing" (seems pretty similar between Windows and Linux, at least) is socket(), connect(), read(), write(), bind(), listen(), accept()... Complicated enough to program for an existing OS! Probably sensible to do it the "same way", but what's the sense of writing your own OS if it's going to be just like some other OS? A lot of decisions involved in OS design! I suspect that once you've got the design worked out, implementing it - in asm or any other language - is probably the "easy part"... although still a pile of work!
Let us know how it goes.
Best,
Frank