第八章 应用层协议

发布于:2022-11-09 ⋅ 阅读:(3) ⋅ 点赞:(0) ⋅ 评论:(0)

目录

概述

应用层协议概要

应用协议的定义

应用协议与协议的分层

远程登录

TELMET

SSH

文件传输

FTP的工作机制概要

通过ASCII码字符串进行的交互处理

电子邮件

电子邮件的工作机制

邮件地址

MIME

SMTP

POP

IMAP

www万维网

互联网的蓬勃发展

WWW基本概念

URL

HTML

HTTP

JavaScript、CGI、 Cookoe

JavaScript

CGI

网络管理

SNMP

MIB

RMON

其他应用层协议

多媒体通信实现技术

H.323

SIP

RTP

数字压缩技术

P2P

LDAP

尾声


概述

我们利用网络重点在于网络之上所提供的服务,而服务主要靠应用来实现。也就是在TCP/IP 中 传输层往上的应用层,这个应用层包含了 IOS 七层模型的上三层,应用 表示 和会话层。这一章我们重点来聊一聊应用层的相关技术和协议 特别是 web 服务   文件传输   电子邮件   远程管理等

应用层协议概要

应用协议的定义

应用层主要作用是为用户提供应用平台,实现用户利用互联网实现 查看邮件  上传文档   浏览网页  远程管理等等。那么这些应用的实现在TCP/IP 中也需要对应的协议。那么工作在应用层为用户提供某种服务的协议就是我们说的应用协议。

应用协议与协议的分层

网络上的应用是由不同的用户和软件供应商开发的,应用之间的通信就依靠应用协议实现。这些应用协议,可以利用现有的,也可以自行指定。

需要了解的是应用层只需要关心应用之间的通信,或者说是需要用好应用层协议即可,无需考了应用层之下的工作如何做,这也就是协议分层的好处。就拿TCP/IP 来说把,四层每一层的协议负责这一层的工作。每一层也只需要关系本层的通信即可。

远程登录

所谓远程登陆,就是利用本机电脑  通过网络登录到另外一台主机上的应用。 主要是为了实现TSS(Time Sharing System) 分时系统环境,就是可以同时多台终端连接远程服务器,所有终端操作都有服务器来处理的一种工作环境。

远程登录主要有两种协议 TELNET  和 SSH  来实现  

TELMET

TELNET 利用了TCP的连接,通过连接向主机发送文字命令并在主机上执行。本地用户似乎直接连接了远程主机内部的shell (命令解析器)。

TELNET 通常用在登陆路由器智能交换机和远程主机或服务器上。可以将TELNET分为两类基本服务。 一是仿真终端功能, 二是协商选项机制。

TELNET连接远程终端时,会将自己的登录用户名和密码注册到服务端。 TELNET 中除了处理用户所输入的文字外,还提供选项的交互和协商功能。如为了实现仿真终端(NVT,Network Virtual Terminal)所用到的界面控制信息就通过选项功能发送出去的。 还有telnet 中 行模式或透明模式的设置。

TELNET  基于TCP 协议通信,服务器端口号默认 23。

TELNET 传输使用明文 ,所以适合于内网管理和通信。 那么如果是外网管理呢我们可以使用更安全的SSH 

SSH

SSH (Secure  Shell) 译为安全外壳。时加密的远程登录协议。 就是说 SSH 传输过程中数据时加密的。所以更安全 一般可以用在通过外网连接内网服务器管理和通信。

sSSH 还包括了很多极为方便的功能:可以使用更强的认证机制,可以转发文件,可以使用端口转发功能。

SSH 的端口转发指将特点端口号所收到的消息转发到特定的IP地址和端口号的一种机制。因为经过SSH 连接的那部分被加密,确保了信息的安全。并提供更为灵活的通信

SSH 使用TCP 协议传输  端口号默认   22 

文件传输

FTP(File Transfer Protocol) 译为 文件传输协议。 主要用来实现 远程文件的上传和下载。FTP 服务可以在内网搭建,也可以在互连网上。 分为 匿名(anonymous)登陆和需要提供用户名和密码的登陆方式。 

FTP的工作机制概要

FTP 使用两条TCP 连接,一条用来控制,一条用于数据或者文件传输。

用于控制的连接主要在FTP 的控制部分使用,比如登陆用户名和密码验证 ,传输的文件名称,发送方式的设置,一般通过 ASCII 码 发送的请求和接受应答,但 控制连接无法发送数据,所以需要另一条连接专门传输数据

