网络应用模型
C/S 模型
服务器总是打开,总是处于接收请求的状态,如果收到请求,则解析请求,进行必要的处理,并将处理结果发送给客户端
特点:
- 客户机地位不均等,服务器可以通过用户权限控制管理客户机
- 客户机不直接通信
- 单个服务器支持的客户机有限
P2P 模型
各节点既是客户端又是服务器,都可以上传下载,相互之间直接通信
优点:
- 减轻了服务器的压力
- 消除对某个服务器的完全依赖,可以把任务放到多个节点上
- 可直接共享文档
- 拓展性好
- 网络健壮性强
缺点:
- 由于既获取服务也提供服务,内存占用较大,会影响整机速度
域名系统 DNS
C/S 模型,协议运行在 UDP 之上,53 号端口
域名是层次结构,级别高的在右边
域名系统:联机分布式的数据库系统
四种 DNS 服务器:根(13个)、顶级、授权、本地
每台主机都必须在授权域名服务器登记
域名解析过程
两种方式:
- 递归查询(根 DNS 服务器是中继节点,压力大)
- 递归和迭代相结合
递归查询示意图:
递归和迭代结合:
主机向本地 DNS 服务器查询是递归,本地 DNS 向其他 DNS 查询是迭代
域名解析过程如下:
1、客户机发送 DNS 请求报文,以 UDP 数据报的形式发送到本地 DNS 服务器
2、本地 DNS 收到后,先查缓存,如果没有,自己扮演 DNS 客户,向根域名服务器发送解析请求
3、根 DNS 服务器收到后,判断一下属于哪个顶级域名服务器,将对应的 IP 地址发来,说,你去找他,他知道
4、本地 DNS 服务器向顶级域名服务器发送解析请求
5、顶级收到后,判断一下属于哪个授权域名服务器,将对应的 IP 地址发来,说,你去找他,他知道
6、本地向授权发送请解析请求
7、授权收到之后会将解析结果发回本地域名服务器
8、本地把查询结果存到缓存,并发给客户端
文件传输协议 FTP
21 端口,C/S 模型,使用 TCP,有两个并行的 TCP 连接,一个控制连接进程(21),一个数据连接进程(20)
客户端有传输请求的时候才会创建数据连接进程
功能:
1、在不同种类操作系统之家传输文件(屏蔽了操作系统的细节)
2、通过用户权限控制管理用户行为
3、可以用匿名 FTP 方式提供公用文件的共享能力
HTTP协议
80 端口、无状态
使用 TCP进行可靠的传输
输入 URL 之后发生的事情:
1、浏览器分析 URL ,然后请求域名解析获得 IP 地址
2、与服务器建立 TCP 连接,然后发送 HTTP 请求
3、服务器对浏览请求进行处理,通过 HTTP 响应返回信息给浏览器
4、关闭连接
5、浏览器渲染页面
HTTP/1.1 支持长连接,分两种:
1、非流水线。收到前一个的响应之后才能发请求
2、流水线。发现对象引用就发请求
HTTP 报文结构
- 请求报文
- 响应报文
组成:开始行、首部行、实体主体
请求报文和响应报文仅开始行不同
- 开始行:有三个字段,请求行是请求的方法、URL 以及 HTTP 版本号;响应行是版本、状态码、短语
参考文献
[1] 王道计算机网络
[2] 计算机网络(第五版)-潘爱民等