了解应用层

应用层

  • 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. 概述

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

了解应用层_第1张图片

2. 应用程序组织方式

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

2.1 C/S方式

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

2.1 P2P方式

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

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张图片

4. 域名系统DNS

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

4.1 域名结构

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

4.2 域名分类

了解应用层_第6张图片

4.3 域名服务器

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

4.3.1 分类

4.4 DNS域名解析过程

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

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连接建立请求,建立数据连接;

了解应用层_第8张图片

6. 电子邮件系统

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

6.1 邮件信息格式

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

6.2 简单邮件传输协议SMTP

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

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协议;
    了解应用层_第14张图片

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缓存将最近的一些请求和响应(包括最近修改时间、过期时间等信息)暂存在本地磁盘中,当新的请求与暂存的请求一致,则直接返回缓存中对应的响应,无需再访问原始服务器;
    了解应用层_第15张图片

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

你可能感兴趣的:(Java开发,计算机网络,java,开发语言,tcp/ip,计算机网络)