2.应用层协议

一、应用层基本介绍

1. 应用程序体系结构分类

  • 客户端、服务器系统(Client/Server)

  • 点对点系统(Peer to Peer)

  • 混合系统(Hybrid)

1 )客户端/服务器模型典型的网络应用

  • 客户端:发起同服务器的联系 (“speaks first”)。一般都从服务器请求服务。

    Web:客户端由浏览器实现;e-mail: 通过OE、Foxmial实现

    • 与服务器通信,使用服务器提供的服务

    • 间歇性接入网络

    • 可能使用动态IP

    • 不会与其他客户机直接通信

  • 服务器:向客户端提供所请求的服务

    例:Web 服务器发送被请求的 Web 页面, 邮件服务器传递 e-mail

    • 不间断提供服务

    • 永久性访问地址/域名

    • 利用大量服务器实现可扩展性

采用C/S模式的原因:网络资源分布的不均匀性

  • 网络中计算机系统的类型、硬件结构、功能都存在着很大的差异

  • 从软件角度来看,大型应用软件都是安装专用服务器中,合法用户需要通过互联网访问服务器,使用网络资源

  • 从信息资源角度来看,数据、文本、图像、音视频资源存放在服务器中,合法用户可以通过互联网访问这些信息资源。这样做对保证信息资源使用的合法性与安全性,以及保证数据的完整性与一致性

2 )纯P2P模型

特点:

  • 没有永远在线的服务器

  • 任意端系统/节点可以通信

  • 节点间歇性接入网络

  • 节点可能改变IP

优缺点:

  • 高度可伸缩

  • 难于管理

P2P模式特征:

  • 网络结点之间采取对等方式,通过直接交换信息共享计算机资源和服务

  • 应用于实时通信、协同工作、内容分发、分布式计算等领域

    • 通信模式:网络中对等结点之间直接通信的能力

    • 基本特征:互联网中由对等结点组成的一种动态的逻辑网络

    • 实现技术:实现对等结点之间直接通信所需设计的协议、软件等

  • P2P网络并不是一个新的网络结构,而是一种新的网络应用模式

3)混合模型

同时采用C/S模式和P2P模式,典型例子是Napster

  • 文件传输采用P2P

  • 文件搜索采用C/S

    • 每个节点向中央服务器登记自己的内容

    • 每个节点向中央服务器提交查询请求,查找感兴趣的内容

2. 网络应用和应用层协议

1)网络应用和应用层协议的基本概念

  • 网络应用:基于网络的金融应用系统、电子政务、电子商务、远程医疗、远程数据存储等。例如:E-mail、FTP、TELNET、Web、IM、IPTV、VoIP

  • 应用层协议:网络应用主要组成部分。规定应用程序进程之间通信所遵循的通信规则,包括:如何构造进程通信报文、报文应包括的字段、每个字段意义、交互过程等

2)应用层协议的基本内容

  • 交换报文的类型(如请求报文和应答报文)

  • 各种报文格式与包含的字段类型

  • 对每个字段意义的描述

  • 进程在何时、如何发送报文,以及如何相应

3)应用层协议的类型

  • 标准网络应用:E-mail、FTP、TELNET、Web

  • 专用应用层协议:许多P2P共享文件的应用层协议就属于专用协议

3. 网络应用对传输层协议的选择

  • 根据实际需求,决定选择(传输层)协议:TCP、UDP