数据传输的TCP 连接一般安装与控制连接相仿的方向建立,所以在nat 连接外网FTP服务器时,无法直接建立传输,必须使用PASV 命令修改建立连接的方向。

FTP 控制用的连接使用的是 TCP 的 21 端口,数据传输使用的是 TCP 的 20 端口,但出于安全的考虑 现在很多时候 数据传输使用随机端口。

通过ASCII码字符串进行的交互处理

FTP 的请求和应答都是使用的 ASCII 码字符串。对于ASCII 字符码来说 换行很重要。一般一行就是一个命令或者一个应答,空格用来区分参数   换行区分的命令。

电子邮件

电子邮件就是网络上的邮政。人们可以通过电子邮件发送文字,照片   视频   软件等计算机可以存储的信息。

电子邮件的发送距离没有限制。只要在互联网 任何目标都能达到。 电子邮件还提供了邮件组功能,意思是一份邮件可以发给一群特定的用户,被广泛用在公司和学校下达通知。 

电子邮件的工作机制

早期人们利用电子邮件协议 STMP(Simple Mail Protocol) 简单的邮件传输协议。来实现高效的发送邮件内容,基于TCP 协议,发送端和接收端直接连接。具体是 发送端将邮件先保存到 硬盘,然后和对端建立连接将邮件发过去 然后删掉硬盘中的邮件,如果对端暂时连接不上,就等待一段时间后重发。

这样的机制在后来互联网越来越复杂的情况下,变得很难实现,假设我们只有白天开机,那么一个东半球的国家和一个西半球的国家发消息,就会永远收不到,因为发送端白天的时候,接收端正好晚上关机。于是人们提出了邮件服务器的概念,大家都把邮件发送给邮件服务器,在让邮件服务器在合适的时候发送给接收端。

这样发送端使用 STMP 将邮件发送到邮件服务器, 接收端是POP3(Post Office Protocol)协议  邮政协议从服务器端接收邮件。

邮件地址

我们写信是需要地址的,发送电子邮件也不例外,这个叫邮件地址,无论发件方还是收件方都有一个邮件地址。 格式如下: master@163.com   其中 master  为用户注册的名字,163.com 是邮箱服务器的域名。有了域名找邮箱服务器的地址就要依靠 DNS 服务器了, DNS 服务器上有 邮箱域名和 对应地址的记录叫 MX 记录,通过它我们只需要输入邮箱的域名就可以找到邮箱服务器的地址。

MIME

MIME(Multipurpose  internet Mail Extensions) 多用途互联网邮件扩展类型。 主要用于扩展电子邮件处理的文件类型,以前电子邮件只能处理文本格式,通过MIME  可以发送静态图像、动画、声音、程序等各种形式的数据。MIME 也属于应用层。

MIME 是由 首部和正文(数据)两部分组成。首部中的 Content-Type  定义了首部信息的数据类型。下表可以看到具体的类型内容

Content -Type 内容
text/plain         纯文本
message/rfc822 MIME 与 正文
multipart/mixed 多部份消息
application/postscript         PostScript
application/octet-stream         二进制数据        
image/gif GIF 图像
image/jpeg JPEG 图像
audio/basic AU 格式的音频文件
video/mpeg MPEG 动画
message/external-body 包含外部消息

SMTP

SMTP 简单的邮件传输协议,它使用 TCP 25端口, SMTP 建立一个TCP 连接以后,在此连接上进行控制和应答以及数据的发送。客户端会发送以文本形式的请求,服务器返回一个 3位 数字的应答。每个指令和应答必须最后追加 换行指令(CR 和 LF)

但SMTP 本身没有验证发送者的功能,人们无法避免垃圾邮件和钓鱼连接,这也就是我们邮箱里会有各种各样的广告信息的缘故。 后来人们使用 POP before  SMTP 或者 SMTP 认证(SMTP Authentication)来防止冒充发送者。也有些供应商设置除本域服务器外不予其他网络25端口通信。

POP

POP (Post  Office  Protocol)  邮政协议。用于接受电子邮件。 SMTP 只支持发送端主机行为,由 SMTP 负责将数据发送到 一直处于开机状态的POP 服务器。客户端再通过POP 协议将服务器上的邮件接收到主机的主机上来。

POP 也是服务器和客户端之间建立 TCP 连接实现的。端口采用 110 。 其命令是较短的 ASCII 码 应答更是极短 只有两个 正常 +OK    错误 -ERR。

IMAP

