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协议工作步骤:
使用面向连接的TCP协议,客户端Web浏览器向Web服务器请求建立TCP连接(一来一回)
TCP连接建立后,浏览器进程发送HTTP请求报文
Web服务器发送应答报文
可能断开连接,也可能继续维护连接(非持续连接和持续连接)
HTTP特点协议的特点:
TCP提供可靠服务保证客户进程发送的HTTP请求正确到达服务器端。服务器进程发送HTTP应答报文也正确达到客户端
Web服务器发送HTTP应答报文时,不保存浏览器的任何请求状态信息(属于无状态协议)
HTTP协议有两种状态:非持续连接、持续连接
非持续连接(HTTP1.0)
每次请求/响应都要建立一次TCP连接
缺点:必须为每个请求对象建立和维护一个新的TCP连接
持续链接(HTTP1.1)
持续连接时,服务器在发出响应后保持该TCP连接,相同的客户端进程与服务器端之间的后续报文都通过该连接传送
对于持续连接,分为流水线模式和非流水线模式,
非流水线模式中:客户端只有在接收到前一个响应时才能发出新的请求
流水线模式中:客户端在没有收到前一个响应时就发出新的请求
3. HTTP请求报文格式
请求行中的方法一般有GET、POST、PUT、HEAD、DELETE等请求
请求主体可以没有(例如POST方法时需要请求主体)
例子:
1 |
|
4. HTTP应答报文格式
- 例子:
1 |
|
- 常见的状态码:
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个阶段
第一阶段用户借助邮件代理撰写邮件,并借助SMTP协议将邮件发送到邮件服务器
第二阶段发送方邮件服务器利用SMTP协议将邮件经过物联网发送到接收方的邮件服务器
第三阶段接收方利用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协议
Telnet(远程终端协议)
Telnet协议的工作过程如下:
客户端通过建立TCP连接与远程主机上的Telnet服务器进行通信,默认使用端口号23。
一旦建立连接,用户可以在本地终端窗口中输入命令,并将其发送到远程主机进行执行。
远程主机将命令执行结果返回给客户端,客户端将结果显示在本地终端窗口上。
DHCP(动态主机配置协议)
DHCP协议的工作过程如下:
当DHCP客户端连接到网络时,它可以通过广播请求向网络上的DHCP服务器发送请求,请求获取IP地址和其他配置信息。
DHCP服务器收到请求后,从可用的IP地址池中选择一个未被分配的IP地址,并将其分配给客户端。此外,DHCP服务器还可以分配其他网络配置信息,如子网掩码、默认网关、DNS服务器等。
客户端接收到分配的IP地址和其他配置信息后,即可配置自己的网络连接。
SNMP(简单网络管理协议)
SNMP协议的工作过程如下:
网络设备上运行着SNMP代理程序,该代理程序可以响应来自SNMP管理系统的请求。
SNMP管理系统发送SNMP消息到网络设备上的SNMP代理,请求设备的状态信息或执行特定的操作。
SNMP代理将响应消息发送回SNMP管理系统,包含所请求的信息或操作的结果。
总结起来,Telnet协议用于远程登录和控制计算机,DHCP协议用于自动分配IP地址和网络配置信息,SNMP协议用于管理和监控网络设备。这些协议在计算机网络中起着重要的作用,提供了远程访问、网络配置和设备管理的功能。