RFC1034(中文) 域名-概念和设施

合集下载

DNS服务器的注册表的配置

DNS服务器的注册表的配置

警告注册表编辑器使用不当您可能会导致,可能需要重新安装操作系统的严重问题。

Microsoft 不能保证您可以解决由于注册表编辑器使用不当而引起的问题。

使用注册表编辑器需要您自担风险。

回到顶端配置工具可以使用以下三个工具来配置 DNS 注册表项:* 注册表编辑器* Dnscmd.exe* DNS 控制台注册表编辑器只能通过使用注册表编辑器修改某些 DNS 注册表项。

要创建 DNS 注册表项,请按照下列步骤操作:1. 单击开始,单击运行,键入 regedit ,然后单击确定。

2. 查找,并单击以下子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters3. 在编辑菜单上指向新建,然后单击项的数据类型。

例如,单击 DWORD 。

4. 键入该 DNS 服务器条目的名称,并按 Enter 键。

5. 右键单击该新项,单击修改,键入要在该数值数据框中的值然后单击确定。

6. 退出注册表编辑器。

7. 重新启动 DNS 服务器,这些更改才会生效。

Dnscmd.exe可以使用 Dnscmd.exe 命令行工具执行的大部分可以通过使用 DNS 控制台执行的任务。

是例如您可以使用 Dnscmd.exe 命令行工具来执行以下任务:* 创建、删除,并查看的区域和记录* 重置服务器和区域属性* 执行以下的日常管理操作:o 更新,请重新加载,并刷新该区域o 文件或 Active Directory 目录服务写回区域o 暂停和继续该区域o 清除缓存o 启动和停止 DNS 服务o 查看统计信息您还可以使用 Dnscmd.exe 命令行工具编写用于远程管理的脚本。

有关 Dnscmd.exe,请参阅 Windows 2000 支持工具帮助。

有关如何安装和使用 Windows 2000 支持工具以及有关支持工具帮助的更多信息,请参阅 Windows 2000 Server CD-ROM 上的第 Support\Tools 文件夹中的,Sreadme.doc 文件。

rfc是什么意思

rfc是什么意思

博学笃行自强不息
rfc是什么意思
RFC (Request for Comments) 是一种用于制定和定义互联网标准的文件。

在计算机科学和信息技术领域,RFC被用作一种文档类型来描述互联网协议、方法和技术。

每个RFC都是由个人、团体或组织提交,并由互联网工程任务组(IETF)进行审核、讨论和批准。

RFC最早是由斯蒂夫·克罗克(Steve Crocker)提出的概念,用于共享与ARPANET(互联网的前身)相关的思想和想法。

起初,RFC被用于叙述和记录与ARPANET相关的协议和实现细节,但随着互联网的发展,其应用范围已经延伸至各个方面,如网络架构、安全机制、路由协议、编码规范等。

RFC是一个开放的、持续发展的过程,任何人都可以提交RFC。

然后,所有的RFC都会进入一个公开的文档库,供全球的网络专家、研究人员和从业者参考和使用。

RFC的目的是促进全球互联网的互操作性和稳定性。

每个RFC都具有独特的数字标识符,用于在文档库中进行标示和索引。

RFC的命名规则是\
1。

dns 中文 rfc 1034 中文

dns 中文 rfc 1034 中文
UCI MIT | UDEL YALE
| ISI
| |
+---+---+ |
| | |
LCS ACHILLES +--+-----+-----+--------+
| | | | | |
XX A C VAXA VENERA Mockapetris
在此例中,根域有三个子域:MIL,EDU和ARPA,而域有一个子域XX.LCS.MI
1.4. DNS组成
DNS由下面三个部分组成:
域名空间和资源记录,域名空间是一个树状结构,资源记录是与名字相关的一些数据。
从概念上说,每个结点和域名空间树的叶子结点都有一定的信息,而查询是要查询出一
些与之相关的特定信息。
名字服务器是服务器程序,它保留域名树结构和相应的信息,它可以缓冲各种数据,保
存域名树中的任何部分,但是通常它保存域名空间的一个子集,如果需要查询其它信息
<domain> ::= <subdomain> | " "
<subdomain> ::= <label> | <subdomain> "." <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
用。
用户需要输入域名时,每个节点的标记长度不管多长,总要以点分隔。绝对域名的最后

rfc 1034和rfc 1035等域规则

rfc 1034和rfc 1035等域规则

rfc 1034和rfc 1035等域规则RFC 1034和RFC 1035等域名规范域名系统(Domain Name System,DNS)是互联网的核心基础设施之一,它负责将域名转化为IP地址,实现互联网上的域名解析功能。

而RFC 1034和RFC 1035是两篇重要的网际网络标准文档,规定了DNS系统中域名的命名规则和解析过程。

本文将对RFC 1034和RFC 1035进行详细的介绍和解读。

1. RFC 1034:域名概念与组织RFC 1034,全名为《Domain Names - Concepts and Facilities》(域名 - 概念和功能)是于1987年11月发布的一篇RFC文档。

它从概念和组织的角度,详细说明了域名系统的基本原理与设计思路。

RFC 1034首先定义了域名的含义,将域名看作是一个有向标识符,用于标识互联网上的各个实体,如主机、路由器等。

它还规定了域名由一系列的标签(labels)组成,标签之间用点号进行分隔。

RFC 1034进一步讨论了域名的层次结构,将域名系统组织成一个树形结构,每个节点都对应一个域名,树根即为根域名(root domain),下面的每个子域名都通过标签与父域名相连。

这种层次结构使得域名可以按照特定的规则进行解析。

此外,RFC 1034还介绍了域名系统中的几个重要概念,包括域名服务器(Name Server)、区域(Zone)和资源记录(Resource Record)。

域名服务器负责提供域名解析服务,区域与特定的域名相关联,而资源记录则存储了与域名相关的各种信息,如IP地址记录、邮件服务器记录等。

2. RFC 1035:域名解析与消息格式RFC 1035,全名为《Domain Names - Implementation and Specification》(域名 - 实现和规范)是于1987年11月发布的一篇RFC文档。

它对域名的解析过程和消息格式进行了详细描述,为实现DNS系统提供了具体的技术规范。

下一代DNS系统Foundation介绍

下一代DNS系统Foundation介绍

下一代DNS系统Foundation介绍(Nominum)DNS(Domain Name System)是Internet中一个非常重要的部分,在TCP/IP 的世界中,都是以IP 地址识别主机,虽然这种表示方法适合路由器等来使用,但是并不适合人们去记忆,因此,一般来说,网络中的主机都被指定了一个独一无二的名称,也就是域名(Domain Name)。

然而这又带来了另外一个问题,这些名称不易为路由器等处理,也不含可找到主机的位置信息。

所以需要一种系统在IP地址和机器的名称间建立一种对应关系,DNS系统也就应运而生了。

当然在早期的时候,并没有很复杂,只是在一台中央授权机器上建立名称与IP地址的对应关系。

到了80年代中期,DNS才真正发展起来,目前在全球所采用的DNS大多都是由ISC (Internet Software Consortium)发布的BIND(Berkeley Internet Name Domain)。

但是由于先天性的原因,BIND系统有着很多无法克服的问题。

全球领先的DNS方案提供商Nominum 在其经验和倾听了很多用户意见的基础上,推出了下一代的DNS系统Foundation,按功能划分,该系统包括CNS(Caching Name Server)、ANS(Authoritative Name Server)和FMC (Foundation Management Center),目前已经被世界众多知名电信公司和企业所采用。

一 BIND的问题作为一款公开代码的DNS服务程序,BIND在现行的DNS的系统中,得到了的非常广泛的使用。

Nominum公司在2000年九月向ISC发布了BIND 9.0,到2003中期,大约三分之一的主要英特网连接的DNS 服务器都运行BIND 9。

BIND 9 被事实证明的确比BIND 8更好,包括提高了安全性、可维护性、以及向对BIND 8的兼容性等。

但是随着网络迅速的发展,人们不断的发现BIND已经不适应在如今复杂的网络环境下提供DNS服务了。

RFC1035(中文)域名-实现及标准

RFC1035(中文)域名-实现及标准
注意,尽管 在域名中 大小写字 母是允许 的,但是 对大小写 不做区别 。即,两个名称 有相 同的拼写,但有不同的大小写,被看作是相同的。
标签必须遵守 ARPANET 主机名称规则。它们必须以字母开始,以字母或数字结束, 内部字符仅可以是字母、数字和连字符号。对长度也有某些限制。标签必须是 63 个字符或 更少。
P. Mockapetris ISI
November 1987
3-4-1 A RDATA格式 3-4-2 WKS RDATA格式 3-5 IN-ADDR.ARPA域 3-6 定义新的类型、类和专用名称空间 第4章 消息 4-1 格式 4-1-1 首部部分格式 4-1-2 问题部分格式 4-1-3 资源记录格式 4-1-4 消息压缩 4-2 传送 4-2-1 UDP应用 4-2-2 TCP应用 第5章 主文件 5-1 格式 5-2 定义区域的主文件的应用 5-3 主文件举例 第6章 名称服务器实现 6-1 架构 6-1-1 控制 6-1-2 数据库 6-1-3 时间 6-2 标准查询处理 6-3 区域更新和重新加载处理 6-4 反向查询(可选) 6-4-1 反向查询和响应的内容 6-4-2 反向查询和响应举例 6-4-3 反向查询处理 6-5 完整查询和响应 第7章 解析器实现 7-1 将用户请求转换为查询 7-2 发送查询 7-3 处理响应 7-4 使用缓存器 第8章 邮件支持 8-1 邮件交换绑定 8-2 邮箱绑定(试验) 第9章 参考文献和参考书目 原文索引
这个功能性结构隔离了用户接口问题、失败恢复问题和在解析器中分发的问题,隔离了 名称服务器中数据库更新问题和刷新问题。
2-2 一般配置 主机能够以多种方法分享域名服务器,取决于或者主机运行检索来自域系统的信息的程
序、运行检索来自名称服务器(这些服务器回答来自其他主机的查询)信息的程序,或者主机 运行两种程序功能的各种组合。最简单和或许也是最典型的配置如图 1 所示。