IMAP(Internet  Message  Access  Protocol) 交互式信息访问协议,类似于 POP  也是接受电子邮件的协议。 区别在于 POP 中邮件由客户端进行管理。 而 IMAP 可以实现在服务器端管理邮件。

使用IMAP  可以直接在服务器上阅读邮件 而不必下载到本地。支持附件的部分下载,对已读和惟未读的邮件分类管理,在不同终端上登录亦可保持同步。便于使用和管理邮件。

人们可以通过个人电脑  公司计算机  笔记本  甚至是智能手机 平板来连接IMAP 服务器来收发和处理邮件,位使用多种异构终端的人们提供了非常便利体验。

www万维网

互联网的蓬勃发展

互联网的蓬勃发展除了我们说的TCP/IP 对不同异构同构网络的连同,外还很大程度上归功于WEB  技术的发展, WEB 技术就是 www (Word  Wide  Web)译为 万维网,实现了将互联网中信息以超文本的方式展现。

存放这些超文本信息的服务器叫 web 服务器  通过专门的服务软件提供服务。这种服务软件代表性的由 微软的 IIS   互联网信息服务 和  apache 软件基金出的 apache   一个开源的网页服务器软件。

客户端浏览超文本信息的软件 叫做浏览器。 现在常用的web 浏览器有 微软的 Internet  Explorer  IE浏览器,  Mozilla 基金会的 开源软件 Firefox 火狐浏览器,和 谷歌 Google 公司的 Google Chrome  浏览器 , Opera 奥普拉软件公司的 Opera  和 苹果公司的 Safari 等

借助浏览器 人们无需知道内容保存在哪个服务器,只需要点击鼠标就可以跳转到链接的相关信息。使得人们获取信息更为方便和快捷。

浏览器中呈现出来的内容我们称之为网页,很多这样的网页构成了工资的网站资源。 网站资源只有无数个网页组成的。 人们通过访问域名获得的第一个网页叫做网站的首页或者主页

WWW基本概念

万维网有三个重要的概念,分别是 访问信息的位置 URL  (Uniform  Resoure Locator) 统一资源定位系统; 信息的表现形式  HTML (HyperText Markup Language) 超文本标记语言; 和信息转发方式 HTTP (Hypertext  Transfer  Protocol)

URL

首先 对于万维网服务,我们要解决的是,在哪里找我需要的信息。也就是访问信息的位置,在所有浏览器上都有一个可以输入昂站域名的 输入框, 这个框就是URL 统一资源定位系统。 它可以定位网络资源的位置,也可以用于万维网之外的识别机制,被用于 网页地址,电子邮件等各种组合

因为网页形式可以呈现的内容远不止起初 web 定义的文本 图片  动画 等等,现在由于网络带宽的高速提升和智能手机终端的应用,人们要求网页所承载的内容也越来越多 比方 视频  音乐   程序等等。为了适应更多资源的识别,人们提出了 URI (Uniform Resource Identifier) 来代替 URL 定位。

RUL 可以作为所有资源的识别码,相对于URL 只定义互联网资源, URI是个广义上的概念。它所表示的组合叫方案(Scheme)。万维网用的http 和 https 只是众多方案中的一种。下面我们列出一些URI 的主要方案大家参考

方案名 内容 内容翻译
acap Application Configuration Access Protocol 应用配置准入协议
cid Content Identifier 内容标识
dav WebDAV 基于web 的分布式编写和版本管理
file Host-specfic File Names t特定主机文件名
ftp File Transfer Protocl 文件传输协议
http Hypertext Transfer Protocol 超文本传输协议
https Hypertext Transfer Protocol Security 超文本传输协议安全
imap Internet Messge Access Protocl 网际消息访问协议
ipp Internet Printing Protocol 互联网打印协议
mailto Electronic Mail Address 电子邮件地址
news USENET news 网络新闻组
nfs Network File System Protocol 网络文件系统协议
sip Secure Session Initiation Protocol 安全会话启动协议
snmp Simple Network Management Protocol 简单网络管理协议
tel Tellephon 电话
telnet The Network Virtual Terminal Emulation Protocol 网络虚拟终端仿真协议
tftp Trivial File Transfer Protocol 简单文件传输协议
urn Uniform Resource Names 统一资源名

HTML

HTML 超文本标记语言。 是网页内容的源代码。一种标记语言,主要靠浏览器的翻译和执行。不仅可以处理文字  颜色 图片,还可以处理音 视频 动画 等。

HTML  本身是纯文本格式,提供超连接功能,只需将互联网域名写到标签内,用户点击内容就可以跳转到指定的域名所提供的网页资源。所以可在一个网页页面上连接无数的网站资源。方便用户浏览和访问。

HTTP

有了网页内容代码和资源定位系统,那么我们定位到的网页内容是由谁来传输的呢,这就需要 HTTP 协议。超文本传输协议。

当人们在浏览器地址栏内输入所要访问网站域名后,HTTP 协议就会处理,默认使用 80 端口。基本过程是,客户端向服务器 80端口建立一个TCP 连接,后在这个TCP 连接上进行请求和应答以及数据的传输。

HTTP常用版本 1.0 和 1.1。1.0 中每一个命令和应答都会触发一次TCP 的建立和断开,后来 人们使用 1.1 版本 允许在一个TCP 连接上发送多个命令和应答。这样提高了效率 

JavaScript、CGI、 Cookoe

JavaScript

JavaScript  java 脚本语言,是一种轻量级 解释性的编程语言,本是专门为web 网页开发的,切入到 HTML 中,也是由浏览器解释执行。可以为网页提供动态显示内容。 比方调用显示时间  天气,验证客户端输入字符串等等。 除此之外还有 CSS 叫层叠样式表,为格式化web页面 提供更为方便的网页样式管理和设计。

CGI

现在我们往往将网页分为动态网站和静态网站,所谓动态就是用户每次登陆现实的内容都不一样,或者每个用户登陆到的是自己的页面,动态网页的实现主要靠的是服务器后台的数据库和调用数据库的语言和程序。

但网页之所以允许调用第三方程序使用为由 CGI (Common Gateway Interface)公共网关接口。是web 服务器调用外部程序时所使用的一种服务应用规范。利用CGI 网页可以调用数据库语言和程序,让用户端每次显示不同的内容。还可以调用其他程序或服务实现和扩展网页的功能。

Cookie 是一种小型文件,是 Web应用中为了 识别用户 而获取的用户信息。Web 服务用Cookie 在客户端保存一些 比方用户名 登陆名 用户的爱好和习惯访问的内容等信息,也用来保存登陆信息或网络购物中放入购物车的商品信息。

网络管理

SNMP

SNMP (Simple Network Management Protocol)  译为 简单的网络管理协议。 是一款基于UDP/IP 的协议。用来支持网络管理,收集必要信息。提供网络管理的工具和方法。

SNMP 的管理端叫做管理器(Manager  译为网络监控终端)  主要就是我们用来管理交换机路由器设备或网络的终端电脑。 被管理端叫做代理(就是我们的网路设备 路由  交换机等)。 管理器和代理之间交互的信息就是SNMP。

SNMP 一共出现了三个版本  v1 的安全机制并不完善, v2 讨论安全却最终意见不统一也就作罢。 到了v3 在算是变的理想了, v3不仅集合了所有SNMP之前版本 的功能,而且还定义了个别的功能模块(Component), 可以结合不同版本通信

SNMPv3 中 将 消息处理  用户安全  和 访问控制三个部分分别考虑,可为每一个部分选择各自必要的机制。

MIB

MIB(Management Information Base) 译为 管理信息数据库。 是 SNMP 中交互的信息,以树形结构为每一项目附加编号。 SNMP 访问MIB时 使用数字序列。 这些序列各自都有易于理解的名字。

MIB 分为标准的MIB 和 各个提供商提供的扩展MIB 。这两类都通过 SMI(Structure  of Management Information) 译为 管理信息结构,来定义。

MIB相当于SNMP 的表示层,它是一种能够在网络上传输的结构。SNMP 可以从代理处读取或者写入MIB 。

RMON

RMON 是 Remote Monitoring MIB 的缩写 译为远程监控MIB 。

MIB是由监控网络中某个设备接口的众多参数构成。相比之下,RMON 则由监控网络上线路的众多参数构成。

RMON 的好处很多, 首先可以监控的信息扩展到了一条线,更高效的理由监控网络,并监控的内容增加了很多用户角度极为有意义的信息比如流量统计等

还可以接口特定的主机在哪里通过什么协议和谁通信。从而更加详细的了解网络上主体。

RMON 可以以终端为单位也可以以协议为单位监控,除监控外 还可以用于收集网络扩展和变更时期更为有意义的数据。 甚至是可以定位负载较大的主机及其协议相关信息,从而判断的当前网络是否被充分利用等。

