>

BSD的TCP头部结构定义

- 编辑:正版管家婆马报彩图 -

BSD的TCP头部结构定义

/*
 *  @(#)tcp.h   8.1 (Berkeley) 6/10/93
 */

typedef u_long  tcp_seq;
/*
 * TCP header.
 * Per RFC 793, September, 1981.
 */
struct tcphdr {
    u_short th_sport;       /* source port */
    u_short th_dport;       /* destination port */
    tcp_seq th_seq;         /* sequence number */
    tcp_seq th_ack;         /* acknowledgement number */
#if BYTE_ORDER == LITTLE_ENDIAN 
    u_char  th_x2:4,        /* (unused) */
        th_off:4;       /* data offset */
#endif
#if BYTE_ORDER == BIG_ENDIAN 
    u_char  th_off:4,       /* data offset */
        th_x2:4;        /* (unused) */
#endif
    u_char  th_flags;
#define TH_FIN  0x01
#define TH_SYN  0x02
#define TH_RST  0x04
#define TH_PUSH 0x08
#define TH_ACK  0x10
#define TH_URG  0x20
    u_short th_win;         /* window */
    u_short th_sum;         /* checksum */
    u_short th_urp;         /* urgent pointer */
};

#define TCPOPT_EOL      0
#define TCPOPT_NOP      1
#define TCPOPT_MAXSEG       2
#define    TCPOLEN_MAXSEG       4
#define TCPOPT_WINDOW       3
#define    TCPOLEN_WINDOW       3
#define TCPOPT_SACK_PERMITTED   4       /* Experimental */
#define    TCPOLEN_SACK_PERMITTED   2
#define TCPOPT_SACK     5       /* Experimental */
#define TCPOPT_TIMESTAMP    8
#define    TCPOLEN_TIMESTAMP        10
#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)).
 */
#define TCP_MSS 512

#define TCP_MAXWIN  65535   /* largest value for (unscaled) window */

#define TCP_MAX_WINSHIFT    14  /* maximum window shift */

/*
 * User-settable options (used with setsockopt).
 */
#define TCP_NODELAY 0x01    /* don't delay send to coalesce packets */
#define TCP_MAXSEG  0x02    /* set maximum segment size */

//该片段来自于http://outofmemory.cn

本文由关于计算机发布,转载请注明来源:BSD的TCP头部结构定义