DNS技术资料

DNS技术资料

DNS技术资料InternetDNS域名系统DNS系统作为Internet的重要领域,起源于美国的ARPANET-host.txt系统,当时ARPANET拥有80~100台机器,由一个组计表文件完成该系统机器名字与地址的对应工作。

该系统由Stanford数字网络中心通过SRI-NIC集中管理对host文件进行维护,每星期对文件更新1~2次。

ARPANET通过E-mail把它们要求变更的主机文件发给SRI-NIC,经更新后,各个网点用FTP把文件取出去。

通过该种手段保持ARPANET主机表的一致性。

伴随网络的迅速增长,该系统出现了SRI-NIC的网络流量和主机负载不堪重负、主机名和网络地址分配控权不能统一等问题,因此迫切需要有一个新的体制来取代单机独裁体制。

能够超越单机独裁体制的是分散管理体制,于是1984年提出了RFC822-823,由它们管理所有地址的转换,由各个本地的网络管理员定名,并在全网中查询。

有关的RFC建议和组织RFC822-823是早期应用于DNS系统的工具,现在它们已被RFC1034和RFC1035代替。

RFC1034规定了Domainname(域名)的概念和它的一些使用中的基本原理,RFC1035规定了DNS 的运行、操作机制原理和一些说明。

RFC1591讲解了域名系统的树形结构。

DNS(域名系统)在运行中需要进行委派,这项工作由Internet协会的授权委员会完成,并管理Internet的地址和域名的登记。

其下属有三个机构,分别管理全球的不同地区的域名和地址的分配。

它们是欧洲信息网络中心,负责管理欧洲的域名分配;InterNIC,负责管理南北美和非亚太所属区的域名;亚太地区的APNIC,管理该地区域名和地址的分配。

APNIC 分配地址有两种方式,对于有国家网络中心的四个国家和地区(日本、韩国、台湾地区、泰国),APNIC向这些国家(或地区)分配域名,该国(或地区)内的机构向国家和当局申请和分配域名;对于没有成立国家网络中心的机构,如中国,APNIC成立了ISP机构负责该项工作,由APNIC把地址分给ISP,由大的ISP分给小的ISP,层层划分域名。

rfc 1034和rfc 1035等域规则

rfc 1034和rfc 1035等域规则

rfc 1034和rfc 1035等域规则RFC 1034和RFC 1035是关于域名系统(Domain Name System,DNS)的两个重要标准。

本文将分别介绍RFC 1034和RFC 1035,并深入讨论它们对DNS的影响和作用。

RFC(Request for Comments)是互联网工程任务组(The Internet Engineering Task Force,IETF)制定的技术和协议标准。

RFC 1034和RFC 1035分别于1987年和1988年发布,在DNS的发展中起到了关键作用。

首先,让我们来了解RFC 1034的内容和意义。

RFC 1034《关于域名的规范化和编写》是DNS的基础规则,定义了域名的结构和命名约定。

它提供了一种分层命名体系,允许全球范围内的域名唯一识别,并定义了如何解析域名以获取IP地址的过程。

RFC 1034还规定了DNS 服务器的层次结构和交互规则,确保了域名解析的高效性和可靠性。

从功能上来看,RFC 1034定义了以下重要组件和概念:1.域名结构:RFC 1034规定了域名由多个标签组成,标签之间通过句点分隔。

该标准还描述了各个标签的命名规则,包括长度限制、允许的字符范围等。

2.域名解析:RFC 1034定义了域名解析的过程,包括递归解析和迭代解析。

它确定了客户端和服务器之间的通信方式,以及如何在多个DNS服务器之间转发查询请求。

3.主机和域:RFC 1034将互联网上的计算机系统划分为主机和域的概念。

主机是运行DNS客户端的实体,域是一组相关主机的集合。

通过域的层次结构,可以使域名具有可读性和易用性。

4. DNS服务器的层次结构:RFC 1034描述了域名服务器的分布和组织方式。

它引入了顶级域名服务器(Top-Level Domain Servers)和权威域名服务器(Authoritative Domain Servers)的概念,确保了域名解析的高效性和可扩展性。

常用网络术语缩写表

常用网络术语缩写表
PoP(Post Office Protocol)邮局协议,pop3,邮局协议第三版
PSTN(Public Switched Telephone Network)公共交换电话网络,一种常用旧式电话系统
Q----------------------------------------------------------------Q
SCTP(STREAM CONTROL TRANSMISSION PROTOCOL)流控制传输协议,RFC 4960详细说明了SCTP,介绍性的文档是RFC 3286
SNTP(Simple Network Time Protocol)简单网络时间协议
SSH(Secure shell)SSH 为建立在应用层和传输层基础上的安全协议
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。
QoS(Quality of service)服务质量,服务质量保证
R----------------------------------------------------------------R
RIP(RoutinginformationProtocol)路由信息协议,rfc 2453,1058,1388,2080
E----------------------------------------------------------------E
EGP(Exterior Gateway Protocol)外部网关协议,是一种在自治系统的相邻两个网关主机间交换路由信息的协议。
ECMP(Equal-CostMultipathRouting RFC 2991)等价多路径,存在多条不同链路到达同一目的地址的网络环境中,如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定时间,而等值多路径路由协议可以在该网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。

rfc相关设置及使用

rfc相关设置及使用

rfc相关设置及使用RFC(Request for Comments)是一种用于定义互联网协议、标准和相关问题的文档。

RFC的格式由互联网工程任务组(IETF)统一规定,它们记录了网络技术的发展和演进过程。

在本文中,我们将介绍RFC相关的设置和使用。

1. 了解RFC的作用和历史:RFC是由IETF组织制定的一种标准化文档,它记录了互联网协议的设计、开发和演化过程。

RFC起源于20世纪60年代的ARPANET,是一种社区驱动的文档,通过共享和讨论来推动互联网技术的发展。

RFC文档旨在提供指南、建议和最佳实践,帮助网络技术人员解决问题。

2. 寻找和阅读RFC文档:RFC文档可以在互联网上免费获取,IETF的官方网站和其他资源库都有存档。

这些文档按照顺序编号,并且以RFC开头,比如RFC 791定义了IPv4协议。

通过搜索引擎或在IETF网站上使用关键词搜索,可以找到特定主题的RFC文档。

阅读RFC文档时,应该注意文档的状态,有一些可能已经被更新或废弃。

3. 使用RFC文档:RFC文档在网络技术的发展过程中起着重要的指导作用。

它们提供了协议规范、算法实现、安全性和隐私等方面的建议。

网络管理员、网络工程师和开发人员可以使用RFC文档来了解和理解特定协议或标准的设计原理和要求。

此外,RFC文档还常用于进行互联网协议的实现、编程和配置。

4. 参与RFC的制定过程:RFC并不是静止的文件,而是一个持续演进的过程。

任何人都可以参与到RFC的制定过程中。

要参与RFC的制定,可以加入IETF并参与相关的工作组或邮件列表。

通过这种方式,个人可以提出改进建议,参与讨论和标准化的制定。

5. 遵循RFC的指导原则:在网络技术领域,遵循RFC的指导原则是至关重要的。

这些指导原则包括设计原则、协议分层、安全性和互操作性等要求。

遵循RFC的指导原则可以确保网络协议的正确性、稳定性和可靠性,同时也可以促进网络技术的发展和创新。

总结起来,RFC在互联网技术领域起着重要的作用,它们记录了互联网协议的发展历程和指导原则。

rfc文档的类别

rfc文档的类别

rfc文档的类别1. RFC 791 - 网际协议网际协议(Internet Protocol,简称IP)是一种在计算机网络中广泛使用的网络协议,用于将数据包从源地址传递到目标地址。

IP协议定义了数据包的格式、路由选择和错误处理等方面的规范。

RFC 791是一篇关于IP协议的RFC文档。

在RFC 791中,首先介绍了IP协议的基本概念和目标。

IP协议的主要目标是提供一种无连接、尽力而为的数据传输服务,它将数据包分割成一系列的片段,并通过网络逐个传输。

IP协议还定义了数据包的格式,包括首部和数据部分。

首部包含了源地址、目标地址、生存时间等信息,用于路由选择和错误处理。

数据部分则是传输的实际数据。

RFC 791还详细描述了IP协议的工作流程。

当发送方要发送数据时,它会将数据分割成多个数据包,并为每个数据包添加IP首部。

然后,发送方将数据包发送到网络中的下一跳路由器。

路由器收到数据包后,根据目标地址选择下一跳路由器,并将数据包转发给它。

这样,数据包就会通过一系列的路由器传递,最终到达目标地址。

此外,RFC 791还介绍了IP协议的一些特性和机制。

例如,IP 协议支持不同的服务质量,可以根据应用的需求选择不同的服务类型。

IP协议还支持分片和重组机制,当数据包太大无法一次传输时,可以将其分割成多个片段,并在目标地址处重新组装。

此外,IP协议还定义了一些错误处理机制,如时间超时、差错报告等。