SNMP 应用举例:

 

其他应用层协议

 互联网作为全球性的网络,如今被应用到更多的领域中。不仅用于实时的收发音视频,图像等多媒体数据,还被用于电视电话会议,现场转播等及时性,双向性的领域。

多媒体通信实现技术

多媒体应用中难度最高的要属互联网电话(VoIP)和电视会议,这种及时性较高的应用了。因为它们的特点都是要求系统延时少,有些丢包,也无妨,而更注重实效性。所以常常利用UDP 实现,而不是TCP

但只使用UDP 还不足以实现,因为网络电视电话会议,还需要提供查询对方号码,模拟电话机的拨号,交互形式提供等等。于是人们查查加入一些 呼叫控制作为支持。还有如 RTP 协议和压缩技术。

呼叫控制有两种方式, H.323 和 SIP。

H.323

H.323 是由 ITU国际电信联盟开发的 用于在IP 网络上传输音频 视频。 起初主要作为 ISDN 综合业务数字网和IP 网上的电话网为目的的。

H.323 定义了4个组件 分别是 终端 也就是用户端,  网关  用来吸收用户数据, 网闸   用于电话本管理和呼叫管理, 和 多点控制单元  允许多个终端同时使用。

 

SIP

SIP (Session Initiation Protocol)   会话初始协议,与 H.323 相对,但晚于 H.323  但被普遍认为更适用与互联网。 相对于H.323的多内容 复杂来说, SIP 简单的多了。

SIP 相当于 OSI参考模型的会话层, 将呼叫控制  中断会话  数据传输等功能统一到自身。除此之外,SIP 消息的处理,直接交给了终端应用,少数在服务器端处理的情况。 所以 SIP 更像HTTP。 它不仅在 VoIP  其他应用中也被广泛使用。

 

RTP

RTP(Real-Time  Protocol)  译为 实时传送协议。 主要是附加到 UDP, 主要职责是用来表示报文顺序的序列号字段,和对报文发送时间进行管理。

RTCP(RTP Control Protocol)  译为实时传送协议的控制协议。 是 RTP 的辅助协议。 通过丢包率等线路质量管理 对 RTP 的数据传送率进行控制。

 

数字压缩技术

为了在有限的网络资源中传输多媒体文件 ,对音视频的压缩技术就是非常必要的手段。 

MPEG(Moving Picture Experts Group)  译为 动态图像专家组。决定着数字压缩规范的工作组织。他们制作出来的规范就叫 MPEG 。

MPEG 有很多规范。 比方 MPEG1 主要用于 VideoCD, MPEG2 主要用于DVD 和数字电视播放领域。 还有我们熟悉的 MPEG4  MPEG7 等  MP3 也属于此类规范。

数字压缩技术的规范协议属于应用层。

P2P

我们互联网中很多服务都属于多台客户端对应一台服务器的模式  也就是 C/S  客户端/服务器, 即 N对1  比方 web 服务  ftp   电子邮件   等等,但也有 1对1 的情况就是网络中主机不经过服务器直接连接。就是说两者之间是对等的关系,相互之间即使服务器也是客户机。 这叫 P2P (Peer  To  Peer)。

 

P2P 对等网络 可以分散音频数据给网络带来的负载,所以实现了更高效的传输和应用。 像著名的互联网电话 Skype 就采用的 P2P 功能。 还有IP 电话  BitTorrent 传输协议等等。

但P2P 传输对硬盘损耗比较大, 也非常占用内容和CUP资源 所以很多公司服务器通过技术手段禁止管理员使用P2P 

LDAP

LDAP(Lightweight Directory Access Protocol) 译为 轻型目录访问协议。是为了更简单地管理网络上的各种资源。

网络上存在的一种提供相关资源的数据库资源服务,称为目录服务。目录服务器就是用来管理网络上资源的一种服务。LDAP 在TCP/IP 上实现了目录服务的功能

LDAP定义了目录树结构,数据格式和命名规则,目录访问顺序  安全认证等内容。

尾声

这一章我们主要聊了聊 应用层的协议 比方 电子邮件  远程管理  文件传输和  web 服务等。主要也就这些常用的需要们加以了解和学习。后面具体到服务我们还要涉及到搭建在各个服务器平台上。接着下一章  也就是这部分内容的最后一章 和大家聊聊网络安全的相关问题。 有不足之处欢迎大家留言指正。

(内容和图片参考和来源于《图解TCP/IP》 第五版 人民邮电出版社  特表谢意)