### TCP/IP 详解 卷三 知识点总结 #### 1. 客户-服务器事务概念 在《TCP/IP 详解 卷三》中,作者首先介绍了客户-服务器事务的概念,这是一种通信模式,其中客户端(通常是用户)发起请求到服务端,而服务端则负责处理请求并返回响应。这种模型广泛应用于互联网的各种服务中,例如HTTP、FTP等。 #### 2. UDP 上的客户-服务器应用 - **创建 UDP 插口**:通过`socket`函数创建一个 UDP 插口,此函数返回一个非负的插口描述符。如果创建过程中出现错误,则会调用`err_sys`函数来打印错误信息并终止进程。`socket`函数通常需要三个参数:地址家族(AF_INET)、套接字类型(SOCK_DGRAM 表示 UDP 套接字)和协议(通常为 0,表示由内核根据套接字类型决定协议)。 - **填写服务器地址**:使用`memset`函数将 Internet 套接字地址结构清零后,填充服务器的 IP 地址和端口号。为了简化程序,作者假设用户通过命令行输入服务器的 IP 地址(点分十进制形式),并通过宏定义来设置端口号。 - **构造并向服务器发送请求**:客户程序构造一个请求(此处用一行注释表示),并使用`sendto`函数将其发送至服务器。这里假设请求的长度是固定的,但在实际应用中,应根据最大长度动态分配缓冲区大小。 - **读取和处理服务器的应答**:调用`recvfrom`函数接收服务器的应答。该函数会使进程阻塞直到收到数据报。收到应答后,客户进程会处理应答(此处用一行注释表示)并终止。值得注意的是,`recvfrom`函数中没有超时机制,这意味着如果请求或应答数据报丢失,进程将永久挂起,这是 UDP 客户-服务器应用中的一个常见问题。 #### 3. TCP 的客户-服务器应用 在介绍了 UDP 客户-服务器应用之后,作者进一步探讨了使用 TCP 的客户-服务器程序。TCP 提供了面向连接的服务,这使得它比 UDP 更可靠,因为它确保了数据包的顺序和完整性。TCP 还提供了流量控制和拥塞控制机制,以防止数据丢失和网络过载。 #### 4. TCP 与 T/TCP 的对比 - **T/TCP 的引入**:作者讨论了如何使用 T/TCP(TCP Transaction Protocol)来优化客户-服务器应用中的数据传输效率。T/TCP 是一种针对短事务优化的 TCP 变体,它减少了数据交换所需的 TCP 数据包数量,从而提高了效率。 - **最小改动**:为了利用 T/TCP,作者给出了需要对两端源代码进行的最少改动。这些改动通常涉及配置和编译选项,以便支持 T/TCP。 #### 5. 测试网络与性能比较 - **测试网络**:书中提到了用于测试示例程序的特定网络环境。这种环境有助于评估不同协议在实际应用中的表现。 - **时间耗费比较**:作者还对使用 UDP、TCP 和 T/TCP 的客户-服务器应用程序进行了简单的时间耗费比较。这种比较对于理解不同协议在处理客户请求方面的效率至关重要。 #### 6. 现有 T/TCP 实现 书中概略叙述了现有 T/TCP 的实现情况。这包括了不同的操作系统和软件库中对 T/TCP 的支持情况。 #### 7. 事务协议的历史和发展 作者简要介绍了 Internet 协议族中事务协议的发展历史。这包括了从最初的简单协议到更为复杂且高效的协议的演变过程,以及它们是如何适应不断变化的网络需求的。 #### 8. 源代码格式和组织 书中所有的源代码都以统一的格式呈现,每行非空行前面都有行号。此外,源代码被分隔成若干部分,并配有相应的注释和解释,以便读者更好地理解代码的功能和实现方式。 ### 结论 《TCP/IP 详解 卷三》深入探讨了 TCP/IP 协议栈中客户-服务器模型的应用,特别是 UDP 和 TCP 在具体应用场景下的使用,以及 T/TCP 这种优化方案的实现方法。通过详细的代码示例和性能比较,这本书不仅适合网络编程初学者,也是高级开发者的宝贵资源。
- zhangjin7392012-04-26pdf文件,非常清晰,已经合并成一个pdf文件
- 粉丝: 5
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助