总体而言,RFC 791对IP协议进行了全面而详细的描述,明确了其基本概念、工作流程和特性。

它为网络中的数据传输提供了重要的基础,并成为了互联网的核心协议之一。

2. RFC 793 - 传输控制协议传输控制协议(Transmission Control Protocol,简称TCP)是一种面向连接的、可靠的传输协议,用于在计算机网络中传输数据。

RFC 793是一篇关于TCP协议的RFC文档。

在RFC 793中,首先介绍了TCP协议的基本概念和目标。

RFC1034(中文)_域名-概念和设施

RFC1034(中文)_域名-概念和设施
rfcs882883973november1987域名概念和设施目录序言21域名的历史22dns设计目标23有关应用的假设24dns组成部分域名空间和资源记录31名称空间规范和术语32有关应用的管理准则33有关应用的技术准则34名称空间举例35优先选用的名称句法36资源记录361rrs的文本表示362别名和正则名称37查询371标准查询372反向查询可选38状态查询试验中39完整查询放弃名称服务器41序言42怎样将数据库划分成区域421技术上的考虑422管理上的考虑43名称服务器内部431查询和响应432算法433通配符434否定响应缓存可选435区域维护和传送解析器51序言52客户端解析器接口521典型功能522别名523临时故障53解析器内部531末梢解析器532资源533算法场景61cisiedu名称服务器62标准查询举例621qnamesrinicarpaqtypea622qnamesrinicarpaqtype623qnamesrinicarpaqtypemx624qnamesrinicarpaqtypens625qnamesirnicarpaqtypea626qnamebrlmilqtypea627qnameuscisicarpaqtypea628qnameuscisicarpaqtypecname63解析举例631解析isiedu
域系统假设,所有数据起源于使用域系统的主机散发的主文件。这些主文件被本地系统 管理员更新。主文件是文本文件,本地名称服务器读这些主文件,因此经名称服务器后,可 被该域系统的用户得到。用户程序通过称为解析器的标准程序访问名称服务器。
主文件采用标准格式因而它们能够在主机间交换(通过FTP、邮件、或某种其他机制); 当组织想要域,但是不希望支持名称服务器时,这个特点是有用的。组织能够维护本地使用 文本编辑器的主文件,将它们传送给运行名称服务器的外地主机,接着与那个名称服务器的 系统管理者协商获得加载的文件。

rfc相关设置及使用

rfc相关设置及使用

rfc相关设置及使用摘要:一、RFC简介1.RFC的含义2.RFC的作用二、RFC相关设置1.RFC文件的存放位置2.RFC文件的命名规则3.RFC文件的权限设置三、RFC的使用方法1.RFC文件的查看2.RFC文件的编辑3.RFC文件的导入导出四、RFC的高级应用1.RFC模板的使用2.RFC文件的版本控制3.RFC与其他软件的协同工作正文:RFC(Request for Comments)是一种广泛应用于计算机领域的文档格式,它主要用于记录和共享各种计算机网络协议和技术规范。

作为一个重要的知识库,RFC对于网络工程师、程序员等IT从业者来说具有很高的参考价值。

本文将为您详细介绍RFC的相关设置及使用方法。

首先,我们需要了解RFC的基本概念。

RFC(Request for Comments)意为“请求评论”,是一种用于记录和共享计算机网络协议和技术规范的文档格式。

它起源于20世纪60年代的美国,如今已成为互联网领域最重要的知识库之一。

RFC文件通常由网络工程师、程序员等IT从业者编写,并经过专家评审和公开讨论,以确保其内容的准确性和可靠性。

接下来,我们来了解RFC相关设置。

RFC文件的存放位置通常在系统的“/etc/rfc”目录下。

文件的命名规则一般采用“RFC”加数字的形式,如“RFC1925”。

此外,文件的权限设置也很重要,一般来说,RFC文件应具有可读、可写和可执行的权限,以便于用户查看、编辑和执行。

在了解RFC的相关设置后,我们来学习RFC的使用方法。

首先,可以通过命令行或图形界面查看RFC文件的内容。

编辑RFC文件时,可以使用文本编辑器或专门的RFC编辑工具。

此外,RFC文件还可以导入导出,方便与其他软件协同工作。

在掌握RFC的基本使用方法后,我们可以进一步探索RFC的高级应用。

RFC模板可以帮助用户快速创建和编辑RFC文件。

此外,RFC文件还支持版本控制,可以方便地追踪文件的变更历史。

网络协议与编号

网络协议与编号

⽹络协议与编号⾸先我们看下常⽤的⽹络协议编号对应的协议(rfc可以说就是对应的osi七层模型)rfc标准通常由 RFC 发布,但不是所有的 RFC 都被最终指定为标准。

RFC 是由个⼈编写的,这些⼈⾃愿编写某⼀新协议或规范的提议草案,并提交给“Internet ⼯程任务组 (IETE)”和其他⼯作组。

提交的草案先由技术专家、任务组或 RFC 的编辑进⾏审阅,然后给出⼀个评估状态。

如果草案通过初审阶段,则传播到更⼤的 Internet 社会团体,进⼀步评论和审阅⼀段时间,然后指派⼀个 RFC 编号。

这个 RFC 编号保持不变。

