第二章 应用层
-
应用层协议原理
套接字socket是应用程序进程和运输车协议之间的接口。发送端的应用程序将报文推进该套接字。套接字的另一侧,运输层协议负责使该报文进入接收进程的套接字。
一个运输层协议能够从四个方面对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时和安全性。 -
因特网提供的运输服务
因特网为应用程序提供两个运输层协议.UDP和TCP
-
TCP安全性:SSL(Secure Sockets Layer)安全套接字层.TCP服务 TCP服务模型包括面向连接服务和可靠数据传输服务. * 面向连接的服务:TCP让客户和服务器相互交换运输层控制信息.这个握手过程提示客户和服务器为大量分组到来做准备.握手阶段后,TCP连接在两个进程的套接字之间建立一个双全工连接,即连接双方的进程可在此连接上进行报文收发.当应用程序结束报文发送时,需拆除该连接. * 可靠的数据传送服务: 通信进程能够依靠TCP,无差错,按适当顺序交付所有发送的数据.
-
UDP服务 UDP是不提供不必要的轻量级运输协议,提供最小服务,无连接,两个进程通信前没有握手过程.提供不可靠数据传送服务.乱序到达.
Web和HTTP
- 非持续连接和持续连接
-
采用非持续连接的HTTP.
Http请求网络协议版
RTT-Round-Trip Time,往返时间.包括分组传播时延,分组在中间路由器和交换机上排队时延以及分组处理时延.
-
采用持续连接的HTTP.
服务器发送响应后保持该TCP连接打开.相同的客户和服务器之间后续请求和响应报文能够通过相同连接进行传送.
-
HTTP报文格式
-
HTTP请求报文 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200902095809618.png#pic_center) 第一行叫请求行-request line 后续行叫首部行-header line 实体体-entity body ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200902095823848.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2F5c2ppYW5neXU=,size_16,color_FFFFFF,t_70#pic_center)
-
HTTP响应报文 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020090209583954.png#pic_center) 三个部分:一个初始状态行-status line. 6个首部行-header line 实体体-entity body ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200902095851510.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2F5c2ppYW5neXU=,size_16,color_FFFFFF,t_70#pic_center)
-
-
用户与服务器交互:cookie
4个组件:
①HTTP响应报文中的一个cookie首部行;
②HTTP请求报文中的一个cookie首部行;
③用户端系统保留一个cookie文件并由用户浏览器管理;
④位于web站台的后端数据库.
-
web缓存/CDN内容分发网络
文件传输协议: FTP
HTTP和FTP都是文件传输协议.都运行在TCP上.
FTP使用了两个并行TCP连接传输文件.一个控制连接,一个数据连接.
因特网中的电子邮件
电子邮件系统:用户代理.邮件服务器.简单邮件传输协议(SMTP-simple mail transfer protocol)
DNS:因特网的目录服务
DNS提供的服务
识别主机两种方式:主机名host或IP地址.DNS服务器通常是运行BIND软件的UNIX.DNS协议运行在UDP之上,使用53号端口.
* DNS(domain name system)域名系统提供的服务:主机名到IP地址转的目录服务.
①由分层的DNS服务器实现的分布式数据库;②使得主机能够查询分布式数据库的应用层协议.
输入URL DNS版:
其他重要服务:
* 主机别名:一个或多个别名.
* 邮件服务器别名.
* 负载分配.
DNS工作机理概述
主机名转换为IP地址,应用程序调用DNS客户端.并指明需要被转换的主机名.用户主机上的DNS接收后,向网络中发送DNS查询报文.所有DNS请求和回答报文经端口53发送.经过时延后,用户主机上的DNS接收到一个提供希望映射的DNS回答报文,映射结果被传递到调用DNS的应用程序.
DNS简单设计是在因特网只使用一个DNS服务器,该服务器包含所有映射.但不适用于今日的因特网.
集中式设计的问题包括:
* 单点故障 * 通信容量 * 远距离的集中式数据库 * 维护
单一DNS服务器运行集中式数据库没有课扩展能力.
DNS采用了分布式设计方案.-分布式数据库.
1.分布式,层次数据库.
3种类型的DNS服务器.根DNS服务器.顶级域(top-level domain,TLD)DNS服务器,权威DNS服务器.
2.DNS缓存
本地缓存策略.改善时延性能并减少传输DNS报文数,DNS服务器接收回答的信息缓存在本地存储器中,通常为2天有效期.
DNS记录和报文
DNS只有查询和回答报文两种.且格式相同.
P2P应用 --> 暂时略过 需重读
TCP套接字编程
socket编程->无连接UDP和面向连接TCP端到端传输服务.