1.4 TCP协议和IP地址
地球上人类的语言可能有几十万种(加上方言),假如这几十亿人有需要即时对话,那么一定要选一种语言(如英语)作为共同的语言。全世界接入互联网的计算机和智能终端数量巨大,种类繁多,其硬件配置和软件类型也不尽相同,若想联入Internet这样的网络大家庭,也就必须都使用一些共同的约定和规则,这些约定和规则就是网络协议(Net-working Protocols)。网络协议可以看作所有计算机为了连接到网络,实现相互通信,必须遵守的一套规则。
在ARPA Net产生运作之初,大部分计算机相互之间不兼容,即在一台计算机上完成的工作,很难拿到另一台计算机上去用。当时美国的状况是,陆军用的计算机是DEC系列产品,海军用的中标计算机是Honeywell机器,空军用的是IBM公司的计算机,每一个军种的计算机在各自的体系里都运行良好,但却有一个很大的弊病——不能共享信息和资源。
为了让这些计算机之间能够实现“资源共享”,就得在这些系统的标准之上,建立一种大家都必须共同遵守的标准,这样才能让不同的计算机按照一定的规则进行“谈判”,并且在谈判之后能“握手”,实现“交流”。
数字通信的“包切换”理论为网络之间的信息传递方式提供了理论基础。科学家卡恩和瑟夫在深入理解各种计算机操作系统的细节后,建立了一种各种计算机操作系统都普遍适合的协议,即在开放网络系统下的能接入所有计算机的传输控制协议(Transmission-Control Protocol, TCP)和因特网协议(Internet Protocol, IP)即TCP/IP协议。
具体来看,TCP负责发现传输的问题,一旦有出错问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给入网的每一台计算机规定一个地址。当时美国国防部与3个科学家小组签订了完成TCP/IP的协议,结果由瑟夫领衔的小组首先制定出了通过详细定义的TCP/IP协议标准。1974年12月,卡恩和瑟夫的第一份TCP协议的详细说明正式发表。当时做了一个试验,先将信息包通过点对点的卫星网络,再通过陆地电缆和卫星网络,然后由地面传输,贯串欧洲和美国,经过各种计算机系统,全程9.4万公里竟然没有丢失一个数据位,远距离可靠数据传输实验证明了TCP/IP协议的成功。1983年1月1日,TCP/IP协议成为因特网上所有主机间的共同协议,从此以后被作为一种必须遵守的规则被世界肯定和应用。
从信息数据传递的角度看,Internet的IP技术是一种遍布全球范围的基于分组交换原理的计算机网络。它将信息进行分组,即分割为许多小数据包,以数据包为单位进行传输。数据包也是分组交换的一种形式,就是把所传送的数据分段打成“包”,再传送出去。但是,与传统的电话模式的连接型分组交换不同,它属于无连接型,IP技术是把打成的每个包(分组)都作为一个独立的报文传送出去,所以叫作数据报(包)。这样,在开始通信之前就不需要先连接好一条电路,各个数据报(包)不一定都通过同一条路径传输,所以叫作无连接型。这一特点非常重要,它大大提高了网络的坚固性和安全性。每个数据报(包)都有报头和报文两个部分,报头中有目的地址等必要内容,使每个数据报(包)不经过同样的路径也能准确地到达目的地。在目的地重新组合还原成原来发送的数据。这就要求IP具有分组打包和集合组装的功能。Internet在进行信息传输时要完成的任务主要有三项:一是正确分割源文件,二是将数据报(包)准确地送往目的地,三是组装源文件,即在目的地将同一源文件的数据报(包)准确地重组起来。
图1.1 网络的本地连接属性
如今的计算机都有TCP/IP协议,主要包括TCP协议和IP协议。可以查看网络的【本地连接属性】,如图1.1所示。这个操作也可以为自己的计算机设置IP地址。
万维网提供的Web服务使用的超文本传送协议(Hyper Text Transfer Protocol, HTTP)也是基于Internet协议的。HTTP是Web的通信协议,上网浏览网页时,Web客户端浏览器会发出请求读取数据的信息,这个信息通过HTTP协议传递到Web服务器,然后这些服务器根据请求找到相应的Web网页,再通过HTTP协议把数据发回的客户端浏览器。