所以通过编号也可以对应找到协议.⽹络协议编号协议简写协议名称1 ICMP Internet Control Message [RFC792]2 IGMP Internet Group Management [RFC1112]3 GGP Gateway-to-Gateway [RFC823]4 IP IP in IP (encapsulation) [RFC2003]5 ST Stream [RFC1190,RFC1819]6 TCP Transmission Control [RFC793]7 CBT CBT [Ballardie]8 EGP Exterior Gateway Protocol [RFC888,DLM1]9 IGP any private interior gateway [IANA](used by Cisco for their IGRP)10 BBN-RCC-MON BBN RCC Monitoring [SGC]11 NVP-II Network Voice Protocol [RFC741,SC3]12 PUP PUP [PUP,XEROX]13 ARGUS ARGUS [RWS4]14 EMCON EMCON [BN7]15 XNET Cross Net Debugger [IEN158,JFH2]16 CHAOS Chaos [NC3]17 UDP User Datagram [RFC768,JBP]18 MUX Multiplexing [IEN90,JBP]19 DCN-MEAS DCN Measurement Subsystems [DLM1]20 HMP Host Monitoring [RFC869,RH6]21 PRM Packet Radio Measurement [ZSU]22 XNS-IDP XEROX NS IDP [ETHERNET,XEROX]23 TRUNK-1 Trunk-1 [BWB6]24 TRUNK-2 Trunk-2 [BWB6]25 LEAF-1 Leaf-1 [BWB6]26 LEAF-2 Leaf-2 [BWB6]27 RDP Reliable Data Protocol [RFC908,RH6]28 IRTP Internet Reliable Transaction [RFC938,TXM]29 ISO-TP4 ISO Transport Protocol Class 4 [RFC905,RC77]30 NETBLT Bulk Data Transfer Protocol [RFC969,DDC1]31 MFE-NSP MFE Network Services Protocol [MFENET,BCH2]32 MERIT-INP MERIT Internodal Protocol [HWB]33 DCCP Datagram Congestion Control Protocol [RFC-ietf-dccp-spec-11.txt]34 3PC Third Party Connect Protocol [SAF3]35 IDPR Inter-Domain Policy Routing Protocol [MXS1]36 XTP XTP [GXC]37 DDP Datagram Delivery Protocol [WXC]38 IDPR-CMTP IDPR Control Message Transport Proto [MXS1]39 TP++ TP++ Transport Protocol [DXF]40 IL IL Transport Protocol [Presotto]41 IPv6 Ipv6 [Deering]42 SDRP Source Demand Routing Protocol [DXE1]43 IPv6-Route Routing Header for IPv6 [Deering]44 IPv6-Frag Fragment Header for IPv6 [Deering]45 IDRP Inter-Domain Routing Protocol [Sue Hares]46 RSVP Reservation Protocol [Bob Braden]47 GRE General Routing Encapsulation [Tony Li]48 MHRP Mobile Host Routing Protocol[David Johnson]49 BNA BNA [Gary Salamon]50 ESP Encap Security Payload [RFC2406]51 AH Authentication Header [RFC2402]52 I-NLSP Integrated Net Layer Security TUBA [GLENN]53 SWIPE IP with Encryption [JI6]54 NARP NBMA Address Resolution Protocol [RFC1735]55 MOBILE IP Mobility [Perkins]56 TLSP Transport Layer Security Protocol [Oberg]using Kryptonet key management57 SKIP SKIP [Markson]58 IPv6-ICMP ICMP for IPv6 [RFC1883]59 IPv6-NoNxt No Next Header for IPv6 [RFC1883]60 IPv6-Opts Destination Options for IPv6 [RFC1883]61 any host internal protocol [IANA]62 CFTP CFTP [CFTP,HCF2]63 any local network [IANA]64 SAT-EXPAK SATNET and Backroom EXPAK [SHB]65 KRYPTOLAN Kryptolan [PXL1]66 RVD MIT Remote Virtual Disk Protocol [MBG]67 IPPC Internet Pluribus Packet Core [SHB]68 any distributed file system [IANA]69 SAT-MON SATNET Monitoring [SHB]70 VISA VISA Protocol [GXT1]71 IPCV Internet Packet Core Utility [SHB]72 CPNX Computer Protocol Network Executive [DXM2]73 CPHB Computer Protocol Heart Beat [DXM2]74 WSN Wang Span Network [VXD]75 PVP Packet Video Protocol [SC3]76 BR-SAT-MON Backroom SATNET Monitoring [SHB]77 SUN-ND SUN ND PROTOCOL-Temporary [WM3]78 WB-MON WIDEBAND Monitoring [SHB]79 WB-EXPAK WIDEBAND EXPAK [SHB]80 ISO-IP ISO Internet Protocol [MTR]81 VMTP VMTP [DRC3]82 SECURE-VMTP SECURE-VMTP [DRC3]83 VINES VINES [BXH]84 TTP TTP [JXS]85 NSFNET-IGP NSFNET-IGP [HWB]86 DGP Dissimilar Gateway Protocol [DGP,ML109]87 TCF TCF [GAL5]88 EIGRP EIGRP [CISCO,GXS]89 OSPF OSPFIGP [RFC1583,JTM4]90 Sprite-RPC Sprite RPC Protocol [SPRITE,BXW]91 LARP Locus Address Resolution Protocol [BXH]92 MTP Multicast Transport Protocol [SXA]93 AX.25 AX.25 Frames [BK29]94 IPIP IP-within-IP Encapsulation Protocol [JI6]95 MICP Mobile Internetworking Control Pro. [JI6]96 SCC-SP Semaphore Communications Sec. Pro. [HXH]97 ETHERIP Ethernet-within-IP Encapsulation [RFC3378]98 ENCAP Encapsulation Header [RFC1241,RXB3]99 any private encryption scheme [IANA]100 GMTP GMTP [RXB5]101 IFMP Ipsilon Flow Management Protocol [Hinden]102 PNNI PNNI over IP [Callon]103 PIM Protocol Independent Multicast [Farinacci]104 ARIS ARIS [Feldman]105 SCPS SCPS [Durst]106 QNX QNX [Hunter]107 A/N Active Networks [Braden]108 IPComp IP Payload Compression Protocol [RFC2393] 109 SNP Sitara Networks Protocol [Sridhar]110 Compaq-Peer Compaq Peer Protocol [Volpe]111 IPX-in-IP IPX in IP [Lee]112 VRRP Virtual Router Redundancy Protocol [RFC3768] 113 PGM PGM Reliable Transport Protocol [Speakman]114 any 0-hop protocol [IANA]115 L2TP Layer Two Tunneling Protocol [Aboba]116 DDX D-II Data Exchange (DDX) [Worley]117 IATP Interactive Agent Transfer Protocol [Murphy]118 STP Schedule Transfer Protocol [JMP]119 SRP SpectraLink Radio Protocol [Hamilton]120 UTI UTI [Lothberg]121 SMP Simple Message Protocol [Ekblad]122 SM SM [Crowcroft]123 PTP Performance Transparency Protocol [Welzl]124 ISIS over IPv4 [Przygienda]125 FIRE [Partridge]126 CRTP Combat Radio Transport Protocol [Sautter]127 CRUDP Combat Radio User Datagram [Sautter]128 SSCOPMCE [Waber]129 IPLT [Hollbach]130 SPS Secure Packet Shield [McIntosh]131 PIPE Private IP Encapsulation within IP [Petri]132 SCTP Stream Control Transmission Protocol [Stewart] 133 FC Fibre Channel [Rajagopal]134 RSVP-E2E-IGNORE [RFC3175]135 Mobility Header [RFC3775]136 UDPLite [RFC3828]137 MPLS-in-IP [RFC4023]138-252 Unassigned [IANA]253 Use for experimentation and testing [RFC3692]254 Use for experimentation and testing [RFC3692]255 Reserved [IANA]RFC 编号768⽤户数据报协议 (UDP)783⽇常⽂件传输协议 (TFTP)791Internet 协议 (IP)792Internet 控制消息协议 (ICMP)793传输控制协议 (TCP)816故障隔离和恢复826地址解析协议 (ARP)854Telnet 协议 (TELNET)862回应协议 (ECHO)863放弃协议 (DISCARD)864字符⽣成器协议 (CHARGEN)865当⽇报价协议 (QUOTE)867⽩天协议 (DAYTIME)894基于 Ethernet 的 IP919⼴播 Internet 数据报922在现有⼦⽹中⼴播 Internet 数据报950Internet 标准⼦⽹化过程959⽂件传输协议 (FTP)1001TCP/UDP 传输上的 NetBIOS 服务的协议标准:概念和⽅法1002TCP/UDP 传输上的 NetBIOS 服务的协议标准:详细规范1009Internet ⽹关的要求1034域名 - 概念和⼯具1035域名 - 实现和规范1042基于令牌环的 IP1055通过串⾏线路的⾮标准 IP 数据报传输:SLIP1065有关基于 TCP/IP 的 Internet 的管理信息的结构和标识1112Internet 组管理协议 (IGMP)1122Internet 主机 - 通讯层的要求1123Internet 主机 - 应⽤和⽀持的要求1144对于低速串⾏链接压缩 TCP/IP 头1157简单⽹络管理协议 (SNMP)1179⾏式打印机监控程序协议1188FDDI 上的 IP1191路径 MTU 发现1201基于 ARCNET 的 IP1256ICMP 路由器发现消息1323⾼性能 TCP 扩展件1332PPP IP 控制协议 (IPCP)1518带有 CIDR 的 IP 地址分配的体系结构1519⽆类的域间路由 (CIDR):地址分配和集合策略1534DHCP 和 BOOTP 之间的交互1542Bootstrap 协议的说明和扩展1552PPP ⽹际数据包交换控制协议 (IPXCP)1661点对点协议 (PPP)1662HDLC 帧中的 PPP1748使⽤ SMIv2 的 IEEE 802.5 MIB1749使⽤ SMIv2 的 IEEE 802.5 站源路由 MIB1812IP 版本 4 的要求路由器1828使⽤ Keyed MD5 的 IP ⾝份验证1829ESP DES-CBC 变换1851ESP 三重 DES-CBC 变换1852使⽤ Keyed SHA 的 IP ⾝份验证1878IPv4 的可变长度⼦⽹表1886⽀持 IP 版本 6 的 DNS 扩展名1994PPP 质询握⼿⾝份验证协议 (CHAP)1995DNS 中的增量区域传输1996⽤来提⽰ DNS 通知区域更改的机制2018TCP 选择的确认选项2085使⽤重播防⽌的 HMAC-MD5 IP ⾝份验证2104HMAC:邮件⾝份验证的键控哈希计算2131动态主机配置协议 (DHCP)2136域名系统中的动态更新 (DNS UPDATE)2181对 DNS 规范的说明2236⽹际分组管理协议 (IGMP) 版本 22308DNS 查询的反向缓存 (DNS NCACHE)2401Internet 协议的“安全结构”2402IP 验证标头2406IP 封装安全措施负载量 (ESP)2581TCP 拥塞控制[root@ht8 net]# sz /usr/include/netinet/in.h这个是linux系统对应的⽹络协议与编号(协议ID号)头⽂件定义/* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007, 2008, 2011, 2012Free Software Foundation, Inc.This file is part of the GNU C Library.The GNU C Library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.The GNU C Library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with the GNU C Library; if not, see</licenses/>. */#ifndef _NETINET_IN_H#define _NETINET_IN_H 1#include <features.h>#include <stdint.h>#include <sys/socket.h>#include <bits/types.h>__BEGIN_DECLS/* Internet address. */typedef uint32_t in_addr_t;struct in_addr{in_addr_t s_addr;};/* Get system-specific definitions. */#include <bits/in.h>/* Standard well-defined IP protocols. */enum{IPPROTO_IP = 0, /* Dummy protocol for TCP. */#define IPPROTO_IP IPPROTO_IPIPPROTO_ICMP = 1, /* Internet Control Message Protocol. */#define IPPROTO_ICMP IPPROTO_ICMPIPPROTO_IGMP = 2, /* Internet Group Management Protocol. */#define IPPROTO_IGMP IPPROTO_IGMPIPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */#define IPPROTO_IPIP IPPROTO_IPIPIPPROTO_TCP = 6, /* Transmission Control Protocol. */#define IPPROTO_TCP IPPROTO_TCPIPPROTO_EGP = 8, /* Exterior Gateway Protocol. */#define IPPROTO_EGP IPPROTO_EGPIPPROTO_PUP = 12, /* PUP protocol. */#define IPPROTO_PUP IPPROTO_PUPIPPROTO_UDP = 17, /* User Datagram Protocol. */#define IPPROTO_UDP IPPROTO_UDPIPPROTO_IDP = 22, /* XNS IDP protocol. */#define IPPROTO_IDP IPPROTO_IDPIPPROTO_TP = 29, /* SO Transport Protocol Class 4. */#define IPPROTO_TP IPPROTO_TPIPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol. */#define IPPROTO_DCCP IPPROTO_DCCPIPPROTO_IPV6 = 41, /* IPv6 header. */#define IPPROTO_IPV6 IPPROTO_IPV6IPPROTO_RSVP = 46, /* Reservation Protocol. */#define IPPROTO_RSVP IPPROTO_RSVPIPPROTO_GRE = 47, /* General Routing Encapsulation. */#define IPPROTO_GRE IPPROTO_GREIPPROTO_ESP = 50, /* encapsulating security payload. */#define IPPROTO_ESP IPPROTO_ESPIPPROTO_AH = 51, /* authentication header. */#define IPPROTO_AH IPPROTO_AHIPPROTO_MTP = 92, /* Multicast Transport Protocol. */#define IPPROTO_MTP IPPROTO_MTPIPPROTO_BEETPH = 94, /* IP option pseudo header for BEET. */#define IPPROTO_BEETPH IPPROTO_BEETPHIPPROTO_ENCAP = 98, /* Encapsulation Header. */#define IPPROTO_ENCAP IPPROTO_ENCAPIPPROTO_PIM = 103, /* Protocol Independent Multicast. */#define IPPROTO_PIM IPPROTO_PIMIPPROTO_COMP = 108, /* Compression Header Protocol. */#define IPPROTO_COMP IPPROTO_COMPIPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */ #define IPPROTO_SCTP IPPROTO_SCTPIPPROTO_UDPLITE = 136, /* UDP-Lite protocol. */#define IPPROTO_UDPLITE IPPROTO_UDPLITEIPPROTO_MPLS = 137, /* MPLS in IP. */#define IPPROTO_MPLS IPPROTO_MPLSIPPROTO_RAW = 255, /* Raw IP packets. */#define IPPROTO_RAW IPPROTO_RAWIPPROTO_MAX};/* If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel network headers first and we should use those ABI-identical definitionsinstead of our own, otherwise 0. */#if !__USE_KERNEL_IPV6_DEFSenum{IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */#define IPPROTO_HOPOPTS IPPROTO_HOPOPTSIPPROTO_ROUTING = 43, /* IPv6 routing header. */#define IPPROTO_ROUTING IPPROTO_ROUTINGIPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */#define IPPROTO_FRAGMENT IPPROTO_FRAGMENTIPPROTO_ICMPV6 = 58, /* ICMPv6. */#define IPPROTO_ICMPV6 IPPROTO_ICMPV6IPPROTO_NONE = 59, /* IPv6 no next header. */#define IPPROTO_NONE IPPROTO_NONEIPPROTO_DSTOPTS = 60, /* IPv6 destination options. */#define IPPROTO_DSTOPTS IPPROTO_DSTOPTSIPPROTO_MH = 135/* IPv6 mobility header. */#define IPPROTO_MH IPPROTO_MH};#endif /* !__USE_KERNEL_IPV6_DEFS *//* Type to represent a port. */typedef uint16_t in_port_t;/* Standard well-known ports. 标准的已知端⼝ */enum{IPPORT_ECHO = 7, /* Echo service. */IPPORT_DISCARD = 9, /* Discard transmissions service. */IPPORT_SYSTAT = 11, /* System status service. */IPPORT_DAYTIME = 13, /* Time of day service. */IPPORT_NETSTAT = 15, /* Network status service. */IPPORT_FTP = 21, /* File Transfer Protocol. */IPPORT_TELNET = 23, /* Telnet protocol. */IPPORT_SMTP = 25, /* Simple Mail Transfer Protocol. */IPPORT_TIMESERVER = 37, /* Timeserver service. */IPPORT_NAMESERVER = 42, /* Domain Name Service. */IPPORT_WHOIS = 43, /* Internet Whois service. */IPPORT_MTP = 57,IPPORT_TFTP = 69, /* Trivial File Transfer Protocol. */IPPORT_RJE = 77,IPPORT_FINGER = 79, /* Finger service. */IPPORT_TTYLINK = 87,IPPORT_SUPDUP = 95, /* SUPDUP protocol. */IPPORT_EXECSERVER = 512, /* execd service. */IPPORT_LOGINSERVER = 513, /* rlogind service. */IPPORT_CMDSERVER = 514,IPPORT_EFSSERVER = 520,/* UDP ports. */IPPORT_BIFFUDP = 512,IPPORT_WHOSERVER = 513,IPPORT_ROUTESERVER = 520,/* Ports less than this value are reserved for privileged processes. */IPPORT_RESERVED = 1024,/* Ports greater this value are reserved for (non-privileged) servers. */IPPORT_USERRESERVED = 5000};/* Definitions of the bits in an Internet address integer.On subnets, host and network parts are found according tothe subnet mask, not these masks. */#define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)#define IN_CLASSA_NET 0xff000000#define IN_CLASSA_NSHIFT 24#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)#define IN_CLASSA_MAX 128#define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)#define IN_CLASSB_NET 0xffff0000#define IN_CLASSB_NSHIFT 16#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)#define IN_CLASSB_MAX 65536#define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)#define IN_CLASSC_NET 0xffffff00#define IN_CLASSC_NSHIFT 8#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)#define IN_MULTICAST(a) IN_CLASSD(a)#define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000) #define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)/* Address to accept any incoming messages. */#define INADDR_ANY ((in_addr_t) 0x00000000)/* Address to send to all hosts. */#define INADDR_BROADCAST ((in_addr_t) 0xffffffff)/* Address indicating an error return. */#define INADDR_NONE ((in_addr_t) 0xffffffff)/* Network number for local host loopback. */#define IN_LOOPBACKNET 127/* Address to loopback in software to local host. */#ifndef INADDR_LOOPBACK# define INADDR_LOOPBACK ((in_addr_t) 0x7f000001) /* Inet 127.0.0.1. */#endif/* Defines for Multicast INADDR. */#define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) /* 224.0.0.0 */#define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) /* 224.0.0.1 */#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */ #if !__USE_KERNEL_IPV6_DEFS/* IPv6 address */struct in6_addr{union{uint8_t __u6_addr8[16];#if defined __USE_MISC || defined __USE_GNUuint16_t __u6_addr16[8];uint32_t __u6_addr32[4];#endif} __in6_u;#define s6_addr __in6_u.__u6_addr8#if defined __USE_MISC || defined __USE_GNU# define s6_addr16 __in6_u.__u6_addr16# define s6_addr32 __in6_u.__u6_addr32#endif};#endif /* !__USE_KERNEL_IPV6_DEFS */extern const struct in6_addr in6addr_any; /* :: */extern const struct in6_addr in6addr_loopback; /* ::1 */#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }#define INET_ADDRSTRLEN 16#define INET6_ADDRSTRLEN 46/* Structure describing an Internet socket address. */ struct sockaddr_in{__SOCKADDR_COMMON (sin_);in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* Internet address. */ /* Pad to size of `struct sockaddr'. */unsigned char sin_zero[sizeof (struct sockaddr) - __SOCKADDR_COMMON_SIZE -sizeof (in_port_t) -sizeof (struct in_addr)];};#if !__USE_KERNEL_IPV6_DEFS/* Ditto, for IPv6. */struct sockaddr_in6{__SOCKADDR_COMMON (sin6_);in_port_t sin6_port; /* Transport layer port # */uint32_t sin6_flowinfo; /* IPv6 flow information */ struct in6_addr sin6_addr; /* IPv6 address */uint32_t sin6_scope_id; /* IPv6 scope-id */};#endif /* !__USE_KERNEL_IPV6_DEFS */#if defined __USE_MISC || defined __USE_GNU/* IPv4 multicast request. */struct ip_mreq{/* IP multicast address of group. */struct in_addr imr_multiaddr;/* Local IP address of interface. */struct in_addr imr_interface;};struct ip_mreq_source{/* IP multicast address of group. */struct in_addr imr_multiaddr;/* IP address of source. */struct in_addr imr_interface;/* IP address of interface. */struct in_addr imr_sourceaddr;};#endif#if !__USE_KERNEL_IPV6_DEFS/* Likewise, for IPv6. */struct ipv6_mreq{/* IPv6 multicast address of group */struct in6_addr ipv6mr_multiaddr;/* local interface */unsigned int ipv6mr_interface;};#endif /* !__USE_KERNEL_IPV6_DEFS */#if defined __USE_MISC || defined __USE_GNU/* Multicast group request. */struct group_req{/* Interface index. */uint32_t gr_interface;/* Group address. */struct sockaddr_storage gr_group;};struct group_source_req{/* Interface index. */uint32_t gsr_interface;/* Group address. */struct sockaddr_storage gsr_group;/* Source address. */struct sockaddr_storage gsr_source;};/* Full-state filter operations. */struct ip_msfilter{/* IP multicast address of group. */struct in_addr imsf_multiaddr;/* Local IP address of interface. */struct in_addr imsf_interface;/* Filter mode. */uint32_t imsf_fmode;/* Number of source addresses. */uint32_t imsf_numsrc;/* Source addresses. */struct in_addr imsf_slist[1];};#define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \- sizeof (struct in_addr) \+ (numsrc) * sizeof (struct in_addr))struct group_filter{/* Interface index. */uint32_t gf_interface;/* Group address. */struct sockaddr_storage gf_group;/* Filter mode. */uint32_t gf_fmode;/* Number of source addresses. */uint32_t gf_numsrc;/* Source addresses. */struct sockaddr_storage gf_slist[1];};#define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \- sizeof (struct sockaddr_storage) \+ ((numsrc) \* sizeof (struct sockaddr_storage)))#endif/* Functions to convert between host and network byte order.Please note that these functions normally take `unsigned long int' or`unsigned short int' values as arguments and also return them. Butthis was a short-sighted decision since on different systems the typesmay have different representations but the values are always the same. */ extern uint32_t ntohl (uint32_t __netlong) __THROW __attribute__ ((__const__)); extern uint16_t ntohs (uint16_t __netshort)__THROW __attribute__ ((__const__));extern uint32_t htonl (uint32_t __hostlong)__THROW __attribute__ ((__const__));extern uint16_t htons (uint16_t __hostshort)__THROW __attribute__ ((__const__));#include <endian.h>/* Get machine dependent optimized versions of byte swapping functions. */#include <bits/byteswap.h>#ifdef __OPTIMIZE__/* We can optimize calls to the conversion functions. Either nothing hasto be done or we are using directly the byte-swapping functions whichoften can be inlined. */# if __BYTE_ORDER == __BIG_ENDIAN/* The host byte order is the same as network byte order,so these functions are all just identity. */# define ntohl(x) (x)# define ntohs(x) (x)# define htonl(x) (x)# define htons(x) (x)# else# if __BYTE_ORDER == __LITTLE_ENDIAN# define ntohl(x) __bswap_32 (x)# define ntohs(x) __bswap_16 (x)# define htonl(x) __bswap_32 (x)# define htons(x) __bswap_16 (x)# endif# endif#endif#ifdef __GNUC__# define IN6_IS_ADDR_UNSPECIFIED(a) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ __a->s6_addr32[0] == 0 \&& __a->s6_addr32[1] == 0 \&& __a->s6_addr32[2] == 0 \&& __a->s6_addr32[3] == 0; }))# define IN6_IS_ADDR_LOOPBACK(a) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ __a->s6_addr32[0] == 0 \&& __a->s6_addr32[1] == 0 \&& __a->s6_addr32[2] == 0 \&& __a->s6_addr32[3] == htonl (1); }))# define IN6_IS_ADDR_LINKLOCAL(a) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ (__a->s6_addr32[0] & htonl (0xffc00000)) == htonl (0xfe800000); })) # define IN6_IS_ADDR_SITELOCAL(a) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ (__a->s6_addr32[0] & htonl (0xffc00000)) == htonl (0xfec00000); })) # define IN6_IS_ADDR_V4MAPPED(a) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ __a->s6_addr32[0] == 0 \&& __a->s6_addr32[1] == 0 \&& __a->s6_addr32[2] == htonl (0xffff); }))# define IN6_IS_ADDR_V4COMPAT(a) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ __a->s6_addr32[0] == 0 \&& __a->s6_addr32[1] == 0 \&& __a->s6_addr32[2] == 0 \&& ntohl (__a->s6_addr32[3]) > 1; }))# define IN6_ARE_ADDR_EQUAL(a,b) \(__extension__ \({ const struct in6_addr *__a = (const struct in6_addr *) (a); \ const struct in6_addr *__b = (const struct in6_addr *) (b); \ __a->s6_addr32[0] == __b->s6_addr32[0] \&& __a->s6_addr32[1] == __b->s6_addr32[1] \&& __a->s6_addr32[2] == __b->s6_addr32[2] \&& __a->s6_addr32[3] == __b->s6_addr32[3]; }))#else# define IN6_IS_ADDR_UNSPECIFIED(a) \(((const uint32_t *) (a))[0] == 0 \&& ((const uint32_t *) (a))[1] == 0 \&& ((const uint32_t *) (a))[2] == 0 \&& ((const uint32_t *) (a))[3] == 0)# define IN6_IS_ADDR_LOOPBACK(a) \(((const uint32_t *) (a))[0] == 0 \&& ((const uint32_t *) (a))[1] == 0 \&& ((const uint32_t *) (a))[2] == 0 \&& ((const uint32_t *) (a))[3] == htonl (1))# define IN6_IS_ADDR_LINKLOCAL(a) \((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \== htonl (0xfe800000))# define IN6_IS_ADDR_SITELOCAL(a) \((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \== htonl (0xfec00000))# define IN6_IS_ADDR_V4MAPPED(a) \((((const uint32_t *) (a))[0] == 0) \&& (((const uint32_t *) (a))[1] == 0) \&& (((const uint32_t *) (a))[2] == htonl (0xffff)))# define IN6_IS_ADDR_V4COMPAT(a) \((((const uint32_t *) (a))[0] == 0) \&& (((const uint32_t *) (a))[1] == 0) \&& (((const uint32_t *) (a))[2] == 0) \&& (ntohl (((const uint32_t *) (a))[3]) > 1))# define IN6_ARE_ADDR_EQUAL(a,b) \((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0]) \&& (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1]) \&& (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2]) \&& (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3]))#endif#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)#if defined __USE_MISC || defined __USE_GNU/* Bind socket to a privileged IP port. */extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW; /* The IPv6 version of this function. */extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)__THROW;#endif#define IN6_IS_ADDR_MC_NODELOCAL(a) \(IN6_IS_ADDR_MULTICAST(a) \&& ((((const uint8_t *) (a))[1] & 0xf) == 0x1))#define IN6_IS_ADDR_MC_LINKLOCAL(a) \(IN6_IS_ADDR_MULTICAST(a) \&& ((((const uint8_t *) (a))[1] & 0xf) == 0x2))#define IN6_IS_ADDR_MC_SITELOCAL(a) \(IN6_IS_ADDR_MULTICAST(a) \&& ((((const uint8_t *) (a))[1] & 0xf) == 0x5))#define IN6_IS_ADDR_MC_ORGLOCAL(a) \(IN6_IS_ADDR_MULTICAST(a) \&& ((((const uint8_t *) (a))[1] & 0xf) == 0x8))#define IN6_IS_ADDR_MC_GLOBAL(a) \(IN6_IS_ADDR_MULTICAST(a) \&& ((((const uint8_t *) (a))[1] & 0xf) == 0xe))#ifdef __USE_GNUstruct cmsghdr; /* Forward declaration. */#if !__USE_KERNEL_IPV6_DEFS/* IPv6 packet information. */struct in6_pktinfo{struct in6_addr ipi6_addr; /* src/dst IPv6 address */unsigned int ipi6_ifindex; /* send/recv interface index */};/* IPv6 MTU information. */struct ip6_mtuinfo{struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */uint32_t ip6m_mtu; /* path MTU in host byte order */};#endif /* !__USE_KERNEL_IPV6_DEFS *//* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */ extern int inet6_option_space (int __nbytes)__THROW __attribute_deprecated__;extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,int __type) __THROW __attribute_deprecated__;extern int inet6_option_append (struct cmsghdr *__cmsg,const uint8_t *__typep, int __multx,int __plusy) __THROW __attribute_deprecated__;extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,int __multx, int __plusy)__THROW __attribute_deprecated__;extern int inet6_option_next (const struct cmsghdr *__cmsg,uint8_t **__tptrp)__THROW __attribute_deprecated__;extern int inet6_option_find (const struct cmsghdr *__cmsg,uint8_t **__tptrp, int __type)__THROW __attribute_deprecated__;/* Hop-by-Hop and Destination Options Processing (RFC 3542). */extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __THROW; extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, uint8_t __type, socklen_t __len, uint8_t __align,void **__databufp) __THROW;extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset)__THROW;extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val,socklen_t __vallen) __THROW;extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset,uint8_t *__typep, socklen_t *__lenp,void **__databufp) __THROW;extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset,uint8_t __type, socklen_t *__lenp,void **__databufp) __THROW;extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val,socklen_t __vallen) __THROW;/* Routing Header Option (RFC 3542). */extern socklen_t inet6_rth_space (int __type, int __segments) __THROW; extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,int __segments) __THROW;extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __THROW; extern int inet6_rth_reverse (const void *__in, void *__out) __THROW; extern int inet6_rth_segments (const void *__bp) __THROW;extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)__THROW;/* Multicast source filter support. *//* Get IPv4 source filter. */extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,struct in_addr __group, uint32_t *__fmode,uint32_t *__numsrc, struct in_addr *__slist)__THROW;/* Set IPv4 source filter. */extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,struct in_addr __group, uint32_t __fmode,uint32_t __numsrc,const struct in_addr *__slist)__THROW;/* Get source filter. */extern int getsourcefilter (int __s, uint32_t __interface_addr,const struct sockaddr *__group,socklen_t __grouplen, uint32_t *__fmode,uint32_t *__numsrc,struct sockaddr_storage *__slist) __THROW;/* Set source filter. */extern int setsourcefilter (int __s, uint32_t __interface_addr,const struct sockaddr *__group,socklen_t __grouplen, uint32_t __fmode,uint32_t __numsrc,const struct sockaddr_storage *__slist) __THROW;#endif /* use GNU */__END_DECLS#endif /* netinet/in.h */。

