TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议

preview
需积分: 0 0 下载量 58 浏览量 更新于2016-11-17 收藏 9.79MB PDF 举报
### TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议 #### 1.1 概述 在网络通信中,客户-服务器模型是最基础也是最常见的交互模式之一。这种模型允许客户端向服务器发起请求,服务器处理请求后返回响应。在本章节中,我们将探讨基于UDP和TCP的客户-服务器应用,并且进一步了解如何利用TCP事务协议(T/TCP)来优化网络通信。 我们从最简单的UDP客户-服务器应用开始,这是为了引入基本的概念。UDP是一种无连接的服务,这意味着在数据传输之前无需建立连接。尽管它比TCP简单且快速,但是缺乏可靠的错误检测和恢复机制,使得UDP不太适用于那些需要高可靠性的应用场景。 接下来,我们深入探讨基于TCP的客户-服务器程序,并分析在两个主机之间交互的TCP/IP分组。TCP提供了一种面向连接的服务,确保数据的有序、无损传输。通过这种方式,我们可以更好地理解TCP是如何保证数据包的正确性和完整性的。 随后,我们介绍TCP事务协议(T/TCP),这是一种旨在减少TCP事务中的往返次数的优化方法。通过使用T/TCP,我们可以显著减少网络延迟,并提高整体性能。我们会探讨如何在客户端和服务器端实现这一协议,以及所需的最小源代码更改。 此外,本章节还介绍了用于测试和验证程序的测试网络环境,并通过实验比较了使用UDP、TCP和T/TCP的客户-服务器应用程序的时间开销。这些实验有助于理解不同协议之间的差异及其对应用程序性能的影响。 我们还会简要回顾Internet协议家族中事务协议的发展历程,并概述当前的T/TCP实现情况。 #### 1.2 UDP上的客户-服务器 在本节中,我们通过一个简单的UDP客户-服务器程序来说明客户-服务器模型的基本工作原理。图1-1展示了UDP客户程序的源代码。 1. **创建UDP插口** - 使用`socket`函数创建一个UDP插口,并返回一个非负的插口描述符。 - 出错处理函数`err_sys`用于捕获和报告任何可能发生的错误。 2. **填写服务器地址** - 通过`memset`函数初始化Internet插口地址结构。 - 设置服务器的IP地址和端口号。这里要求用户提供服务器的IP地址,采用点分十进制表示法。 3. **构造并向服务器发送请求** - 构造请求,并使用`sendto`函数发送UDP数据报至服务器。 - 请求的长度被设定为固定的值,虽然这在实践中并不常见。 4. **读取和处理服务器的应答** - 调用`recvfrom`函数接收服务器的响应。 - 处理服务器的应答,并终止进程。 由于`recvfrom`函数中没有设置超时机制,如果请求或响应丢失,进程可能会永久阻塞。这是UDP客户-服务器应用中的一个常见问题,即对于现实世界中的错误缺乏足够的健壮性。在后续章节中,我们将探讨如何解决这类问题,包括如何实现超时机制和其他错误恢复策略。 #### 小结 本章节首先介绍了客户-服务器模型的基本概念,并通过具体的代码示例展示了基于UDP的客户-服务器应用程序的工作原理。接下来,我们将继续探讨基于TCP的客户-服务器应用程序,以及如何通过TCP事务协议(T/TCP)来进一步优化网络通信性能。这些内容不仅对于理解TCP/IP协议栈至关重要,也为开发高性能网络应用程序提供了宝贵的指导。
身份认证 购VIP最低享 7 折!
30元优惠券
eager7
  • 粉丝: 157
  • 资源: 36
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜

最新资源