第二章 应用层

进程通信

  • 发起通信的进程标识为客户,等待联系的进程是服务器。
  • 进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
  • 应用开发者对运输层的控制仅限于:
    1、选择运输层协议
    2、设定几个运输层参数
  • 为了标识接收进程,需要定义两种信息:
    1、主机地址(IP)
    2、定义在目的主机中的接收进程的标识符(端口号)

应用程序服务要求分类

1、可靠数据传输
2、吞吐量
3、定时
4、安全性

因特网提供的运输服务

TCP

  • 面向连接的服务:在应用层数据报文开始流动前,TCP让客户和服务器互相交换运输层控制信息。在握手阶段后,一个TCP连接就在两个进程地套接字之间建立了。当结束报文传输后,拆除该连接。
  • 可靠地数据传送服务
  • 拥塞控制

UDP

  • 无连接
  • 不可靠数据传输服务
  • 没有拥塞控制

应用层协议

  • 应用层协议定义了运行在不同端系统上的应用程序如何相互传递报文
    1、交换报文的类型
    2、各种报文类的语法
    3、字段的语义
    4、进程何时以及如何发送报文,对报文进行相应的规则

HTTP

  • HTTP服务器不保存关于客户的任何信息,所以HTTP是一个无状态协议。

HTTP非持续连接的缺点:

1、服务器负担重:每一个请求对象建立和维护一个新的连接。
2、每一个对象的传输时延长:包含两个RTT时延,一个用于TCP建立,一个用于请求和接收对象。

HTTP报文格式

请求报文

请求报文.png

请求报文通用格式.png

响应报文

响应报文.png

响应状态码.png

Cookie

cookie工作过程.png

Cookie技术的四个组件

1、在HTTP响应报文中有一个cookie 首部行
2、在HTTP请求报文中有一个cookie 首部行
3、用户主机中保留有一个 cookie 文件并由浏览器管理
4、Web站点的后端数据库保存cookie的识别码

web缓存

  • web缓存服务器在存储空间中保存最近请求的对象的副本
  • 优点:
    1、减少对客户响应请求的时间
    2、减少一个机构的接入链路到因特网的通信量

条件get方法

  • 使缓存器能够证实其保存的对象是否为最新。
  • 如果缓存中是最新对象版本,可继续使用,起始Web服务器就不需重新发送该对象。


    get方法的使用.png

FTP

  • 和HTTP一样均运行在TCP上
  • 不同:FTP使用两个并行的TCP连接来传输文件。控制连接——在两主机之间传输控制信息。数据连接——发送一个文件。
  • 控制连接贯穿整个用户会话期间
  • 会话中的每一次文件传输都需要建立一个新的数据连接

DNS

  • 将主机名转换到IP地址的目录服务——域名系统。
  • DNS协议运行在UDP上,使用53号端口
  • DNS还提供其他服务:
    1、主机别名
    2、邮件服务器别名
    3、负载分配

DNS工作过程

用户主机上运行 DNS客户机端。
浏览器从URL中解析出主机地址,传给DNS客户机端
DNS客户机向DNS服务器发送一个包含主机名的请求
DNS客户机收到含有对应主机名的IP地址的回答报文
浏览器向该IP地址指定的HTTP服务器发起一个TCP连接。

集中式DNS服务问题

  • 单点故障
  • 通信容量
  • 维护
  • 远距离的集中式数据库

分步式DNS

  • DNS服务器分类:根DNS服务器、顶级域(DNS)服务器、权威DNS服务器

本地DNS服务器运行过程

迭代查询.png

递归查询.png

DNS缓存

在一个请求链中,当某DNS服务器接收到一个DNS回答时,它将回答中的信息缓存在本地存储器中。

DNS报文

DNS报文格式.png
  • 前12个字节是首部区域,其中有几个字段。第一个字段(标识符)是一个16比
    特的数,用于标识该查询。这个标识符会被复制到对查询的回答报文中,以便让客户用它来匹配发送的请求和接收到的回答。
  • 标志字段中含有若干标志。1比特的“查询/回答”标志位指出报文是查询报文(0) 还是回答报文(1)。 当某DNS服务器是所请求名字的权威DNS服务器时,1比特的“权威的”标志位被置在回答报文中。如果客户(主机或者DNS服务器)在该DNS服务器没有某记录时希望它执行递归查询,将设置1比特的“希望递归”标志位。如果该DNS服务器支持递归查询,在它的回答报文中会对1比特的“递归可用”标志位置位。在该首部中,还有4个有关数量的字段,这些字段指出了在首部后的4类数据区域出现的数量。
  • 问题区域包含着正在进行的查询信息。该区域包括:①名字字段,包含正在被查询的主机名字;②类型字段,指出有关该名字的正被询问的问题类型,例如主机地址是与一个名字相关联(类型A)还是与某个名字的邮件服务器相关联(类型MX)。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容