6 应用层
6.1 网络应用模型
6.1.1 客户/服务器模型
C/S模型,一个总是打开的服务器,服务与其他自称客户的主机请求,其工作流程如下:
- 服务器处于接受请求的状态
- 客户端发出服务请求,并等待接收结果
- 服务器收到请求后,分析请求,并进行必要的处理,得到结果并发送客户机
常见的C/S模型包括web,文件传输协议FTP,远程登陆,电子邮件。
- 客户机之间不直接通信
- 可扩展性不佳,受限于服务器硬件和网络带宽限制,服务器支持的客户机数量有限
6.1.2 P2P模型
P2P思想,整个网络中传输的内容不在被保存到服务器上,每个节点同时具备下载和上传的功能,其权力和义务大多是对等的。
P2P模型本质上还是客户端服务器模型,不过每个节点都可以基座客户端,又做服务器。
优点:
- 减轻服务器压力,消除了对某个服务器的完全依赖
- 多个客户机可以直接共享文档
- 可扩展性好
- 网络健壮性好
缺点: - 给其他节点服务,占用内存,影响整机速度
应用:电驴,(视频电话应该也是)
6.2 域名系统(DNS)
Domain Name System,DNS 用来将人们记忆的具有特定含义的主机名(www.cskaoyan.com)转换成便于机器处理的IP地址。
互联网上的每一台电脑都被分配一个IP地址,数据的传输实际上是在不同IP地址之间进行的。包括我们在家上网时使用的电脑,在连上网以后也被分配一个IP地址,这个IP地址绝大部分情况下是动态的。也就是说你关掉调制解调器,再重新打开上网,你的上网接入商会随机分配一个新的IP地址。
DNS采用 C/S模型,使用UDP ,端口号53
DNS分成3部分:层次域名空间、域名空间和解析器
6.2.1 层次域名空间
因特网采用层次树状结构的命名方法。
顶级域名
- 国家顶级域名: cn us jp
- 通用顶级域名: .com .net .org .gov
- 基础结构域名: arpa
每个组织将他的域名再分成一定数目的子域
6.2.2 域名服务器
DNS域名服务器一层此方式组织,没有一台域名服务器在因特网上有所有主机的映射,采用分布式数据库。
1 根域名服务器
所有的根域名服务器,都知道所有的顶级域名服务器的IP地址。不管是那个本地域名服务器无法解析域名,都要首先求助根域名服务器,因特网上有13台根域名服务器。
他告诉本地域名服务器,下一步找哪一个顶级域名服务器进行查询。
2 顶级域名服务器
顶级域名服务器,负责管理在该顶级域名服务器注册的所有二级域名,收到DNS请求时,就给出回答,可能是结果IP地址,也可能是下一个要查找的服务器的IP地址。
3 授权域名服务器(权限域名服务器)
- 每台主机都比选在授权域名服务器处登记
- 一台主机最好有两个授权域名服务器
- 授权域名服务器总能将管辖的主机名转换成该主机的IP地址
- 许多域名服务器,同时充当本地域名服务器和授权域名服务器
4 本地域名服务器
- 每个因特网络提供者(ISP)、大学、企业等都可以用有一个本地域名服务器
- 当一台主机发出DNS 查询请求时,请求报文就发送给本地域名服务器。
- windows 本地连接,填的DNS地址,就是本地域名服务器地址
6.2.3 域名解析过程
- 正向解析:将域名映射为IP地址
- 反向解析:将IP地址映射为域名
域名解析两种方式:递归查询,递归查询与迭代相结合的方式。
主机向本地域名服务器的查询方式都是递归查询。本地域名服务器将结果缓存,同时返回给客户机。
递归查询: 本地域名服务器只需要查询一次根域名服务器。跟服务器负载过大,不实用
迭代查询: 根域名服务器收到本地域名服务器发出的查询请求,要么给出结果,要么给出下一步应该像那一个服务器查询。本地域名服务器在向顶级域名服务器查询,…直到本地域名服务器得到结果IP后,将结果返回主机。
为加快查询速度,将将查询结果保存在DNS服务器的高速缓存中,但是因为IP是动态的,过一段时间就将高速缓存中信息丢弃。
6.3 文本传输协议 FTP
6.3.1 FTP原理
提供交互式访问,允许客户指定文件的类型和格式,并郧西文件具有存取权限。
FTP采用C/S工作方式,使用TCP方式传输,郧西一个FTP服务器同时为多个客户进程提供服务。
- 端口号 21
6.3.2 控制连接与数据连接
FTP在工作时,使用两个并行的TCP连接;
- 一个是控制连接 端口号21,在整个会湖区期间一直打开,不用来传文件。
- 一个是数据连接 端口号20 在传送哦那个完毕后关闭“数据传送连接”,并结束运行。
6.4 电子邮件
6.4.1 电子邮件系统的组成构件
电子邮件是一种异步通信方式。
主要的三个构件 :
- 用户代理: 电子邮件客户端
- 邮件服务器:C\S架构,功能是接受和发送邮件,同时充当客户和服务器
- 邮件发送协议和邮件接收协议: SMTP 用于客户代理从油价服务器读取邮件火灾邮件服务器之间发送邮件。 SMTP用“推”的通信方式,POP3用于客户待敌从邮件服务器读取邮件,用拉的方式
6.4.2 SMTP POP3
1 SMTP
简单邮件传输协议 Simple Mail Transfer Protocol,SMTP 使用TCP连接,端口号25,SMTP通信有三个阶段
- 连接建立:SMTP不使用中间的邮件服务器,TCP在发送方和接收方邮件服务器直接直接连接,中间经过若干路由器,但是不经过邮件服务器。
- 邮件传送
- 连接释放
2 POP
邮局协议 Post office protocol:
两种工作方式:
- 下载并保留
- 下载并删除
现在使用Gmail等,载浏览器和邮件服务器之间使用HTTP,载不同邮件服务器之间使用SMTP
6.5 WWW 万维网
6.5.1 万维网概念
万维网,分布式式的信息存储空间,在这个空间中,一样有用的东西,图片、文本的那个被称为资源,并由全域“统一资源定位符URL”标识。资源通过HTTP传输。
万维网内核:
- 统一资源定位符 URL <协议>://<主机>:<端口>/<路径>
- 超文本传输协议(HTTP)。 使用TCP传输
- 超文本标记语言
6.5.2 超文本传输协议 HTTP
HTTP 定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样将文档传给浏览器。HTTP式面向事物的应用层协议。
1 HTTP操作过程
- 浏览器分析只想页面的URL(https://www.bilibili.com/variety/?spm_id_from=333.1007.0.0)
- 浏览器想DNS请求解析 www.bilibili.com 的IP
- DNS解析出 服务器IP
- 浏览器于该服务器建立TCP连接,默认端口为80
- 浏览器发出 HTTP 请求:GET/variety/?spm_id_from=333.1007.0.0
- 服务器通过HTTP将响应文件发给浏览器
- 释放TCP连接
- 浏览器解释文件,并将Web也呈现给用户
2 HTTP特点
- 使用TCP作为传输层协议
- HTTP本身是无连接的
- HTTP是无状态的
- HTTP既可以使用持久连接,也可以使用非持久连接:
- 非持久连接:每传送一个网页元素对象,都要单独建立TCP连接。每个对象引用的都需要2个RTT
- 持久链接,非流水请求:客户收到前一个响应后才能发出下一个请求
- 持久链接,流水请求: 客户每遇到一个引用对象就发送请求。
3 HTTP 报文结构
HTTP是面向文本的,因此报文每个字段都是ASCII码