中国移动IPv6终端技术要求V100--资料

中国移动IPv6终端技术要求V100--资料

中国移动I P v6终端技术要求V1.0.0目录1 范围 (1)2 规范性引用文件 (1)3 术语、定义和缩略语 (2)3.1 术语和定义 (2)3.1.1 接入点名称Access Point Name (2)3.1.2 网关GPRS支持节点Gateway GPRS Support Node (2)3.1.3 分组数据协议上下文Packet Data Protocol Context (2)3.1.4 双栈终端Dual stack terminal (2)3.1.5 终端形态 (2)3.2 缩略语 (3)4 总体技术要求 (4)5 终端技术要求 (4)5.1 协议栈 (4)5.1.1 概述 (4)5.1.2 RFC 2460 IPv6协议规范 (4)5.1.3 RFC 4291 IPv6地址结构 (5)5.2 DNS客户端 (5)5.3 DHCP客户端 (5)5.4 IPv4/IPv6协议翻译技术 (5)5.4.1 BIH (5)5.4.2 464XLAT (8)5.5 隧道过渡技术 (9)5.5.1 Teredo技术 (9)5.5.2 6rd (9)6 PDP/PDN连接激活及IPv6地址获取过程 (10)6.1 IPv6地址配置 (10)6.2 PDP/PDN连接的建立和IP地址的获取 (10)6.2.1 3GPP Release 8之前终端PDP上下文的激活和IPv6地址获取过程 (10)6.2.2 3GPP Release 8之后(含Release 8)终端PDP/PDN连接的建立和IPv6地址获取过程 (11)7 终端PDP/PDN连接激活策略 (12)7.1 概述 (12)7.2 双栈终端PDP/PDN连接激活策略一:同时获取IPv4和IPv6地址 (12)7.3 双栈终端PDP/PDN连接激活策略二:按需建立IPv4或IPv6连接 (14)7.4 两种PDP/PDN连接激活策略的选择和使用 (15)8 WLAN网络中的IPv6地址获得 (15)9 DNS解析 (15)9.1 概述 (15)9.2 终端DNS解析流程 (15)9.3 DNS服务器地址的获取 (15)9.4 DNS解析承载类型的选择 (15)9.5 DNS解析目的地址类型的选择 (15)10 终端应用软件系统 (16)11 IP头压缩技术要求 (16)12 安全 (16)13 APN设定 (17)14 不同终端类型要求 (17)14.1 手机/平板电脑类终端 (17)14.2 MiFi/移动CPE终端 (17)14.3 数据卡终端 (17)前言本文档是依据3GPP、IETF发布的IPv6相关标准制定,并结合现阶段IPv6升级改造及试点项目需求所定义的手机、平板电脑、MiFi、移动CPE、数据卡等移动终端IPv6部分技术要求。

