1.8 客户-服务器模型
当进一步描述TC P的细节时,我们将看到协议确实是通过目的端口号、源IP地址和源端口号进行解包的。
服务分为两种类型:重复型或并发型。重复型服务器通过以下步骤进行交互:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
重复型服务器主要的问题发生在I 2状态。在这个时候,它不能为其他客户机提供服务。
并发型服务器采用以下步骤:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户
服务。对服务器,而不是对客户进行分类的原因是因为对于一个客户来说,它通常并不能够辨别自己是与一个重复型服务器或并发型服务器进行对话。
一般来说, T C P服务器是并发的,而U D P服务器是重复的,但也存在一些例外
1.9 端口号
T C P和U D P采用16 bit的端口号来识别应用程序。
服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是2 1,每个Telnet服务器的TCP端口号都是2 3,每个TFTP (简单文件传送协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号。这些知名端口号由Intern号分配机构( Internet Assigned Numbers Authority, IANA)来管理。
大多数TCP/IP实现给临时端口分配1 0 2 4~5 0 0 0之间的端口号。大于5 0 0 0的端口号是为其他服务器预留的( Internet上并不常用的服务)。我们可以在后面看见许多这样的给临时端口分配端口号的例子。Solaris 2.2是一个很有名的例外。通常T C P和U D P的缺省临时端口号从32 7 6 8开始。
大多数U n i x系统的文件/e t c / s e r v i c e s都包含了人们熟知的端口号。为了找到Tel n e t服务器和域名系统的端口号,可以运行以下语句:
sun % greptelnet /etc/services
telnet 23/tcp称它使用TCP端口号23
sun %grepdomain telnet /etc/services
domain 53/udp 称它使用UDP端口号53和TCP端口号53
domain 53/tcp
保留端口号Unix系统有保留端口号的概念。只有具有超级用户特权的进程才允许给它自己分配一个保留端口号。这些端口号介于1~1023之间,一些应用程序(如有名的Rlogin,26.2节)将它作为客户与服务器之间身份认证的一部分。
1.10 标准化过程
有四个小组在负责Internet技术,控制着TCP/IP协议族
1) Internet协会(I S O C,Internet Society)。
2) Internet协会(I S O C,Internet Society)。
3) Internet协会(I S O C,Internet Society)。
4) Internet协会(I S O C,Internet Society)。
1.11 RFC
所有关于Internet的正式标准都以R F C(Request for Comment)文档出版。
1.12 标准的简单服务
有一些标准的简单服务几乎每种实现都要提供。在本书中我们将使用其中的一些服务程
序,而客户程序通常选择Telnet。图1 - 9描述了这些服务。从该图可以看出,当使用TCP和UDP提供相同的服务时,一般选择相同的端口号。
1.13 互联网
两个网络组成的互联网—一个以太网和一个令牌环网。
我们讨论了世界范围内的互联网—Internet,以及集中分配I P地址的需要(Internic),还讨论了知名端口号( IANA)。internet这个词第一个字母是否大写决定了它具有不同的含义。
internet意思是用一个共同的协议族把多个网络连接在一起。而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合(超过1 0 0万台)。Internet是一个internet,但internet不等于Internet。
1.15 应用编程接口
使用T C P / I P协议的应用程序通常采用两种应用编程接口(API):socket和TLI(运输层接口:Transport Layer Interface)