计算机网络 --应用层
计算机网络 --应用层
一、应用层概述
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通常作为默认主机名,也可以是其他自定义的名称,用于进一步细分域名下的不同服务或主机。
- 顶级域名(TLD):
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服务器地址进行查询。
相关文章:
计算机网络 --应用层
计算机网络 --应用层 一、应用层概述 1. 功能 应用层为应用程序通信提供直接服务,这种服务是用户能够直接感知到的数据通信服务。核心功能包括: 文件传输:实现不同设备间文件的传输操作。访问管理:对用户访问资源等进行管理。电…...
CMS迁移中SEO优化整合步骤详解
内容概要 在CMS迁移过程中,系统化的规划与执行是保障SEO排名稳定性的核心。首先需明确迁移流程的关键阶段,包括数据备份、URL适配、元数据同步及安全配置等环节。其中,数据备份不仅需覆盖原始数据库与静态资源,还需验证备份文件的…...
数据结构初阶-二叉树链式
目录 1.概念与结构 2.二叉数链式的实现 2.1遍历规则 2.2申请内存空间 2.3手动构建一棵二叉树 2.4二叉树结点的个数 2.5二叉树叶子结点的个数 2.6二叉树第K层结点个数 2.7二叉树的高度 2.8二叉树中查找值为x的结点 2.9二叉树的销毁 3.层序遍历 3.1概念 3.2层序遍历…...
Springboot 集成 Flowable 6.8.0
1. 创建 Spring Boot 项目 通过 Spring Initializr(https://start.spring.io/ )创建一个基础的 Spring Boot 项目,添加以下依赖: Spring WebSpring Data JPAMySQL DriverLombok(可选,用于简化代码&#x…...
协作机械臂需要加安全墙吗? 安全墙 光栅 干涉区
安全墙是什么 文章目录 安全墙是什么简介1. 物理安全墙1.1 定义:1.2 作用机制:1.3 应用场景: 2. 虚拟安全墙2.2 定义:2.3 作用机制:2.3 应用场景: 3. 安全毛毯3.1 工作原理:3.2 特点3.3 应用场景…...
HTML5 SVG:图形绘制的现代标准
HTML5 SVG:图形绘制的现代标准 引言 随着互联网技术的发展,网页的交互性和美观性日益受到重视。HTML5 SVG作为一种强大的图形绘制技术,在网页设计中发挥着重要作用。本文将深入探讨HTML5 SVG的原理、应用场景以及如何在实际项目中运用。 一、HTML5 SVG简介 1.1 什么是SV…...
洛谷题单1-B2025 输出字符菱形-python-流程图重构
题目描述 用 * 构造一个对角线长 5 5 5 个字符,倾斜放置的菱形。 输入格式 没有输入要求。 输出格式 如样例所示。用 * 构成的菱形。 输入输出样例 #1 输入 #1 输出 #1 **** *********方式-前半区推导,后半区逆序 代码 class Solution:static…...
springboot+mybatisplus
1.什么是springboot? Spring Boot是一个用于快速构建Spring应用程序的框架。它旨在帮助开发人员快速搭建Spring框架,减少配置和繁琐的工作。Spring Boot继承了原有Spring框架的优秀基因,使Spring在使用中更加方便快捷。 在Spring Boot中集成ActiveMQ,需要导入相应的starter…...
《TypeScript 面试八股:高频考点与核心知识点详解》
“你好啊!能把那天没唱的歌再唱给我听吗? ” 前言 因为主包还是主要学习js,ts浅浅的学习了一下,在简历中我也只会写了解,所以我写一些比较基础的八股,如果是想要更深入的八股的话还是建议找别人的。 Ts基…...
Golang os模块功能详解与示例
os 是 Go 语言标准库中与操作系统交互的核心模块,提供了丰富的功能来操作文件系统、进程、环境变量等。下面我将详细介绍 os 模块的主要功能,并提供相应的代码示例。 1. 文件与目录操作 1.1 文件操作 创建文件 package mainimport ("fmt"&…...
SICAR 标准 KUKA 机器人标准功能块说明手册
功能块名称:LSicar_Robot_KUKA_PrD 目录 1. 概述 2. 功能说明 2.1 程序控制 2.2 状态监控 2.3 报警与故障处理 2.4 驱动控制 3. 关键参数说明 4. 操作步骤指南 4.1 初始化配置 4.2 运行控制 4.3 状态监控 5. 常见故障处理 6. 注意事项 附录1:程序段索引 附录…...
linux中如何修改文件的权限和拥有者所属组
目录标题 chmod指令八进制形式权限修改文件拥有者所属组的修改umask有关内容 chmod指令 chmod指令可以用来修改人员的权限其形式如下: u代表的是拥有者,g代表的是所属组,o代表的是其他人,a表示所有人,如果你想增加权…...
掌握Linux项目自动化构建:从零入门make与Makefile
文章目录 前言: 一、初识自动化构建工具1.1 什么是make/Makefile?1.2 快速体验 二、深入理解核心机制2.1 依赖关系与依赖方法2.2 伪目标的妙用2.3 具体语法a.makefile的基本雏形b.makefile推导原则! 三、更加具有通用型的makefile1. 变量定义…...
Jenkins 配置python项目和allure
Jenkins新建项目 新建ry-api-auto-test。 添加项目描述,选择gitee令牌。 源码管理,设置仓库地址和凭证。参考我上一篇文章的链接:配置gitee私人令牌和凭证 构建步骤,因为我Jenkins部署在Windows,因此选择batch。…...
优化 Docker 镜像 技巧
优化 Docker 镜像可以提高构建速度、减少镜像大小、提高安全性和效率。以下是一些优化 Docker 镜像的方法: 使用适当的基础镜像 选择合适的基础镜像可以减小镜像大小,并确保基础镜像的安全性和更新性。Alpine、Ubuntu Minimal 等轻量级基础镜像是常用选…...
从简单场景认识建造者模式
建造者设计模式总的来说常见的形式无非就两种。 一种是具体产物样式多,故通过中间者(指挥者)来统筹决定产生哪种对象(组装电脑,都是电脑,只是参数配置不同)。 一种是构造的可选参数多…...
Maven工具学习使用(四)——仓库
仓库分类 对于Mavne来说,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标查询寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven就会去远程仓库查找,发现需要的构件之后…...
vue3:十一、主页面布局(进入指定菜单页面,默认锁定到左侧菜单)
一、效果 直接进入home页面,直接展开对应的菜单项 二、具体实现 1、菜单容器增加默认选中变量 在菜单容器中将默认展开菜单default-openeds修改为默认选中菜单default-active 2、引入useRoute方法 引入该方法为了获取当前页面的路径 import { useRoute } from …...
linux,防火墙,firewall,常用命令
文章目录 1. 查看防火墙状态2. 查看当前开放的端口和服务查看所有开放的端口查看所有允许的服务查看所有区域的详细信息 3. 开放指定端口开放端口(临时生效)开放端口(永久生效)开放指定端口范围 4. 删除指定端口删除端口ÿ…...
SQL 函数
SQL 函数 概述 SQL 函数是数据库查询语言(Structured Query Language)的核心组成部分之一。它们是用于执行特定任务的预定义过程,可以在查询中使用以增强查询的灵活性和功能性。SQL 函数可以分为两大类:内置函数和用户自定义函数…...
【蓝桥杯】每日练习 Day13
前言 今天做了不少题,但是感觉都太水了,深思熟虑之下主播决定拿出两道相对不那么水的题来说一下(其实还是很水)。 两道问题,一道是日期问题(模拟),一道是区间合并问题。 日期差值 …...
【Docker系列七】Docker Compose 命令详解
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【AI学习】Transformer 模型
1,概念 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习架构,在自然语言处理、计算机视觉等多个领域都有着极为重要的应用。 2,基本结构 1)编码器(Encoder) 通常由多个相同的编码器层堆叠而成。 每个编码器层包含了多头自注意力机制、前馈神经网络以及…...
大数据学习栈记——HBase操作(shell java)
本文介绍HBase在shell终端的常见操作以及如何利用java api操作HBase,操作系统:Ubuntu24.04 参考: https://blog.51cto.com/u_16099228/8016429 https://blog.csdn.net/m0_37739193/article/details/73618899 https://cloud.tencent.com/d…...
React多层级对象改变值--immer
reduxjs/toolkit底层就是immer,,,所以在使用redux的时候,直接赋值,就会响应式的数据 如果不使用reduxjs/toolkit,可以自己使用immer来实现 安装immer npm install immer引入produce函数,,prod…...
服务器硬盘爆满100%问题解决
问题 在工作中遇到一个服务器,服务器硬盘100%,查找哪个目录文件中占用大量空间。发现加起来才150G,硬盘空间大概有500G。 处理问题,排查是否有某个进程正在删除文件,进程卡住了,所以过滤一下有哪些进程&am…...
智能制造:物联网和自动化之间的关系
工业自动化 工业自动化是机器设备或生产过程在不需要人工直接干预的情况下按预期的目标实现测量、操纵等信息处理和过程控制的统称。 在传统的工业生产过程中,很多环节需要人工操作,比如设备调试、生产监控、质量检测等。然而,随着工业自动化…...
Axure项目实战:智慧城市APP(三)教育查询(显示与隐藏交互)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:教育查询 主要内容:教育公告信息,小升初、初升高、高考成绩查询;教育公告信息为传统的信息页面,小升…...
01 设计模式和设计原则
类设计原则: 单一职责原则(Single Responsibility Principle,SRP):实现类要职责单一开闭原则(Open Close Principle,OCP):对扩展开放,对修改关闭里氏替换原则…...
Github 2025-03-23 php开源项目日报Top10
根据Github Trendings的统计,今日(2025-03-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10TypeScript项目1JavaScript项目1Shell项目1Laravel: 以优雅语法简化Web开发 创建周期:4028 天开发语言:PHP协议类型:MIT LicenseSt…...
