home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
network
/
netlib_1
/
!NetLib
/
netinet
/
h
/
tcp
< prev
next >
Wrap
Text File
|
1995-12-12
|
2KB
|
75 lines
#ifndef __netinet_tcp_h
#define __netinet_tcp_h
/* Freenet programmers interface - netinet/tcp.h - 23/5/95 */
/*
* Type of a TCP sequence number
*/
typedef u_long tcp_seq;
/*
* TCP header.
* Per RFC 793, September, 1981.
*/
/*
* Structure of a TCP header
*/
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 */
u_char th_x2 : 4; /* Unused */
u_char th_off : 4; /* Data offset */
u_char th_flags; /* 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; /* Advertised 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 */
/*
* Options for use with [gs]etsockopt at the TCP level. First word of
* comment is data type; bool is stored in int.
*/
#define TCP_NODELAY 0x01 /* Don't delay send to coalesce packets */
#define TCP_MAXSEG 0x02 /* Set the maximum segment size */
#endif