《tcpip协议与网络管理标准教程.doc》由会员分享,可在线阅读,更多相关《tcpip协议与网络管理标准教程.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 TCP/IP概述现在,越来越多的人依赖于Internet提供的应用,例如电子邮件和Web访问。此外,商业应用的不断普及也进一步强调了Internet的重要性。传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议簇是Internet和全球各地网络互联的引擎。TCP/IP协议簇具有简单性和强大的功能,使它成为当今世界网络协议中的唯一选择。在本章中,综述TCP/IP协议簇,并讨论Internet的形成、发展以及未来的发展趋势。本章的主要内容如下: 熟悉TCP/IP的起源历史 了解TCP/IP的标准制定 了解
2、TCP/IP的应用 了解互联网的地址 了解域名系统、封装和分用 熟悉TCP/IP工作模型 熟悉TCP/IP协议层 了解TCP/IP的发展现状 了解TCP/IP的发展趋势1.1 TCP/IP简介TCP/IP是网络中使用的基本通信协议。虽然从名称上看TCP/IP包括两种协议,即传输控制协议(TCP)和网际协议(IP),但是TCP/IP实际上是一组协议,它包括上百个能完成各种功能的协议,如远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本重要协议。通常说TCP/IP是Internet协议簇,而不只是TCP和IP协议。1.1.1 TCP/IP的起源早期的计算机是以一个集
3、中的中央运算系统用一定的线路与终端系统(输入输出设备)连接起来的,这样的一个连接系统就是网络的最初形式。各个网络都使用自己的一套规则,可以说是相互独立的。在1969年美苏冷战期间,美国政府机构试图发展出一套机制,用来连接各个离散的网络系统,以应付战争危机的需求。这个计划就是由美国国防部委托Advanced Research Project Agency发展的ARPANET网络系统,研究当部分计算机网络遭到攻击而瘫痪后,是否能够通过其他未瘫痪的线路来传送数据。ARPANET的构想和原理除了研发出一套可靠的数据通信技术外,同时还要兼顾跨平台作业。后来,ARPANET的实验非常成功,从而奠定了今日的
4、网际网络模式,它包括了一组计算机通信细节的网络标准,以及一组用来连接网络和选择网络通信路径的协议,即后来的TCP/IP协议。1983年,美国国防部下令用于连接长距离网络的电话都必须适应TCP/IP,同时Defense Communication Agency(DCA)将ARPANET(Advanced Research Projects Agency Net)分成两个独立的网络:一个用于研究用途,依然叫做ARPANET;另一个用于军事通信,称为MILNET(Military Network)。ARPA后来发展出一个版本,以鼓励大学和研究人员采用它的协议,当时大部分大学正需要连接它们的区域网络。
5、由于UNIX系统研究出来的许多抽象概念与TCP/IP的特性高度吻合,再加上设计上的公开性,而导致其他组织也纷纷使用TCP/IP协议。从1985年开始,TCP/IP网络迅速扩展至美国、欧洲好几百所大学以及政府机构、研究实验室。它的发展大大超过了人们的预期,而且每年以超过15%的速度增长。到1994年,使用TCP/IP协议的计算机已经超过三百万台。之后数年,由于Internet的爆炸性成长,TCP/IP协议已经成为最常用的通信协议了。Internet和TCP/IP的结合最终形成了现在的Internet。TCP/IP发展史中的一些重点如下所示。1986年NSF(美国国家科学基金会)开发一种远距离的高
6、速网络,称为NSFNET,它以56Kbps的速度执行,开创了网络的先河。NSF同时采取一套规则,称为AUP(可接收的使用策略),管理Internet的建议使用方法,并且设置了用户如何在Internet上继续交互作用。1987年Internet上的主机数量突破10000台。1988年Internet上的主机数量突破台。NSFNET主干网络更新为T1速度,每秒1.544Gbps。1990年McGill大学发布了Archie协议及服务,它以TCP/IP为基础,使得Internet上的用户能够在任何位置搜索到基于文本的各种文档档案。ARPANET中止运行,公司、学术机构、政府和通信公司开始将Inter
7、net作为一项合作投资项目,对它进行支持。1991年CIX(商用Internet交易所),由Internet操作员、系统提供商和其他对Internet感兴趣的商业操作的联营组成。有人将这称为“现代Internet”的诞生,因为这是商业领域在Internet上第一次具备合法性。IBM发布的WAIS(广域信息服务系统)是一种基于TCP/IP的协议和服务。利用它可以跨Internet在网络上搜索数兆字节的数据库。明尼苏达州立大学开发了Gopher,它是一种基于TCP/IP的协议,它不仅可以在网络上搜索文本文档和其他类型数据,而且可以将所有这些文档链接在一起,形成单独的实际信息世界,称为“Gopher
8、空间”。1992年ISOC(Internet协会)特许成立,Internet上的主机数量突破台。NSFNET主干网络更新了T3速度,速率为44.735Mbps。CERN公开发布HTTP和Web服务器技术(“Web的诞生”)。1993年InterNIC(Internet国家信息中心)成立,它负责管理域名。高性能网络图形浏览器在NCSA(国家超级计算应用中心)首次出现,启动了Web的革命。1994年网络收发邮件和购物活动开始增加。1995年Netscape开发了Netscape Navigator,并且开始实现Web商业化。Internet上的主机数量突破台。1996年Microsoft发布了In
9、ternet Explorer Web浏览器,虽然当时Netscape控制了Web浏览器的市场。今天,几乎所有的商业通信和信息访问都涉及Internet。E-mail、Web和网络电子商务成了网络中不可缺少的部分。随着网络的发展,Internet上也出现了新的服务和协议,但是TCP/IP仍然具有非常重要作用。1.1.2 TCP/IP标准制定虽然ARPA计划从1970年就开始发展交换网络技术,到了1979年ARPA组织了一个委员会叫做Internet Control and Configuration Board(ICCB),但是TCP/IP协议并不属于某一特定厂商和机构。它的标准是由Inter
10、net Architecture Board(IAB)所制定的。IAB目前从属于The Internet Society(ISOC),专门在技术上作监控及协调,并且负责最终端评估及科技监控。IAB组织除了自身的委员会之外,它主要包含两个主要团体:Internet Research Task Force (IRTF)和Internet Engineering Task Force(IETF)。这两个团体的职能各有不同,IRTF主要致力于短期和中期的难题;而IETF则着重处理单一的特别事件,其下又分出许多不同题目的成员与工作小组,各自从事不同的研究项目,研发网际网络的标准与 规格。由于TCP/IP
11、技术的公开性,它不属于任何厂商或专业协会所有,因此关于它的相关信息是由Internet Network Information Center(INTERNIC)的机构来维护和发表,以及处理许多网络管理细节(如DNS等)的。TCP/IP的标准大部分都以Request For Comment (RFC)技术报告的形式公开。RFC文件包含了所有TCP/IP协议标准,以及其最新版本。虽然RFC看起来像是文档的暂定名称,但是RFC对TCP/IP影响绝对是完全和压倒性的。虽然RFC必须通过多个过程,包括建议、草拟、测试实用程序等,才能成为官方的标准,但是它们提供理解、实现和使用Internet上的TCP/
12、IP协议和服务所需的文档。在RFC集合中,RFC的旧版本经常被更新的版本代替。每一个RFC都用号码表示,当两个或者更多RFC包含相同的主题时,它们通常共享这个主题。在这种情况下,号码最大的RFC被认为是最新版本,所有旧式的号码较小的版本可以说是已过期的。另一个特殊的RFC是“Internet官方协议标准”。其中RFC 2026描述了RFC如何创建,要成为官方标准必须经过哪些过程,才能被IETF采纳。同时它还描述了如何参与该过程。当过程和协议被开发、定义和检查,并接受Internet团体进一步的测试和检查时,潜在的标准RFC就逐渐形成。RFC在进一步修订、测试后,证明其工作和表现与其他Inter
13、net标准兼容,它就可以作为官方标准RFC,被RFC采纳。然后,它将作为标准RFC发布,并赋于编号。事实上,RFC在成为标准RFC的过程中,要经过许多具体步骤,并且按照该过程指定该号的具体身份。RFC 2026中有完整的定义。例如,潜在标准RFC在成为标准RFC之前要经过3个阶段。开始是建议标准,然后上升为草拟标准,如果被正式接纳,就可以成为Internet标准,或者RFC标准。如果这种RFC最终被新的RFC代替,这种RFC也可以被命名为退离标准,或者历史标准。BCP(最佳当前行为)是RFC的另一个重要目录。BCP不定义协议或者技术规范,它定义网络设计或者实用程序的原则,或者特定方法,这些设计
14、和应用程序被认为是存在的,或者享有某种建立或维护TCP/IP网络时需要考虑的期望特征。1.1.3 TCP/IP标准组织通过前面两节,我们了解了TCP/IP的起源、发展历史以及标准制定的过程,本节将简要介绍TCP/IP标准制定过程中涉及到的各种组织,并对它们的作用进行介绍。(1)Internet协会(ISOC)ISOC(Internet协会)是各种Internet委员会和任务团体的母公司。它是非盈利性、非政府的、国际的、专业的会员机构。它通过会员会费、公司赞助和几个政府偶尔支持来筹集基金。如果读者想更多地了解关于ISOC的信息,可以访问它的网站,网址为http:/www.isoc.org。(2)
15、IAB(Internet体系结构委员会)IAB(Internet体系结构委员会)即Internet活动委员会,是制定标准的机构和处理前及未来Internet技术、协议和进程的体系结构,以及称为RFC(请求注解)的文档的编辑监控,RFC用于描述Internet标准等内容。如果读者想获得更多的信息,可以访问它的网站,网址为http:/www.iab.org。(3)Internet工程任务组(IETF)Internet工程任务组(IETF)是通过它下属的多个工作组负责起草、测试、建议和维护官方Internet标准的组织。IETF和IAB通过被准确描述为“严格一致”的过程来创建Internet标准。这
16、意味着标准制定过程中的所有参与者必须在标准提出、起草或者赞同之前大致达成一致。有时候这种一致要求的确很严格。如果读者想获得更多的信息,可以访问它的网站,网址为http:/www.ietf.org。(4)Internet研究任务组织(IRTF)Internet研究任务组织(IRTF)负责ISOC的更多发送查看活动,并且研究和发展太深远或者不切实际的、无法立即实现的主题,但是这些主题在某天可能(或者不可能)会在Internet上发挥作用。如果读者想获得更多的信息,可以访问它的网站,网址为http:/www.irtf.org。(5)Internet协会论坛(ISDF)Internet协会论坛(ISD
17、F)研究如何使Internet成为推动社会发展和变革的力量。这个论坛的目的是向所有人介绍Internet的有效性和可用性,而不管社会和经济环境。读者可以从ISOC网站查阅相关的信息。(6)Internet命名及赋号公司(ICANN)Internet命名及赋号公司(ICANN)是一个非盈利性的国际组织,负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名以及国家和地区顶级域名系统的管理、以及根服务器系统的管理。访问ICANN的主页http:/www.iann.org可以查阅更多 信息。1.1.4 TCP/IP的特性与应用对于一个使用电子邮件或浏览网页的普通用户来说,无需透彻了解T
18、CP/IP这个协议。但对于TCP/IP程序设计人员和网络管理人员来说,下列TCP/IP特性却是不能忽 略的。(1)Connectionless Packet Delivery ServiceConnectionless Packet Delivery Service是其他网络服务的基础,几乎所有数据包交换网络都提供这种服务。TCP/IP是根据信息中所含的位置来进行数据传送的,它不能确保每个独立路由的数据包可靠和依序地到达目的地。在每一个连线过程中,线路都不是被“独占”的,而是直接映射到硬件位置上,因此特别有效。更重要的是,此种数据包交换方式的传送使得TCP/IP能适应各种不同的网络硬件设备。(
19、2)Reliable Stream Transport ServiceReliable Stream Transport Service因为数据包交换并不能确保每一个数据包的可靠性,因此我们就需要通信软件来自动侦测和修复传送过程中可能出现的错误以及处理不良的数据包。这种服务用来确保计算机程序之间能够建立连接、传送大量数据。关键的技术是将数据流进行切割,然后编号传送,再通过接收方的确认(Acknowledgement)来保证数据的完整性。(3)Network Technology IndependentNetwork Technology Independent在数据包交换技术中,TCP/IP是
20、独立于硬件之上的。TCP/IP有自己的一套数据包规则和定义,能应用在不同的网络之上。(4)Universal InterconnectionUniversal Interconnection只要用TCP/IP连接网络,就将获得一个独一无二的识别位址。数据包在交换的过程中是以位置为依据的,不管数据包所经过的路由选择如何,数据都能被送达指定的位址。(5)End-to-End AcknowledgementsTCP/IP的确认模式是以“端到端”进行的。这样就无需理会数据包交换过程中所参与的其他设备,发送端和接收端能相互确认才是我们所关心的。(6)Application Protocol Standa
21、rdsTCP/IP除了提供基础的传送服务,还提供许多一般应用标准,让程序设计人员更有标准可依,而且也节省了许多不必要的重复开发。正是由于TCP/IP具备了以上有利特性,才使得它在众多的网络连接协议中脱颖而出,成为大家喜爱和愿意遵守的标准。TCP/IP可以用在任何互联网络上的通信,其可行性在许多地方都已经得到证实,包括家庭、校园、公司以及全球各个国家实验室。这些技术的应用让所有与网络相连的研究人员能够共同分享数据和研究成果。网络证明了TCP/IP的可行性和整合性,使之能适应各种不同的现行网络技术。TCP/IP协议不仅成功地连接了不同网络,而且许多应用程序和概念也是完全以TCP/IP 协议为基础发
22、展出来的,从而让不同的厂商能够忽略硬件结构开发出共同的应用程序。例如,今天应用广泛的WWW、E-mail、FTP、DNS服务等。1.1.5 互联网的地址互联网上的每个接口必须有唯一的Internet地址(也称为IP地址),长度为32位(IPv4,最新版本IPv6长度为128位)。Internet地址并不是采用平面形式的地址空间,而是具有一定结构的,图1-1显示了5类不同的地址格式。5类互联网地址这些32位的地址通常写成4个十进制的数,其中每个整数对应一个字节。这种表示方法称做“点分十进制表示法(Dotted Decimal Notation)”。区分各类地址的最简单方法是看它的第一个十进制整数
23、。表1-1列出了各类地址的起止范围,其中第一个十进制整数用加黑字体表示。各类IP地址类型范围类型范围A0.0.0.0到127.255.255.255D224.0.0.0到239.255.255.255B128.0.0.0到191.255.255.255E240.0.0.0到247.255.255.255C192.0.0.0到223.255.255.255需要再次指出的是,多接口主机具有多个IP地址,其中每个接口都对应一个IP 地址。由于互联网上的每个接口必须有唯一的IP地址,因此必须要有一个管理机构为接入互联网的网络分配IP地址。这个管理机构就是互联网络信息中心(Internet Networ
24、k Information Center),称做InterNIC。InterNIC只分配网络号,主机号的分配由系统管理员来负责。Internet注册服务(IP地址和DNS域名)过去由NIC来负责,其网络地址是nic.ddn.mil。1993年4月1日,InterNIC成立。现在,NIC只负责处理美国国防数据网的注册请求,所有其他Internet用户注册请求均由InterNIC负责处理,其网址是。InterNIC由3部分组成:注册服务()、目录和数据库服务()以及信息服务()。IP地址分为3类:单播地址(目的端为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的
25、所有主机)。具体内容将在本书其他章节详细介绍。1.1.6 域名系统尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名。在TCP/IP领域中,域名系统(DNS)是一个分布式的数据库,由它来提供IP地址和主机名之间的映射信息。现在,我们必须理解,任何应用程序都可以调用一个标准的库函数来查看给定名称的主机IP地址。类似地,系统还提供一个逆函数给定主机的IP地址,查看它所对应的主机名。大多数使用主机名作为参数的应用程序也可以把IP地址作为参数。1.1.7 封装当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层
26、对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图1-2所示,TCP传给IP的数据单元称做TCP消息段或简称为TCP段(TCP Segment)。IP传给网络接口层的数据单元称做IP数据报(IP Datagram)。通过以太网传输的比特流称做帧(Frame)。图1-2中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。以太网数据帧的物理特性是其长度必须在461500字节之间。在后面的章节中我们将详细讨论这些帧头的具体含义。准确地说,图1-2中IP和网络接口层之间传送的数据单元应该是数据包(Packet)。分组既可以是一个IP数据报,也可以是IP数据报的一个片(Fragm
27、ent)。UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称做UDP数据报,而且UDP的首部长为8字节。由于TCP、UDP、ICMP和IGMP都向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此,IP在首部中存入一个长度为8位的数值,称做协议域。1表示ICMP协议,2表示IGMP协议,6表示TCP协议,17表示UDP协议。 数据进入协议栈时的封装过程类似地,许多应用程序都可以使用TCP或UDP来传送数据。传输层协议在生成消息首部时要存入一个应用程序的标识符。TCP和UDP都用一个16位的端口号来表示不同的应用程序。TCP和UDP把源端口号
28、和目的端口号分别放入消息首部中。网络接口要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16位的帧类型域。1.1.8 分用当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的消息首部。每层协议都要去检查消息首部中的协议标识,以确定接收数据的上层协议。这个过程称做分用(Demultiplexing),图1-3显示了该过程。为协议ICMP和IGMP定位是一件很棘手的事情。在这里将它们放在IP层的上面,这是因为ICMP和IGMP消息都被封装在IP数据报中。对于ARP和R
29、ARP,我们把它们放在以太网设备驱动程序的上方,这是因为它们和数据报一样,都有各自的以太网数据帧类型。当然,这些分层协议并不都是完美的。当进一步描述TCP的细节时,我们将看到协议是通过目的端口号、源IP地址和源端口号进行解包的。 以太网数据帧的分用过程1.2 TCP/IP体系结构模型TCP/IP协议簇由其中两个最重要的协议而得名:传输控制协议(Transmission ControlProtocol,TCP)和网际协议(Internet Protocol,IP)。它还有一个鲜为人知的名字叫做网际协议簇(Internet Protocol Suite),这是官方的Internet标准文档中使用的
30、术语。在本书中,用更通用、更简短的术语TCP/IP来表示整个协议簇。1.2.1 网络互联设计TCP/IP的主要目标是建立网络间的一种互相连接,这也叫做互联网络(Internetwork)或者互联网(Internet),它们提供了异构物理网络上统一的通信服务。显然,这种互联网络使不同网络上相距甚远的主机间通信成为问题。Internet由如下几个网络群构成。q 主干网 大型网络,主要用来互联其他网络。当前,主干网有美国的NSFNET、欧洲的EBONE,以及大型商业主干网。q 区域网络 例如,连接大专院校的区域网络。q 局域网 为用户提供主干网访问服务的商业网络,以及商业机构内部使用的已经与Inte
31、rnet连接的网络。q 局域网 诸如大学校园网等。在大多数情况下,网络的规模受限于它能够容纳的用户数、网络能够覆盖的最大地理距离及网络在某种环境下的可用性。例如,以太网(Ethernet Network)内在地受限于分布距离。因此,以某种分级结构或者以某种有组织的方式把大量网络连接在一起的能力,使得这个互联网络中的任意两台主机间的通信成为可能。图1-4表示了两个互联网的例子,其中每个互联网例子由两个或者多个物理网络构成。 互联网例子TCP/IP网络互联的另一个重要特征是,为每种网络提供通信机制的标准化抽象。每种物理网络都有与本身的技术相关的接口,并以编程接口的形式提供基本通信功能(原语)。TC
32、P/IP提供了物理网络的编程接口与用户应用之间的通信服务。TCP/IP为这些应用提供了一种通用接口,并且不依赖于基础物理网络。因此,物理网络的体系结构对于用户是透明的,对于应用的开发者也是透明的。应用只要用标准化通信抽象的代码,就能够在任意一种物理网络和操作平台上正常工作。从图1-4中可以明显地看出,为了能够把两个网络互相连接在一起,需要一台同时与两个网络相连的计算机,它把数据包从一个网络转发到另一个网络。这种计算机就是所谓的路由器(Router)。有时也使用术语IP路由器(IP Router),因为路由功能是TCP/IP协议簇中网际协议的一部分。为了能够标识互联网络中的主机,每台主机都被分配
33、了一个地址,这个地址称为IP地址。如果一台主机有多个网络适配器(接口),诸如路由器等,那么每个接口都有唯一的IP地址。IP地址包括两部分:IP地址 = IP地址的网络号部分标识互联网中的网络,它由中央授权机构分配,在整个互联网 中是唯一的。分配IP地址中主机号部分的授权机构隶属于控制网络号所标识的网络的 公司。1.2.2 TCP/IP工作模型TCP/IP能够应用在不同的网络中,这就要求有一套大家都遵守的标准来保证彼此沟通。数据通信领域的技术实在太广泛了,没有任何一位计算机专家能够熟悉全部内容,因此必须有一套公认而且通用的参考架构以理清各项标准。在了解TCP/IP协议之前,必须先了解一个公认的网
34、络模型,即由International Standardization Organization(ISO)于1978年开始开发的一套标准架构:Reference Model for Open System Interconnection(OSI)模型。OSI常被引用来说明数据通信协议的结构及功能,已经被通信界广泛使用。OSI把数据通信的各种功能分为7个层级,各司其职,但又相互依存合作。在功能上,它们又可以被划分为以下两组。网络群组:由物理层数据链路层和网络层组成。使用者群组:由传输层会话层表示层和应用层组成。各个协议层的排列关系如下:7 应用层6 表示层5 会话层4 传输层3 网络层2 数据链
35、路层1 物理层其中高层(7、6、5、4层)定义了应用程序的功能,下面3层(3、2、1层)主要面向通过网络的端到端的数据流。1.2.3 TCP/IP协议层与大多数的网络软件一样,TCP/IP按层来建模。这种分层表示导出了术语协议栈(Protocol Stack),即协议簇中各层的堆栈。协议栈可以用来比较TCP/IP协议簇与其他协议的不同(但不能在功能上进行比较),诸如与系统网络体系结构(System Network Architecture,SNA)和开放式系统互联(Open System Interconnection,OSI)模型的不同。通过这个协议栈不能轻而易举地实现功能比较,因为不同协议
36、簇使用的分层模型有着基本的差异。通过把通信软件划分为多层,协议栈允许工作分工、易于实现和现代测试,以及开发额外的层实现能力。各层通过简单的接口与其上下层进行通信。在通信方面,各层为它的直接上层提供服务,使用它的直接下层所提供的服务。例如,IP层提供了把数据从一个主机传送到另一个主机的能力,但是它不能保证可靠的传输。像TCP那样的传输协议使用这种服务为应用提供了可靠、有序的数据流传输。图1-5表示了TCP/IP协议的4层模型。 TCP/IP协议栈TCP/IP协议的4层模型如下所述。(1)应用层应用层由使用TCP/IP进行通信的程序所提供。一个应用就是一个用户进程,它通常与其他主机上的另一个进程合
37、作(在一个单独的主机中的应用通信也有好处)。应用层的协议如Telnet和FTP(File Transfer Protocol,文件传输协议)。应用层和传输层之间的接口由端口号和套接字(Socket)所定义。(2)传输层传输层提供了端到端的数据传输,把数据从一个应用传输到它的远程对等实体。传输层可以同时支持多个应用。最常用的传输层协议是传输控制协议(Transmission Control Protocol,TCP),它提供了面向连接的可靠的数据传送、重复数据抑制、拥塞控制以及流量控制。另一种传输层协议是用户数据报协议(User Datagram Protocol,UDP),它提供了一种无连接的
38、、不可靠的、尽力传送(Best-effort)的服务。因此,如果用户需要,使用UDP作为传输协议的应用就必须提供各自的端到端的完整性、流量控制和拥塞控制。通常,对于那些需要快速传输的机制并能容忍某些数据丢失的应用,可以使用UDP。(3)网络层网络层(Internet Layer)提供了互联网的“虚拟网络”镜像(这一层屏蔽了更高层协议,使它们不受互联网络层下面的物理网络体系结构的影响)。网际协议(Internet Protocol,IP)是这一层中最重要的协议。它是一种无连接的协议,不负责下层的传输可靠性。IP不提供可靠性、流控制或者错误恢复,这些功能必须由更高层提供。IP提供了路由功能,它试图
39、把发送的消息传输到目的端。IP网络中的消息单位为IP数据报,这是TCP/IP网络上传输的基本信息单位。互联网络层的其他协议有IP、ICMP、IGMP、ARP以及RARP。(4)网络接口层网络接口层也叫做链路层(Link Layer)或者数据链路层(Data-link Layer),是实际网络硬件的接口。这个接口既有可能提供可靠的传输,也有可能不提供可靠的传输;并且既可以是面向消息的传输,也可以是面向流的传输。实际上,TCP/IP没有在这一层规定任何协议,但是几乎可以使用任何一种可用的网络接口,这就体现了IP层的灵活性。例如,IEEE 802.2、X.25(本身是可靠的)、ATM、FDDI,以及
40、SNA等。TCP/IP规范本身既没有描述任何网络协议,也没有标准化任何网络层协议;它们(TCP/IP规范)只是标准化了从互联网络访问那些协议的方法。详细的分层模型如图1-6所示。 详细的体系结构模型1.2.4 TCP/IP应用TCP/IP协议栈中的最高层协议是应用协议,它们与互联网上的其他主机通信,并且是TCP/IP协议簇中用户可见的接口。所有应用协议都有如下一些共同特征。(1)既可以是用户编写的应用,也可以是TCP/IP产品所带的标准应用。实际上,TCP/IP协议簇包含如下一些协议。q Telnet,用于通过终端交互式访问互联网上的远程主机。q 文件传输协议(File Transfer Pr
41、otocol,FTP),用于高速的磁盘到磁盘的文件 传输。q 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP),作为互联网的邮件系统。这些都是广泛实施的应用协议,当然还有许多其他应用程序。每种特定的TCP/IP实现都会包含一个或大或小的应用协议集。(2)它们使用UDP或者TCP作为传输机制。UDP是不可靠的传输,并且没有提供流量控制,因此,在这种情况下,应用本身必须提供错误恢复、流量控制以及拥塞控制等功能。在TCP上建立应用往往会容易一些,因为它是一种可靠的、面向连接的、不容易拥塞的、具有流量控制功能的协议。因此,大多数应用协议使用TCP,但是也有建立在
42、UDP上的应用,它们通过减少协议的系统开销来实现更佳的性能。(3)大多数应用使用客户/服务器(Client/Server)交互模型。应用程序通常使用客户/服务器模型进行通信,如图1-7所示。 客户/服务器应用模式服务器是为互联网用户提供服务的应用程序;而客户是服务的请求者(Requester)。应用程序包括服务器部分和客户部分,这两部分既可以在相同的系统上运行,也可以在不同的系统上运行。用户通常调用应用程序的客户部分,构建特定服务的请求,并用TCP/IP作为传输工具把这个请求发送到应用的服务部分。服务器接收请求、执行客户请求的服务,并在一个应答(Reply)中发回结果。服务器往往能够同时处理多
43、个请求和多个发请求的客户(Requesting Client)。大多数服务器在一个熟知(Well-known)端口上等待请求,因此,客户知道必须把请求发送到哪个端口(进而知道是哪个应用)。客户通常使用一个称为临时端口(Ephemeral Port)的任意端口进行通信。如果客户要求与没有使用熟知端口的服务器进行通信,则客户必须使用另一个机制以获悉必须发往请求的端口。这种机制可以利用诸如端口映射那样的注册服务,而这种服务确定使用了一种熟知端口。1.2.5 网桥、路由器和网关访问其他网络有许多种方法。在互联网中,网络之间的访问用路由器实现。在本节中,我们将区分路由器(Router)、网桥(Bridg
44、e)和网关(Gateway)在允许远程网络访问方面存在的差异。1网桥在网桥接口层上互联LAN网段,并在这些LAN网段之间转发帧。网桥执行MAC中继功能,并且不依赖于任一更高的协议(包括逻辑链路协议)。如果需要,它还可以提供MAC层的协议转换。通常认为网桥对于IP是透明的。也就是说,当IP主机把一个IP数据报发送到通过网桥连接的网络上的另一个主机上时,它直接把数据报发送给主机,而数据报在发送IP主机不知情的情况下“越过”网桥。2路由器在互联网络层上互联网络,并在这些网络之间发送消息。路由器必须理解与它所支持的网络协议相关联的编址结构,并确定是否转发消息以及如何转发。路由器能够选择最佳的传输路径和
45、最优的消息大小。基本路由功能在TCP/IP协议栈的IP层实现,因此,从理论上讲以及从现在的大多数TCP/IP实现上看,有多个接口运行TCP/IP的任何主机或者工作站都能够转发IP数据报。然而,与IP实现的最小功能相比,专用路由器提供了更加完善的路由功能。因为IP提供了基本的路由功能,所以也经常使用术语“IP路由器(IP Router)”。其他关于路由器的旧术语有“IP网关(IP Gateway)”、“Internet网关(Internet Gateway)”以及“网关(Gateway)”。现在,术语网关一般用于比互联网络层更高的协议层上的连接。通常认为路由器对于IP是可见的。也就是说,当主机把
46、一个IP数据报发送到通过路由器连接的网络上的另一个主机上时,它把数据报发送到路由器,以便路由器把报文转发到目的主机。3网关在比网桥和路由器更高的层上互联网络。网关通常支持从一个网络到另一个网络的地址映射,并且还可以提供环境间的数据传输以支持端到端的应用连接。网关通常把两个网络的互联性限制在这两个网络都支持的应用协议的一个子集内。例如,运行TCP/IP的VM主机可以用作SMTP/RSCS邮件网关。通常认为网关对于IP是不透明的。也就是说,主机不能通过网关发送IP数据报;主机只能把数据报发送到网关。然后,使用网关的另一端所用的网络体系结构,由网关把数据报所携带的高层协议信息传递下去。与路由器和网关
47、密切相关的一个概念是防火墙(Firewall),或者说防火墙网关(Firewall Gateway),它从安全角度出发限制从Internet或者某些不受信任的网络访问有一个机构控制的一个或者一组网络。1.3 TCP/IP现状随着互联网的不断扩大,TCP/IP网络互联技术也发展迅速。由ARPANET最初设计的用于连接各个网络的通信技术,到今天在网络中扮演关键角色,这个过程中经历了很多阶段。本节将介绍TCP/IP发展过程中的典型应用及发展状况。1.3.1 ARPANETARPANET是互联网的始祖。由美国国防部高级研究计划署设计开发,ARPANET在洛杉矶的加利福尼亚州大学洛杉矶分校、加州大学圣巴
48、巴拉分校、斯坦福大学、犹他州大学四所大学的4台大型计算机采用分组交换技术,通过专门的接口信号处理机和专门的通信线路相互连接。起初是为了便于这些学校之间互相共享资源而开发的。ARPANET采用了包交换机制。70年代协议成功扩大了数据包的体积,进而组成了互联网。1986年,美国国家科学基金会(National Science Foundation,NSF)利用ARPAnet发展出来的IP通信技术,在5个科研教育服务超级电脑中心的基础上建立了NSFnet广域网。由于美国国家科学基金会的鼓励和资助,很多大学、政府资助的研究机构甚至私营的研究机构纷纷把自己的局域网并入NSFnet中。那时,ARPAnet的军用部分已脱离母