BSD 的IP结构体定义(IPv4)
/* *@(#)tcp.h8.1 (Berkeley) 6/10/93 */typedefu_longtcp_seq;/* * TCP header. * Per RFC 793, September, 1981. */struct tcphdr {u_shortth_sport;/* source port */u_shortth_dport;/* destination port */tcp_seqth_seq;/* sequence number */tcp_seqth_ack;/* acknowledgement number */#if BYTE_ORDER == LITTLE_ENDIAN u_charth_x2:4,/* (unused) */th_off:4;/* data offset */#endif#if BYTE_ORDER == BIG_ENDIAN u_charth_off:4,/* data offset */th_x2:4;/* (unused) */#endifu_charth_flags;#defineTH_FIN0x01#defineTH_SYN0x02#defineTH_RST0x04#defineTH_PUSH0x08#defineTH_ACK0x10#defineTH_URG0x20u_shortth_win;/* window */u_shortth_sum;/* checksum */u_shortth_urp;/* urgent pointer */};#defineTCPOPT_EOL0#defineTCPOPT_NOP1#defineTCPOPT_MAXSEG2#define TCPOLEN_MAXSEG4#define TCPOPT_WINDOW3#define TCPOLEN_WINDOW3#define TCPOPT_SACK_PERMITTED4/* Experimental */#define TCPOLEN_SACK_PERMITTED2#define TCPOPT_SACK5/* Experimental */#define TCPOPT_TIMESTAMP8#define TCPOLEN_TIMESTAMP10#define TCPOLEN_TSTAMP_APPA(TCPOLEN_TIMESTAMP+2) /* appendix A */#define TCPOPT_TSTAMP_HDR\ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)/* * Default maximum segment size for TCP. * With an IP MSS of 576, this is 536, * but 512 is probably more convenient. * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)). */#defineTCP_MSS512#defineTCP_MAXWIN65535/* largest value for (unscaled) window */#define TCP_MAX_WINSHIFT14/* maximum window shift *//* * User-settable options (used with setsockopt). */#defineTCP_NODELAY0x01/* don't delay send to coalesce packets */#defineTCP_MAXSEG0x02/* set maximum segment size */