打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Internet的基本工作原理(菜鳥版)
从本质来讲,Internet只是一个计算机网络。中国的计算机工作者和爱好者对计算机网络已经不很陌生。目前,大一点的公司,政府机构都有了单位内部小范围的计算机网络,这种小范围的计算机网络通常为称为“局域网”。局域网的作用,无非是通过通信线路把多台计算机联通起来,使网上的计算机可以相互通讯。这样,就能达到共享资源的目的。在单机的情况下,每台计算机的操作者只能利用自己计算机的资源(主要是计算机的储存能力和运算能力),这样,一方面信息共享只能通过软盘拷贝来实现,效率很低,另一方面,由于单台计算机储存能力及运算能力的限制,大一点的数据库就放不下,复杂一点的运算也很难进行。有了局域网(一间房间内或一座大楼内的计算机所连的网络)之后,人们可以在网上安装一些容量特别大,计算能力特别强的计算机,把需要共享的资源放入这些计算机中,把复杂的运算也交由这些计算机执行。这样,网上的每一个用户无形中都极大地扩展了自己计算机的能力和运算能力,可以完成很多单机环境下无法完成的功能。
  Internet与局域网的工作原理完全相同。不过,由于规模的不同,其作用就产生了从量变到质变的飞跃。局域网通常只联接十几台,最多不超过百余台的计算机。这样,信息的沟通和资源的共享只能在有限的计算机之间进行;而Internet联接全球150多个国家、1000多万台计算机,信息的沟通和资源的共享就能够在世界范围进行。换一种方式去说,连上局域网后,您只能使用一百多台计算机信息资源,只能和单位内部的几百人、几千人进行沟通,而联上Internet后,您却能使用世界范围的1000多万台计算机中的信息资源,与不同文化背景、不同地理位置的6000多万人进行沟通,其作用显然大得多。用公路作比喻,局域网只是村子里的小街,Internet才是四通八达的高速公路。
由于Internet的巨大规模,要使Internet正常运作,必然要解决一些局域网根本不用考虑的问题。
  1)局域网通常只分布在一两栋大楼里,这样,架网就非常简单。通常,自己拉上一些同轴电缆或普通的电话线(双绞线)把各台计算机联接起来即可,费用也不会太大。 Internet因为要联接世界范围的计算机,而且通常要飘洋过海,因此架网就需要非常庞大的投资,网络的架设也要根据距离与地理环境的不同而采取不同的结构,有些地段可能采用光纤,有些地段可能采用微波,另一些地段则可能采用卫星信道。通常,这样庞大的架网的工程都由邮电部门或大型的电话电报公司承担,当最终用户要联接Internet时,只要向邮电部门或这些电话电报公司租用线路就可以了。
  2)局域网通常只联接同一种类的计算机,在同种计算机之间的相互通信通常比较容易实现。虽然也有不少的局域网操作系统吹嘘可运行于不同的计算机平台,但那毕竟不是必需品,而仅是锦上添花。 Internet则不同。 Internet由于太大,上面的计算机可谓五花八门,因此从一开始就必须考虑不同计算机之间的通信。在不同类型的计算机之间进行通信,就像讲中文与讲英文的人之间进行对话一样,存在着很大困难。幸好,人们己创造了TCP/IP协议,并使该协议成为Internet中的“世界语”,任何遵守TCP/IP协议的计算机都能“读懂”另一台遵守同一组协议的计算机发来的信息。
  TCP/IP的工作原理其实非常简单。TCP/IP中较底层的是IP协议,该协议指定了所要传输的信息包的结构,它要求计算机把将要发送的信息分解为一个个较短的信息包,每个信息包除含有一定长度的正文外,还含有信息包将被送往的地址(这个地址称为P地址,它实际上是一组32位的二进制数字)。信息包经多台计算机的中转最终到达它的目的地。
  由于较长的信息内容经P协议被分解为多个小信息包,每个信息包、达目的地的中转路径及所需的时间都不尽相同,为防止信息包丢失,有必要IP协议的上层增加一个对IP包进行验错的方法,这就是TCP协议。TCP协议检验一条信息的所有IP小包是否都已经收齐。次序是否正确,若有哪个信息小包还没有收到,则要求发送方重发这个信息小包,若各个信息小包到达的次序出现混乱,则进行重排。
  下面就详细介绍Internet基本工作原理,懂得计算机网络是如何工作很重要,因为这些理论可以解释为什么Internet能够提供那么多有用的服务项目。

分组交换---Internet 工作原理之一

共享传输线路

  计算机网络通常不是在通信的每两台计算机之间联接一条专用的线路,相反,网络系统中的多台计算机共享底层的硬件设备。就像我们使用的电话系统一样,每一家电话只有两根线,一个进一个出,而不是在每两个有电话的地方都连上两根线,这种共享是出于经济的考虑:多台设备共享一条传输线路降低了成本。因为这样可以只使用少量的线路和少量的交换设备。所以,共享传输路径(线路)的优点是可以节约资金。
  共享传输路径并不是一个新的思想,而且也不局限于计算机网络。例如,打电话,当有一个人给你打电话时,电话局的交换设备就把你和他之间的线路连通,这时如果有另一个人再打进电话时,他就会听到忙音,第二个人必须等到第一个人挂断电话后才能打进来,也就是说,此时第一个打进电话来的人独占了你的电话线路,同一时间这条线路只能提供给一个人使用,从而影响了别人的使用。所以,共享传输线路的缺点是在时间上产生了延迟。

