计网--应用层

网络应用模型

客户/服务器模型

有个总是打开的主机,称为服务器

  • 服务器处于接收请求的状态

  • 客户机发出服务请求,等待接收结果

  • 服务器收到请求后,分析请求,进行处理,得到结果发送给客户机

客户是服务请求方,服务器是服务提供方

常见应用:Web,文件传输协议(FTP),远程登录和电子邮件

  • 管理方便
  • 客户机间不直接通信
  • 可扩展性不佳

P2P

整个网络中的传输内容不再被保存在中心服务器上,每个节点都同时有下载,上传的功能。每个节点既作为客户访问其他节点的资源,也作为服务器提供资源给其他节点访问。

  • 减轻服务器压力
  • 可扩展性好
  • 网络健壮性好
  • 多个客户机间可以直接共享文档

缺点:需要给其他节点提供服务,占内存多,影响整机速度。

DNS(域名系统)

采用客户/服务器模型,协议运行在UDP上,使用 53 号端口

分为三部分:层次域名空间,域名服务器和解析器

层次域名空间

每个域名都由标号序列组成,各标号之间用 . 隔开。级别最低的域名写左边,最高的写右边

域名服务器

域名系统是分布式数据库系统

域名到IP地址的解析是由运行在域名服务器上的程序完成的

根域名服务器

本地服务器对一个域名若无法自己解析,首先就求助于根域名服务器

总共有 13 个根域名服务器

用来管辖顶级域,不直接转 IP ,而是告诉本地域名服务器下一步到哪个顶级域名服务器进行查询

顶级域名服务器

管理在该顶级域名服务器注册的所有二级域名,收到请求返回的结果可能是 IP 也可能是下一步要查询的域名服务器 IP 地址

授权域名服务器

每台主机都必须在授权域名服务器处登记,授权域名服务器总能将其管辖的主机名转换为该主机的 IP 地址

本地域名服务器

主机发出 DNS 查询时,首先发给本地域名服务器

域名解析过程

正向解析:域名 -> IP

反向解析:IP -> 域名

  • 递归查询
    • 一个帮一个问,最后返回结果
    • 这种使根域名服务器负载过大,通常不用
  • 递归与迭代相结合
    • 本地域名服务器帮主机问
    • 本地服务器问后面的,后面告诉他去哪问,本地服务器自己去问

域名服务器中广泛使用高速缓存

文件传输协议(FTP)

使用的最广泛的文件传输协议,允许客户指明文件的类型与格式,允许文件具有存取权限

  • 以用户权限管理的方式提供用户对远程 FTP 服务器上的文件管理能力

使用 TCP

FTP服务进程分为

  • 一个主进程:负责接收新增的请求
  • 若干从属进程:负责处理单个请求

使用两个 TCP 连接

  • 控制连接,端口号 21
    • 服务器监听 21 号端口,等待客户连接。用于传输控制信息(开始,结束,终止等),会话期间一直保持打开
  • 数据连接,端口号 20
    • 接收到客户连接请求,建立数据连接
    • 主动:通过 20 号端口与客户开放的端口(随机)连接
    • 被动:服务器随机开放端口,告知客户端,等客户端来连接

若要修改服务器上文件,需要先将文件传送到本地主机,改完,把副本发回原服务器

电子邮件

电子邮件系统三个主要构件:用户代理,邮件服务器,使用的协议(SMTP,POP3 等)

用户代理

用户与电子邮件系统的接口,就是一个客户端软件

邮件服务器

发送和接收邮件,还能向发件人报告邮件发送情况

要能做客户端和服务器(发给别的服务器,从其他服务器接收)

邮件发送和读取协议

发送协议:用于用户代理向服务器发或者服务器之间发

  • SMTP,用的是 push 的通信方式

读取协议:用户代理从服务器读

  • POP3,用的是 pull 的通信方式

SMTP

简单邮件传输协议,控制两个相互通信的 SMTP 进程交换信息,用客户 / 服务器方式,使用 TCP 连接,端口号 25

  • 连接建立

    • SMTP 客户用 25 号端口与接收方 SMTP 服务器建立 TCP 连接

    • 连接建立后,接收方发送服务就绪

    • SMTP客户向 SMTP 服务器发 HELO 命令,附上发送方主机名

    • SMTP 不使用中间的邮件服务器,不论相隔多远,总是在发送方和接收方这两个邮件服务器之间直接建立连接

  • 邮件传送:先弄清接收方系统是否已做好接收邮件的准备,然后再发送数据

  • 连接释放:发完后,客户发送 quit 命令

POP

邮局协议

使用客户 / 服务器的工作方式,使用 TCP,端口 110。

用户代理运行 POP 客户程序,服务器运行 POP 服务器程序

可选择下载并保留 或者 下载并删除 两种方式、

万维网(WWW)

分布式,联机式的信息存储空间,每个资源都由一个 URL 标识

万维网内核由三部分组成

  • 统一资源定位符 URL:负责标识万维网上的各种文档,URL中不区分大小写
  • 超文本传输协议 HTTP:应用层协议,使用 TCP 连接进行可靠的数据传输
  • 超文本标记语言 HTML

以客户 / 服务器方式工作

  • Web 用户使用浏览器与Web服务器建立连接,发送浏览请求
  • Web 服务器把 URL 转换为文件路径,返回信息给 Web 浏览器
  • 通信完成,关闭网络

HTTP

是面向事物的应用层协议

有两类报文:请求报文和响应报文

流程:

  • 浏览器分析链接指向 URL
  • DNS请求得 IP
  • 建立 TCP 连接
  • 发出 HTTP 请求
  • HTTP 响应
  • 释放 TCP 连接
  • 浏览器解释文件,显示页面

HTTP 本身是无连接(短连接),无状态的,使服务器更容易支持大量并发的 HTTP 请求

  • 可以用 Cookie + 数据库的方式来跟踪用户活动

HTTP可以使用非持久连接和持久连接

  • 非持久:每个网页元素对象(网页中的图像等)的传输都要单独建立一个 TCP 连接,这使得万维网服务器负担很重
  • 持久:服务器在发送响应后,仍保持这条连接,后续仍可在这个连接上请求信息
    • 非流水线:客户在收到前一个响应后才能发出下一个请求,浪费服务器资源
    • 流水线:每遇到一个对象引用就立即发出一个请求

报文结构

有请求报文和响应报文

都由三个部分组成

  • 开始行:用于区分是请求报文还是响应报文

    • 请求报文中称为请求行
      • 方法,URL,HTTP版本,换行
    • 响应报文中称为状态行
      • HTTP 版本,状态码,短语(比如 404 not found),换行
  • 首部行:用来说明浏览器,服务器,报文主体的一些信息。每行是 首部字段 + 值 + 换行。可以有几行,也可以没有。结束后,空一行,和后面的一个部分分开。

  • 实体主体

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_52852138/article/details/125899709