一、应用层
【待收录】p18-21
网络应用体系结构?
- C/S
- P2P
- 混合结构
网络应用的服务需求?
- 可靠性
- 带宽
- 时延
有哪些网络应用及协议?
http、telnet、ftp/tftp、dns、smtp/pop/imap…
RTT?round trip time?
从客户端发送一个很小的数据包到服务器并返回所经历的时间。
http 连接的两种类型?非持久性?持久性?
- 非持久性连接
每个 tcp 连接最多允许传输一个对象,http1.0 版本使用非持久性连接。
客户端发送一个 http 请求到服务器,服务器返回数据后,就会关闭 tcp 连接。客户端后续未加载资源还需要重新与服务器创建 tcp 连接去获取
非持久性连接的一次连接的响应时间:2RTT+文件传输时间
- 发起、建立 tcp 连接:1rtt
- 发送 http 请求到 http 响应消息的前几个字节到达客户端:1rtt
- 响应信息中所包含的文件/对象传输给客户端的时间
所以,如果有n个资源,需要消耗n * (2 * rtt + 文件传输时间)
- 持久性连接
每个 tcp 连接允许传输多个对象,http1.1 默认使用持久性连接。
对于持久性连接,服务器返回数据后,保持 tcp 连接的打开,后续的 http 请求可以通过这个连接继续发送。
持久性连接的类型?
- 无流水的持久性连接
客户端只有收到前一个响应后才能发送新的请求,这样一个资源耗时一个rtt
如果有n个资源,需要消耗 (2 * rtt) + (n * rtt)
- 流水机制的持久性连接
或者称管道网络传输,pipeline。
http1.1 的默认选项。
客户端只要遇到一个对象资源就尽快发出请求,理想情况下,收到所有的对象资源只需要消耗1个rtt
如果有n个资源,需要消耗 (2 * rtt) + (1 * rtt)
【待收录】p23-27
DNS 解析?Domain Name System?
解决 internet 上主机/路由器的识别问题。
- ip 地址
- 域名
由于ip不方便被用户使用,通常会有对应的域名提供给用户进行使用。这里就需要映射ip和域名。
而 DNS,域名解析系统,是一个:
- 多层命名服务器构成的分布式数据库
- 本身是一个应用层协议,完成名字的解析
DNS 服务场景?
- 域名向ip地址的映射
DNS 最常见的用途之一是将易于记忆的域名映射到对应的 IP 地址。通过 DNS,用户可以通过输入域名来访问特定的网络服务,而不需要记住复杂的 IP 地址。
- 主机别名(更好记)
除了将域名映射到 IP 地址外,DNS 还可以为主机分配别名。例如,公司的内部服务器可能具有复杂的主机名,但可以通过 DNS 为它们分配易于记忆的别名,以方便管理和访问。例如:
Web 服务器别名:www.corp.example.com -> 指向 webserver1.corp.example.com
数据库服务器别名:db.corp.example.com -> 指向 dbserver1.corp.example.com
文件服务器别名:files.corp.example.com -> 指向 fileserver1.corp.example.com
- 邮件服务器别名
DNS 用于指定邮件服务器的别名,以便电子邮件系统可以将电子邮件路由到正确的服务器。这使得电子邮件系统能够更灵活地配置和管理邮件服务器,并支持电子邮件地址的转发和负载均衡。例如:
主要邮件服务器别名:mail.example.com -> 指向 mail1.example.com
备用邮件服务器别名:backupmail.example.com -> 指向 backupmail.example.com
垃圾邮件过滤服务器别名:spamfilter.example.com -> 指向 spamfilter.example.com
- 负载均衡:web服务器(一对多映射)
DNS 可以用于实现基于域名的负载均衡,将同一域名映射到多个不同的 IP 地址上。当用户通过域名访问