DNS协议详解 (2)

DNS协议详解 (2)

DNS协议详解协议名称:DNS协议详解一、引言DNS(Domain Name System,域名系统)是互联网中用于将域名解析为IP地址的一种协议。

本协议旨在详细介绍DNS协议的工作原理、数据结构和相关标准。

二、背景随着互联网的迅速发展,域名系统的重要性日益凸显。

DNS协议作为互联网的基础设施之一,扮演着将域名转化为IP地址的关键角色。

本协议将对DNS协议的各个方面进行详解。

三、工作原理1. DNS查询过程1.1 客户端向本地DNS服务器发起查询请求。

1.2 本地DNS服务器检查缓存,若有相应记录则直接返回结果,否则进入递归查询过程。

1.3 本地DNS服务器向根域名服务器发起查询请求。

1.4 根域名服务器返回顶级域名服务器的地址。

1.5 本地DNS服务器向顶级域名服务器发起查询请求。

1.6 顶级域名服务器返回权威域名服务器的地址。

1.7 本地DNS服务器向权威域名服务器发起查询请求。

1.8 权威域名服务器返回解析结果给本地DNS服务器。

1.9 本地DNS服务器将解析结果返回给客户端。

2. DNS数据结构2.1 域名域名由一系列标签组成,每一个标签最多63个字符,总长度不超过255个字符。

