一、TCP头数据结构
typedef struct _TCP_HEADER{short m_sSourPort; // 源端口号16bitshort m_sDestPort; // 目的端口号16bitunsigned int m_uiSequNum; // 序列号32bitunsigned int m_uiAcknowledgeNum; // 确认号32bitshort m_sHeaderLenAndFlag; // 前4位:TCP头长度;中6位:保留;后6位:标志位short m_sWindowSize; // 窗口大小16bitshort m_sCheckSum; // 检验和16bitshort m_surgentPointer; // 紧急数据偏移量16bit}__attribute__((packed))TCP_HEADER, *PTCP_HEADER;

| 字段 | 分段 | 长度 | 含义 |
|---|---|---|---|
| m_sSourPort | 16 | 源端口号 | |
| m_sDestPort | 16 | 目标端口号 | |
| m_uiSequNum | 32 | seq 序列号 | |
| m_uiAcknowledgeNum | 32 | ack 确认号 | |
| m_sHeaderLenAndFlag | 前4位 | 4/16 | TCP头长度 |
| 中6位 | 6/16 | 保留,未使用 | |
| 后6位 | 6/16 | 控制位。 - URG:表示紧急指针字段有效 - ACK:表示接收数据序号字段有效,一般表示数据已被接收方接收 - PSH:表示通过flush操作发送的数据 - RST:强制断开连接,用于异常中断的情况 - SYN:发送方和接收方相互确认序号,表示连接操作 - FIN:表示断开连接 |
|
| m_sWindowSize | 16 | 接收方告知发送方窗口大小(即无需等待确认可一起发送的数据量) | |
| m_sCheckSum | 16 | 检验和16bit | |
| m_surgentPointer | 16 | 紧急数据偏移量16bit |
