"这篇内容来自《计算机网络自上而下方法(第四版)》第二章,主要探讨了网络应用的时间消耗、应用层协议原理、Web和HTTP、FTP、电子邮件、DNS、P2P文件共享、套接字编程以及构建Web服务器等主题。章节介绍了网络应用程序的开发要点,包括客户机/服务器、对等(P2P)和混合体系结构,以及网络应用程序的研发过程和所需服务。"
在计算机网络中,请求一个HTML文件所需的时间是衡量网络性能的关键指标,它涵盖了从用户发起请求到完全接收文件的全过程。这个时间包括了多个延迟因素:
1. **往返时延(RTT)**:RTT是数据包从客户端发送到服务器,然后返回客户端所需的时间。它包含了传播时延(信号在介质中传播的时间)、排队时延(在路由器或交换机中等待被处理的时间)以及处理时延(服务器处理请求和生成响应的时间)。
2. **传播时延**:数据在物理介质中的传输时间,依赖于信号的速度和传输距离。
3. **排队时延**:网络设备处理数据包时的等待时间,取决于网络的拥塞程度和路由器的处理能力。
4. **处理时延**:服务器解析请求、生成响应并将其发送回客户端所需的时间。
本章还详细讨论了应用层协议,这是计算机网络的重要组成部分,负责实现各种网络服务,如Web、电子邮件、文件传输等。应用层协议定义了应用程序之间的通信规则,例如HTTP协议用于Web浏览,FTP协议用于文件传输,而电子邮件则依赖SMTP、POP3或IMAP等协议。
20世纪80年代至90年代,网络应用经历了从文本基础服务到多媒体应用的转变。如今,网络应用程序种类繁多,包括电子邮件、Web、即时通讯、P2P文件共享、在线游戏、流媒体视频、互联网电话和实时视频会议等。
网络应用程序的开发需要考虑它们如何在不同的端系统上协同工作,而不需要在网络的核心部分运行任何应用层代码。常见的架构模式有客户机/服务器、对等(P2P)以及两者的混合。
在客户机/服务器模型中,服务器始终在线,为多个客户提供服务,而客户机则向服务器发送请求。在P2P模型中,所有参与者既是服务的提供者也是消费者,这种架构在文件共享和分布式计算中尤为常见。
书中还涵盖了套接字API编程,这是开发网络应用程序的基础,允许程序员利用TCP或UDP协议进行通信。同时,介绍了如何构建Web服务器,这涉及对HTTP协议的理解以及如何处理客户端的请求。
本章深入浅出地讲解了网络应用的各个方面,为理解网络通信机制和开发相关应用提供了坚实的理论基础。