2.2 IP地址IPv4地址由32位二进制数表示,IPv6地址由128位二进制数表示。

2.3 DNS记录类型常见的DNS记录类型包括A记录、AAAA记录、CNAME记录、MX记录等。

四、相关标准1. RFC 1034该标准详细描述了DNS的概念、设计和功能,并规定了DNS的数据结构和查询过程。

2. RFC 1035该标准定义了DNS的数据格式、协议细节和消息格式,包括DNS消息头、查询/响应消息体等。

3. RFC 2181该标准规定了DNS的操作和管理要求,包括资源记录的TTL(Time to Live)值的设置、权威域名服务器的行为等。

4. RFC 3596该标准定义了IPv6地址在DNS中的表示方式,包括AAAA记录的格式和解析规则。

rfc 1034和rfc 1035等域规则

rfc 1034和rfc 1035等域规则

文章标题:深入探讨RFC 1034和RFC 1035等域名系统规则在当今网络时代,域名系统(DNS)扮演着至关重要的角色,它是将域名转换为相应IP位置区域的关键技术。

RFC 1034和RFC 1035作为DNS的基础标准,对于理解和构建可靠的域名系统至关重要。

本文将深入探讨RFC 1034和RFC 1035等域名系统规则,帮助读者全面、深入地理解这一重要主题。

1. RFC 1034:域名概念和基础规则在RFC 1034中,定义了域名系统的概念和基础规则,包括域名的结构、层级关系、命名规范等内容。

域名作为网络资源的唯一标识,其结构和命名规则对于网络通信至关重要。

RFC 1034还介绍了域名解析的过程和原理,帮助读者全面了解DNS的工作方式。

2. RFC 1035:域名系统实现和消息格式RFC 1035则进一步规定了域名系统的实现细节和消息格式,包括数据的存储结构、报文格式、消息传输协议等内容。

通过深入了解RFC 1035,读者可以掌握域名系统的具体实现方法,并且理解DNS消息的构成和传输过程。

这对于网络工程师和系统管理员来说是必备的知识。

3. 深入探讨RFC 1034和RFC 1035的意义通过对RFC 1034和RFC 1035的详细解读,我们可以更好地理解域名系统的工作原理,从而更好地构建和维护可靠的网络基础设施。

深入理解这些规范也有助于发现和解决实际网络环境中可能出现的问题,提升网络的稳定性和安全性。

4. 个人观点和理解作为一名网络技术爱好者,我深刻认识到RFC 1034和RFC 1035所蕴含的重要意义。

这些标准不仅是网络通信的基石,也是信息交换和互联网发展的重要支撑。

只有深入理解并严格遵守这些规范,我们才能构建一个稳定、高效的网络环境,为数字化社会的发展提供坚实的基础。

总结:通过对RFC 1034和RFC 1035的深入探讨,我们对域名系统的工作原理和实现细节有了全面的了解。

这些规范的制定和遵守,对于保障网络通信的顺畅和安全至关重要。

简述域名的概念

简述域名的概念

简述域名的概念域名是一个关于互联网络中主机(也称为客户端)的可见名称和地址的字符串。

它是用来标识网络上得资源(如Web服务器,文件服务器)的一种方式,以便其他客户端能通过域名来访问这些资源,而不必使用IP地址。

域名的格式由Milestones问世的RFC 952和RFC 1034并升级为RFC 1123定义,其中重点关注了它本身结构,以便可以区分它们。

域名由至少一个顶级与很多附属项组成,并由底级部分终结,如名称服务器。

例子中的顶级域名(TLD)是理想的最后一部分,例如“com”、“net”、“org”、“edu”,等等。

直接在TLD之前的部分(如“google”)称为主机名,有点像一个物理主机在特定的局域网(LAN)中的名称。

域名在传统的层次结构中分组,常用的层次有2种:部门(E.g. microsoft)和国家/地区(E.g. taiwan)。

其中,部门层次是一个带有公司名称的单位,它有利于把同某公司服务有关的所有主机分组在一起;而国家/地区层次则允许将所有某地组织的主机以及服务都分组到一个域名中。

域名服务是一个非常重要的服务,因为它被用来识别各种网络上的一系列系统、节点或设备。

它将使得这些节点/系统成为容易被分类和访问的特定目标,也可以通过一个值得信赖的中介来提供这些资源/服务。

域名服务目前受到域名系统(DNS)的控制。

有效的域名系统包含许多称为域名服务器(DNS),它们是一组域名数据库,包含全球可用的域名,以及指向这些域名的解析,域名解析收集所有的域名请求动作和解析结果,他们由全球性分布的高速域名服务器(DNS)运行,它们可以在全球范围内对域名进行解析,以便客户端只需要输入域名,便可以迅速找到对应的IP地址。

域名系统

域名系统

