摘要:在地域分布很远、很分散,以致于无法用直接连接来接入局域网的场合,广域网(WAN)通过专用的或交换式的连接把计算机连接起来。这种广域连接可以是通过公众网建立的,也可以是通过服务于某个专门部门的专用网建立起来。
6.3 广域网协议
在地域分布很远、很分散,以致于无法用直接连接来接入局域网的场合,广域网(WAN)通过专用的或交换式的连接把计算机连接起来。这种广域连接可以是通过公众网建立的,也可以是通过服务于某个专门部门的专用网建立起来。
相对来说,广域网显得比较错综复杂,主要用于广域传输的协议比较多:PPP(点对点协议)、DDN、ISDN(综合业务数字网)、X.25、FR(帧中继)、ATM(异步传输模式)、等。下面就逐一作个简要的叙述,以便大家更好地了解和选择广域网协议。
6.3.1 PPP点对点协议
PPP点对点协议主要用于“拔号上网”这种广域连接模式。一般来说,一些无法使用专门的网络线连接的双方(比如说家庭用户、移动用户)需要广域相连接的时候,就可以借助分布最广的公用交换电话网来实现。
图6-8 “拔号上网”示意图
正如图所示,终端通过调制解调器的调制,将要传输的数字信号调制成模拟信号然后通过模拟的PSTN线路传输到目的地。要说明的是图中的笔记本电脑虽然没有画出调制解调器,但并不是说它就不需要。而是考虑到现在市场上的笔记本一般是内置了调制解调器的原因而故意作的调整。
让我们来想想,平时我们要浏览互联网上的网页的时候,首先就是通过调制解调器连接到电话线上,然后将在远方服务器的内容通过电话线传送到自己的计算机中来。或者,当大家要发送电子邮件的时候,就将写好的电子邮件从电话线中传送出去。
另外,两个不同城市的两台计算机要互相传送数据,也可以通过装在两台计算机上调制解调器,让其中一台呼叫另一台(拔打它的电话号码)而建立点对点的连接而实现。
迄今为止,拔号上网还是绝大多数的家庭用户和小型办公室用户广域连接的一种最常用的手段。但是因为通过的是模拟线路,所以传输速度较慢。
6.3.2 DDN数字专线
我国邮电部于1994年10月完成了全国数字数据骨干网的一期建议。这个网络是利用光纤、数字微波或卫星数字数字交驻连接设备组成的数字数据业务网。这些数字线路用于出租给最终用户。
由于当我们使用PPP协议拔号上网的时候,发送、接收数据所通过的电话线路是不明确的,根据当时线路的拥塞情况不同而不同。所以它的传输是低速且不稳定的。
而某些用户需要更高的传输速度和质量,就可以租用DDN线路来实现。租用了DDN线路,就等于在用户与电信局端直接用一条定制带宽的专用电话线路相连,显然这能大大提高整个数据传输的稳定性和速度。这项业务开通后,受到了用户的广泛好评,并且广泛的采用。
在DDN的客户端需要一个称为DDN MODEM的CSU/DSU设备,以及一个路由器,它的价格与DDN线路的带宽相关,一般来说开通一个DDN客户端的费用在1.5万元左右。
6.3.3 ISDN综合业务数字网
ISDN经历了一个极为漫长的“进化”过程。假如你常看一些网络界的时报,你一定不会在10年之前就对它有所耳闻。在它出现的时候,远程通信界的专家们都声称它是未来的公共电话、电信接口。但是它的不够经济却严重的阻碍了它的广泛应用。
在这个世纪弥留之际,ISDN终于迅速发展起来。中国电信用了一个形象的名字“一线通”描述出了它的特点:ISDN将数据、声音、视频信号集成进一根数字电话线路,提供了有效经济的途径,将用户与高带宽数字服务相连。
ISDN可分为N-ISDN(窄带ISDN)和B-ISDN(宽带ISDN)两种。
其中常用于家庭及小型办公室的是N-ISDN,它提供的基本速率接口(BRI)服务由2个B信道和1个D信道组成(2B+D),其中B信道为64Kbps,D信道为16Kbps。
而B-ISDN提供的主要速率接口(PRI)则根据不同的国家而有尽相同。在北美、日本为23个速率为64Kbps的B信道和1个速率也为64Kbps的D信道,总速率为1.544Mbps,即23B+D。而在欧洲、澳洲及其它国家,一般则是由30个速率为64Kbps的B信道和1个速率也为64Kbps的D信道构成,总的接口速率可达到2.048Mbps,也就是30B+D。
下面我们介绍一下N-ISDN所需要的硬件设备,以及其连接方式。
图6-9 使用NT1连接
NT1是一种ISDN的网络终端设备,一般是ISDN的服务提供商来安装,它有三个端口,一个是电话线路的接入端口,用它与服务提供商的局端连接。另一边,它对用户提供了两个数字接口,由于普通电话无法直接使用数据信号,所以无法直接与它连接,而只有数字电话才能直接连接到NT1上。而计算机要与NT1相连,还必须在计算机上插上一个ISDN适配卡(它与MODEM相似),然后用一根双绞线将它们连接在一起。
假如用户需要直接将模拟设备连接在ISDN线路上,则需要另一个设备——TA。下图阐述了使用TA连接ISDN的方法。
图6-10 使用TA连接
如图所示,首先用双绞线将TA连接到NT1上。计算机则是通过串口电缆与TA连接的,而TA提供了许多模拟接口,所以传真机、普通电话(模拟电话)可以直接连接到TA上。
ISDN逐渐成为替代“拔号上网”的新的一种广域连接的方式。但虽然ISDN在速度上毫不逊色于DDN专线,但是ISDN也与拔号上网一样,它的传输信道不是专有的,所以它没有DDN专线那样稳定。另外,ISDN对电话线路的要求也要高于拔号上网,所以在某些地方,ISDN的发展速度缓慢。
6.3.4 X.25
X.25是历史最悠久的广域数据传输协议。尽管它是所有广域数据传输协议的鼻祖,而且也曾经为广域传输做出了很大的贡献,然而现在它似乎已经走到了尽头,X.25的应用越来越少见了。但由于许多新的协议是从它的基础上衍生出来的,所以我们先回顾一下这个早先的协议。
X.25是一个基于分组的、面向连接的传输协议。在X.25网络中,要传送的数据首先被分割成为许多小的可以各自寻址的数据分组,然后将它们传送到目标站。到了目标站,分组再重新组装成为原始的数据。这个用来分割、寻址和重新组装分组的设备称作PDA(分组组装/拆装器),如图所示:X.25网络中的站点由它来连接。
图6-11 X.25网络连接示意图
由于历史原因,X.25在设计时,网络的传输出错率较高。所以整个设计充分考虑到了可靠性和数据完整性方面。X.25网络通过一个复杂的数据分组确认和差错校验过程来实现。它要求每个分组通过的每个节点都对接收到的数据进行确认。
下图说明了它的慢条斯理的分组转发过程。它是将整个分组全部收完后,再转发。
图6-12 X.25网络分组转发示意图
正是由于它将一大部分的带宽用在了这样的差错校验,所以它成为了一个相对低速的协议,而且现在网络的传输质量越来越好,在差错校验上花太大的力量将是得不偿失的,所以X.25也就越来越不适应现在的网络环境。人们开始朝着更新的协议迈进。
但请一定不要忘记,X.25协议可以在网络传输环境不好的情况下提供较好的传输质量,这就是它的要点。
6.3.5 FR帧中继
作为X.25网络协议的发展,帧中继是一种高性能的广域网协议。它是X.25的一个简化版本,它省去了X.25的一些强健的功能,如提供窗口技术和数据重发功能,这是因为帧中继的设计是基于网络的传输环境已经有了很大的提高的前提下。
1990年,Cisco、Digital Equipment、Northern Telecom和StartaCom等公司组成一个联合体,共同开发了帧中继技术。此后,帧中继技术有了迅猛发展。
从整个连接上,帧中继与X.25相当类似。但它在数据分组确认和差错校验方法作了很大的简化,而且分组的转发也有了改变。帧中继只要接到分组头,就开始转发,这样进一步提高了速度。
但是,需要强调的是,帧中继在网络环境不好的情况下,将无法象X.25那样提供较好的传输质量,而且可能会使用传输质量急剧下降。
6.3.6 ATM异步传输模式
ATM,是这几年兴起的一种宽带网络技术。许多业界人士都认为ATM技术给计算机网络带来巨大的革新。甚至有些商家认为它是这10年来最有意义的网络技术。
1.ATM技术的优缺点
虽然我们在这里将ATM技术划在广域网部分来介绍,但ATM却是一种可以将局域网功能、广域网功能、语音、视频和数据集成进一个统一的协议设计。正是它的高度统一性和良好的可扩展性,给计算机网络技术掀开了新的一页。它具有以下特点:
1) 速度:ATM支持高达622Mbps的传输率;
2) 可扩展性:ATM答应在现存结构中增加带宽和端口密度;
3) 高传输质量QoS:它保证了传输服务的QoS,这也是一般网络技术所不具备的;
4) 一体化安装:ATM提供了端到端解决方案的潜力,这意昧着它的应用可以从桌面到局域网,一直延伸到广域网。
但是ATM绝不能统治未来的网络世界!
1) 随着时间的推移,ATM的速度已不再是神话,千兆以太网的速度已经超过了ATM;
2) ATM技术上还不能很好地支持语音业务,这也是它的一个局限;
3) ATM技术与原有的网络设备不兼容,这就意味着假如采用了ATM技术,则原有的网络投资将付诸东流;
4) 随着对网络QoS的重视,各种IP OVER技术兴起,在一定程度上解决了这方面的需求,而且很好地保护了现有的网络投资,所以谁将笑在最后现在还无法下定论。
2.ATM技术适用的范围
1) 由于ATM技术提供了基于专用带宽的设计和数据优先级设计,使得它非凡适合多媒体和视频应用;
2) ATM技术具有良好的扩展能力以及高性能的网络传输能力,适合构架骨干网;
3) ATM具有高性能的无缝地集成广域网和局域网的能力,所以被广泛地应用于广域网建设中。
3.ATM技术不适用的领域
1) 由于它的成本较高,所以不适合于小网络;
2) 在需要保留不同类型的传统网络协议的网络中,采用AYM技术也是不适合的。
6.4 Internet网络协议
在前面的章节中,我们学习了许多局域网和广域网的协议和技术,现在我们一起来探讨一个在计算机通信发展中出现的解决新的需求而衍生出来的技术——一个用来把多个物理网络连成一个巨大统一的通信系统的网络互联技术。
那么为什么需要将构建在不同协议上的物理网络连接成一个统一的通信系统呢?这是因为,每个网络技术被设计成符合一特定的限制。例如,局域网技术被设计用于在短距离内提供高速通信,而广域网技术则被设计用于在大的范围内提供通信。因而,没有任何一种网络技术对所有的需求来说都是最好的选择。所以,计算机网络的建设都是因地制宜,选择最适合的网络技术来构建最高效率的网络。而当人们需要在这些五花八门的网络之间进行通信的时候,就产生了网络互联的需要。
在70年代中期,美国高级国防研究项目署(DAPRA)为了建立一个适应战争的连通全国军部的大型网络APRANET,就掀开了这种异种网络互联的先河。为了完成这个网络的建设,DAPRA投入了大量的人力物力,最后在许多大学的参与下,制定了一系列的协议,并且高效地完成了网络互联的任务。这一系列的协议就是闻名的TCP/IP协议。
TCP/IP协议是当今世界上最流行的开放系统协议集。它正在支撑着Internet(国际互联网)的正常运转。下面我们一起来看看TCP/IP协议集的组成:
应用层、表示层、会话层:FTP TELNETSMTP HTTPSNMP
传输层:TCP UDP
网络层:ICMP IP 路由选择协议
数据链路层:ARP RARP
物理层:任意
下面我们就一起来看看,它们是如何协作而将各种异构的网络互联起来,提供一个统一的通信体系结构的。
6.4.1 IP及相关协议
由于各种网络协议主要是定义了“物理层”和“数据链路层”。要让这些在最低两层不同的网络能够形成一个统一的通信大网,则必须在更高的一层——网络层得到统一。
相对应的,IP协议(Internet Protocol)就是运行在网络层上,为实现这样的功能而设计的。它为这个统一的大网规定了地址访问信息及一系列相关的信息。它是整个TCP/IP协议集的最核心协议之一。
1. IP地址
为了让连接在整个大网上的主机能够相互通信,IP协议给每一台主机分配一个唯一的地址,这个地址就叫IP地址。
1) IP地址格式
IP地址的长度为32位,它分为网络号和主机号两部分。网络号标识一个网络同,一般网络号由互联网络信息中心(InterNIC)统一分配。主机号用来标识网络中的一个主机,它一般由网络中的治理员来具体分配。
一个由32位二进制数构成的IP地址是什么冗长,难以阅读的。为了平时更好的记忆和使用,人们就将它分成4组,每组8位,然后每组都以十进制表示,并用小圆点分开。这种表示方法又称为“点分十进制表示法”。例如:
IP地址: 11001010011001010110100101000010
分成4组: 11001010 01100101 01101001 01000010
用十进制表示: 202 101 105 66
用小点隔开: 202 . 101 . 105 . 66
这样我们就得到了点分用十进制表示的IP地址:202.101.105.66
2) IP地址的分类
将IP地址分成了网络号和主机号两部分,设计者们就必须决定每部分包含多少位。网络号部分包含几位就直接决定了整个互联网可以为多少个网络分配IP地址;同样的主机号部分包含几位也直接决定了所包含网络中最大的主机数。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明地选择了一种灵活的方案:将IP地址窨划分成不同的类别,每一类具有不同的网络号位数和主机号位数。正如下图所示,IP地址的前四位用来决定地址所属的类别:
6-13 IP地址分类
需要注重的是,在IP地址中,全0代表的网络,全1代表的是广播。举个例子来说:假设一个单位的IP地址是202.101.105.66,那么它所在的网络则有202.101.105.0来表示,而202.101.105.255(8位全为1转成十进制为255)则代表向整个网络广播的地址。另外,127.0.0.1被保留作为本机回送地址。
以上的设计贯彻了灵活的原则,给IP地址带来了很好的实用性。举个例子来说,象IBM这样的大企业,可能拥有上十万台的主机,则可以分配一个A类地址来满足它;而对一些只有不上千台主机的用户,只要分配一个C类地址给它就行了,这样也就很好地避免了分配给它的IP地址过多而造成IP地址浪费的情况。
下面我们一起来看看每一类地址,比较一下它们的异同,以便大家在申请IP地址的时候有的放矢,根据实际使用情况选择最适合的IP地址类别。
A类地址 B类地址 C类地址 D类地址 E类地址
地址格式 N.H.H.H N.N.H.H N.N.N.H N/A N/A
适用范围 大的组织 中型组织 小型组织 多目广播 保留
高位数字 0 10 110 1110 1111
地址范围 1.0.0.0到126.0.0.0 128.1.0.0到191.254.0.0 192.0.1.0到223.225.254.0 224.0.0.0到239.255.255.255 240.0.0.0到254.255.255.255
网络/主机位 7/24 14/15 22/8 N/A N/A
最大主机数 16777214 65543 254 N/A N/A
表6-7 IP地址类别对照表
3) 子网掩码
子网掩码是相对非凡的IP地址而言的,假如脱离了IP地址就毫无意义。它的出现一般是跟着一个特定的IP地址,用来为计算这个IP地址中的网络号部分和主机号部分提供依据,换句话说,就是在写一个IP地址后,再指明哪些是网络号部分,哪些是主机号部分。
子网掩码的格式与IP地址相同,对应的网络号部分用1填上,主机号部分用0填上。例如:一个B类地址:172.16.3.4,为了直观地告诉大家前16位是网络号,后16位是主机号,就可以附上子网掩码:255.255.0.0(11111111 11111111 00000000 00000000)。
4) 子网连网
虽然这种两级编址体系给TCP/IP协议带来了勃勃生气,但是它是基于每个地点只有一网络的假定而设计的,因为每个地点或组织只需要一个与互联网的连接。但时这种假定随着时间的过去而逐渐成为错误,情况已经不是这样了,许多组织希望多个子网甚至是每个子网都与互联网相连接。就象下图所示:
图6-14 每个地点有多个网络要连接到互联网而破坏了原来的设想
假如按原来的设计,要解决这种情况,就必须为另一个网络再申请一个网络地址。但是这样的话,一个新的问题就衍生了。比如说,上图的两个网络是同属一个组织,而现在要同时接入互联网。假设左边的一个LAN有50个主机,我们得为它申请一个C类地址,而右边一个LAN有60个主机,我们又得为它再申请一个C类地址。其实,这两个LAN的主机总数也还用不完一个C类地址。这样就造成了严重的IP地址浪费。
而且这种情况又发生在连接到互联网的主机急剧上升,使得原先设计的IP地址显得极为紧张,已经离不够分配的日子不远的时候。一方面,地址不够用,另一方面,地址又在浪费,这个矛盾在彻底解决IP地址不足的问题之前,必须有一个良好的过渡方法,否则它必将加剧恶化的速度。这时也就出现了许多解决问题的方法。其中一种就叫“子网连网”。
子网连网,出自RFC950的定义。它的主要思想就是将IP地址划分成三个部分:
。网络号部分
。子网号部分
。主机号部分
也就是说,将原先的IP地址的主机号部分分成子网号和主机号两部分。说到底,也就是利用主机号部分继续划分子网。子网可以用“子网掩码”来识别。
例如,我们可以将一个C类地址进行划分子网。也就是:
0 8 16 24 26 31
网 络 号 子网 主机号
将最后8位——原来的主机号,拿出两位用来表示子网,则可以产生两个子网(01和10,由于00代表网络,11代表广播不能用来表示具体的网络),每个子网可包含62个主机(000001 –111110,同样的000000代表网络,111111代表广播被保留)。这样,只要将这两个子网分别赋给图6-14中的左、右两个LAN,问题也就迎刃而解了。值得一提的是,这个时候,子网掩码就不是255.255.255.0(11111111 11111111 11111111 00000000),而应该是255.255.255.192(11111111 11111111 11111111 11000000)。
下面我们一起来看一看,一个C类地址,可以怎样来划分子网以及划分子网后的情况。
表示子网号的位数 划分后的子网掩码 可用子网地址数 子网可用主机数
2位 255.255.255.192 2 62
3位 255.255.255.224 6 30
4位 255.255.255.240 14 14
5位 255.255.255.248 30 6
6位 255.255.255.252 62 2
表6-8 C类地址空间子网划分一览表
大家在从C类地址中划分子网的时候就可以参照这个表来进行。
5) VLSM 可变长子网掩码
虽然子网连网是对互联网的编址的一个有价值的补充,但是它还存在着一个不足:那就是子网一经选定,网络地址将被限制在一个固定的范围内。
假设有一个这样的案例:一个组织有几个相对大的子网,每个子网包括了25台左右的计算机;而又有一些相对较小的子网,每个子网大概只有几台计算机。这种情况下,假如我们采用了子网连网的策略,可以将一个C类地址分成6个子网(每个子网可以包含30台计算机),这样解决了很大的问题。但是出现了一个新的情况,那就是大的子网基本上完全利用了IP地址范围,但是小的子网却造成了许多IP地址的浪费。
为了解决这个新的难题,避免任何的可能避免的IP浪费,就出现了答应应用不同大小的子网掩码来对IP地址空间进行子网划分的解决方案。这种新的方案就叫作可变长子网掩码VLSM。
VLSM用一个十分直观的方法来表示,那就是在IP地址后面加上“/网络号及子网络号编址比特数”来表示。例如:193.168.125.0/27,就表示前27位表示网络号。
6) Ipv6
现在的IP协议的版本号为4,所以也称之为Ipv4。它已经有了20年漫长的历史,为计算机网络互联作出了巨大的贡献。然而,互联网以人们不可想象的速度在膨胀,Ipv4不论从地址空间上,还是协议的可用性上都无法满足互联网的新要求。这样一个新的IP协议开始孕育而生,这个新版本IP协议,早先被称为IPng,现在一般被叫作Ipv6。
Ipv6的设计要点在于克服Ipv4的地址短缺,无法适应对时间敏感的通信等缺点。值得一说的是,Ipv6将原来的32比特地址扩展成为128位地址,彻底解决了地址缺乏的问题。然而,由于Ipv4的广泛使用,而且充当在重要的角色,一下子升级成新的协议是不大现实的,加上现在也出现了许多在Ipv4上的改良技术,也使用Ipv4能够应付现在的大部分网络互联要求。当然,随着时间的推移,新一代的IP协议将取代现有的Ipv4,为网络互联提供一个更稳定、更优秀的协议平台。
2. ARP地址解析协议
IP地址是由人为指定的,它并没有与硬件在物理上一对一联系起来。那么,如何将IP地址与硬件联系起来呢?我们都知道,每一台PC或每一个终端都有一个硬件地址(根据网络类型的不同而不同),只要我们用一种规则将IP地址与硬件地址相对应起来,而在数据链路层的一些设备已经具备使用一个特定的硬件地址进行通信的能力,那么IP地址也就与每一个通信实体一对一联系起来了。
我们将一台计算机的IP地址映射成相对应的硬件地址的过程叫地址解析(address resolution),相应地,这个解析过程的规范被称为地址解析协议(ARP,Address Resolution Protocol)。
在将协议地址(比如IP协议的地址——IP地址)翻译成硬件地址时,使用什么算法呢?不同的协议将采用不同的算法和方案。例如,将IP地址解析成以太网地址的方法与将IP地址解析为ATM地址的方法是不同。大致上可以使用以下三种算法:
1) 查表法(Table lookup)。将地址映射关系存在一个特定的表里,到时用查表的方法来实现地址间的转换;
2) 相近形式计算(Close-form computation)。在分配IP地址时就认真的根据情况挑选,使得每个网络节点的硬件地址可以由它的IP地址通过特定的布尔函数或数学函数计算得到;
3) 消息交换法(Message exchange)。网络各节点通过网络交换消息来完成地址解析,当一个节点发出地址解析请求消息后,同相对应的节点就发送一个带有硬件地址的回应消息。
这三种方法各具特色,下表总结了它们的特点:
特点 查表法 相近形式计算法 消息交换法
适用于任何硬件 Ö
地址变化影响所有主机 Ö
协议地址不依靠于硬件地址 Ö Ö
硬件地址必须小于协议地址 Ö
协议地址由硬件地址决定 Ö
需要硬件广播 Ö
给网络增加了通信量 Ö
最小的延迟时间产生解析结果 Ö Ö
实现比较复杂 Ö
表6-9 地址解析协议特点对比
在TCP/IP中,可以使用以上三种地址解析方法中的任何一种。为一个网络所选的方法依靠于网络底层硬件所使用的编址方案。查表法通常用于广域网,相近形式计算法常用于可配置网络,而消息交换法常用于静态编址的局域网。
正是由于查表法和相近形式计算机法的实现是相对简单的,所以ARP协议中并未对它们做非凡的规范,而是对最后一种——消息交换法作了明确的规范。
ARP协议定义了两类基本的消息:
1) 请求信息:包含自己的IP地址、硬件地址和请求解析的IP地址;
2) 应答信息:包含发来的IP地址和对应的硬件地址。
下面,我们看看ARP协议是怎样通过信息交换法来完成地址解析工作的:
图6-15 ARP地址解析过程示意图
1) 假设站点10.0.0.2要与站点10.0.0.4通信,但它并不知道10.0.0.4的硬件地址。
这时,站点10.0.0.2向整个网络发送一个广播——一个ARP地址解析请求。这个地址请求中包含自己的IP地址、硬件地址和请求解析的IP地址:10.0.0.4;
2) 当所有的站点收到来自站点10.0.0.2的地址解析请求广播后,对它要求解析的地址进行判定,看是不是要求解析的IP地址是不是自己的IP地址;
3)站点10.0.0.4判定要求解析的IP地址是自己的IP地址,就将自己的物理地址写在一个应答消息中,根据解析请求消息中的10.0.0.2的硬件地址发送给站点10.0.0.2;这样就完成了一次地址解析过程。
3. ICMP互联网控制消息协议
IP协议旬一种尽力传送的通信协议,也就意味着其中的数据报仍可能丢失、重复、延迟或乱序传递。所以IP协议需要一种尝试避免差错并在发生差错时报告的机制。
TCP/IP协议系列中包含了一个专门用于发送差错报文的协议,这个协议就叫作Internet控制报文协议ICMP(Internet Control Message Protocol),这一协议对一个完全标准的IP是不可或缺的。有趣的是,这两个协议是相互依靠的:IP在需要发送一个差错报文时要使用ICMP,而ICMP却也是利用IP来传送报文的。
ICMP定议了五种差错报文和四种信息报文。
1) 五种差错报文:
a. 源抑制:发送端的速度太快,以致于时网络速度跟不上时产生;
b. 超时:一个数据包在网络中传输的周期超过一个预定的值时产生;
c. 目的不可达:数据包的目的地无法到达时产生;
d. 重定向:当数据包路由改变时产生;
e. 要求分段:数据包经过的网段无法在一个包中容纳下整个数据包时产生。
2) 四种信息报文:
a. 回应请求
b. 回应应答
c. 地址屏蔽码请求
d. 地址屏蔽码应答
可以这么说,ICMP是让IP更加稳固、有效的一种“贤内助”,它使得IP传送机制变得更加可靠。而且利用ICMP还可以用于测试互联网,以得到一些有用的网络维护和排错的信息。例如闻名的ping工具就是利用ICMP报文和进行目标是否可达测试。
4. 其它协议简介
除了以上的协议,还包括了一些相关的协议来辅助完成整个IP传送工作。例如RAPR,反向地址解析协议,用来通过自己的IP来取得自己的硬件地址(主要用于无盘工作站向服务器取得自己的硬件地址)。
值得专门一提的就是路由选择协议,路由器是网络互联的重要设备,,但是由于路由技术是一门复杂的技术,也是相对较高级的技术内容。鉴于本书是介绍网络技术的基础性书籍,在此就不对路由选择协议进行深入的讲解,若读者有爱好可以查阅相关书籍。
6.4.2 传输控制协议TCP
TCP(Transmission Control Protocol),传输控制协议,是整个TCP/IP协议族中最重要的一个协议。它实现了一个看起来不太可能的事情:它在IP协议提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的数据传输服务。
程序员在编写应用程序的时候,总是有这样的一个假设,那就是认为计算机系统是可靠的。例如,在应用程序中要编写一个向某个输入输出设备(如打印机)发送数据时,应用会直接将数据写到设备上,而不去验证数据是否正确地到达设备。事实上,计算机系统的可靠性完全达到了这样的要求。
而假如网络是基于IP协议这样一个不可靠的传输服务的基础上,那么程序员就必须在代码中自己去验证数据是否正确到达了,这将造成一个不可想象的工作量增大。而TCP协议却有效地完成了这个工作,这样使用程序员在使用互联网资源时仍可以采用常规的技术,完全不必却担心可靠性问题。
TCP协议是怎样实现可靠性的呢?这可是一个十分复杂的问题。但说到底,最重要的是TCP采用了一个叫重发(retransmission)的技术。具体来说,就是TCP发送数据时,发送方通过一种重发方案来被偿包的丢失,而且通信双方都要参与。在TCP传输过程中,发送方启动一个定时器,然后将数据包发出,当接收方收到了这个信息就给发送方一个确认(acknowledgement)。而假如发送方在定时器到点之前没收到这个确认,就重新发送这个数据包。下面是一个TCP重发的示意图:
图6-16 TCP重发示意图
TCP的重发方案是它获得成功的要害,因为它处理了在一个任意互联网上的及答应多个应用程序并发地进行通信。例如,一个应用能够通过卫星频道向另一个国家的某台计算机发送数据。与此同时,另一个应用正通过局域网向隔壁房间的某台计算机发送数据。TCP必须预备为任何一个连接中出现的丢失消息进行重发。并且由于一个局域网中TCP不应该在重发之前等待过久。然而,对一个长距离的卫星连接来说,就应该有更长的重发等待时间。相对应的,TCP分门别类地对不同链路进行了不同的处理,以适应它们的特点。
总的来说,传输控制协议(TCP)作为TCP/IP协议族中最主要的协议之一,它为应用程序直接提供了一个可靠的、可流控的、全双工的流传输服务。在请求TCP建立一个连接之后,一个应用程序能使用这一连接发送和接收数据。TCP确保它们按序无错传递。最终,当两个应用结束使用一个连接时,它们请求终止连接。
除此之外,由于一个互联网迅速随着时间推移而不断变化,因此TCP的重发超时必须具有适应性。在具体实现中,TCP协议是使用了缓冲、流控、窗口和拥塞控制等一系列机制来实现。有趣的读者可以专门阅读关于这方面的文献。
6.4.3 用户数据报协议UDP
与TCP协议相对应的是UDP(User Datagram Protocol),用户数据报协议。UDP是一个简单的协议,它并没有显著地增加IP层的功能和语义。这为应用程序提供了一个不可靠、无连接的分组传输服务服务。因此,UDP传输协议的报文可能会出现丢失、重复、延迟以及乱序的错误,使用UDP进行通信的程序就必须负责处理这些问题。换句话说,就是采用UDP传输协议其实就无法避免前一上节提到的无可思议的工作量增加。
既然UDP有这样的缺点,那么它为什么还有存在的必要呢?其实,世界上有许多问题都是十分矛盾的,TCP协议虽然提供了一个可靠的数据传输服务,但是它是以牺牲通信量来实现的。也就是说,为以完成一个同样的任务,TCP会需要更多的时间和通信量。这在网络不可靠的时候,牺牲一些时间换来可靠是值得的,但当网络十分可靠的情况下,TCP又成为了浪费带宽的“罪魁祸首”,这时UDP则以十分小的通信量浪费占据优势。
另外,在某些情况下,每个数据的传输可靠性并不是十分重要,重要的却是整个网络的传输速度。例如语音传输,假如其中的一个包丢失了,重发也没有,因为这个语音数据已经是失效的,谁能想象一个你先听到一分钟后的话音,再听到一分钟前的话音的通信。
所以,UDP的存在是顺应一些特定的数据传输需要的。
6.4.4 高层协议
TCP与IP协议为计算机网络提供了一个端到端通信的能力。而计算机网络的价值并不在计算机网络的本身而是构建在它上面的各种各样的应用系统。
计算机网络的广泛应用,人们也已经有了许多相同的基本的应用需求。为了让不同平台的计算机能够通过计算机网络获得一些基本的相同的服务,也就应运而生了一系列应用级的标准,实现这些应用的标准的专用协议被称为应用级协议,相对于OSI参考模型来说,它们处于较高的层次结构,所以也称为高层协议。
下面我们一起来看一些广泛应用的协议。
1. DNS域名服务
在用TCP/IP协议族架设的网络中,每一个节点都有一个唯一的IP地址,用来作为它们唯一的标志。然而,假如让使用者来记住这些毫无记忆规律的IP地址将是不可想象的。人们就需要一种有记忆规律的字符串来作为唯一标记节点的名字。
然而,虽然符号名对于人来说是极为方便的,但是在计算机上实现却不是那么方便的。为了解决这个需求,应运而生了一个域名服务系统DNS,它运行在TCP协议之上,负责将字符名——域名转换成实际相对应的IP地址。这样,它就在不改变底层协议的寻址方法的基础上为使用者提供一个直接使用符号名来确定主机的平台。经过了十余年的发展完善,DNS已经成为了一套成熟的机制,广泛地应用于Internet,为成千上万的人服务。
1) 域名的组织结构
在域名的组织上,每台计算机的域名由一系列用“.”隔开的字母或数据构成的段组成。
例如厦门市电信局的Web服务器的域名为:www.xm.fj.cn。域名是有层次的,域名中最重要的部分位于最右边。最左边的段是单台计算机的名字。其它段则逐层标识所属的组织。
一个域名可以由几个段组成,它们是怎样被赋值的呢?由InterNIC(域名分配机构)规定最高域的选择方法,然后由逐层的组织自己确定剩下的部分。
表6-10 域名组织结构
域名 应用于
com 商业组织
edu 教育结构
gov 政府组织
mil 军事组织
net 主要网络支持中心
org 上述以外的组织
arpa 临时ARPA域
int 国际组织
国家代码 国家
比如说,上面举过的一个例子:www.xm.fj.cn,首先,InterNIC已经将CN给中国使用了,中国由CNNIC来分配CN下的所有域名,接着福建省则向CNNIC申请了FJ这一级域名,CNNIC已将FJ下的所有域名的分配权下放给福建省使用,厦门市属于福建省,则它得到了一个xm.fj.cn的域名。而电信局则将www.xm.fj.cn用于命名它的Web服务器(关于Web服务下一小节中,将具体阐述)。要说明的一点是,域名是不区分大小写。
除了以上讲述的名字语法规则和治理机构的设立,域名系统中还包括一个高效、可靠、通用的分布式系统用于名字到地址的映射。将域名映射到IP地址的机制由若干个为称为名字服务器(name server)的独立、协作的系统组成。要理解域名服务器的工作原理最简单的方法就是将它们放置在与命名等级对应的树形结构中,如下图所示。
图6-17 名字服务器分布情况
树的根是识别顶层域的服务器。在下一级的一组服务器都可为顶层域提供回答结果。而这一级的服务器知道哪一个服务器可解析它所在域下的某个子域。在树的第三级,名字服务器为子域提供回答结果。这种概念树继续在子域定义的每一级都有一个服务器。
上面抽象的一段,也许说得大家是云里来雾里去了,下面我们就举个实际的例子来说明。比如有一台连接在互联网上的一台计算机要寻找www.xm.fj.cn这台服务器,但不知道它的IP地址。这时:
a. 它首先将这个域名解析请求发给根服务器;
b. 根服务器接到解析请求后,根据域名而向子域.cn服务器提问;
c. .cn服务器将向子域fj服务器提问;
d. fj服务器将向子域 xm服务器提问;
e. xm服务器将结果告诉fj服务器,依次上传至根服务器;
f. 最后,根服务器将解析结果回答给域名解析请求方。
当然,这是一种最基本的概念模型,假如现在还完全按这种方法的话,巨大数量的主机名将使得根服务器陷入无限繁忙,而造成解析服务的失效。这时域名系统则采用了象高速缓冲等一系列的新技术在此基础上改善了整个解析效率。在此就不再详述。
2. WWW万维网服务
提到互联网的使用,就一定会联想到大名鼎鼎的万维网服务(WWW,World Wide Web)。它是一个大规模、在线式的信息储藏所,用户可以通过一个被称为浏览器的交互式应用程序来查找他所要的信息。
从技术上说,WWW是一个支持交互式访问的分布式超媒体系统。超媒体系统直接扩充了传统的超文本系统。在这两个系统中,信息被作为一个文档集而存储起来,除了基本的信息外,还包含有指向集中其它文档的。
WEB文档用超文本排版语言(Html)来撰写。除了文本外,文档还包括指定文档版面与格式的标签。在页面中可以包含图形、音频、视频等各种多媒体信息。
可以这么说,WEB服务已经成为一种最佳的信息发布媒体,在许多闻名的人士都熟悉到它的重要性,甚至可以认为,WEB服务是继报纸、广播、电视之后的新一代媒体。而且它以它独有的快捷有效、传播范围广的特征席卷全球。
3. E-Mail电子邮件服务
作为当今互联网中最大的应用的E-MAIL服务,最初是被设计为传统的办公室备忘录的简单扩展。像办公室备忘录一样,电子邮件信息由一个人创建,副本发送给其他人。也像办公室备忘录一样,电子邮件被设计成既方便,又不比普通通信开销大。
功能强大、使用简单的E-MAIL服务受到了大家的好评,以致于许多用户在发送电子邮件到远地网点或从远地网点接收到电子邮件成为他们熟悉计算机网络的第一步。
整个电子邮件系统主要是由那些遍布在各地的E-MAIL服务器来提供的。举个例子,我在厦门申请了一个E-MAIL帐户,我就获得了一个E-MAIL地址和在厦门E-MAIL服务器上一个暂存硬盘邮件的空间。而我的朋友则在广州申请了一个E-MAIL帐户,同时它也就获得了一个E-MAIL地址和在广州E-MAIL服务器上的一个暂存邮件的硬盘空间。这样我们之间就可以用电子邮件来交流了。当我给朋友发电子邮件的时候,就象传统寄信的方法一样,先在收件人上写上他的地址,当然这里是E-MAIL地址。然后写完正文,就可以利用网络给他发送出去了。这封电子邮件首先从我的电脑发到厦门的E-MAIL服务器,然后,厦门的E-MAIL服务器根据收件人的E-MAIL地址,将这封信原样发送给广州的E-MAIL服务器。这时我的朋友有没有开机的话都没有关系,因为这封发给他的电子邮件已经存在广州E-MAIL服务器中属于他的空间里,他随时可以从广州E-MAIL服务器中收到我给他的电子邮件。
现在,许多公司、团体甚至个人都已经架设了自己的邮件服务器,也就是自己开了一个电子“邮局”。这样,电子邮件更是人们相互交流的好工具了。加上新近出现的一些E-MAIL转传呼,E-MAIL传手机等一系列服务,必将把电子邮件服务推到更多人的面前。电子邮件将成为人们相互沟通时不可缺少的一种工具。
说了这么多,举个E-MAIL地址给大家看一看:xufeng@xminfoport.com,整个E-MAIL地址由两部分组成,中间用一个“@“符分隔开。前一个部分是用户的名字,后一个部分是E-MAIL服务器的名字。如本例:xufeng就是代表我的用户名,xminfoport.com就是我在的公司的域名。这个E-MAIL就是我所在公司给我分配的。有空给我发E-MAIL吧!
4. FTP文件传输服务
在网络出现以前,当人们需要在不同的计算机之间进行数据传输的时候,唯一可以借助的工具是诸如磁带、磁盘之类的磁介质。在一台计算机中将数据写入磁介质,然后将磁介质人为地拿到另一台计算机,再将其中的数据来。假如是长距离的交换,还需要将这个磁介质通过邮寄等方式来传送。当人们使用网络来传输数据的时候,才觉得这种方法是多少的低效。
现在在Internet上使用最广泛的文件传输协议(FTP,File Transfer Protocol)。FTP答应传输任意文件,并且答应文件具有所有权与访问权限。(也就是说,你可以指定哪些人能访问你的哪些文件,甚至不能访问)还有一个很重要的功能就是,它答应你在IBM PC与Macintosh之间进行文件传输,这是一个多么激动人心的事呀!
基于FTP协议,你可以架设一台专门供人们上传或下载文件的FTP文件服务器,你还可以根据这些文件的性质来对不同用户进行授权:将一些你认为可以公开的内容开放给一些匿名用户(也就是任何人),将一些不可以公开的内容,根据你的实际情况给具备有用户名和密码字的用户。
文件传输服务提供了将整个文件副本从一台计算机传送到另一台计算机的功能,它日益成为许多计算机用户应用程序交流的好方法。正在这个原因,FTP服务也是一种应用极为广泛服务之一。TCP/IP协议族中包括两种文件传输服务:FTP和TFTP。FTP功能更强,它支持面向命令的交互界面,从而答应用户列。另外,TFTP是使用UDP协议进行实际的数据传输,而FTP则是使用TCP协议进行实际的数据传输。
5. TELNET远程登录服务
在TCP/IP协议族中还包括了一个简单远程终端协议——TELNET。TELNET答应某个网点上的用户与另一个网点上的登录服务器(提供TELNET服务的服务器)建立TCP连接。TELNET然后将用户键盘上的键入直接传递到远地计算机,似乎用户是在连远地机器的本地键盘上操作一样。TELNET也将远地机器的输出送回到用户屏幕上。这种服务称为“透明”服务,因为它给人的感觉似乎用户键盘和显示器是直接连在远地机器上的一样。
图6-18 TELNET远程终端协议原理图
TELNET服务广泛应用于远程维护中,它使得维护一台远地的机器并不一定要在机器的面前,而是只要通过网络,用TELNET远程登录进行相应的维护工作,当然有时这也成为了网络安全中的一个缺口。
6.5 小结
在本文中,笔者简单地对网络协议作了一个全局的、轻描淡写的叙述,就洋洋洒洒2万多字的篇幅。这也正是意味着计算机网络协议的复杂性,现在在全世界也的确有着许多成功应用的协议,而且随着计算机网络的不断发展,还会有许多新兴在协议出现。而网络协议又是一个十分核心的内容。所以,有志于在计算机网络领域发展的读者可得有功啊!
而且,上面介绍的所有网络协议都是源于美国,所以他们在网络技术上处于绝对领先的地位,我们在学习这些技术的同时,应该基于创新的思想去学习。也许有一天,中国人制定的网络协议也获得广泛的应用。进入讨论组讨论。