1 /* tcp.h 1.21 82/01/18 */ 2 3 typedef u_long tcp_seq; 4 /* 5 * TCP header. 6 * Per RFC 793, September, 1981. 7 */ 8 struct tcphdr { 9 u_short th_sport; /* source port */ 10 u_short th_dport; /* destination port */ 11 tcp_seq th_seq; /* sequence number */ 12 tcp_seq th_ack; /* acknowledgement number */ 13 u_char 14 th_x2:4, /* (unused) */ 15 th_off:4; /* data offset */ 16 u_char th_flags; 17 #define TH_FIN 0x01 18 #define TH_SYN 0x02 19 #define TH_RST 0x04 20 #define TH_PUSH 0x08 21 #define TH_ACK 0x10 22 #define TH_URG 0x20 23 u_short th_win; /* window */ 24 u_short th_sum; /* checksum */ 25 u_short th_urp; /* urgent pointer */ 26 }; 27 28 #define TCPOPT_EOL 0 29 #define TCPOPT_NOP 1 30 #define TCPOPT_MAXSEG 2 31 32 #ifdef TCPTRUEOOB 33 /* 34 * True out-of-band as value added option. 35 * Advertise willingness with TCPOPT_WILOOB in 36 * initial segment. If peer is willing, will receive 37 * such also. Then can send TCPOPT_OOBDATA whenever oob data 38 * exists; peer should ack with TCPOPT_OOBACK in segment. 39 */ 40 #define TCPOPT_WILLOOB 64 /* bytes: 64, 2 */ 41 #define TCPOPT_OOBDATA 65 /* bytes: 65, 8, seq#, data, markseq */ 42 #define TCPOPT_OOBACK 66 /* bytes: 66, 3, ack# */ 43 #endif 44