Internet能把全世界网络连接起来,而这些网络可能存在许多不同类型的计算机,因此,必须有个共同的东西通过某种方式把所有这一切都拢在一起,这个东西就是TCP/IP。
TCP/IP的细节是很具技术性的。为了确保不同类型的计算机能在一起工作,程序员用标准“协议”来写他们的程序。协议是一套用技术术语描述某些事应如何做的规则。例如,有一个协议,它精确地讲述电子邮件信息应当用什么格式。当他们准备一个投递的邮件时,都必须遵守TCP/IP邮件程序这个协议。
TCP/IP是上百个(用来连接计算机和网络的)协议合起来的共有名字。TCP/IP的实际名字是来自最重要的两个协议:TCP和IP。这些协议是怎样把Internet统在一起的呢?
在Internet内部,信息不是一个恒定的流,从主机传送到主机,而是把数据分解成小包,即数据包。例如要传送一个很长的电子邮件信息国家的另一端,TCP就把这个信息分成很多个数据包,每一个数据包用一序号和一接收地址来标定。此外,TCP还插入一些纠错信息。
接着数据包被传过网络,这就是IP的工作,即把它们传送给远程主机。在另一端,TCP接收到数据包并核查错误。如果有错误发生,TCP可以要求重发这个特定的数据包。只要所有的数据包都被正确地接收到,TCP将用序号来重构原始信息。换句话说,IP的工作是把原始数据(数据包)从一地传送到另一地;TCP的工作是管理这种流动并确保其数据是正确的。
把数据分解成数据包有很多的好处。首先,它允许Internet让很多不同的用户在同一时间用同一通讯线路。因为这些数据包不必一起输送,所以通讯线路可以载着所有类型的数据包按它们自己的路径从一地到另一地。就如一条高速公路上,各个汽车(即使它们开向不同的地方)都在公共道路上行驶。
当数据包传输时,它们沿规定的路由从主机到主机,一直到它们到达最终目的地。这就意味着Internet很具灵活性。如果一个特定的连接中断了,控制数据流动的计算机通常可以找到另一条路由。事实上,在单一数据传输中,各个数据包完全可能沿不同的路由传输。
这也意味着:当条件改变时,网络可获得当时最好的连接。例如,当网络的某一特定部分过载,数据包可以改变路线去走那些比较空闲的线路。
用数据包传输的另一个好处是,当某处出错,只须重新传送单个数据包,而不是整个信息。这样会大大加快Interent的传输总速度。
所有这种灵活性产生很高的可靠性。不管怎样,TCP/IP都保证数据到达目的地。事实上,Interent运行非常好,虽然所有数据包都必须通过很多计算机,但它可用几秒钟就把一个文件从一主机传输到另一主机,哪怕它们相距上千公里。
这好比是:Internet包含有上千个网络和百万计的计算机,而TCP/IP是把它合在一起的粘结剂。
(第四节)TCP/IP的参考模型
TCP/IP是实现网络连接,信息(包括报文和数据流)以数据包的形式在网络中传输,从而实现用户间的通信。TCP/IP协议遵守一个四层的模型概念:应用层(ApplicationLayer)、传输层(TransportLayer)、网络层(InternetLayer)和网络接口层(NetworkInterfaceLayer)。
一、网络接口层
模型的基层是网络接口层。负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放在网上,或从网上把帧取下来。
二、网络层
互联协议将数据包封装成Internet数据包,并运行必要的路由算法。这里有四个互联协议:
网际协议IP:负责在主机和网络之间寻址和路由数据包。
地址解析协议ARP:获得同一物理网络中的硬件主机地址。
网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误。
互联组管理协议IGMP:被IP主机拿来向本地多路广播路由器报告主机组成员。
三、传输层
传输协议在计算机之间提供通信会话。传输协议的选择根据数据传输方式而定。这里有两个传输协议:
传输控制协议TCP:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。
用户数据报协议UDP:提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。
四、应用层
应用程序通过这一层访问网络。
网络设计者在解决网络体系结构时经常使用ISO/OSI(国际标准化组织/开放系统互连)七层模型,该模型每一层代表一定层次的网络功能。最下面是物理层,它代表着进行数据转输的物理介质,换句话说,即网络电缆。其上是数据链路层,它通过网卡提供服务。最上层是应用层,这里运行着使用网络服务的应用程序。
TCP/IP模型是同ISO/OSI模型等价的。当一个数据单元从网络应用程序向下送到网卡,它通过了一列的TCP/IP模块。这其中的每一步,数据单元都会同网络另一端对等TCP/IP模块所需的信息一起打成包。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。
为了勾勒TCP/IP在现实网络世界中所扮演的角色,请考虑当使用HTTP(超文本传输协议)的Web浏览器(如IE)从连接在Internet上的Web服务器上获取一页HTML数据时所发生的情况。为形成同Web服务器的虚链路,浏览器使用一种被抽象地称为套接口(socket)的高层软件。为了获取Web页,它通过向套接口写入HTTPGET命令来向Web服务器发出该指令。接下来套接口软件使用TCP协议向Web服务器发出包含GET命令的字节流和位流,TCP将数据分段并将各独立段传到IP模块,该模块将数据段转换成数据报并发送给Web服务器。
其实在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。TCP/IP决定了每个数据包的格式。如果事先不告诉你,你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。
当有应用程序(如例子中的浏览器)创建它时,这个数据包的生命就开始了。每个包都会穿过发送主机的各层,再通过网络电缆进入目标主机的各层后,进入适当的应用程序(如例子中的Web服务器)。当包穿过发送主机各层时,其控制信息和格式信息被加在包上。在它到达目标主机后,随着这个包向上穿过各个层,这些信息分别被读取并剥去。一旦这个包被送到线路上去时,它的重量已经增大,因为包中增加了许多网络信息。当这个滚雪球式增大的包到达目的主机时,又开始逐渐减轻,当它最后到达顶层时,又变得十分苗条了。
对浏览器和服务器来说,数据在这一端写入套接口而在另一端出现如同魔术一般,但这只是网络底层发生的各种复杂行为的表象,它创造了数据经过网络无缝传输的假象。
有了计算机,有了TCP/IP协议,开创了计算机的大连网,也就是计算机网络。我们今天科技飞速的发展,是得到了计算机网络的鼎立相助。可以说,现在的每一个行业都离不开计算机了,也许有,但就如同一个人放弃电的照明而重温古代的照明方式一样。人是当代人,而思想是古代的。