Nem o IP nem o TCP incluem a máscara de sub-rede em seus cabeçalhos.
A máscara de sub-rede é usada ao receber tráfego - se o tráfego aparecer na ligação que não está dentro de uma sub-rede à qual a interface é atribuída, ela será descartada. Se a interface for colocada em modo promíscuo, todo o tráfego recebido será enviado para a pilha TCP / IP.
O SO usa a máscara de sub-rede para saber se deve direcionar o tráfego diretamente para o IP de destino (se estiver na sub-rede) ou para um gateway (padrão) (se não estiver).
Como as placas de rede no nível de hardware tradicionalmente enviam e recebem quadros Ethernet, e não pacotes IP, não acho que isso seja necessariamente uma função de hardware da placa de rede - embora as NICs modernas possuam "TCP Offload Engines" (TOEs) que executam muito do processamento requerido pelo TCP na própria NIC - aqueles que provavelmente filtram por sub-rede no hardware também.