路由信息可通过手工方式或许多为此目的而设计的公共协议来传播,例如:选路信息协议(RIP),开放最短路径优先(OSPF)协议,以及边界网关协议(BGP)。这些协议的运行方式超出了本书的范围,但它们基本上都能够达到同样的目的:让路由器相互交换各自所知的网络可达性信息。选路协议照此工作,这样,一个路由器与其他路由器可以分享它所连入的网络地址,最终每个路由器都被告知各个网络的存在和可达性。
IP可在众多网络上运行,它与数据链路层的接口是由许多标准来精确说明的,每一个标准就是一种特定的数据链路技术,具体问题得具体分析。之所以有必要这样做,是因为每一类网络对IP的要求不同,每一类网络满足IP协议需求的方式不同。还有一些通过IP在LAN(如以太网或令牌环网)上运行的标准,例如分组服务的X.25和帧中继,信元中继服务的异步转移模式ATM,还有其他·些非主流的网络技术。
IP本身完全是同等层之间的协议,它只关心寻址和传输单个数据分组,这暗示了主机与主机之间有通过Internet传输数据的关系。这就是客户机和服务器所承担的责任,它们负责任意两个经过同一应用程序或高层协议进行通信的两台主机之间的数据传输。服务器是一台计算机,它的责任是提供到一定类型的数据或服务的访问,以满足其他计算机或用户之需。客户机就是为了获得一些数据或服务而发起与服务器通信的计算机.
一台机器可能同时既是一个客户机又是一个服务器,例如在参加一个wwW会议和同时向另一台机器传输数据。而在客户机与服务器之间,传输层之间的通信正是用IP分组米携带数据的。
在IP协议组中,传输层的功能通常出传输控制协议(TCP)和用户数据报协议(UDP)这两者之一来完成。TCP在IP协议组中,用来提供完全纠错、面向连接的信息传递。大多数“传统”的用户应用程序都使用了TCP,这样的应用程序例如:万维网(www,或简称为Web)和简单邮件传输协议(SMTP)电子邮件。TCP采用与X.25协议同样的方法米建立和撤消连接,为数据传输提供一条端到端的,有响应且可靠的虚电路。当数据的性质使可靠性显得没有必要,或是TCP的电路建立、撤消和纠错造成的时延对应用来说是不可接受时,就得采用UDP。
不管传输层是否需要可靠性,它的另外一个重要功能通常是必要的,即:对发往接收主机的不同的数据流给予标识,以把数据正确地传递给应用程序。由于任意发出的IP数据分组可能含有多个用户程序之一的数据,TCP和UDP给每个应用程序特定的数据流分配了一个端口号。主机维护着一张端口号和应用程序的列表,以备在任何特定的时间使用它。当一台主机从服务器的80号端口收到了数据,从端口号上它便知道这一数据来自一个www服务器,应该把它交给Web浏览器。
IP地址和TCP/UDP端口号合在一起被称为“插口”。在编写应用程序时,可以把插口当作一个文件来看待,网络应用程序与Internet协议组其他部分之间的接口通常利用插口来实现。一个程序能创建和打开一个插口(为使用网络做好准备),向插口中写入(发送)数据,从插口中读出(接收)数据,以及关闭一个插口(断开与网络的连接)。Winsock是用来在Windows环境下描述插口的术语。
在协议组应用层中全是用户应用程序,这包括部分传统的Internet服务和许多由这,协议组的其余部分提供的新服务。由于Internet和IP网络通常被认为是非实时网络,在这种网络中,各种应用所遇到的端到端的时延都被假定为秒数量级。使用该网络的通常是那些能够容忍一定量时延的应用。以经过SMTP协议传送的电子邮件为例,即使存在较大的时延,它也能正常发挥作用。文件传输协议(FTP)会话对时延也有相似的忍耐性,因为它的任务通常是在主机问传输数据,以备收方在稍后的时间里使用。速度更快的网络会加快传输,不过对电子邮件或文件传输来说,能否成功传送与网络速度的快慢并没有直接关系。
对于万维网来说,情况就有点儿不同了。用户发起www会话,由于网络拥塞,在等待Web网页到来的期间很容易让用户产生烦躁情绪。于是,与前面的两种协议相比,www会话对时延的忍耐力要差一些。多数情况下,只需等待数秒,但是,大而复杂的页面、网络或服务器拥塞、大量的差错(必须由TCP来纠正),或仪仅是服务器和浏览器之间的慢速,访问链路都会造成更大的时延,这时,从对一幅页面发出请求起到最终收到它,会耗时好几分钟。于是人们不断地改进Internet以求尽可能减小时延。这有助于重新确定Internet的角色,让它从一个非实时网络转变成个接近实时的网络。“接近实时”当然只是个模糊的概念,但从这一想法出发,可以把端到端的时延缩小得比在正常情况下的时延小一些。
用户通常并不在意为了一张Web页面而等待数秒,可是当他们所需的应用程序只能容忍极小的延迟(可能是微秒数量级)时,情况又如何呢?类似的,当支持通信的各种程序和协议的复杂性及大小都在不断增加时,为进行通信所传输的报文大小也在增长,这又会带来怎样的后果呢?在网络服务不断发展的同时,其速度、时延和要求之间的关系也越发复杂,从www的发展中就可以很好地看到这一点。