解决共享线路延迟的方法
(1)有线电视的方法
  工程人员已经设计了几种方案来解决共享资源的问题。有线电视系统就采用了其中的一种方案。有线电视台在一根同轴导线(相当一条能并排行走50辆卡车的高速公路)上将多个频道的节目(每个频道的节目相当于一辆卡车)传送到每个家庭。每个频道(相当于卡车)都被指定唯一的频率(相当于给每辆卡车编号),该频道的该种频率的载波信号被调制后作为编码信息(相当于把这条很宽的高速公路划分为平行的50条行车道)。然后有线电视台将所有频道编码后的信号混在一起在一条电缆上传送(相当于把卡车按照它们的编号并排放在相应的行车道上同时向前行驶)。
  电视机中有按照不同频率分离接收信号的电子电路。任何时候,电视观众都可以将电视调到某一特定的频道(相当于选中某…辆卡车)。电视机将电缆传送来的选定的频道中的信号分离出来并将它在屏幕上播放出来(相当于把这辆卡车上的货物卸下),而将其他频道的信号丢弃。
(2)轮流共享的方法
  尽管建立这样一种计算机网络技术,就是使用多个频道在共享线路上将多个信号混这一起是可能的,但绝大多数网络技术并不这样做、一个主要原因是大多数通讯线路(相当于村庄里的小街道)都不像有线电视的同轴导线那么宽(相当一条能并排行走50辆卡车的高速公路)(行话叫做频带的带宽),所以不能采用和有线电视相同的方法来解决线路的延迟问题。恰恰相反,他们使用的是一种与有线电视完全不同的技术,那就是同一时间只允许一台计算”机访问网络上的共享资源。正如我们在前面电话的例子中所看到的,但如何防止一台计算机由于长时间地任意占用共享线路而导致其他计算机都要等候很长的时间呢?为了使网络中的计算机都不需要等候很长的时间,有人想出了一个解决办法,那就是让网络中每一台计算机每次只能传送一定的数据量。
  这种分割总量、轮流服务的规则就叫做分组交换。分组交换的思想是在60年代提出的,每次所能传送数据的单位称为一个分组(就是前面提到的信息小包)。

分组交换的优点一一避免了延迟
  目前计算机网络,无沦是LAN(局域网)还是WAN(广域网),都使用分组交换技术。为了说明为什么分组交换可以避免延迟,请看下面的例子:
  假设有三台计算机A,B,C分别要从网中获得的数据量是80, 40和100字,那么网络在给这三台计算机传送数据时,并不是先为A或B 或C传完后再传给另两台传,而是规定每一次的传输量,比如每次传20字,那么实际的传送过程是:

计算机代号 A B C A B C A B C A B C A B
每次传输量[字] 20 20 20 20 20 20 20 20   20 20     20
累计传输量[字] 20 20 20 40 40 40 60 60 40 80 80 40 80 100

  这种设计使得A,B,C三台计算机所等待的时间都是最合理的。
  计算机很容易将数据分成数据片。如果A需要发送一个长的信息到C,计算机将这一信息分成许多分组,如果日有一个短的信息要发送给D,那么该信息可能单独一个分组或几个分组就可容纳下。在A发送了一个分组之后,B可以发送它自己的分组。这样,B无需等到A发送完所有的分组就有机会发送自己的分组。结果,短的信息无需等待长信息发送结束后才发送。

必须给每个分组套上一个信封

  网络上的每个分组(记住每个分组就是一个片数据)都是从一台计算机发送到另一台计算机的。网络中的硬件设备监视着流过网络的各个分组。一旦硬件设备检测到该分组是传送给本地计算机的,则立即捕获这一分组。硬件设备将该分组拷贝到计算机的内存中,并通知计算机有一个分组到达,为了使网络硬件能够区分不同的分组,每个分组都具有同样的格式,每个分组的开始都包括一个头,其后才是数据,可以把分组头认为是一个标签,该标签指明该分组是由哪一台计算机发送来的,该由哪一台计算机接收。

