Normalmente el protocolo TCP es usado por el sistema operativo, (que forma parte del software), mientras que la tarjeta de red (que es hardware) se encarga del protocolo Ethernet o similares.