`
liufei.fir
  • 浏览: 675847 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

BSD 的IP结构体定义(IPv4)

阅读更多
/*
 *	@(#)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 */
分享到:
评论

相关推荐

    BSD的TCP/IP协议栈

    BSD的TCP/IP协议栈BSD的TCP/IP协议栈BSD的TCP/IP协议栈BSD的TCP/IP协议栈

    BSD68,BSD100.rar

    深度学习、数字图像处理常用数据集BSD68,BSD100,分别为68张灰度图,大小不一;100张彩色图像,大小不一。

    4.4BSD-Lite源码

    TCP/IP详解卷2中涉及到的4.4BSD-Lite源码,详见该书1.13节的说明。

    带有ENC28J60 驱动的 BSD 带套接字API 的Microchip TCP/IP栈

    带有 BSD(伯克利套接字版)套接字 API 的 Microchip TCP/IP 栈为互联网TCP/IP 通信提供了套接字库。通用 的套接字编程接口最初是由位于伯克利的加州大学开发 的。许多流行的操作系统如 Microsoft ® Windows®、 ...

    BSD500数据集

    BSD500数据集包括图像分割和轮廓提取的Ground Truth,训练集和测试集各200张,验证集100张。

    4.4BSD-Lite

    4.4BSD-Lite TCP/IP协议栈部分源代码

    Python程序设计:ipwhois模块与pprint模块.pptx

    ipwhois模块是一个提供了获取和解析IPv4及IPv6地址的Whois信息。 ipwhos.lPWhoi是包装RDAP和Legacy' Whoi查找的基类。 Ipwhois模块 Ipwhois安装 Socket模块 网络通信 Socket:低层网络接口(每个BSD API)。 socket....

    BSD4.4设计手册.7z

    The Design and Implementation of the 4.4BSD Operating System Marshall Kirk McKusick Keith Bostic Michael J. Karels John S. Quarterman Copyright © 1996 Addison-Wesley Longman, Inc The second ...

    百顺达BSD保安对讲机写频

    百顺达BSD保安对讲机写频

    4.4BSD-Lite2源码

    4.4BSD-Lite2的部分源码,供学习TCP/IP详解卷2时与4.4BSD-Lite源码一起作为参考,源码的组织详见该书1.13节。

    图像处理BSD68测试集灰度图像

    图像处理BSD68测试集灰度图像。图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄...

    4.4BSD-lite.tar.gz

    15000行联网源代码 TCP/IP卷2详解

    4.4BSD-Lite2

    4.4BSD-Lite2/TCP_IP详解使用的是其中的栈

    bsd_type.h

    bsd_type.h

    bsd架设管理与应用

    bsd架设管理与应用

    BSD Operating System Hacks

    BSD hacks techniques

    bsd rc.d 介绍

    bsd 的 rc.d 介绍 pdf english

    4.4BSD-Lite源代码

    4.4BSD-Lite.tar.gz 学习TCP/IP协议的必备!学习TCP/IP协议的必备!

Global site tag (gtag.js) - Google Analytics