17
资源类型(字段长16比特)
Internet技术与应用
第七讲 域名系统
18
记录数据(变长字段)
Internet技术与应用
第七讲 域名系统
19
域名系统消息
Internet技术与应用
第七讲 域名系统
20
参数字段
Internet技术与应用
第七讲 域名系统
21
问题部分
Internet技术与应用
第七讲 域名系统
域名解析器操作: 接收用户程序的请求 向名称服务器发起域名查询 接收名称服务器的域名响应 返回响应给用户程序
Internet技术与应用
第七讲 域名系统
14
域名查询与域名响应
域名查询分为2类: 递归查询 重复查询(迭代查询、反复查询) 域名响应分为2类: 授权响应 非授权响应
Internet技术与应用 第七讲 域名系统
16
域名系统资源记录
32位无符号值,以 16位,标识协 秒为单位。常用的 给出域名,以字母打 议簇。常用的 值是86400 值是“IN” 头的0~63个字符,如: “”。 域名长度为0的是根 域(根域无名称)。
Internet技术与应用 第七讲 域名系统
Internet技术与应用
第七讲 域名系统
6
顶级域名
顶级域名分为三个部分: 7个3字符的组织域(顶级域/普通域) 所有2字符的国家代码(国家域/地理域) 由ISO 3166规定 用作地址到名字映射的特殊域arpa
Internet技术与应用
第七讲 域名系统
7
名称解析器与名称服务器
名称服务器(域名服务器): 拥有名字到地址映射的数据库 对数据库的查询机制 到其他名称服务器的链接
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2-2 DNS设计目标 DNS的设计目标影响它的结构。这些目标是: - 主要目标是一致性名称空间,这一名称空间用于指资源。为了避免特别是由编码 引起的问题,名称应当不要求包括网络标识符、地址、路由,或作为该名称一部 分的类似信息。 - 规模庞大和频繁更新要求数据库必须采用分布式方式维护,使用本地缓存改善性 能。企图收集整个数据库的一致性复本的方法将变得越来越昂贵和困难,并且因 此应当避免。同样的道理也适用于名称空间结构,以及尤其是生成和删除名称的 机制;这些也应当是分布式的。 - 凡是需要在获得数据成本、更新速率和缓存精度间进行折中时,数据源应当控制 此折中。 - 实现成本(诸如便利性)要求DNS通常普遍可用,不被限制在单一应用。我们应当 能够使用名称来检索主机地址、邮箱数据和其他尚未确定的信息。所有与名称关 联的数据用类型(type)标记,并且可以将查询限制在单一类型。 - 因为我们希望名称空间可用于不同的网络和应用,我们提供由不同协议族或管理 使用相同 名称空间的能力。例如,尽管所有协议都有地址概念,协议间主机地 址格式不同。DNS用类以及类型标记所有数据,因此我们可以允许并行使用不同 格式类型地址的数据。 - 我们希望名称服务器业务独立于携带这些业务的通信系统。一些系统可能希望使 用数据报进行查询和响应,并且仅为强调可靠性的业务(例如,数据库更新,长 业务)建立虚拟电路;其他系统将排他性地使用虚拟电路。 - 系统应当能够适应广泛的主机能力。个人计算机和大型分时主机都应当能够使用 此系统,尽管可能采用不同方法。
P. Mockapetris ISI
November 1987
5-2-2 别名 5-2-3 临时故障 5-3 解析器内部 5-3-1 末梢解析器 5-3-2 资源 5-3-3 算法 第6章 场景 6-1 名称服务器 6-2 标准查询举例 6-2-1 QNAME=SRI-NIC.ARPA, QTYPE=A 6-2-2 QNAME=SRI-NIC.ARPA, QTYPE=* 6-2-3 QNAME=SRI-NIC.ARPA, QTYPE=MX 6-2-4 QNAME=SRI-NIC.ARPA, QTYPE=NS 6-2-5 QNAME=SIR-NIC.ARPA, QTYPE=A 6-2-6 QNAME=, QTYPE=A 6-2-7 QNAME=USC-ISIC.ARPA, QTYPE=A 6-2-8 QNAME=USC-ISIC.ARPA, QTYPE=CNAME 6-3 解析举例 6-3-1 解析.的MX 6-3-2 获得地址26.6.0.65的主机名 6-3-3 获得的主机地址 第7章 参考文献和参考书目 原文索引
本地系统管理者配置每个主机的名称服务器和解析器[RFC-1033]。对于名称服务器,这 个配置数据包括本地主文件标识,和有关从外地服务器加载非本地主文件的指令。名称服务 器使用主文件或主文件副本加载它的区域。对于解析器,此配置数据指出应当是主信息源的 名称服务器。
域系统定义访问数据和转介到其他名称服务器的流程。域系统也定义由系统管理员确定 的缓存检索数据的流程和数据周期刷新的流程。
2-3 有关应用的假设
域系统的组织来源于某些假设,这些假设涉及域系统用户社区的需求和使用模式,域系 统的设计致力于避免在通用数据库系统中发现的许多复杂问题。
这些假设是: - 整个数据库的大小初期正比于使用此系统的主机数量,但是当邮箱和其他信息被 添加到此域系统时,最终将发展为正比于这些主机上的用户数量。 - 系统中大多数数据变化非常缓慢(例如,邮箱绑定,主机地址),但是系统应当能 够处理变化更为迅速的子集(在秒或分钟等级上)。 - 用于分配数据库职责的管理边界通常对应有一台或多台主机的组织。每个对特定 一组域有责任的组织将提供冗余的名称服务器,或者在组织自己的主机上提供, 或者在由该组织安排使用ห้องสมุดไป่ตู้其他主机上提供。 - 域系统的客户端应当能够识别值得信任的名称服务器集合,在接受转介到这个 “值得信任的”集合之外的名称服务器前,客户端优先使用这些名称服务器。 - 获取信息比即时更新或一致性担保更为关键。因此,更新处理使更新能够过滤出 域系统的用户而不是保证所有副本同时更新。当由于网络或主机故障,更新不能 进行时,通常的做法是相信旧信息同时继续努力更新它。一般模式是用刷新超时 分发副本。分发者设置超时值,分发物的接收者负责执行刷新。在特殊情况,可 能规定非常短的间隔,或者所有者可能禁止复制。 - 在任何有分布式数据库的系统中,特定名称服务器可能遇到仅可以由某个其他服 务器回答的查询。处理此问题的两个常用方法其一是“递归”,在递归中,第一 个服务器继续为客户端在另一个服务器上查询;其二是“迭代”,在迭代中,该 服务器引导客户端寻找另一个服务器,并让该客户端继续查询。两种方法各有优 缺点,但是在数据报形式的访问中优先使用迭代方法。域系统需要执行迭代方法, 但是允许将递归方法作为选项。
然而,域系统有意构建成可扩展的。研究者正在不断提出、实施和试验新的数据类型、 查询类型、类、功能,等等。因此,尽管期盼正式协议各部分保持基本不变并作为生产业务 运行,应当始终鼓励试验工作不断扩展正式协议。在这些RFCs中对试验的或作废的特性做 了明显的标记,使用这类信息应当谨慎。
读者应特别注意,不要依赖本文(目前的和完成的)举例中出现的值,因为这些值的确定 主要源于教学演示需要。本备忘录的分发不受限制。
本文翻译者:weicq2000 (2012-10-9,weicq2000@)
Network Working Group Request for Comments: 1034 Obsoletes: RFCs 882, 883, 973
域名 --- 概念和设施
目录 第 1 章 本备忘录状态 第 2 章 序言 2-1 域名的历史 2-2 DNS设计目标 2-3 有关应用的假设 2-4 DNS组成部分 第3章 域名空间和资源记录 3-1 名称空间规范和术语 3-2 有关应用的管理准则 3-3 有关应用的技术准则 3-4 名称空间举例 3-5 优先选用的名称句法 3-6 资源记录 3-6-1 RRs的文本表示 3-6-2 别名和正则名称 3-7 查询 3-7-1 标准查询 3-7-2 反向查询(可选) 3-8 状态查询(试验中) 3-9 完整查询(放弃) 第4章 名称服务器 4-1 序言 4-2 怎样将数据库划分成区域 4-2-1 技术上的考虑 4-2-2 管理上的考虑 4-3 名称服务器内部 4-3-1 查询和响应 4-3-2 算法 4-3-3 通配符 4-3-4 否定响应缓存(可选) 4-3-5 区域维护和传送 第5章 解析器 5-1 序言 5-2 客户端-解析器接口 5-2-1 典型功能
系统管理者提供: - 区域边界定义。 - 数据的主文件。 - 对主文件的更新。 - 陈述希望的刷新策略。
域系统提供: - 资源数据的标准格式。 - 查询数据库的标准方法。
- 名称服务器刷新来自外地名称服务器的本地数据的标准方法。
2-4 DNS组成部分 DNS有三个主要部分: - 域名空间和资源记录(DOMAIN NAME SPACE和RESOURCE RECORDS),它们 是树状结构名称空间和与这些名称关联的数据的规范。从概念上讲,每个节点和 域名空间树的叶子命名一组信息,查询操作是打算从特定集合提取特定类型信息。 查询命名感兴趣的域名和描述希望的资源信息类型。例如,互联网使用它的某个 域名标识主机;地址资源的查询返回互联网主机地址。 - 名称服务器(NAME SERVERS),它们是服务器程序,它们保存着有关域树的结 构的信息和设置信息。名称服务器可以缓存有关域树的任何部分的结构和设置信 息,但是一般而言,特定的名称服务器有关于该域空间的子集的完整信息,有指 向其他名称服务器的指针,这些其他服务器可用于从域树的任何部分引导信息。 名称服务器们知道域树的各个部分(它们对其有完整信息);对于名称空间的这些 部分,名称服务器被看作是权威(AUTHORITY)。权威信息被编排进称作区域 (ZONEs)的单元,这些区域可以自动分配给为区域中的数据提供冗余服务的名称 服务器。 - 解析器(RESOLVERS),是为了响应客户端请求从名称服务器提取信息的程序。 解析器必须能够访问至少一个名称服务器,并使用那个名称服务器的信息直接回 答查询,或使用到其他名称服务器的转介,继续查询。解析器一般是系统例行程 序,它可直接访问到用户程序;因此在解析器和用户程序间不需要协议。 这三个组成部分大致对应域系统的三层或三个视野: - 从用户的观点看,通过简单的流程或OS调用本地解析器,访问域系统。域空间 由单一树构成,用户可以从该树的任何部分请求信息。 - 从解析器的观点看,域系统由未知数量的名称服务器组成。每个名称服务器有整 个域树的数据中的一条或多条数据,然而解析器将这些数据库的每一个看作基本 上是静态的。 - 从名称服务器的观点看,域系统由分离的、称作区域的本地信息集合构成。名称 服务器有某些区域的本地副本。名称服务器必须根据本地文件中的主副本或外地 名称服务器,周期刷新它的区域。名称服务器必须并发处理来自多个解析器的查 询。 从性能考虑,实现可以融合这些功能。例如,在作为名称服务器的同一计算机上的解
域系统假设,所有数据起源于使用域系统的主机散发的主文件。这些主文件被本地系统 管理员更新。主文件是文本文件,本地名称服务器读这些主文件,因此经名称服务器后,可 被该域系统的用户得到。用户程序通过称为解析器的标准程序访问名称服务器。
主文件采用标准格式因而它们能够在主机间交换(通过FTP、邮件、或某种其他机制); 当组织想要域,但是不希望支持名称服务器时,这个特点是有用的。组织能够维护本地使用 文本编辑器的主文件,将它们传送给运行名称服务器的外地主机,接着与那个名称服务器的 系统管理者协商获得加载的文件。
第1章 本备忘录状态 本备忘录介绍域名系统(Domain Name System, DNS),文中忽略了许多细节,这些细节
可在姊妹篇RFC“域名---实现和规范”[RFC-1035]中找到。RFC1035假设读者熟悉本备忘录 中讨论的概念。
DNS功能和数据类型子集构成正式协议。正式协议包括标准查询和它们的响应,以及大 多数互联网类数据格式(例如,主机地址)。
相关文档
最新文档