⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intro.4n

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 4N
字号:
.\" SCCSID: @(#)intro.4n	8.1	9/11/90.TH intro 4n.SH Namenetworking \- introduction to networking facilities.SH Syntax.nf.ft B#include <sys/socket.h>#include <net/route.h>#include <net/if.h>.fi R.fi.SH Description.NXR "intro(4) keyword".NXB "network facilities" "introduction"This section briefly describes the networking facilitiesavailable in the system.Documentation in this part of Section4 is broken up into three areas: protocol families, protocols,and ``network interfaces''.Entries describing a protocol family are marked ``4f'',while entries describing protocol use are marked ``4p''.Hardware support for network interfaces is foundamong the standard ``4'' entries..PPAll network protocols are associated with a specific protocol family..NXR "protocol family" "defined"A protocol family provides basic services to the protocolimplementation to allow it to function within a specificnetwork environment.  These services can include packet fragmentation and reassembly, routing, addressing, and basic transport.  A protocol family can support multiplemethods of addressing, though the current protocol implementationsdo not.  A protocol family normally comprises a numberof protocols, one per sockettype.  It is not required that a protocol family supportall socket types.  A protocol family can contain multipleprotocols supporting the same socket abstraction. .PPA protocol supports one of the socket abstractions detailedin.MS socket 2 ..NXR "protocol" "defined"A specific protocol can be accessed either by creating asocket of the appropriate type and protocol family orby requesting the protocol explicitly when creating a socket.Protocols normally accept only one type of address format,usually determined by the addressing structure inherent inthe design of the protocol family/network architecture.Certain semantics of the basic socket abstractions areprotocol-specific.  All protocols are expected to supportthe basic model for their particular socket type, but may,in addition, provide nonstandard facilities or extensionsto a mechanism.  For example, a protocol supporting theSOCK_STREAMabstraction may allow more than one byte of out-of-banddata to be transmitted per out-of-band message..PPA network interface is similar to a device interface.Network interfaces make up the lowest layer of thenetworking subsystem, interacting with the actual transporthardware.  .NXR "network interface" "defined"An interface may support one or more protocolfamilies or address formats.The SYNTAX section of each network interfaceentry gives a sample specificationof the related drivers for use in providinga system description to.MS config 8.The DIAGNOSTICS section lists messages that may appear on the consoleand in the system error log file.PN /usr/adm/syserr/syserr.<hostname> due to errors in device operation..SH Addressing.NXR "protocol family" "address format list"Associated with each protocol family is an addressformat.  The following address formats are used by the system:.EX 0#define AF_UNIX    1  /* local to host (pipes, portals) */#define AF_INET    2  /* internetwork: UDP, TCP, etc. */#define AF_IMPLINK 3  /* arpanet imp addresses */.EE.SH Routing.NXR "routing table" "defined"The network facilities provide limited packet routing.A simple set of data structures make up a ``routing table''used in selecting the appropriate network interface whentransmitting packets.  This table contains a single entry foreach route to a specific network or host.  A user process,the routing daemon, maintains this data base with the aidof two socket-specific .MS ioctl 2commands, SIOCADDRT and SIOCDELRT.  The commands allowthe addition and deletion of a single routingtable entry.  Routing table manipulations canonly be carried out by superuser..PPA routing table entry has the following form, as definedin <net/route.h>:.NXR(e) "routing table" "entry form".EX 0struct rtentry {        u_long  rt_hash;        struct  sockaddr rt_dst;        struct  sockaddr rt_gateway;        short   rt_flags;        short   rt_refcnt;        u_long  rt_use;        struct  rtentry *rt_next;        struct  ifnet *rt_ifp;};.EEwith.I rt_flagsdefined from,.EX 0#define  RTF_UP      0x1   /* route usable */#define  RTF_GATEWAY 0x2   /* destination is a gateway */#define  RTF_HOST    0x4   /* host entry (net otherwise) */.EERouting table entries come in three types: for a specifichost, for all hosts on a specific network, and for any destinationnot matched by entries of the first two types (a wildcard route). .NXR "routing table" "entry types"When the systemis booted, each network interface autoconfigured installs a routing table entry when it wishes to have packetssent through it.  Normally, the interface specifies the routethrough it is a ``direct'' connection to the destination hostor network.  If the route is direct, the transport layer ofa protocol family usually requests the packet be sent to thesame host specified in the packet.  Otherwise, the interfacemay be requested to address the packet to an entity differentfrom the eventual recipient (that is, the packet is forwarded)..PPRouting table entries installed by a user process cannot specifythe hash, reference count, use, or interface fields; these are filledin by the routing routines.  Ifa route is in use when it is deleted (rt_refcnt is nonzero),the resources associated with it are notreclaimed until further references to it are released. .PPThe routing code returns EEXIST ifrequested to duplicate an existing entry, ESRCH ifrequested to delete a nonexistent entry,or ENOBUFS if insufficient resources were availableto install a new route..PPUser processes read the routing tables through the .PN /dev/kmem device..PPThe.I rt_usefield contains the number of packets sent along the route.This value is used to select among multipleroutes to the same destination.  When multiple routes tothe same destination exist, the least used route is selected..PPA wildcard routing entry is specified with a zerodestination address value.  Wildcard routes are usedonly when the system fails to find a route to thedestination host and network.  The combination of wildcardroutes and routing redirects can provide an economicalmechanism for routing traffic..SH Interfaces.NXB "network interface"Each network interface in a system corresponds to apath through which messages can be sent and received.  A networkinterface usually has a hardware device associated with it, thoughcertain interfaces such as the loopback interface, .PN lo ,do not..PPAt boot time, each interface that has underlying hardware supportmakes itself known to the system during the autoconfigurationprocess.  Once the interface has acquired its address, it isexpected to install a routing table entry so that messages canbe routed through it.  Most interfaces require some part oftheir address specified with an SIOCSIFADDR ioctl before theyallow traffic to flow through them.  On interfaces wherethe network-link layer address mapping is static, only thenetwork number is taken from the ioctl; the remainder is foundin a hardware-specific manner.  On interfaces that providedynamic network-link layer address mapping facilities (for example,10Mb/s Ethernets), the entire address specified in the ioctlis used..PPThe following .PN ioctlcalls may be used to manipulate network interfaces.  Unlessspecified otherwise, the request takes an.I ifrequeststructure as its parameter.  This structure has the form:.NXR(e) "ifrequest structure" "form".EX 0struct  ifreq {  char    ifr_name[16];   /* name of interface (e.g. "ec0") */  union {         struct    sockaddr ifru_addr;         struct    sockaddr ifru_dstaddr;         short     ifru_flags;     } ifr_ifru;#define ifr_addr    ifr_ifru.ifru_addr    /* address */#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* end of p-to-p link */#define ifr_flags   ifr_ifru.ifru_flags   /* flags */};.EE.NXB "network interface" "ioctl calls for manipulating".TPSIOCSIFADDRSet interface address.  Following the addressassignment, the ``initialization'' routine forthe interface is called..TPSIOCGIFADDRGet interface address..TPSIOCSIFDSTADDRSet point-to-point address for interface..TPSIOCGIFDSTADDRGet point-to-point address for interface..TPSIOCSTATERead or set ownership and state of a device..TPSIOCSIFFLAGSSet interface flags field.  If the interface is marked down,any processes currently routing packets through the interfaceare notified..TPSIOCGIFFLAGSGet interface flags..TPSIOCGIFCONFGet interface configuration list.  This request takes an.I ifconfstructure (see SIOCSIFBRDADDR) as a value-result parameter.  The .I ifc_lenfield should be initially set to the size of the bufferpointed to by .IR ifc_buf .On return it will contain the length, in bytes, of theconfiguration list..TPSIOCGIFNETMASKGet network address mask..TPSIOCSIFNETMASKSet network address mask..TPSIOCGIFBRDADDRGet broadcast address associated with network interface..TPSIOCSIFBRDADDRSet broadcast address associated with network interface..NXE "network interface" "ioctl calls for manipulating".NXR(e) "network interface" "associated broadcast address".EX 0/* * Structure used in SIOCGIFCONF request. * Used to retrieve interface configuration * for machine (useful for programs which * must know all networks accessible). */struct  ifconf {        int     ifc_len;    /* size of associated buffer */        union {               caddr_t  ifcu_buf;               struct   ifreq *ifcu_req;        } ifc_ifcu;#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */#define ifc_req ifc_ifcu.ifcu_req /* array of structures */};.EEThe following is the structure used in an SIOCSTATE requestto set device state and ownership..EX 0struct ifstate { char    ifr_name[IFNAMSIZ]; /* if name, e.g. "dmv0" */ u_short if_family;          /* current family ownership */ u_short if_next_family;     /* next family ownership */ u_short if_mode:3,          /* mode of device */         if_ustate:1,        /* user requested state */         if_nomuxhdr:1,      /* if set, omit mux header */         if_dstate:4,        /* current state of device */         if_xferctl:1,       /* xfer control to nxt family */         if_rdstate:1,       /* read current state */         if_wrstate:1        /* set current state */         if_reserved:4;};.EE.SH See Alsosocket(2), ioctl(2), intro(4), config(8), routed(8c).NXE "network interface".NXE "network facilities" "introduction"

⌨️ 快捷键说明

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