每台计算机都有唯一的地址

  网络中的每台计算机都有一个唯一的号码,这个号码就叫做该计算机的地址。
  为了标识进行通信的两台计算机,每个分组开始的头部都包含两个重要的地址。发送该分组的计算机的地址(行话称为源地址)和该分组所到达的计算机的地址(行话称为目标地址),这有点和我们寄信用的信封差不多,信封上既要写上收信人的地址(相当于目标地址),还“要写上发信人的地址(相当于源地址)。网络硬件通常使用这些数字形式的地址来发送或接收分组。
  用于地址的号码与特定的网络技术有关,某些网络技术使用仅含少数几个数字的地址,而其他一些网络则使用多达16个数字的地址。最重要的是:联接到网络上的每台计算机都被指定…”个称为地址的号码。每个分组都包含发送分组的计算机的地址和发送到分组的计算机的地址。
  虽然分组交换技术对每个分组中的数据长度作了限制,但其允许发送方传输不超过最大长度的任何长度的分组。例如,有些网络应用允许用户通过键盘输入与远程系统交互,这类应用通常是当用户键盘上单击一个键后就立即将该键用一个分组发送出去。而要发送大量数据的其他应用则选择大一些的分组(相当于邮局所发的信件,小信件中只有一页信纸,大的信件中可能有几十页信纸)。

分组传输似乎无需等待

  在大多数分组交换网络中,分组传输得很快。例如,典型的局域网一秒钟内可在两台计算机之间传输1000个大的分组。传输小的分组所需时间比这还要小一些。对于人来说,在千分之几秒内发生的事件可认为是立即的。
例如,儿个人可以同时使用连到一·个共享网络上的多台计算机而感觉不到延迟的存在。当其中一人在一台远程计算机上运行字处理程序时,其他人可以访问远程的数据库。每个用户使用键盘输入,使用鼠标时,感觉到就好像程序在本地运行一样快。
总之,分组交换系统能够使多台计算机在一个共享网络上进行通信时具有最小的延迟。因为分组交换将每个会话分成小的分组并且使共享网络的计算机轮流发送分组。

网络共享是自动的

  分组交换技术允许任一计算机在任何时候都能发送数据。一台计算机可以在其他计算机准备好使用网络之前就发送分组。如果只有一台计算机需要使用网络,那么该合计算机可以连续发送分组。一旦另一台计算机准备开始发送数据,那么共享就开始了。两台计算机轮流发送,两台计算机公平地分亨网络。如果第三台计算机准备开始发送数据,那么三台计算机公平地分享网络。当一台计算机停止发送数据时网络会自动调整共享的策略。例如,如果三台计算机平等地分享网络,而其中一台的数据发送结束后,那么剩余的两台计算机轮流分享网络进行发送。
  更为重要的是,每台计算机并不需要知道同一时刻还有多少台计算机在使用网络,关键是,由于分组交换系统能够在有计算机准备发送数据和有计算机结束发送数据时立即进行的自动调整,因而每台计算机在任一给定的时刻都能够公平地分享网络。
  网络共享的自动调整是通过网络的接口硬件。也就是说,网络共享无需任何“计算”,也不需要各台计算机在开始使用网络之前进行协调。相反,任一计算机可以在任何时候产生分组。当一个分组就绪后,计算机的接口硬件开始等待,等轮到自己发送时,就把分组发送出去。因而,从计算机的角度来看,公平地使用共享网络是自动的——网络硬件处理所有的细节。

许多设备都可分组交换

  类似收款机、摄像机、条形码扫描器以及磁条阅读器的设备都可以联接到一个分组交换网上,打印机也可以联接到分组交换网上。由于一台网络打印机可供网络上的所有计算机共享,因而使用网络打印机可以降低成本,无需为每台计算机单独配备一台打印机。
  与大多数的计算机网络一样,Internet也是一个分组交换系统。 Internet的硬件包括供多个用户共享的物理线路,分组交换允许多台计算机之间同时进行通信,一个应用程序无需等到其他所有通信结束后才发送数据。结果是,任何时候,当用户通过Internet传输数据时,发送 方的网络软件将数据划分成分组,而接收方的网络软件则要把接收到的分组重新组装成数据。
  例如,要用Internet传送一个文本文件,该文本必须划分成若干小的信息包(就是分组),然后在接收端再重新组装成一个完整的文本。
  总而言之,在Internet上的所有数据都以分组的形式传送。发送方将信息或文本划分成分组后在Internet上传送,而接收方则将接收到的分组重新组装成原来的信息。同一时刻在Internet上流动着来自许多台计算机的分组。
  计算机网络用来保证各台计算机平等地使用共享网络资源的基本技术称为分组交换。数据在网络上传输之前必须划分为分组。每个分组中都包含指明该分组应传递到哪台计算机,分组的目的地用称为计算机地址的数字来指定。共享网络的计算机轮流发送分组。每次轮到发送时,一台计算机发送一个分组。

虚拟网络软件IP--Internet 工作原理之二

  上一节介绍了Intemet是一个计算机网络的网络或叫做网际网(把全世界各种各样的网络都联接到一起所形成的网络),那么Intemet是怎么把这些网络联接到一起的呢?
  Intenlet是用一种称为路由器的专用计算机将网络互联在一起的。当然,单纯将计算机硬件互联在一起并不能形成Intelnlet,互联的计算机还需要在软件的指挥下才能正常地工作。下面我们探讨使全世界这么多各种不同类型的网络互联成为Internet网所使用的最基本的协议——IP协议。

