public IPv6PseudoHeader(IPv6Address sourceAddress, IPv6Address destinationAddress, ushort headerLength, byte nextHeader) { pseudoHeader = new byte[40]; // Size of IPv6 header Array.Copy(sourceAddress.GetAddressBytes(), 0, pseudoHeader, 0, 16); Array.Copy(destinationAddress.GetAddressBytes(), 0, pseudoHeader, 16, 16); Array.Copy(NetUtilities.FromLittleEndian(headerLength), 0, pseudoHeader, 32, 2); pseudoHeader[36] = 0; // Reserved 3 zeros pseudoHeader[37] = 0; pseudoHeader[38] = 0; pseudoHeader[39] = nextHeader; //NextHeader }