const tcpHeaderSize … const tcpProtoNum … const FIN … const SYN … const RST … const PSH … const ACK … const URG … const ECE … const CWR … const NS … type tcpPacket … func (t *tcpPacket) decode(pkt []byte) ([]byte, error) { … } func (t *tcpPacket) DataOffset() int { … } func (t *tcpPacket) FlagString() string { … } func (t *tcpPacket) encode(src, dest net.IP, data []byte) []byte { … } func checksumTCP(src, dest net.IP, tcpHeader, data []byte) uint16 { … } type tcpChecksummer … func (c *tcpChecksummer) finalize() uint16 { … } func (c *tcpChecksummer) add(data []byte) { … }