I'm constructing Ethernet II frames, IPv4 packets, and finally the TCP portion with a payload. From the ground up, creating raw packets.
My question is... on Windows when using C# and raw sockets, will I need to supply the FCS at the end of the packet?
My understanding is that Windows automatically does this, but specifically for Ethernet frames and not for IP or TCP packets.
It turns out automatically added on transmission and stripped on receipt, by the network interface card. The OS doesn't have to deal with it at all and generally doesn't have access to it.