通信协议

  那么什么是通信协议呢?就是通信的双方在通信时所使用的约定。
  只有当两个人讲同一种语言时,这两人才有可能进行交流。这个道理对于计算机来说也同样是适用的——两台计算机除非使用一种语言,否则它们彼此之间是不能进行通信(交流)的。通信协议是两台计算机用来交换信息所使用的一种大家所公认的的规定。“协议”这一词是从外交词令中引用来的,在外交词令中,协议是指各国在外交事务中所应遵循的规则。
  计算机通信协议精确地定义了计算机在彼此通信时的所有细节,例如,协议规定了每台计算机所发送的每条信息的精确格式和含义。协议也规定每合计算机在哪些情况下应该发送特定的信息,以及当一个信息到来时,一台计算机应该做出怎样的反应等。

网与网之间的协议

  Internet中使用的一个关键协议是网与网之间的协议,也叫做网际协议IP(是InternetProtocol网际协议的英文缩写)。 IP非常详细地规定了计算机在通信时应该遵循的规则的全部具体细节。比如IP精确地定义了分组必须怎样组成、以及路由器必须怎样将每一个分组传送到它的目的地等。
  联接到Internet上的每台计算机都必须遵守网际协议IP的约定。每台计算机产生的分组都必须使用IP定义的格式。接收分组的计算机所接收到的分组只不过是发送方发来的一个拷贝(和原件一模一样,仍然是IP格式,原件在发送方电脑的硬盘里)。

每台机器上都必须装有IP软件

  计算机硬件是不懂得什么IP不IP的,因而将一台计算机联到Internet上并不意味着这台计算机就可以使用Internet的服务。计算机需要有IP软件以便把IP协议中的所有细节都“翻译”成计算机所能理解的0-1组合才能让计算机在IP软件的控制下在Internet上进行通信。实际上,使用Internet的每一台计算机都必须运行一套IP软件。
  IP是最基本的软件,所有Internet服务都使用IP来发送或接收分组。正因为IP是最基本的,所以通常每台计算机在通信时都必须使IP软件驻留在内存中,以便时刻准备发送或接收分组。
  总而言之,由于所有的Internet服务者要使用网际协议IP,因此要使用Internet的每台计算机首先必须运行IP软件。

IP为数据报

  为了区分Internet的分组和其他网络的分组,我们把遵守IP规范的分组称为IP数据报。之所以用这一术语是为了直观他说明在Internet上是如何处理分组的。正如该术语字面的意义,Internet用的是和电报局处理电报基本相同的方式处理数据报,一旦发送方准备好一个数据报(别忘了这里所说的数据报就是前面所讲过的分组或信息小包)并且将其发送到Internet上后,发送者就可以该干什么就干什么去了,正像发电报的人将电报发出去以后就可以处理其他事务一样。
  数据报在Internet上究竟如何传输已经与发送方无关了,正像电报在到达目的地的过程己与发报人无关一样。
  总之,在Internet中传输的每个分组必须符合网际协议定义的格式,Internet中的这些分组称为IP数据报。

Internet不是一个庞大的网络

  尽管定义了有关通信的许多具体细节,但网际协议IP的重要意义在于一旦Internet上的每台计算机都安装了IP软件,任何计算机都能够生成IP数据报并将其发送给其他计算机。从本质上来说,IP将许多网络和路由器编织成了一个大衣无缝的通信系统,表面看起来Internet就像一个单一的、巨大的网络一样在工作。
  计算机专家使用“虚拟”这一术语来描述这种看起来好象是、但实际上并不存在的现象。 Internet是一个地地道道的虚拟网络,它只不过是用IP协议(或IP软件)把全世界千千万万各种各样类型的计算机网络和路由器联接起来,使得它们彼此能够通信,就仿佛它们在同一个巨大的网络中一样。打一个比方,正如前面所举例,Internet好比是世界通用语言——英语,而分布在全世界的各个国家相当十全世界的各个网络,国家里的人相当于网络中的计算机。英语不等于人,人是客观存在的实体,而英语只是一种语言规定,有了英语,作为实体的人就可以进行交流了。
  总之, Internet就像一个联接好几百万台计算机的单一的网络一样运行。IP软件允许任何计算机向其他计算机发送IP数据报。

