当前位置: 首页 > article >正文

计算机网络 --应用层

计算机网络 --应用层

一、应用层概述

1. 功能

  • 应用层为应用程序通信提供直接服务,这种服务是用户能够直接感知到的数据通信服务。
  • 核心功能包括
    • 文件传输:实现不同设备间文件的传输操作。
    • 访问管理:对用户访问资源等进行管理。
    • 电子邮件:支持邮件的发送、接收与存储管理等功能。
    • 虚拟终端:为用户提供虚拟的终端环境,方便远程操作等。
    • 查询服务:例如查询数据库等操作。

2. 核心协议

  • FTP(文件传输协议):专门用于在网络上进行文件传输的协议。
  • SMTP/POP3/IMAP(电子邮件协议)
    • SMTP(简单邮件传输协议):主要负责邮件的发送,包括客户端到服务器以及服务器之间的邮件传输。
    • POP3(邮局协议版本3):用户从服务器下载邮件到本地进行离线阅读,下载后可删除服务器上的副本。
    • IMAP(互联网消息访问协议):用户可在线同步管理邮件,并且保留服务器上的副本。
  • HTTP(超文本传输协议):用于在万维网上传输超文本等资源。
  • DNS(域名解析系统):实现域名到IP地址的映射解析,使用户输入的域名能够被转换为对应的IP地址。

二、网络应用模型

1. C/S模型(客户端 - 服务器模型)

角色划分
  • 服务器
    • 持续运行,不间断地为客户端提供服务。
    • 例如Web服务器提供网页浏览服务,邮件服务器提供邮件存储转发等服务。
  • 客户端
    • 主动发起服务请求的一方。
    • 通过与服务器建立连接来获取所需资源,如访问网页、下载文件或者获取邮件等。
典型应用
  • Web访问:用户使用浏览器(客户端)向Web服务器请求网页资源。
  • FTP文件传输:客户端向FTP服务器请求文件的上传或下载操作。
  • 电子邮件:客户端与邮件服务器交互,实现邮件的收发操作。

2. P2P模型(对等网络模型)

特点
  • 网络中的节点具有双重身份,既是客户端又是服务器。
  • 资源共享效率高,因为节点之间可以直接交互,无需依赖中央服务器进行资源的中转。
优势
  • 去中心化:不存在中心控制节点,每个节点地位平等,降低了单点故障的风险。
  • 扩展性强:例如在迅雷下载、BT资源分享中,新加入的节点可以增加整个网络的资源共享能力。
示例
  • 在下载电影时,多个节点相互传输部分数据,共同加速电影文件的下载速度。

三、DNS域名系统

1. 核心功能

  • 主要功能为将用户输入的域名转换为对应的IP地址,即实现域名到IP地址的映射解析。这一功能是网络通信中至关重要的环节,因为计算机在网络中是通过IP地址进行通信的,而域名则是方便用户记忆和使用的标识。

2. 域名结构

  • 层级结构:采用三级域名.二级域名.顶级域名的形式。
    • 顶级域名(TLD)
      • .com:主要用于商业机构。
      • .edu:用于教育机构。
      • .gov:用于政府机构。
      • .cn:是中国的国家代码顶级域名。
    • 二级域名:例如baidu(百度公司的域名部分)、pku(北京大学的域名部分)等,是由各个组织或机构自行定义的标识。
    • 三级域名:像www通常作为默认主机名,也可以是其他自定义的名称,用于进一步细分域名下的不同服务或主机。

3. DNS解析过程

递归查询(本地服务器代查)
  • 当主机需要查询域名对应的IP地址时:
    • 首先查询本地DNS缓存,如果在缓存中能够找到对应的解析结果,则直接使用,无需进一步查询。
    • 如果本地DNS缓存未命中,则向本地DNS服务器发送查询请求。
    • 本地DNS服务器会按照顺序依次向根DNS服务器顶级DNS服务器权限DNS服务器进行递归查询,直到获取到域名对应的IP地址并返回给主机。
迭代查询(本地服务器自主查)
  • 主机向本地DNS服务器发起查询请求后:
    • 本地DNS服务器首先向根DNS服务器查询,根DNS服务器返回顶级DNS服务器的地址。
    • 本地DNS服务器根据根DNS服务器返回的地址,直接向顶级DNS服务器查询,顶级DNS服务器返回权限DNS服务器的地址。
    • 最后本地DNS服务器根据顶级DNS服务器返回的地址,直接向权限DNS服务器查询,获取域名对应的IP地址。

4. 服务器类型

  • 根域名服务器
    • 全球共有13组根域名服务器,其主要存储顶级域名服务器的地址信息。
    • 在DNS解析过程中起着关键的引导作用。
  • 本地域名服务器
    • 是用户直接访问的首个DNS服务器。
    • 负责接收用户的查询请求,并根据情况进行递归查询或者迭代查询。

四、FTP文件传输协议

1. 特点

  • 基于C/S模型:遵循客户端 - 服务器的交互模式。
  • 采用TCP可靠传输:确保文件传输过程中数据的准确性和完整性,避免数据丢失或出错。
  • 双端口机制
    • 控制连接(端口21):主要用于传输命令,例如客户端请求文件的操作指令等。
    • 数据连接(端口20):专门用于传输文件的实际内容。

