• 计网--应用层


    网络应用模型

    客户/服务器模型

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

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

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

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

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

    常见应用: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),换行
    • 首部行:用来说明浏览器,服务器,报文主体的一些信息。每行是 首部字段 + 值 + 换行。可以有几行,也可以没有。结束后,空一行,和后面的一个部分分开。

    • 实体主体

    在这里插入图片描述

  • 相关阅读:
    C++对象模型(7)-- 数据语义学:成员变量偏移值、地址
    VBA_MF系列技术资料1-202
    有哪些编辑图片加文字的软件?这些软件值得收藏
    想学设计模式、想搞架构设计,先学学 UML 系统建模吧
    数据分析实际案例之:pandas在泰坦尼特号乘客数据中的使用
    【c#版本Openfeign】Net8 自带OpenFeign实现远程接口调用
    夯实网络安全基石,筑牢网络安全防线
    NFT 的洗盘交易,真的赚钱吗?
    SQLite SQL教程之如何实现contains函数,left join 判断一个字符串包含另外一个(教程含源码)
    android 9 adb安装过程学习(二)
  • 原文地址:https://blog.csdn.net/qq_52852138/article/details/125899709