可靠传输软件TCP--Internet 工作原理之三

  上一节讲了网际协议IP,说明了计算机和路由器上的IP软件如何在Internet上将一个IP数据报从一台计算机向另一台计算机发送。下面继续讨论Internet的基本工作原理,讲解组成Internet的另一个重要的通信协议TCP。
  前面讨论了分组交换,分组交换是现代绝大多数计算机网络使用的基本技术。回想一下,分组交换允许多台计算机做到没有延迟地进行通信,因为分组交换要求计算机将数据划分成小的分组。对于Internet来说除了使用IP协议进行分组之外,还需要另外的通信软件来保证数据的何靠传输。
  为了说明这一问题,将每个网络都假想成一条道路,将每个路由器假想成联接两条道路的交叉路口,并且所有的道路都具有相同的速度限制(每秒钟能过5000个数据报)。假想路a和路b上每秒钟都分别开过来5000辆车,如果来自路a和路b的所有汽车都打算同时进入路人而路d每秒钟也只能通过5000辆车,那就要发生交通堵塞。
  来自两个网络的分组汇聚到第三个网络的情形与来自两条道路的汽车汇聚到第三条道路上的情形类似。
  在公路上,发生交通堵塞时,汽车会停下来,但在互联网络的例子中,数据报却以光速每秒30万公里飞奔,而不会停下来。每一秒钟,在一个网络上会有5000个分组,在另一个网络上,也会有5000个数据报,但只有5000个数据报能被送往其目的地。那么,每秒钟在网络d上挤不下的那5000个数据报到哪里去了呢?答案是路由器将它们给扔了!当然,每个路由器都有一定的内存空间,可以在临时堵塞时在内存中存放其中的一些数据报。然而,路由器只有有限的内存空间存放少量的数据报,如果数据报到达的一直比离开的多,那么,路由器将不得不将一部分到达的数据报丢弃直到堵塞解除为止。
  由于Internet使用可能的分组交换硬件会由于数据报而超载而无法正常工作,设计人员为了解决这一问题,他们发明了TCP协议(Transmission Control Protocol英文的意思是传输控制协议,TCP是英文的缩写)。
TCP协议的主要作用就是使Internet 工作得比较可靠…
  联接到Internet上的所有计算机都运行IP软件,并且其中的绝大多数还运行TCP软件。事实上,由于TCP和IP在Internet网络中的重要地位以及两者在一起工作得很好,因此人们把Internet中所使用的整个通信协议组称为TCP/IP协议组。
具体他说, TCP解决了在分组交换系统中有可能出现的几个问题。
  当路由器由于到达的数据报过多而引起超载的时候,它必须将一些数据报丢弃,结果,一个数据报在Internet上传输时就可能丢失了。 TCP将自动检测丢失的数据报并且解决这一问题。
  Internet结构复杂,每个数据报可以通过多条路径到达同一目的地。当路由器开始沿另外一条新的路径传送数据报,就好像高速公路上的汽车在前方出现问题时会绕道而行一样。结果由于路径的变化,一些数据报会和它们发送时不同的顺序到达目的地,TCP自动检测到来的数据报并且将它们按原来的顺序调整过来。
  有时,网络硬件故障也会导致重复地发送同一个数据报,结果,一个数据报的多个副本可能会到达目的地。 TCP将自动检测有没有重复的数据报发来,如果有,它只接受最先到达的数据报。
  总而言之,尽管IP软件使计算机能够发送和接收数据报,但IP并未解决数据报在传输过程中所有可能出现的问题,因此使用Internet的计算机还需要TCP软件来提供可靠的无差错的通信服务。

TCP提供计算机程序之间的联接

  从概念上来说,TCP就像人通过电话交谈一样提供计算机程序之间的交谈。一台计算机上的程序选定一个远程计算机并向它发出呼叫,请求和它联接(等于拨电话号码呼叫对方),被呼叫的远程计算机上的通信程序必须接受呼叫(等于对方答话),一旦联接建立,两个程序就能够相互发送数据(等于通过电话进行交谈)。最后,当程序结束运行时,双方终止会话(等于挂断电话)。当然,由于计算机以比人快得多的速度运行,因而,两个程序能够在千分之几秒内建立联接,交换少量数据,然后终止联接。
  总之, TCP软件使两台计算机上的程序通过Internet以类似于人打电话的方式进行通信成为可能。一旦两个程序建立了联接,那么它们可以在交换任意大小的数据后再结束通信。

恢复丢失的分组

  检测和丢弃重复的数据报是一个相对容易的任务。因为TCP在每个数据报中都有一个数据的标识,接收方可以用己收到的数据的标识与到来的数据报的标识进行比较,如果发现是重复的数据到来,接收方不予理睬)
而恢复丢失的数据报要困难一些。这种情况既不是发送数据报的源计算机产生的,也不是接收数据报的目标计算机产生的,怎么办呢?
TCP使用一种叫做时钟和确认的机制来解决这一问题。
  无论何时,当数据报到达最终目的地时,接收端上的TCP软件就向源计算机发送回一个确认信号(相当于收信的回执),告诉发送方哪些数据已经到达了。就这样,发送方使用确认机制来保证所有数据都能安全可靠地到达目的地。无论何时,当发送方准备发送数据报时,发送方计算机上的TCP软件就启动计算机内部的一个计时器来计算时间。计时器就像闹钟一样工作——如果数据报在指定的时间内没有到达(也就是发送方没有收到接收方在收到某个数据报时所返回的“回执”),计时器就认为这个数据报可能已经丢失了,于是它就发出一个信息通知TCP,要求重新发送这个数据报。如果数据报在指定的时间内到达目的地(也就是发送方在指定时间内收到接收方所返回的“回执”),TCP就取消这一计时器。

