返回顶部

收藏

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

标签:c++,网络

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. zhu329599788@126 发表 2017-09-07 01:28:42 C/C++网络编程总结与ZeroMQ
  2. rocrocket 发表 2014-03-13 14:08:01 Google C++编程规范 – 第三十二条 -《拷贝构造函数》
  3. vmunix 发表 2014-11-11 06:08:07 ssh端口转发
  4. 博主 发表 2014-11-23 13:54:00 Android中WebView拦截替换网络请求数据
  5. 博主 发表 2014-07-30 19:17:05 使用Qt作为C++的标准库
  6. 朱春来(Leslie Zhu) 发表 2014-10-11 16:00:00 orgp: 一个基于org-mode的命令行演示工具
  7. JarvisChu 发表 2014-06-04 04:56:04 在Visual Studio 2013 中使用C++单元测试
  8. viviworld 发表 2015-01-23 07:15:17 小米的抱负
  9. 陆晨 发表 2015-01-31 16:45:28 Netty源码注释翻译-Channel类
  10. 发表 2015-03-06 12:43:15 磁力链与种子转换
  11. 博主 发表 2012-04-12 03:29:00 mac在终端切换网络设置
  12. 洗碗的老彭 发表 2015-04-02 06:49:44 C++及C中的string、char指针及char数组

发表评论