第三卷的内容细节覆盖了当今TCP/IP编程人员和网络管理员必须熟练掌握的四个基本方面:
T/TCP (TCP事务协议),这是对TCP的扩展,使客户--服务器间的事务传输更快更有效和更可靠;
HTTP (超文本传送协议),这是飞速扩展中的万维网的基础;
NNTP (网络新闻传送协议),这是Usennet新闻系统的基础;
UNIX域协议,这是在UNIX实现中应用非常广泛的一套协议。
与前面两卷一样,本书有丰富的例子和实现的细节,他们都是4.4BSD-Lite中的网络代码。
### TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议
#### T/TCP (TCP事务协议)
**T/TCP**是对标准TCP协议的一种扩展,它旨在优化客户-服务器架构中的短事务处理过程,使得这些交互更加高效、快速且可靠。这种协议特别适合那些需要快速响应的应用场景,例如查询域名服务器获取IP地址。
##### UDP上的客户-服务器模型
在深入探讨T/TCP之前,我们首先理解基于**UDP**(User Datagram Protocol)的客户-服务器模型。这是一个简单的无连接协议,非常适合一次性或短事务处理。下面展示了一个使用UDP的简单客户-服务器应用程序的例子:
1. **创建UDP插口**:通过调用`socket`函数创建一个UDP插口,并获得一个非负的插口描述符。
2. **填写服务器地址**:初始化一个Internet地址结构,设置服务器的IP地址和端口号。
3. **构造并向服务器发送请求**:构建请求消息,并使用`sento`函数发送到服务器。
4. **读取和处理服务器的应答**:使用`recvfrom`函数接收服务器的响应,并对其进行处理。
#### T/TCP的实现和优势
T/TCP的实现主要是为了减少网络传输过程中不必要的开销,特别是对于那些只需要一次往返(即一个请求加上一个应答)的短事务处理。通过减少握手次数和优化TCP的状态机,T/TCP能够显著提高这些应用场景下的性能。
##### 实现细节
- **最小化更改**:为了使用T/TCP,客户端和服务器端通常只需要对源代码进行少量的调整。
- **分组减少**:通过T/TCP可以明显减少交互过程中所需的分组数量,进而提高效率。
- **时间耗费比较**:与使用UDP和标准TCP相比,T/TCP在处理短事务时可以大幅减少处理时间。
#### HTTP (超文本传送协议)
**HTTP**是Web的基础,负责网页之间的数据传输。随着互联网的发展,HTTP的需求和复杂度也在不断增长。
- **发展历史**:自1991年首次发布以来,HTTP经历了多次重大更新,包括HTTP/1.0、HTTP/1.1以及最新的HTTP/2和HTTP/3版本。
- **关键特点**:HTTP是一种无状态协议,这意味着服务器不保存关于客户端的任何信息。此外,它还支持多种方法(如GET、POST等),以适应不同的交互需求。
#### NNTP (网络新闻传送协议)
**NNTP**是Usenet新闻系统的基础,用于在网络上分发和检索新闻组文章。
- **架构**:NNTP采用了类似BBS的架构,用户可以通过新闻服务器阅读和发表文章。
- **特点**:NNTP支持多种操作,包括文章的检索、发表、删除等,同时它也支持对文章进行分类和过滤。
#### UNIX域协议
**UNIX域协议**是一组在UNIX系统中广泛应用的协议,主要用于进程间通信(IPC)。
- **类型**:UNIX域协议主要分为两种类型——流式套接字和数据报套接字,分别对应TCP和UDP的行为。
- **应用场景**:在UNIX环境中,这些协议广泛应用于本地进程间通信,例如服务守护进程与客户端程序之间的交互。
#### 总结
《TCP-IP详解卷三》深入探讨了四个核心主题——T/TCP、HTTP、NNTP和UNIX域协议。通过对这些协议的详细了解,读者可以更好地理解和应对现代网络环境中的挑战。无论是对于网络编程人员还是网络管理员而言,这些知识都是非常宝贵的资源,能够帮助他们在各自的领域内更加得心应手。