TCP:功能完善、面向连接、可靠传输服务

  • 支持可靠的面向连接服务

  • 支持字节流传输服务

  • 支持全双工服务(全双工就比如打电话的时候,双方可以同时说话,信号可以在两个方向上同时传输

  • 进程在什么时间、如何发送报文,以及如何响应

UDP:简单、高效

  • 无连接、不可靠的传输(尽力传输)

  • 无提供拥塞控制机制

  • 不提供最小时延保证

以下是常见网络应用类型对应的应用层和传输层协议:

二、Web服务与Http

1. Web服务的基本概念

  • 超文本传输协议HTTP:Web服务应用层协议,超文本在浏览器与Web服务器之间的传输协议

  • 超文本标记语言HTML:文档中的特殊数据格式,一个文档可以链接到另一个文档

  • 统一资源定位符URL:标识Web中的资源,以便于用户查找

  • 超文本与超媒体:在Web系统中,信息按超文本方式组织;超媒体进一步扩展了超文本所链接的信息类型

Web的工作方式:C/S模式

  • 主页:用户访问Web网站看到的第一个页面,通过主页访问网站信息

    主页基本元素

    • 文本(text):最基本元素,就是通常所说的文字

    • 图像(image):Web浏览器通常识别GIF与JPEG图像格式

    • 表格(table):类似Word表格,表格单元内容通常为字符类型

    • 超链接(hyperlink):用于链接网页


2. HTTP工作机制

  • URL与信息资源定位

    • 提供Internet上资源定位、访问方式的一种抽象表示方法

    • 由三部分组成:协议类型、主机名、路径及地址

    • 通过Web浏览器,URL不仅能漫游Web网,还能用于FTP、E-mail和TELNET等

    • URL格式:

      访问方式://服务器域名[:端口号]/路径/文件名

  • URL与信息资源定位

    • 访问Web网站,协议使用http协议,形式为:

      http://服务器名[:端口号]/路径/文件名

      还有其他协议:FTP、SSH、SMTP、IMAP、DNS、RDP、File......

    • URL冒号左边指明了其访问格式

    • http:超文本传输协议

    • ftp:文件传输协议

    • telnet:交互式会话

    • mailto:电子邮件地址

    • HTTP默认端口号是80(可省略)

    • 路径/文件名用于直接指向服务器中的某个文件

    • 省略路径和文件名,则URL指向了Internet上的某个主页

HTTP协议工作步骤:

  1. 使用面向连接的TCP协议,客户端Web浏览器向Web服务器请求建立TCP连接(一来一回)

  2. TCP连接建立后,浏览器进程发送HTTP请求报文

  3. Web服务器发送应答报文

  4. 可能断开连接,也可能继续维护连接(非持续连接和持续连接)

HTTP特点协议的特点:

  • TCP提供可靠服务保证客户进程发送的HTTP请求正确到达服务器端。服务器进程发送HTTP应答报文也正确达到客户端

  • Web服务器发送HTTP应答报文时,不保存浏览器的任何请求状态信息(属于无状态协议

HTTP协议有两种状态:非持续连接、持续连接

  • 非持续连接(HTTP1.0)

    • 每次请求/响应都要建立一次TCP连接

    • 缺点:必须为每个请求对象建立和维护一个新的TCP连接

  • 持续链接(HTTP1.1)

    • 持续连接时,服务器在发出响应后保持该TCP连接,相同的客户端进程与服务器端之间的后续报文都通过该连接传送

    • 对于持续连接,分为流水线模式非流水线模式

      非流水线模式中:客户端只有在接收到前一个响应时才能发出新的请求

      流水线模式中:客户端在没有收到前一个响应时就发出新的请求

3. HTTP请求报文格式

  • 请求行中的方法一般有GET、POST、PUT、HEAD、DELETE等请求

  • 请求主体可以没有(例如POST方法时需要请求主体)

  • 例子:

1
2
3
4
GET /api/users/123 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept-Language: en-US,en;q=0.9

4. HTTP应答报文格式

  • 例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 5325
Cache-Control: max-age=3600

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Example.com</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is a sample webpage.</p>
</body>
</html>
  • 常见的状态码:

5. 请求报文、应答报文的报头结构

  • 一个请求报文、应答报文交互的例子:

三、应用层-电子邮件

1. 电子邮件的基本概念

  • 邮件发送者把邮件信息发送给接收者,接收者可以是一个或多个

  • 可以发送多媒体信息(数据、文件、文字、声音、图像、图形)

  • 发送者或接收者可以是Internet以外的用户

  • 电子邮件发送/接收软件可以与用户的其他软件集成

  • 具有较强管理和监控功能,以利于系统维护、改善系统运行性能

  • 方便用户使用,如支持多种语言文本、邮件优先权等

2. 电子邮件的基本组成

  • 四个重要组件:用户代理、邮件服务器、邮件传输协议、邮件存储访问协议

    • 用户代理:写作、编辑、阅读邮件;外发邮件;接受的报文存储在邮件服务器中

    • 邮件服务器:

      • 邮箱包含了收到的用户邮件(尚未被阅读)

      • 报文队列包含了外发的邮件报文

      • 客户端:将邮件发送到邮件服务器

      • ”服务器“:接受和转发邮件

    • 邮件传输协议:

      • 客户端到邮件服务器、邮件服务器之间简单邮件传输协议STMP

      • 通用Internet邮件扩展协议MIME

    • 邮件存储访问协议:

      • 邮件服务器到客户端

      • 邮政协议第3版POP-3

      • Internet邮件访问协议第4版IMAP-4

3. 电子邮件系统结构与工作原理

  • 电子邮件系统结构

    • 用户接口UA(发送和接收邮件),撰写、显示、处理

    • 报文传送代理MTA(邮件发送给接收方,从网络接受邮件):C/S方式、报告邮件传送情况

  • 电子邮箱

    要使用电子邮件服务,首先要拥有一个电子邮箱。电子邮箱由提供电子邮件服务的机构(ISP)为用户建立。

    csse(用户名)@szu.edu.cn(主机名)

  • 邮件报文交付的3个阶段

    1. 第一阶段用户借助邮件代理撰写邮件,并借助SMTP协议将邮件发送到邮件服务器

    2. 第二阶段发送方邮件服务器利用SMTP协议将邮件经过物联网发送到接收方的邮件服务器

    3. 第三阶段接收方利用POP3协议/IMAP4协议从其邮件服务器中取回邮件到其邮件代理中

    图示如下:

4. 电子邮件协议:邮件传输协议(SMTP+MIME)存储访问协议(POP3&IMAP4)

简单邮件传输协议SMTP

  • 使用TCP传输邮件报文,端口号25

  • 直接传输:发送服务器到接收服务器

  • 传输三个阶段:握手、报文传输、结束

  • 命令/相应交互

    • 命令:ASCII文本

    • 相应:状态码和短语

  • 邮件报文必须用7-bit ASCII表示

  • SMTP命令和应答

  • 邮箱报文的封装

  • 报文格式

    • 所有报文都是由ASCII码组成

    • 报文由报文行组成,各行之间用回车、换行符分隔

    • 报文的长度不能超过998个字符

    • 报文行的长度≤78个字符之内

    • 报文中可包括多个首部字段和首部内容

    • 报文可包括一个主体,主体必须用一个空行与其首部分隔

    • 除非需要使用回车与换行符,否则报文中不使用回车与换行符

MIME协议的基本内容

  • 允许非7位ASCII码数据通过SMTP传输

  • 扩展了原始的SMTP协议,允许电子邮件能够传输多种类型的数据,而不仅仅局限于纯文本。

POP3协议(邮件读取协议)

  • 单向协议,只能用于从服务器中下载邮件,发送还是用SMTP

  • 分为删除模式(默认)和保留模式

    • 删除模式是指邮件客户端通过POP3下载邮件后,服务器立即把已下载的邮件删除

    • 保留模式指的是邮件客户端下载邮件后,邮件服务器不会立即删除已下载的邮件

IMAP4协议:与POP3类似,功能更强。特别适合需要在多个设备上访问和管理邮件的用户

  • 下载邮件之前检查邮件头部

  • 下载邮件之前可用特定字符串搜索电子邮件的内容

  • 可以下载部分电子邮件

  • 可以在邮件服务器上创建、删除、更名邮箱

  • 存放电子邮件可以在文件夹中创建分层次的邮箱

基于Web的电子邮件

  • 20世纪90年代中期,Hotmail开发了基于Web的电子邮件系统

  • 目前几乎所有门户网站都提供该服务,使用Web浏览器收发邮件

  • 基于Web电子邮件,用户代理就是Web浏览器,用户与远程邮箱之间的通信使用的是HTTP协议,而不是POP3或IMAP4协议

  • 邮件服务器之间的通信仍然使用SMTP协议

四、FTP(File Transfer Protocol)

1. FTP的基本概念

  • FTP文件服务

    • FTP允许用户将文件从一台计算机保证可靠传输到另一台计算机

    • 使用FTP服务,用户可以方便地访问网络文件资源。不需要对文件进行转换,服务效率高

    • 有状态协议

  • FTP的工作过程

    • 采用C/S模式,传输层用TCP协议

    • FTP服务器:提供FTP服务的计算机

    • 下载:本地计算机用户(客户)将文件从服务器传输到客户的过程

    • 上传:客户端将文件从本地计算机传输到FTP服务器的过程

  • 匿名FTP服务

    • 在FTP服务器上建立一个公开账户(通常为Anonymous),并赋予该账户访问公共目录的权限,以便提供免费的服务

    • 要访问匿名服务FTP,不需要输入用户名与用户密码(也可以用“Anonymous”作为用户名,用“Guest”作为密码

    • 匿名FTP服务只允许用户下载文件,不允许用户上传文件

  • T(Trivial)FTP协议,相比于FTP

    • 对传输可靠性的要求。FTP面向连接、可靠;TFTP简洁、采用UDP

    • 协议的命令集。FTP制定发送/接收文件、列出目录与删除文件等复杂命令;TFTP协议只定义文件发送/接收基本命令

    • 数据表示方式。FTP指定数据类型,TFTP协议只允许传输ASCII码或二进制文本文件

    • 用户鉴别。FTP有登录用户鉴别功能,TFTP不提供用户鉴别功能

2. FTP特点

  • 交互式用户界面

  • 对文件格式说明

  • 权限控制

3. FTP协议工作原理

  • FTP协议中,控制连接和数据连接是分开的,客户端在同服务器端口号21建立控制连接后,服务器通过20端口向客户端建立一个数据连接(用来后续传文件)

  • 会话过程:

    • FTP会话之前,FTP客户端使用临时端口号(如5100)与服务器端熟知端口号(21)之间连接一个控制连接

    • 控制连接建立后,服务器要求客户端发送用户名和口令

    • 服务器端接收到客户端文件传输命令后,开始发起与客户端的数据连接。客户端使用临时端口号(如5000)与服务器端熟知端口号20之间建立数据连接

    • 文件传输

    • 文件传输结束,关闭数据连接

  • 常用FTP客户程序类型:传统命令行、Web浏览器、FTP下载工具(FlashFXP、LeechFTP、CuteFTP)

五、DNS

1. DNS服务的概念

  • DNS的作用

    • 将主机域名转换为IP地址

    • 能方便访问各种网络资源和服务

    • 实现互联网应用层协议的基础

  • DNS系统的功能

    • 名字空间定义:系统提供所有可能出现的结点命名的名字空间

    • 名字注册:为主机分配在全网具有唯一性的名字

    • 名字解析:提供有效的主机名与网络IP地址转换机制

2. 域名结构

  • 主机名字要求全局唯一,能在整个互联网通用

  • 便于管理(名字分配、确认、回收)

  • 便于映射,域名和IP地址之间映射(关键是映射效率)

3. DNS服务的实现

3个基本构件域名数据库、服务、用户

  • 通过对本地地址解析程序系统调用,对域名系统进行访问

  • 从地址解析角度看,域名系统是由数量未知的域名服务器构成的系统,每个域名服务器存储整个域名空间树数据的一部分

  • 从域名服务角度看,域名系统由相互独立(称为“区域”)的本地数据集构成的

4. 域名解析的基本原理

域名解析,就是将域名转换为对应IP地址的过程。

控制面板->TCP/IP->属性

  • 域名解析算法:递归解析反复解析

  • 反复(迭代)解析过程:

  • 递归解析过程:

5. 域名系统的高速缓存

  • 复制:每个根目录被复制,该服务器副本存放在整个网络上。当一个新的网络加入互联网时,在本地的DNS服务器中配置一个根服务器表

  • 缓存:使用高速缓存优化查询开销。每个服务器都保留了一个域名缓存,查询一个新的域名时,服务器将该绑定的一个副本置于它的缓存中

6. Telnet、DHCP和SNMP协议

  1. Telnet(远程终端协议)

    Telnet协议的工作过程如下:

    • 客户端通过建立TCP连接与远程主机上的Telnet服务器进行通信,默认使用端口号23。

    • 一旦建立连接,用户可以在本地终端窗口中输入命令,并将其发送到远程主机进行执行。

    • 远程主机将命令执行结果返回给客户端,客户端将结果显示在本地终端窗口上。

  2. DHCP(动态主机配置协议)

    DHCP协议的工作过程如下:

    • 当DHCP客户端连接到网络时,它可以通过广播请求向网络上的DHCP服务器发送请求,请求获取IP地址和其他配置信息。

    • DHCP服务器收到请求后,从可用的IP地址池中选择一个未被分配的IP地址,并将其分配给客户端。此外,DHCP服务器还可以分配其他网络配置信息,如子网掩码、默认网关、DNS服务器等。

    • 客户端接收到分配的IP地址和其他配置信息后,即可配置自己的网络连接。

  3. SNMP(简单网络管理协议)

    SNMP协议的工作过程如下:

    • 网络设备上运行着SNMP代理程序,该代理程序可以响应来自SNMP管理系统的请求。

    • SNMP管理系统发送SNMP消息到网络设备上的SNMP代理,请求设备的状态信息或执行特定的操作。

    • SNMP代理将响应消息发送回SNMP管理系统,包含所请求的信息或操作的结果。

总结起来,Telnet协议用于远程登录和控制计算机,DHCP协议用于自动分配IP地址和网络配置信息,SNMP协议用于管理和监控网络设备。这些协议在计算机网络中起着重要的作用,提供了远程访问、网络配置和设备管理的功能。


2.应用层协议
https://steve-1936550490.github.io/posts/34131/
Author
Hidden Blue
Posted on
June 20, 2023
Licensed under