📄 in.h
字号:
/* * Copyright (c) 1982, 1986, 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)in.h 8.3 (Berkeley) 1/3/94 * $FreeBSD: src/sys/netinet/in.h,v 1.68 2002/04/24 01:26:11 mike Exp $ */#ifndef _NETINET_IN_H_#define _NETINET_IN_H_#include <sys/cdefs.h>#include <sys/config.h>#include <sys/_types.h>#include <machine/endian.h>/* Protocols common to RFC 1700, POSIX, and X/Open. */#define IPPROTO_IP 0 /* dummy for IP */#define IPPROTO_ICMP 1 /* control message protocol */#define IPPROTO_TCP 6 /* tcp */#define IPPROTO_UDP 17 /* user datagram protocol */#define INADDR_ANY (u_int32_t)0x00000000#define INADDR_BROADCAST (u_int32_t)0xffffffff /* must be masked */#ifndef _UINT8_T_DECLAREDtypedef __uint8_t uint8_t;#define _UINT8_T_DECLARED#endif#ifndef _UINT16_T_DECLAREDtypedef __uint16_t uint16_t;#define _UINT16_T_DECLARED#endif#ifndef _UINT32_T_DECLAREDtypedef __uint32_t uint32_t;#define _UINT32_T_DECLARED#endif#ifndef _IN_ADDR_T_DECLAREDtypedef uint32_t in_addr_t;#define _IN_ADDR_T_DECLARED#endif#ifndef _IN_PORT_T_DECLAREDtypedef uint16_t in_port_t;#define _IN_PORT_T_DECLARED#endiftypedef unsigned short sa_family_t;#ifdef _BSD_SA_FAMILY_T_typedef _BSD_SA_FAMILY_T_ sa_family_t;#undef _BSD_SA_FAMILY_T_ #endif/* Internet address (a structure for historical reasons). */#ifndef _STRUCT_IN_ADDR_DECLAREDstruct in_addr { in_addr_t s_addr;};#define _STRUCT_IN_ADDR_DECLARED#endif/* Socket address, internet style. */struct sockaddr_in { sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8];};#if __POSIX_VISIBLE >= 200112#define IPPROTO_RAW 255 /* raw IP packet */#define INET_ADDRSTRLEN 16#endif#define __BSD_VISIBLE 1#if __BSD_VISIBLE/* * Constants and structures defined by the internet system, * Per RFC 790, September 1981, and numerous additions. *//* * Protocols (RFC 1700) */#define IPPROTO_HOPOPTS 0 /* IP6 hop-by-hop options */#define IPPROTO_IGMP 2 /* group mgmt protocol */#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */#define IPPROTO_IPV4 4 /* IPv4 encapsulation */#define IPPROTO_IPIP IPPROTO_IPV4 /* for compatibility */#define IPPROTO_ST 7 /* Stream protocol II */#define IPPROTO_EGP 8 /* exterior gateway protocol */#define IPPROTO_PIGP 9 /* private interior gateway */#define IPPROTO_RCCMON 10 /* BBN RCC Monitoring */#define IPPROTO_NVPII 11 /* network voice protocol*/#define IPPROTO_PUP 12 /* pup */#define IPPROTO_ARGUS 13 /* Argus */#define IPPROTO_EMCON 14 /* EMCON */#define IPPROTO_XNET 15 /* Cross Net Debugger */#define IPPROTO_CHAOS 16 /* Chaos*/#define IPPROTO_MUX 18 /* Multiplexing */#define IPPROTO_MEAS 19 /* DCN Measurement Subsystems */#define IPPROTO_HMP 20 /* Host Monitoring */#define IPPROTO_PRM 21 /* Packet Radio Measurement */#define IPPROTO_IDP 22 /* xns idp */#define IPPROTO_TRUNK1 23 /* Trunk-1 */#define IPPROTO_TRUNK2 24 /* Trunk-2 */#define IPPROTO_LEAF1 25 /* Leaf-1 */#define IPPROTO_LEAF2 26 /* Leaf-2 */#define IPPROTO_RDP 27 /* Reliable Data */#define IPPROTO_IRTP 28 /* Reliable Transaction */#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */#define IPPROTO_BLT 30 /* Bulk Data Transfer */#define IPPROTO_NSP 31 /* Network Services */#define IPPROTO_INP 32 /* Merit Internodal */#define IPPROTO_SEP 33 /* Sequential Exchange */#define IPPROTO_3PC 34 /* Third Party Connect */#define IPPROTO_IDPR 35 /* InterDomain Policy Routing */#define IPPROTO_XTP 36 /* XTP */#define IPPROTO_DDP 37 /* Datagram Delivery */#define IPPROTO_CMTP 38 /* Control Message Transport */#define IPPROTO_TPXX 39 /* TP++ Transport */#define IPPROTO_IL 40 /* IL transport protocol */#define IPPROTO_IPV6 41 /* IP6 header */#define IPPROTO_SDRP 42 /* Source Demand Routing */#define IPPROTO_ROUTING 43 /* IP6 routing header */#define IPPROTO_FRAGMENT 44 /* IP6 fragmentation header */#define IPPROTO_IDRP 45 /* InterDomain Routing*/#define IPPROTO_RSVP 46 /* resource reservation */#define IPPROTO_GRE 47 /* General Routing Encap. */#define IPPROTO_MHRP 48 /* Mobile Host Routing */#define IPPROTO_BHA 49 /* BHA */#define IPPROTO_ESP 50 /* IP6 Encap Sec. Payload */#define IPPROTO_AH 51 /* IP6 Auth Header */#define IPPROTO_INLSP 52 /* Integ. Net Layer Security */#define IPPROTO_SWIPE 53 /* IP with encryption */#define IPPROTO_NHRP 54 /* Next Hop Resolution */#define IPPROTO_MOBILE 55 /* IP Mobility */#define IPPROTO_TLSP 56 /* Transport Layer Security */#define IPPROTO_SKIP 57 /* SKIP */#define IPPROTO_ICMPV6 58 /* ICMP6 */#define IPPROTO_NONE 59 /* IP6 no next header */#define IPPROTO_DSTOPTS 60 /* IP6 destination option */#define IPPROTO_AHIP 61 /* any host internal protocol */#define IPPROTO_CFTP 62 /* CFTP */#define IPPROTO_HELLO 63 /* "hello" routing protocol */#define IPPROTO_SATEXPAK 64 /* SATNET/Backroom EXPAK */#define IPPROTO_KRYPTOLAN 65 /* Kryptolan */#define IPPROTO_RVD 66 /* Remote Virtual Disk */#define IPPROTO_IPPC 67 /* Pluribus Packet Core */#define IPPROTO_ADFS 68 /* Any distributed FS */#define IPPROTO_SATMON 69 /* Satnet Monitoring */#define IPPROTO_VISA 70 /* VISA Protocol */#define IPPROTO_IPCV 71 /* Packet Core Utility */#define IPPROTO_CPNX 72 /* Comp. Prot. Net. Executive */#define IPPROTO_CPHB 73 /* Comp. Prot. HeartBeat */#define IPPROTO_WSN 74 /* Wang Span Network */#define IPPROTO_PVP 75 /* Packet Video Protocol */#define IPPROTO_BRSATMON 76 /* BackRoom SATNET Monitoring */#define IPPROTO_ND 77 /* Sun net disk proto (temp.) */#define IPPROTO_WBMON 78 /* WIDEBAND Monitoring */#define IPPROTO_WBEXPAK 79 /* WIDEBAND EXPAK */#define IPPROTO_EON 80 /* ISO cnlp */#define IPPROTO_VMTP 81 /* VMTP */#define IPPROTO_SVMTP 82 /* Secure VMTP */#define IPPROTO_VINES 83 /* Banyon VINES */#define IPPROTO_TTP 84 /* TTP */#define IPPROTO_IGP 85 /* NSFNET-IGP */#define IPPROTO_DGP 86 /* dissimilar gateway prot. */#define IPPROTO_TCF 87 /* TCF */#define IPPROTO_IGRP 88 /* Cisco/GXS IGRP */#define IPPROTO_OSPFIGP 89 /* OSPFIGP */#define IPPROTO_SRPC 90 /* Strite RPC protocol */#define IPPROTO_LARP 91 /* Locus Address Resoloution */#define IPPROTO_MTP 92 /* Multicast Transport */#define IPPROTO_AX25 93 /* AX.25 Frames */#define IPPROTO_IPEIP 94 /* IP encapsulated in IP */#define IPPROTO_MICP 95 /* Mobile Int.ing control */#define IPPROTO_SCCSP 96 /* Semaphore Comm. security */#define IPPROTO_ETHERIP 97 /* Ethernet IP encapsulation */#define IPPROTO_ENCAP 98 /* encapsulation header */#define IPPROTO_APES 99 /* any private encr. scheme */#define IPPROTO_GMTP 100 /* GMTP*/#define IPPROTO_IPCOMP 108 /* payload compression (IPComp) *//* 101-254: Partly Unassigned */#define IPPROTO_PIM 103 /* Protocol Independent Mcast */#define IPPROTO_PGM 113 /* PGM *//* 255: Reserved *//* BSD Private, local use, namespace incursion */#define IPPROTO_DIVERT 254 /* divert pseudo-protocol */#define IPPROTO_MAX 256/* last return value of *_input(), meaning "all job for this pkt is done". */#define IPPROTO_DONE 257/* * Local port number conventions: * * When a user does a bind(2) or connect(2) with a port number of zero, * a non-conflicting local port address is chosen. * The default range is IPPORT_HIFIRSTAUTO through * IPPORT_HILASTAUTO, although that is settable by sysctl. * * A user may set the IPPROTO_IP option IP_PORTRANGE to change this * default assignment range. * * The value IP_PORTRANGE_DEFAULT causes the default behavior. * * The value IP_PORTRANGE_HIGH changes the range of candidate port numbers * into the "high" range. These are reserved for client outbound connections * which do not want to be filtered by any firewalls. Note that by default * this is the same as IP_PORTRANGE_DEFAULT. * * The value IP_PORTRANGE_LOW changes the range to the "low" are * that is (by convention) restricted to privileged processes. This * convention is based on "vouchsafe" principles only. It is only secure * if you trust the remote host to restrict these ports. * * The default range of ports and the high range can be changed by * sysctl(3). (net.inet.ip.port{hi,low}{first,last}_auto) * * Changing those values has bad security implications if you are * using a a stateless firewall that is allowing packets outside of that * range in order to allow transparent outgoing connections. * * Such a firewall configuration will generally depend on the use of these * default values. If you change them, you may find your Security * Administrator looking for you with a heavy object. * * For a slightly more orthodox text view on this: * * ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers * * port numbers are divided into three ranges: * * 0 - 1023 Well Known Ports * 1024 - 49151 Registered Ports * 49152 - 65535 Dynamic and/or Private Ports * *//* * Ports < IPPORT_RESERVED are reserved for * privileged processes (e.g. root). (IP_PORTRANGE_LOW) */#define IPPORT_RESERVED 1024/* * Default local port range, used by both IP_PORTRANGE_DEFAULT * and IP_PORTRANGE_HIGH. */#define IPPORT_HIFIRSTAUTO 49152#define IPPORT_HILASTAUTO 65535
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -