了解应用层

news2024/11/25 7:21:39

应用层

  • 1. 概述
  • 2. 应用程序组织方式
    • 2.1 C/S方式
    • 2.1 P2P方式
  • 3. 动态主机配置协议DHCP
    • 3.1 DHCP工作流程
  • 4. 域名系统DNS
    • 4.1 域名结构
    • 4.2 域名分类
    • 4.3 域名服务器
      • 4.3.1 分类
    • 4.4 DNS域名解析过程
  • 5. 文件传输协议FTP
    • 5.1 FTP工作流程
  • 6. 电子邮件系统
    • 6.1 邮件信息格式
    • 6.2 简单邮件传输协议SMTP
    • 6.3 邮件读取协议
      • 6.3.1 POP3协议
      • 6.3.2 IMAP协议
    • 6.4 基于万维网的电子邮件
  • 7. 万维网WWW
    • 7.1 HTTP协议
    • 7.2 Web缓存

1. 概述

  • 应用层是计算机网络体系结构的最顶层;
  • 应用层接受运输层提供的服务,实现应用进程之间的通信;
  • 应用层包括日常所使用的的各种应用软件,不同的应用软件对应不同的应用层协议,如

在这里插入图片描述

2. 应用程序组织方式

  • 应用程序分布在网络边缘的不同主机上;
  • 网络应用程序在各种端系统上的常见组织方式有:1)C/S方式;2) P2P方式;

2.1 C/S方式

  • Client/Server:客户端-服务器方式;
  • 客户和服务器是网络通信中涉及的两个应用进程;
  • 客户是服务请求方,服务器是服务提供方;
  • 服务器总是处于运行状态,等待用户的请求;
  • 服务器具有固定IP地址以及端口号;
  • 基于C/S的应用服务通常是服务集中型构建,通常服务器压力较大,因此常使用服务器集群构建虚拟服务器;
    在这里插入图片描述

2.1 P2P方式

  • Peer-to-Peer:对等方式;
  • P2P组织方式中,不会区分固定的服务请求者和服务提供者;
  • 分布在端系统上的应用进程是对等的,称为对等方;
  • 对等方之间直接通信,每个对等方既是服务请求者,也是服务提供者;
  • P2P方式的可扩展性强,系统性能不会因规模的扩大而降低;
  • P2P方式成本低,流行的P2P应用有P2P文件共享、即时通信、P2P流媒体和分布式存储等;
  • 基于P2P的应用服务是服务分散型的;
    在这里插入图片描述

3. 动态主机配置协议DHCP

  • DHCP:Dynamic Host Configuration Protocol;
  • 可自动为局域网内主机配置网络信息,如IP地址、子网掩码、默认网关以及DNS服务器;
  • 可避免手动配置主机网络信息,减轻工作量,降低错误率;
  • 应用层协议,建立在UDP运输层协议上;
  • DHCP通信双方分为服务器和客户端,服务器进程对应端口为67,客户端进程对应端口为68;
  • 客户端DHCP开机自启动,DHCP服务器永远运行;
  • 为降低DHCP数量,可使用DHCP中继代理(通常是一台路由器)作为各网络中计算机与DHCP服务器的桥梁;
  • DHCP中继代理中配置了DHCP服务器的IP地址信息;

3.1 DHCP工作流程

  • 1)客户端开机自启动DHCP客户进程,对应端口为68;
  • 2)客户进程广播发送DHCP发现报文,报文内容包括客户端主机MAC地址以及事务ID。注意,此报文源地址为0.0.0.0,目的地址为255.255.255.255;
  • 3)DHCP服务器进程收到该请求报文后,广播发送DHCP提供报文,该报文内容包括事务ID,网络配置信息内容(如地址租期、IP地址、子网掩码、默认网关以及DNS服务器)。此时,该报文源地址为服务器自身IP地址,目的地址为255.255.255.255。在DHCP服务器为客户端主机选择IP地址时,会使用ARP检测IP地址是否被网络中其他主机占用;
  • 4)客户端接收最先到达的DHCP服务提供报文,并做出响应,广播发送DHCP请求报文,该报文包括事务ID、DHCP客户端MAC地址、主机接受的DHCP租约中的IP地址、DHCP服务提供报文对应的服务器IP地址等信息。此时,该报文源地址为服务器自身IP地址,目的地址为255.255.255.255。
  • 5)租约对应服务器接受请求报文,确认IP地址租约。广播发送DHCP确认报文,该报文源地址为服务器自身IP地址,目的地址为255.255.255.255。
  • 6)客户端主机接收确认报文,使用ARP检测租约提供的IP地址是否被其他主机占用,如果该IP地址可用,则该主机确认该配置信息,可使用该IP地址进行网络通信了!!

在这里插入图片描述

4. 域名系统DNS

  • DNS:Domain Name System;
  • 作用:将域名解析为对应主机IP地址
  • 应用层协议,建立在UDP运输层协议上;
  • DNS服务器进程对应端口号为53,服务器中记录了域名与IP地址的映射关系;
  • 用户主机在访问指定域名时,先在本地主机的高速缓存中查找是否有对应IP地址,如果没有则访问DNS服务器获取域名对应IP地址;
  • 单台DNS服务器工作负荷过大,一般采用分布式集群搭建域名系统DNS;
  • DNS使大多数域名解析在本地完成,仅少量解析需要在因特网上通信,因此系统效率很高;
  • 因特网采用层次结构的命名树作为主机的域名;

4.1 域名结构

  • 域名构建采用层次树状结构;
  • 域名结构使用多个分量构成,各分量表示不同级别的域名,使用’.'隔开;
    在这里插入图片描述
  • 域名结构中各分量级别从右向左依次降低;
  • 完整的域名不超过255个字符;
  • 每一级域名由不区分大小写的字母、数字组成,不超过63个字符;
  • 各级域名由所属上一级的域名管理机构管理,而最高的顶级域名由因特网名字和数字分配机构ICANN管理;
  • 按照等级管理的命名方法便于维护域名的唯一性
    在这里插入图片描述

4.2 域名分类

在这里插入图片描述

4.3 域名服务器

  • 域名与IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询;
  • DNS采用分布在各地的域名服务器实现域名和IP地址的转换;

4.3.1 分类

在这里插入图片描述

4.4 DNS域名解析过程

  • 域名解析过程中有两种查询方式:1)递归查询;2)迭代查询;
  • 递归查询方式需要多次访问涉及到的域名服务器,对域名服务器压力较大,因此多使用迭代方式进行域名解析;
  • 迭代方式查询中,只有在本机向本地域名服务器发送DNS查询报文时使用递归查询,而本地域名服务器向其他域名服务器发送DNS报文时均使用迭代方式;
  • 为了提高DNS查询效率,在本地域名服务器与用户主机中广泛使用高速缓存。高速缓存记录最近查询过的域名与IP地址的映射关系,以此避免对域名服务器的不必要访问;
  • 高速缓存中的数据需要保证正确性,所以通过为每项记录设置计时器并删除超时记录保证记录正确性;
  • 用户主机在访问指定域名时,先在本地主机内高速缓存中查询,如果查询不到再向本地域名服务器发送DNS查询报文
    在这里插入图片描述

5. 文件传输协议FTP

  • FTP:File Transfer Protocol;
  • 作用:在网络中的不同主机之间传输文件;
  • 应用层协议,建立在TCP运输层协议上;
  • FTP服务器进程一般使用21/20端口;
  • FTP是因特网上使用最广泛的文件传输协议;
  • FTP提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限;

5.1 FTP工作流程

  • FTP传输模式分为主动模式和被动模式两种,两种模式下略有区别;

  • 无论哪种模式,FTP客户端服务器之间必须建立两个并行的TCP连接:
    1)控制连接,该连接使用开启,用于传送FTP相关控制命令;
    2)数据连接,用于文件传输,只在文件传输期间开启,传输结束后立即关闭;

  • 主动模式(默认情况)
    1)FTP客户发起TCP连接建立请求,服务器使用21号端口与客户端建立控制连接;
    2)服务器(使用20端口)主动向客户端发送TCP连接建立请求,客户端使用临时端口号建立数据连接;

  • 被动模式
    1)FTP客户发起TCP连接建立请求,服务器使用21号端口与客户端建立控制连接;
    2)客户端通知服务器开启某临时端口号被动等待TCP连接,客户端(使用临时端口号)服务器发送TCP连接建立请求,建立数据连接;

在这里插入图片描述

6. 电子邮件系统

  • 系统采用C/S组织方式
  • 电子邮件系统三大构件:1)用户代理;2)邮件服务器;3)电子邮件所需协议
  • 用户代理是用户与邮件系统的接口,又称为电子邮件客户端软件
  • 邮件服务器用于发送和接收邮件,并维护用户的邮箱;
  • 协议包括邮件发送协议(如SMTP)和邮件读取协议(如POP3、IMAP);
  • 邮件系统简要工作流程:
    1)发送方通过用户代理,使用SMTP协议向发送方邮件服务器发送邮件;
    2)发送方邮件服务器使用SMTP协议向接收方邮件服务器转发邮件;
    3)接收方通过用户代理,使用POP3协议从接收方邮件服务器读取邮件;
    在这里插入图片描述

6.1 邮件信息格式

  • 邮件信息格式由RFC 822定义,邮件需包括信封和内容两部分;
  • 内容部分包括首部和主题,均需要发送方填写;
  • 首部中包括如下关键字:1)From:即发送方;2)To:即接收方;3)Cc:邮件抄送人;4)Subject:邮件主题;
  • 主题内容为邮件正文;
  • 信封所需信息由邮件系统从首部自动提取;
    在这里插入图片描述

6.2 简单邮件传输协议SMTP

  • SMTP:Simple Mail Transfer Protocol;
  • 邮件发送协议,其为应用层协议,建立在运输层TCP协议上;
  • SMTP服务器使用25端口号;
  • 基本工作原理,以发送方邮件服务器向接收方邮件服务器转发邮件过程为例:
    1)发送邮件时,SMTP客户端与服务端建立TCP连接,连接建立成功以后,通信双方之间以命令应答方式完成邮件传输。在邮件传输过程中,客户端向服务器发送14条SMTP命令,服务器为客户端做出21中SMTP应答;
    2)TCP连接建立成功后,服务器主动告知客户端自己已经准备就绪;
    3)客户端通过三次命令向服务器表名身份,以及邮件的发送方和接收方,服务器分别进行回应;
    4)客户端告知服务器自己即将发送邮件内容,服务器做出回应,准备接收邮件内容;
    5)客户端发送邮件完整内容以及结束符,服务器接收邮件,做出回应;
    6)客户端发送结束后,向服务器请求断开连接,服务器作出响应并主动断开连接;
    在这里插入图片描述
  • SMTP只能传输ASCII码文本数据,不能传输图像等二进制数据;
  • 可通过MIME对二进制数据进行编解码,结合SMTP进行数据发送;
    在这里插入图片描述
  • MIME(Multipurpose Internent Mail Extentions:多用途因特网邮件扩展):
    在这里插入图片描述

6.3 邮件读取协议

6.3.1 POP3协议

  • POP(Post Office Protocl):邮局协议,POP3为因特网正式标准。
  • POP协议比较简单、功能有限;
  • 用户只能以下载并删除下载并保留的方式将邮件从邮件服务器下载到本地主机中,而不能直接在邮件服务器上管理邮件;
  • 应用层协议,基于TCP协议;
  • POP3协议使用110端口;

6.3.2 IMAP协议

  • IMAP(Internet Mail Access Protocl):因特网邮件访问协议,IMAP4为因特网建议标准。
  • IMAP协议相比POP协议功能更加强大,用户可通过本地计算机直接在邮件服务器上管理邮件;
  • IMAP是一个联机协议;
  • 应用层协议,基于TCP协议;
  • IMAP4协议使用143端口;

6.4 基于万维网的电子邮件

  • 现在大多都是使用基于万维网的电子邮件,比如QQ邮件;
  • 通过浏览器登录邮件服务器万维网网站即可完成邮件的发送和接收工作;
  • 工作流程:
    1)邮件发送方与接收方使用相同邮件服务器,则发送和接收过程均使用HTTP协议;
    2)邮件发送方与接收方使用不同邮件服务器,则发送和接收过程均使用HTTP协议,但不同服务器之间邮件转发过程使用SMTP协议;
    在这里插入图片描述

7. 万维网WWW

  • WWW(World Wide Web);
  • 万维网即常说的Web应用,并非一种特殊的计算机网络,而是一个运行在因特网上的分布式应用;
  • 万维网为大规模、联机式的信息存储所,利用网页间的超链接将不同网站的网页连接成一张逻辑信息网;
  • 采用B/S架构,即浏览器/服务器架构;
  • 浏览器通过渲染引擎(浏览器内核)对其从服务器获取的网页进行解析渲染,将网页内容呈现给用户;
  • 网页资源使用URL(统一资源定位符)确定,URL标记了唯一的文件位置。URL一般形式为:协议://主机:端口/路径?查询字符串
  • 网页一般使用HTML编写结构和内容,使用CSS渲染样式,使用JS控制网页行为;

7.1 HTTP协议

详见https://blog.csdn.net/qq_43665602/article/details/131733583

  • HTTP/1.0采用非持续连接方式(Connection: Close),每个HTTP请求都需要建立一次TCP连接;
  • HTTP/1.1采用持续连接(长连接,Connection: keep-alive)方式,多个HTTP请求共用一个TCP连接,且可以使用流水线(不用等收到HTTP响应再发送其他HTTP请求)方式工作;

7.2 Web缓存

  • Web缓存即为万维网缓存,可位于客户端主机,也可位于中间系统上;
  • 位于中间系统上的Web缓存又称为代理服务器;
  • Web缓存将最近的一些请求和响应(包括最近修改时间、过期时间等信息)暂存在本地磁盘中,当新的请求与暂存的请求一致,则直接返回缓存中对应的响应,无需再访问原始服务器;
    在这里插入图片描述

参考:《计算机网络微课堂》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/781040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EtherCAT转TCP/IP网关EtherCAT解决方案

你是否曾经为生产管理系统的数据互联互通问题烦恼过?曾经因为协议不同导致通讯问题而感到困惑?现在,我们迎来了突破性的进展! 介绍捷米特JM-TCPIP-ECT,一款自主研发的Ethercat从站功能的通讯网关。它能够连接到Etherc…

12.面板问题

面板问题 html部分 <h1>Lorem ipsum dolor sit, amet consectetur adipisicing.</h1><div class"container"><div class"faq"><div class"title-box"><h3 class"title">Lorem, ipsum dolor.<…

TypeScript 中的常用类型声明大全

文章目录 基本数据类型1.number类型2.String 类型3. Boolean 类型4. undefined 类型5.Null类型6.Symbol类型7.BigInt类型 引用数据类型8.Array 类型9.Object 类型 TS 新增特性数据类型4.联合类型5.字面量类型6.Any 类型7.unknown 类型8.Void 类型9.never 类型10.对象类型12 tup…

基于linux下的高并发服务器开发(第三章)- 3.11 读写锁

读写锁的类型 pthread_rwlock_t int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr); int pthread_rwlock_destroy(pthread_rwlock_t *rwlock); int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock); int pthread_rwlo…

macOS 下使用 brew 命令安装 Node.js

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

iOS内存管理--内存的分区

内存分配区域 iOS程序内存分为5个区域 栈区&#xff0c;堆区&#xff0c;BSS&#xff0c;全局变量&#xff0c;代码区 五个区域有两种分配时间 运行时分配&#xff1a;栈区&#xff0c;堆区 栈区&#xff1a;局部变量&#xff0c;函数参数&#xff08;形式参数&#xff09;&…

Hadoop概念学习(无spring集成)

Hadoop 分布式的文件存储系统 三个核心组件 但是现在已经发展到很多组件的s 或者这个图 官网地址: https://hadoop.apache.org 历史 hadoop历史可以看这个: https://zhuanlan.zhihu.com/p/54994736 优点 高可靠性&#xff1a; Hadoop 底层维护多个数据副本&#xff0c;所…

[C初阶]循环和分支语句

目录 if...else语句 ​编辑 易犯错误 打印100以内的奇数 switch...case语句 输出星期 循环语句 对比判断 1.break终止循环 2.continue 读取字符 缓冲区读取 只输出数字字符 for循环 do...while循环 n的阶乘求和 循环实现动态打印 猜数字游戏【总结】 goto ​…

C++的各种用法展示

&#xff43;&#xff0b;&#xff0b;与数学典型算法的结合 阿姆斯特朗数 // A number is called as Armstrong number if sum of cubes of digits of number is // equal to the number itself. // For Example 153 is an Armstrong number because 153 153. #include <…

K8S初级入门系列之十二-计算资源管理

一、前言 K8S集群中着这各类资源&#xff0c;比如计算资源&#xff0c;API资源等&#xff0c;其中最重要的是计算资源&#xff0c;包括CPU&#xff0c;缓存&#xff0c;存储等。管理这些资源就是要在资源创建时进行约束和限制&#xff0c;在运行时监控这些资源的指标&#xff0…

[23] HeadSculpt: Crafting 3D Head Avatars with Text

paper | project 本文主要想解决&#xff1a;1&#xff09;生成图像的不连续问题&#xff1b;2&#xff09;3D修改中的保ID问题。针对第一个问题&#xff0c;本文引入了Landmark-based ControlNet特征图和<back-view>的text embedding&#xff1b;针对第二个问题&#x…

Python 算法基础篇:插入排序和希尔排序

Python 算法基础篇&#xff1a;插入排序和希尔排序 引言 1. 插入排序算法概述2. 插入排序算法实现实例1&#xff1a;插入排序 3. 希尔排序算法概述4. 希尔排序算法实现实例2&#xff1a;希尔排序 5. 插入排序与希尔排序的对比总结 引言 插入排序和希尔排序是两种常用的排序算法…

java后端导出前端展示

效果图 前端代码 exportExcelAll(){window.location.href getBaseUrl() Action/excelDataAll?happenDatethis.params.happenDate;},后端代码 try{Workbook workbooknew XSSFWorkbook();//创建sheetSheet sheet1workbook.createSheet("结果总数拦截记录");//写入…

第一百一十二天学习记录:数据结构与算法基础:循环链表和双向链表以及线性表应用(王卓教学视频)

循环链表 带尾指针循环链表的合并 双向链表 单链表、循环链表和双向链表的时间效率比较 顺序表和链表的比较 链式存储结构的优点 1、结点空间可以动态申请和释放&#xff1b; 2、数据元素的逻辑次序靠结点的指针来指示&#xff0c;插入和删除时不需要移动数据元素。 链式存储…

【pytho】request五种种请求处理为空和非空处理以及上传excel,上传图片处理

一、python中请求处理 request.args获取的是个字典&#xff0c;所以可以通过get方式获取请求参数和值 request.form获取的也是个字典&#xff0c;所以也可以通过get方式获取请求的form参数和值 request.data&#xff0c;使用过JavaScript&#xff0c;api调用方式进行掺入jso…

[数据结构 -- C语言] 二叉树(BinaryTree)

目录 1、树的概念及结构 1.1 树的概念 1.2 树的相关概念&#xff08;很重要&#xff09; 1.3 树的表示 2、二叉树的概念及结构 2.1 概念 2.2 特殊二叉树 2.3 二叉树的性质&#xff08;很重要&#xff09; 2.4 练习题 2.5 二叉树的存储结构 2.5.1 顺序存储 2.5.2 链…

Windows10 下 Neo4j1.5.8 安装教程

前言 Neo4j 是一个高性能的、NOSQL 图形数据库&#xff0c;它将结构化数据存储在网络上而不是表中。基于磁盘的、具备完全的事务特性的 Java 持久化引擎&#xff0c;这里就不把他和常用关系型数据库做对比了。因为篇幅有限&#xff0c;我这里也是第一次使用&#xff0c;所以以…

windows安装cmake快速教程

1、下载cmake cmake官网直直接下载速度都很慢&#xff0c;可以到点击下载地址进行下载。 点击下载地址进去之后&#xff0c;可以看到有很多的版本&#xff0c;这里根据自己的需要选一个版本即可&#xff08;建议不要选择太早的版本&#xff09;&#xff0c;我这里选择的3.22版…

【Python】串口通信-与FPGA、蓝牙模块实现串口通信(Python+FPGA)

&#x1f389;欢迎来到Python专栏~与FPGA、蓝牙模块实现串口通信 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#…

基于Java+SpringBoot+vue前后端分离校园周边美食探索分享平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…