TCP是一个通信协议,所谓协议就是通信各方约定好的通信规则。大家必须全部严格遵守这些规则,通信才能顺利完成。TCP的通信规则由一系列RFC来规范。首先是首部格式。
在Linux中对应的结构体为:
include/uapi/linux/tcp.h
24 struct tcphdr {
25 __be16 source;
26 __be16 dest;
27 __be32 seq;
28 __be32 ack_seq;
29 #if defined(__LITTLE_ENDIAN_BITFIELD)
30 __u16 res1:4,
31 doff:4,
32 fin:1,
33 syn:1,
34 rst:1,
35 psh:1,
36 ack:1,
37 urg:1,
38 ece:1,
39 cwr:1;
40 #elif defined(__BIG_ENDIAN_BITFIELD)
41 __u16 doff:4,
42 res1:4,
43 cwr:1,
44 ece:1,
45 urg:1,
46 ack:1,
47 psh:1,
48 rst:1,
49 syn:1,