TCP自动进行重传

  许多计算机通信协议使用同样的机制:在发送数据的同时启动一个内部时钟,如果在时钟超时(或指定的时间)之前确认信息还没有到达,则重传数据。
  但由于TCP是在Internet上运行,因而其机制与其他协议所用的机制还有些区别。
  比如,如果接收方的目标计算机位于离发送方的源计算机比较近的地方(例如,在同一个大楼中),那么,TCP在重传数据报之前只等待一很短的时间,如果接收方的目标计算机位于离源计算机很远的地方(例如,在另外一个国家),则TCP在重传之前要等待较长的时间。怎么来确定离得近的发送方和离得远的发送方它们传送数据的指定时间(或超时期限)呢?一个数据报从远方传来花5秒钟到达可能是正常的,是没有超时的而从附近的计算机传来数据花1秒钟可能已经是不正常的,是超时的了。
  再比如,当网上传输量比较大的时候(就像上下班的高峰期交通比较拥挤一样)线路比较拥挤,数据到达的时间就会长一些,反之,线路比较空时,数据到达的时间就会短一些。
  这一切怎么确定呢?用户是不用操心的,也就是说,超时机制是完全是由TCP自动执行的——TCP将能够计算出在Internet网上某一个数据报传送路径的远近和网络传输的繁忙情况并自动调整超时值。
如果网上同时有许多计算机开始发送数据报而导致Internet的传输速度下降,TCP则增大在重传之前的等待时间。如果网上传输量减少了,数据报在Internet上的传输速度开始加快,TCP将自动减小超时值。经验表明,在庞大的Internet中,通信协议必须能自动修改超时值以便使数据传输的效率更高。
  TCP自动调整超时值的能力为Internet的成功做了很大贡献。事实上,Internet的大多数应用程序离开自动适应情况变化的TCP软件就无法运行。进一步而言,详细的测试和经验已经证明,TCP软件能够极好地适应Internet的变化——尽管许多计算机专家试图设计出比 TCP更好的机制,但迄今为止还没有人能够做到。

TCP和IP协同工作

  TCP和IP很好地协同工作并不是一个巧合。尽管这两个协议可以分开来使用,但他们是在同一时间作为一个系统的整体来设计的,并且在功能的实现上也是互相配合互相补充的。因此, TCP解决IP没有解决的问题,而不去重复IP的工作。用一句话来说,就是:联接到Internet上的计算机既需要TCP软件又需要IP软件。IP提供了一种将分组从源传送到目的地的方法,TCP解决诸如数据报丢失后的重发和重排数据报及数据报乱序到达等的问题,这是IP没有解决的问题。两者结合在一起,提供了一种在Internet上可靠传输数据的方法。
  总之:尽管IP软件提供了基本的Internet通信,但它没有解决出现的所有问题。像任何一个分组交换系统一样,如果有很多计算机在同一时刻同时发送数据,Internet可能会超出其流量限制。当计算机发送的数据报比Internet所能处理的数据报多时,路由器不得不丢弃到来
的某些数据报。
  IP软件不检测数据报丢失。为了处理这些通信问题,计算机必须使用TCP软件。 TCP去掉重复的数据,保证精确地按原发送顺序重新组装数据,并且在数据丢失时重发数据。
  解决数据丢失的问题特别困难,因为数据丢失可能在Internet的中间部分发生,即使这时靠近源和目标计算机的网络和路由器都没有出现问题。
  TCP使用确认和超时机制处理数据丢失的问题。如果确认信号在时钟超时期限之后到达,发送方将重传数据。TCP的超时机制在Internet上工作得很好,因为TCP自动根据目标计算机离源计算机的远近来修改超时值。

客户-服务器程序---Internet 工作原理之四

客户-服务器系统的基本概念

  客户-服务器系统(client/server system)是目前分布式网络普遍采用的一种技术,也是Internet所采用的最重要的技术之一。了解客户服务器系统的基本概念以及在Internet中的灵活应用对Internet用户来说颇为有益。
  大家知道、网络的一种基本用法是允许资源的共享。在许多时间里,这种共亨通过两个独立的程序来完成,分别运行在不同的计算机上。一个程序称为服务器程序(经常简称为服务器),提供特定的资源;另一个程序称为客户程序(经常简称为客户),用来使用资源。
  例如,用户在自己的PC机上运行一个字处理程序,他告诉该程序想要编辑一个网络上其他计算机上存放着的一个特定文件,则该程序向那台计算机发送一条消息,请求传送该文件。在这种情况下,字处理程序就是客户,而接受请求并发送文件的程序就是服务器。更确切他说,它是一台文件服务器。
  在局域网络中,硬件更易于说明问题,通常人们用“服务器”一词指运行服务器程序的那台计算机。
  在Internet上,通常看不到硬件,术语“客户机”和“服务器”一般指请求服务和提供服务的程序。这里有一个重要的例子:
  许多Internet地点提供一种称为“Gopher”的服务(后面我们将对此作详细讲解)。简单说来,Gopher让用户从菜单中选项,用户每次选择一项时,Gopher就完成指定的工作。例如,若你找到一条特定的信息(如“每日新闻”),则Gopher就会检索该信息并显示给用户。
  用户使用Gopher时,将涉及两个不同的程序。首先是提供界面的程序。该程序解释用户的击键,显示菜单,通常还确认用户的请求已被定义。该程序称为GOpher客户机。另一个程序是为Gopher客户机提供服务的,该程序称为Gopher服务器。
  这种客户,服务器系统的优点是客户机和服务器程序不必运行在同一计算机上。事实上多数情况下,客户机和服务器程序分别驻留在不同的计算机上。例如,用户可以坐在天津的一台计算机前面,使用Gopher阅读位于13000公里之外的美国一台计算机上的“每日新闻”。