2. 工作流程

  • 首先,客户端通过21端口与服务器建立控制连接。
  • 然后,服务器启动子进程来处理客户端的请求,并通过20端口建立数据连接,用于传输文件。

五、电子邮件系统

1. 核心组件

  • 用户代理(UA)
    • 客户端软件,例如Outlook等。
    • 其主要功能包括撰写邮件、发送邮件以及接收邮件,为用户提供方便的邮件操作界面。
  • 邮件服务器
    • 主要负责存储和转发邮件。
    • 在邮件发送时使用SMTP协议,在接收邮件时使用POP3或IMAP协议。

2. 协议与流程

  • SMTP(简单邮件传输协议)
    • 用途
      • 主要用于发送邮件,包括从客户端到服务器以及服务器之间的邮件传输。
    • 三阶段
      • 连接建立:客户端与服务器建立连接,准备进行邮件传输。
      • 邮件传输:实际进行邮件内容的传输操作。
      • 连接释放:传输完成后,释放连接资源。
    • 基于TCP端口25
  • POP3/IMAP
    • 用途:从服务器下载邮件到本地,是用户主动拉取邮件的操作。
    • POP3特点
      • 操作简单,适用于用户进行离线阅读邮件。
      • 下载邮件后会删除服务器上的副本。
    • IMAP特点
      • 可以实现在线同步管理邮件,方便用户在不同设备上同步邮件状态。
      • 保留服务器上的副本,不会在下载后删除服务器上的邮件。

六、万维网与HTTP协议

1. 核心概念

  • 万维网(WWW)
    • 由超文本、URL、HTTP协议共同构成的全球性资源网络。
    • 为用户提供丰富的信息资源,通过超链接可以方便地在不同资源之间进行跳转访问。
  • URL(统一资源定位符)
    • 格式为协议://主机:端口/路径,例如http://www.baidu.com
    • 通过URL可以准确地定位网络中的资源位置。

2. HTTP协议

  • 特点
    • 无状态:协议本身不保存之前的交互状态信息,每个请求都是独立的。
    • 基于TCP(端口80):利用TCP协议的可靠传输特性来保证数据的正确传输。
    • 支持持久连接:在一定时间内可以保持连接,减少连接建立和释放的开销,提高传输效率。
  • 工作流程
    • 浏览器首先解析URL,通过DNS获取服务器的IP地址。
    • 然后建立TCP连接,这个过程通过三次握手来完成。
    • 接着发送HTTP请求,例如GET /index.html等请求指令,获取特定的资源。
    • 服务器收到请求后,响应请求并返回相应的资源,如HTML文件、图片等。
    • 最后释放TCP连接,通过四次挥手来完成连接的关闭操作。

3. HTML与超链接

  • HTML(超文本标记语言)
    • 用于定义网页的内容和结构,通过各种标签来组织文字、图片、链接等元素。
  • 超链接
    • 通过URL实现资源的跳转,使用户可以方便地从一个网页跳转到另一个相关的网页或者资源。

七、补充要点

1. 域名书写规则

  • 域名书写时,顶级域名应写在最后,例如.com.cn是正确的写法,而.cn.com是错误的写法。

2. 协议用途

  • SMTP:主要用于邮件的发送,包括服务器之间的邮件传输。
  • POP3/IMAP:主要用于邮件的接收,即用户从服务器拉取邮件。

3. 端口号

  • FTP:控制连接使用端口21,数据连接使用端口20。
  • HTTP:使用端口80。
  • SMTP:基于TCP端口25。

4. DNS解析类型

  • 递归查询:本地服务器代查,按照根DNS服务器、顶级DNS服务器、权限DNS服务器的顺序依次查询。
  • 迭代查询:本地服务器自主查询,根据根DNS服务器返回的顶级DNS服务器地址,再根据顶级DNS服务器返回的权限DNS服务器地址进行查询。

http://www.kler.cn/a/600834.html

相关文章:

  • 【设计模式】深入解析装饰器模式(Decorator Pattern)
  • 什么是Dify,以及我们能用它来做什么
  • Docker镜像相关命令(Day2)
  • 【leetcode hot 100 394】字符串解码
  • 【ARM】MDK-解决单机版LIC获取报错
  • 05、Tools
  • JupyterLab 导出中文 PDF 方案
  • 《算法笔记》9.6小节 数据结构专题(2)并查集 问题 D: More is better
  • 特殊行车记录仪DAT视频丢失的恢复方法
  • 日志截断/日志中途清空/不停止程序
  • PLC物联网网关是什么?PLC网关应用场景
  • 程序化广告行业(32/89):常见广告位类型深度剖析
  • 106.在 Vue3 中使用 OpenLayers 动态添加 Layer 到 LayerGroup,并动态删除
  • 第 5 章 | Solidity 合约中的整数溢出与精度陷阱全解析
  • 笔记整理三
  • 开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(五)
  • 最大连续子序列和(动态规划 -- 经典Kadane算法)
  • 可视化工程项目管理软件:让复杂工程数据一目了然
  • rabbitmq承接MES客户端服务器
  • sourcetree中的“master“,“origin/master“,“origin/HEAD“这三个图标都是什么意思?GIT 超详细➕通俗易懂版本