计网应用层
概念
- 存在位置:网络边缘主机上
- 工作任务:负责两个端的主机上的应用进程之间的通信
- 应用层协议:负责规范不同类型应用进程的通信规则,对于不同类型应用就有不同应用层协议
域名DNS系统
**作用:**将域名解析成IP地址,网络层封住数据报首部需要用到目的IP地址
域名结构: xxx.四级域名.三级域名.二级域名.顶级域名
**解析过程:**主机查询ip地址,首先会去本地域名服务器的缓存区中查找之前解析过的ip地址,如果击中目标则直接返回对应的ip地址,否则就会向外边服务器发送DNS解析请求,分为两种。
迭代查询
- 步骤
- 向根域名服务器查询,根域名要么返回ip地址,要么返回自己知道下一步需要查询的顶级域名服务器
- 若根域名服务器返回下一步顶级域名服务器IP地址,则继续向顶级域名服务器查询,同样,顶级域名服务器要么返回ip地址,要么返回自己知道下一步需要查询的权限域名服务器
- 若顶级域名服务器返回下一步权限域名服务器IP地址,则继续向权限域名服务器查询,权限域名服务器一定会返回ip地址
递归查询
- 步骤
- 向根域名服务器查询,根域名要么返回ip地址,要么继续查询顶级域名服务器**
- 顶级域名服务器要么返回ip地址,要么需要查询权限域名服务器
- 权限域名服务器一定会返回ip地址
文件传送协议
**传送形式:**客服端服务器方式
文件传送协议FTP
使用运输层TCP可靠传送服务,文件传送之前需要建立TCP连接
传送过程
服务器端
-
一个主进程
负责接受新的请求
工作步骤
- 打开端口
- 等待客户端发送请求
- 为请求创建从属进程
- 返回等待请求状态
-
若干从属进程
处理若干的请求
类型
- 控制进程:控制连接在整个会话期间保持连接,并传送客户端发过来的请求指令
- 数据传送进程:顾名思义,就是负责传送文件数据
客服端
- 发送连接请求
- 发送数据,发送指令,下载数据
- 发送连接关闭请求
简单文件传送协议TFTP
使用运输层UDP不可靠传送服务,因此 TFTP 需要自己错误改正措施
功能单一,只支持文件传输不支持交互
优点:
- TFDP可以用于UDP环境,如需要同时向许多机器下载时就用TFDP
- TFDP代码少,不占内存
HTTP协议
**作用:**定义浏览器怎样向万维网服务器请求万维网文档(包含文字、图像、音频等)
**基础:**使用运输层TCP协议,可靠传输
**传输单位:**报文
报文结构
-
类型:请求报文,响应报文
-
构成
- 开始行:请求报文叫请求行,响应报文叫状态行
- 首部行
- 实体主体
版本号
-
http 1.0
最初始的版本,短连接,每个请求都要建立TCP连接,请求结构释放TCP连接,由于TCP连接需要时间,三次握手连接后还要进行慢开启,所以效率比较低。
-
http 1.1
- 增加了 keep-alive 功能,长连接,多个请求可以复用同一个TCP连接,每个通信完后保持连接,这样每次发送请求时无需再次重新建立 tcp连接,提高了传输效率。但是多个请求只能串行传输。
- 身份认证
- 状态管理
- Cache缓存等机制相关的请求头和响应头
- 增加Host header
- 现在默认使用是 http 1.1 版本
-
http 2.0
- 增加了多路复用功能
- 使用了管道方式传输数据,数据分割成帧,同属于同一请求中的数据的帧构成一种流,不同的流可以在上管道上并发且双向传输
- 在应用层与传输层之间增加了二进制分帧层
- 将传输的信息分割为更小的消息和帧,将 http/1.x的首部信息封装到HEADER frame 中,而响应的 Request Body 则封装到 DATA frame 里面。
- 通信都建立在一个连接上,并且可以承载任意数量的双向数据流
http/1.1 与 http2的对比图解
分析:http/1.1 和 http/2.0 都是可以多个请求复用一个 TCP 连接,但是 http/1.1 在 这些请求发送完毕后就会关闭,而http/2.0 依旧保持着连接;http/1.1 的发送每次请求之前,比较先等上一次请求得到响应后才能发送,是串行的,而 http/2.0 则是同一时间发送多个请求,并且无需等待之前的请求得到响应,是并行的。
代理服务器
- 正向代理服务器,可以用来收集众多客户端的请求,以一种高速的方式转发请求到目的主机,并接收目的主机返回的响应,不但返回给客户端响应结果,还会把数据保存到自己的高速缓冲区中,当其他客户端访问时相同资源时,可以直接返回响应结果,不再转发请求。
- 比如我们访问外网的时使用梯子就是将请求转发到正向代理服务器上,该服务器选择没有被墙的路径转发请求。
远程终端协议TELNET
用户使用TELNET在客户端通过TCP连接注册(登录)到远程的另一台主机上,可以通过在本地发送命令控制远程主机,反过来远程主机的输出结果可以返回到客户端屏幕,就仿佛本地客户机直接连接远程服务主机一样。
**实际应用:**这个在使用云服务时,经历需要远程连接到云服务器。
动态主机配置协议DHCP
**作用:**在一个局域网下,动态DHCP服务可以为连接的主机分发 IP 地址
**基础:**基于 运输层的 UDP 不可靠传输,局域网出错概率很小,所以使用 UDP 更轻量,差误校验 DHCP 自己做
过程
- 需要IP地址的主机(0.0.0.0)在启动时向 DHCP 服务器广播发送报文(255.255.255.255),这样,在本网的所有主机都能收到该报文,但是只有 DHCP 服务器才会响应。
- DHCP 服务器先从数据库中查找该 主机的配置信息(之前可能分配过),找到了则直接返回 IP 地址,否则从 IP 地址池中拿一 IP 地址出来,分配给该主机。
电子邮件
基于 TCP
构成三要素
- 用户代理:是运行在客户主机的一个程序,具有撰写、显示、处理、通信 4个功能
- 邮件服务器
- 邮件发送协议(如 SMTP)和邮件读取协议 (如 POP3)