在这种情况下,Gopher客户机是运行在PC上的程序,而Gopher服务器则是在美国某一地方的一台超级计算机上运行的程序。
  Internet所提供的服务都采用这种客户机/服务器的模式,所谓学习如何使用Internet实际上就是学习如何使用各种客户机程序。因此,为了使用某个Internet服务,用户必须理解:
(1)如何启动该项服务的客户机程序;
(2)如何把要使用的服务器的地址告诉客户机程序;
(3)掌握使用这种类型的客户机所必须掌握的命令。
  用户的工作是启动客户机并告知自己要做的工作,然后客户机程序把自己连到正确的服务器上,保证用户命令正确地完成。
  Internet的每类客户机有自己的命令和约定。例如,在Gopher客户机中使用的命令与Archie客户机的命令不同。幸运的是,我们后面提到的Netscape全中文浏览器客户程序把大多数客户机程序都集成在同一个界面下,特别适合初学者掌握和使用。

客户服务器系统的优点

  客户服务器系统是网络化信息应用系统的一个重大进步,其主要优点是:
  1)把一个应用系统分成两部分,并且一般在不同的主机上运行,可以简化应用系统的程序设计过程,特别是可以使客户程序与服务程序之间的通信过程标准化。正因为如此,Internet上的同一种服务往往有许多种不同的客户程序和不同的服务程序,这些程序因为是按照相同的通信协议设计的,故而可以在不同的硬件环境和操作系统环境下运行并且有效地进行通信。这正是Internet的威力所在。
  2)把客户程序和服务程序放在不同的主机上(当然也可以放在相同的主机上)运行可以实现数据的分散化存储和集中化使用。这意味着可以降低应用系统对硬件的技术要求(如内存和磁盘的容量以及CPU速度等),使各种规模的计算机(包括最普通的微机)都可以作为Internet的主机使用,这也是Internet的一大优点。
  3)由于客户程序可以与多个服务程序进行链式联接,用户可以根据自己的需要灵活地访问多台主机。Internet的某些应用系统(如Gopher,WAlS和WWW等)正是利用客户程序和服务程序的这种功能以及其它技术手段(如指针等)才有可能把部分甚至整个Internet的信息资源变成一个统一的信息资源,实现所谓的cyberspace(计算机空间)。

如何获得Internet客户程序和服务程序

  Internet所使用的客户程序和服务程序有许多可以利用匿名FTP免费从Internet上获取。在获取这些程序之前首先要明确自己需要什么样版本的客户程序和服务程序,这里的主要依据是主机上运行的操作系统。在Internet的主机上比较常用的操作系统是UNIX,VAX/VMS, DOS, windows和windows 95,目前大多数客户程序是免费的。
  获得客户程序和服务程序的方法是:
  1)首先利用Archie, gopber, veronica或其它工具查找存有这些程序的主机地址、目录及文件名;
  2)然后利用匿名m或其它方法通过文件传输的方式把这些程序下载到自己的主机上,程序的传输要使用二进制方式;
  3)如果是压缩文件,可以利用相应的压缩程序进行解压缩;
  4)如果是源程序要利用相应的编译系统进行编译;
  5)一般在相同的目录中可以找到有关程序安装和使用的说明文件,可根据这些文件进行程序的安装、调试和运行。
  当你学会如何利用Internet的各种工具获得上述程序和有关文件时,你也会发现许多其它有用的软件并且可以轻而易举地获得它们。

Internet为什么能工作得很好

  前面讲了包括TCP/IP软件在内的Internet的基本技术,下面分析一下Internet成功的原因以及应该吸取的教训。
  Internet是人类技术的奇观。TCP/IP软件技术满足了连Internet最初的设计者都无法想象的增长和变化。
  一方面,联到Internet上的计算机数量以翻倍的速度增长,而TCP/IP技术能够完全适应这种发展。另一方面,在过去的十年里,Internet上的网络数据传输量也在成倍飞速地增长,而TCP/IP技术能够处理这些越来越多的网络分组。
  尽管现在的计算机要比TCP/IP刚诞生时快200倍,但这些新的快的计算机通过Internet不仅能够相互通信,而且能够与老的慢的计算机通信。
  现在Internet互联网除了传输速度比原来快了800%以外,TCP/IP协议并未发生任何变化,原有的设计能够继续在更高的速度,更大的传输量下运行。
  为什么TCP/IP技术如此成功?从一项科研项目中诞生的技术是如何成为世界上最大的计算机网络系统的基石的?我们能从Internet项目中学习到什么东西?
  显而易见,类似Internet这样的一个复杂系统的绝对成功不是单凭一个技术决策所能实现的。下面我们一起看一看TCP/IP,的某些优秀的设计思想,以及应该从Internet项目中学习哪些东西。

