tcp.h,v

来自「TCP-IP红宝书源代码」· H,V 代码 · 共 93 行

H,V
93
字号
head	1.2;
access;
symbols;
locks
	dls:1.2; strict;
comment	@ * @;


1.2
date	97.09.21.19.26.19;	author dls;	state Dist;
branches;
next	1.1;

1.1
date	94.01.14.03.54.06;	author dls;	state v2e1;
branches;
next	;


desc
@@


1.2
log
@pre-3e code
@
text
@/* tcp.h - TCP_HLEN, SEQCMP */

typedef	long	tcpseq;

/*
 * SEQCMP - sequence space comparator
 *	This handles sequence space wrap-around. Overlow/Underflow makes
 * the result below correct ( -, 0, + ) for any a, b in the sequence
 * space. Results:	result	implies
 *			  - 	 a < b
 *			  0 	 a = b
 *			  + 	 a > b
 */
#define	SEQCMP(a, b)	((a) - (b))

/* tcp packet format */

struct tcp {
	unsigned short	tcp_sport;	/* source port			*/
	unsigned short	tcp_dport;	/* destination port		*/
		 tcpseq	tcp_seq;	/* sequence			*/
		 tcpseq	tcp_ack;	/* acknowledged sequence	*/
	unsigned char	tcp_offset;
	unsigned char	tcp_code;	/* control flags		*/
	unsigned short	tcp_window;	/* window advertisement		*/
	unsigned short	tcp_cksum;	/* check sum			*/
	unsigned short	tcp_urgptr;	/* urgent pointer		*/
	unsigned char	tcp_data[1];
};

/* TCP Control Bits */

#define	TCPF_URG	0x20	/* urgent pointer is valid		*/
#define	TCPF_ACK	0x10	/* acknowledgement field is valid	*/
#define	TCPF_PSH	0x08	/* this segment requests a push		*/
#define	TCPF_RST	0x04	/* reset the connection			*/
#define	TCPF_SYN	0x02	/* synchronize sequence numbers		*/
#define	TCPF_FIN	0x01	/* sender has reached end of its stream	*/

#define	TCPMHLEN	  20	/* minimum TCP header length		*/
#define	TCPHOFFSET	0x50	/* tcp_offset value for TCPMHLEN	*/
#define	TCP_HLEN(ptcp)		(((ptcp)->tcp_offset & 0xf0)>>2)

/* TCP Options */

#define	TPO_EOOL	0	/* end Of Option List			*/
#define	TPO_NOOP	1	/* no Operation				*/
#define	TPO_MSS		2	/* maximum Segment Size			*/
@


1.1
log
@Initial revision
@
text
@d23 2
a24 2
		 char	tcp_offset;
		 char	tcp_code;	/* control flags		*/
d28 1
a28 1
		 char	tcp_data[1];
@

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?