IP提供了灵活性

  网际协议提供了能适应各种各样的网络硬件所需的灵活性。例如,IP可以适用于:
(1)不同的网络技术
·广域网技术或局域网技术
·高速网和低速网
·无分组丢失的网络和有分组丢失的网络
·无线网,有线网,或光纤网
·上述任何几种情况的组合
(2)不同的计算机硬件
·IBM大型机,中型机和小型机
·麦金托什机
· PC微机
(3)不同的操作系统
·UNix操作系统
· DOS操作系统
·Windows操作系统
·其它操作系统
  总之,IP协议使得Internet可以包括几乎所有类型的计算机通信技术。IP成功的秘密在于其采用了一种宽容的策略。由于IP对网络硬件的要求不多,因而几乎可以容纳任何一种网络机制,只要这种机制可以从一个地点向另一个地点传送二进制位就可以了。用行话来说就是:网际协议之所以能够适应多种类型的网络硬件,是因为其对底层网络硬件几乎没有任何假定。
  尽管IP对网络硬件的假定最小,但其所有实现则必须精确地使用相同的通信规则。为了保证TCP/IP对各种网络的兼容,协议的规范说明被写成文档,这些文档成为非正式的标准。TCP/IP标准包括在每种网络上如何发送IP数据报的精确说明。一旦一种新的网络技术出现,就会形成一个新的Internet标准来描述TCP/IP如何使用这种技术。这些规范形成Internet文档的一个重要的部分,因为他们保证在一个网络上传输数据报时,每合计算机和每个路由器使用精确的同一格式。因此,由于TCP/IP,标准文本规定了在一种给定的网络上传输IP数据报的精确方法,不同厂商的计算机和路由器通常在技术细节上是一致的。

TCP提供了可靠性

  TCP和IP是互补的,两者结合在一起运行良好。 TCP处理IP没有处理的通信问题。TCP向应用程序提供可靠的通信联接。
  有趣的是,TCP需要为IP所能使用的各种类型的网络硬件分别做出补偿。例如,虽然通过卫星信道传送一个数据报需十分之几秒,但在一个LAN传送一个数据报仅需千分之一到千分之二秒。而同一个TCP软件必须能够同时处理这两种传输速度差异很大的情况。又比如,虽然局域网很少或从不丢失分组,但广域网丢失分组却很厉害。 TCP软件必须能够高效地使用其中任何一种技术。
  TCP同时还要解决分组交换系统中出现的最困难的问题,即性能的快速变化。计算机惯于用突发方式发送信息——计算机保持沉默一段时间,然后在短时间内发送数据,随之又保持沉默。例如,用户第一次启动应用程序时,应用程序可能需要与服务器交互(例如,从服务器取一个文件或从服务器获取初始屏幕要显示的信息)。用户在停止思考,移动鼠标或从键盘上输入数据的时候,应用程序停止与服务器的通信。尽管Internet有足够的能力处理多台机器之间数据报的发送,但如果有太多的机器恰好同时突发发送数据报,Intenlet也可能会暂时超载,性能下降。
  与其他的分组交换系统一样,Internet上的流量也是突发和空闲交互的。如果有许多计算机碰巧同时发送数据报,那么暂时的网络流量堵塞会降低数据报发送速度。 TCP必须监测因网络堵塞而产生的延迟,并且能够等待直到堵塞消除为止。
  TCP成功的秘密在于其能够自动适应网络上的各种变化。由于TCp一直监视Internet的情况并且能够自动适应,因此,即使在Internet暂时出现堵塞的情况下,TCP也能够保证通信的可靠。

TCP/IP软件是一个高效率的软件

  在任何复杂的计算机系统中,工程人员必须在各种各样可能的设计中选择一种。TCP/IP协议经过精心的设计,因而运行效率很高。例如TCP/IP被设计成在发送和接收分组时无需大量的计算。另外,TCP/IP被设计成只有当网络分组数超过通信所规定的最小分组数时才进行发送。
  有效的设计使得TCP/IP既能够在小型、低速的计算机上运行,也能够在大型、高速的计算机上运行。因而,即使在没有类似大型机上的内存和处理能力的个人计算机上,TCP/IP也运行得很好。

TCP/IP的研究重视实际效果

  Internet 项目的科学家和工程人员对该项目的研究采取了一种实用的策略。他们不去讨论一些模糊的可能性,而是侧重于建立一个实用的通信系统。他们本着“实践是检验真理的唯一标准”,一切由实验数据说话,由此来判断任何一个新的建议和新的思想是否正确。
  例如,在TCP/IP的协议中加入任何一个新规范之前,必须有两个程序员在至少两种计算机上进行软件的测试。
  因此,尽管TCP/IP的大部分是来源于研究人员的一致意见,但没有一种思想是在被实现和证明可行之前而被接纳的。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
两台电脑直连方法
计算机常用英语术语
计算机设置自动获取IP
常见网络术语
信息化知识竞赛试题(二)
网络基础知识
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服