一般情况下,人们不会太在意网络应用程序实际上是按照何种机制正常运行的。本章旨在介绍 TCP/IP 中所使用的几个主要应用协议,它们多处于 OSI 模型的第 5 层(会话层)以上。

第 8 章 应用协议 - 图1

8.1 应用层协议概述

image.png

  • 应用协议的定义
    • 应用协议是让利用网络的应用程序(eg. Web 浏览器、电子邮件、远程登录、文件传输、网络管理等)进行特定通信处理的协议
  • 相当于 OSI 中第 5(管理通信连接的会话层)、6(转换数据格式的表示层)、7(与对端主机交互的应用层) 层的协议

8.2 远程登录

image.png
远程登录,即实现从自己的本地计算机登录到网络另一端计算功能的应用。 第 8 章 应用协议 - 图4

8.2.1 TELNET

  • 原理:TELNET 利用 TCP 的一条连接,向主机发送文字命令并在主机上执行,使得本地用户好像与远端主机内部的 Shell 相连似的,直接在本地进行操作
  • 用途:TELNET 常用于登录路由器或高性能交换机等网络设备进行相应的设置

image.png

  • TELNET 两类基本服务
    • 仿真终端功能
    • 协商选项机制
  • TELNET 除了处理用户输入的文字外,还提供选项的交互和协商功能,eg.
    • 为实现仿真终端(NVT)所用的界面控制信息就是通过选项功能发送出去的
    • TELNET 中的行模式或透明模式两种模式设置,也是通过 TELNET 客户端与 TELNET 服务端之间的选项功能设置的

image.png

8.2.2 SSH

  • SSH 是加密的远程登陆系统(作为对比,TELNET 中登录时无需输入密码就可以发送,容易造成通信窃听和非法入侵的危险),使用 SSH 后可以加密通信内容,即使信息被窃听也无法破解所发送的密码、具体命令以及命令返回的结果是什么
  • SSH 功能
    • 加密通信内容
    • 可以使用更强的认证机制
    • 可以转发文件
    • 可以开始用端口转发功能
      • 端口转发:将特定端口号所收到的消息转发到特定的 IP 地址和端口号码的一种机制

image.png

8.3 文件传输 FTP

image.png

  • 定义:FTP 是在两个相连的计算机之间进行文件传输时所使用的协议
    • 类似于远程登录,FTP 也需要先登录到对方的计算机后才能进行文件传输操作
  • FTP 的工作机制:使用两条 TCP 连接
    • 一条用于 FTP 的控制(TCP 21 号端口)
      • eg. 登录用户名和密码的验证、发送文件的名称、发送方式的设置等
      • 这个连接上无法发送数据
    • 一条用于数据(文件)的传输(TCP 20 号端口)

image.png

  • FTP 中通过 ASCII 码字符串进行交互处理(请求、应答命令)

8.4 电子邮件

image.png

8.4.1 电子邮件的工作机制

  • SMTP 协议:提供电子邮件服务的协议称为 SMTP(Simple Mail Transfer Protocol)
    • SMTP 为了高效地发送邮件内容,在传输层使用了 TCP 协议
  • 现在的电子邮件机制,不再是在发送端与接收端主机之间直接建立 TCP 连接,而是引入了一种一直会连接电源的邮件服务器,发送端和接收端通过邮件服务器进行收发邮件。接收端从邮件服务器收取邮件时使用 POP3 协议(Post Office Protocol)

image.png

  • 电子邮件的机制 第 8 章 应用协议 - 图12

    8.4.2 邮件地址

  • 格式:“名称@通信地址

8.4.3 MIME

MIME(Multipurpose Internet Mail Extensions),多用途互联网邮件扩展类型,是电子邮件所能发送的数据类型,包含文本、静态图像、动画、声音、程序等各种形式的数据

  • 位于 OSI 参考模型的第 6 层 表示层,因为 MIME 规定了应用消息的格式
  • 两部分:首部 + 正文

8.4.4 SMTP

SMTP(Simple Mail Transfer Protocol),是发送电子邮件的协议,使用 TCP 的 25 号端口

  • SMTP 建立一个 TCP 连接后,在这个连接上进行控制和应答、以及数据的发送
  • 客户端以文本形式发出请求,服务端返回一个 3 位数字应答

image.png

8.4.5 POP

POP(Post Office Protocol),是用于接收电子邮件的协议

  • SMTP 支持的是发送端主机行为,而不是根据接收端请求发送邮件,因此引入 POP 协议
  • 发送端的邮件通过 SMTP 协议转发给一直处于插电状态的 POP 服务器,客户端再根据 POP 协议从 POP 服务器接收对方发送来的邮件(这个过程中还要进行用户验证,以防他人盗取邮件内容)
  • POP 与 STMP 一样,也是在其客户端与服务器之间通过建立一个 TCP 连接完成相应操作
  • 命令都是 ASCII 码字符串
  • 应答只有两种
    • +OK:正常情况
    • -ERR:异常 or 错误

image.png

8.4.6 IMAP

IMAP (Internet Message Access Protocol),类似于 POP,也是接收电子邮件的协议

  • POP 协议中邮件由客户端进行管理,而 IMAP 协议中邮件由服务器进行管理
  • IMAP 协议使得可以不必从服务器上下载所有邮件也可以进行阅读。也可以只下载特定附件(而 POP 协议中要确认附件时只能下载所有附件)
  • IMAP 在服务器上对“已读/未读”信息和邮件分类进行管理,因此即使在不同的计算机上打开邮箱,也能保持同步

8.5 WWW

8.5.1 WWW 基本概念

WWW(World Wide Web),万维网,是将互联网中的信息以超文本形式展示的系统 第 8 章 应用协议 - 图15

8.5.2 URI

URI(Uniform Resource Identifier),用于标识资源。URI 不仅可以用于标识互联网资源,还可以用于标识互联网之外的所有资源。用于标识主页地址时,也称为 URL(Uniform Resource Locator)

  • URI 的 http 方案的具体格式:(主机名标识域名 or IP地址,端口号表示传输端口号,若省略则默认端口 80)
    • http://主机名/路径
    • http://主机名:端口号/路径
    • http://主机名:端口号/路径?访问内容#部分信息
  • 以上表示方法可以唯一地标识互联网中特定的数据

8.5.3 HTML

HTML(HyperText Markup Language),超文本标记语言,是记述 Web 页的一种语言(数据格式),可以指定浏览器中显示的文字、文字大小和颜色,以及图像、动画、音频等相关设置,属于 OSI 参考模型的表示层

8.5.4 HTTP

HTTP(HyperText Transfer Protocol),超文本传输协议,是网络传输协议(简单的请求-响应协议),默认使用 80 端口。

  • 工作机制:首先客户端向服务器的 80 端口建立一个 TCP 连接,然后再这个 TCP 连接上进行请求和应答以及数据报文的发送
  • 两个版本
    • HTTP1.0:每一个命令和应答都会触发一次 TCP 连接的建立和断开
    • HTTP1.1:允许在一个 TCP 连接上发送多个命令和应答,大量减少了 TCP 连接的建立和断开操作,提高了工作效率

image.png

8.5.5 JavaScript、CGI、Cookie

上面介绍了 Web 的三个基本要素:URI、HTML、HTTP,但这些无法实现更精彩多样的内容,比如动态内容。

  • JavaScript:是一种嵌入在 HTML 中的语言,可以在客户端实现动态效果
  • CGI:Common Gateway Interface,是 Web 服务器调用外部程序时所使用的一种服务端应用的规范。引入 CGI 后,客户端请求会触发 Web 服务端运行另一个程序,客户端所输入的数据也会传给这个外部程序,该程序运行结束后生成 HTML 和其它数据(动态信息)返回给客户端。论坛和网上购物系统中常用 CGI 调用外部程序或访问数据库
  • Cookie:Web 应用中为了获取用户信息使用 Cookie 机制,用 Cookie 在客户端保存登录信息等数据。HTTP 本身时无状态协议,可以通过 Cookie 实现有状态

image.png

8.6 网络管理

8.6.1 SNMP

image.png
SNMP(Simple Network Management Protocol),是一款基于 UDP/IP 的网络管理协议

  • 管理端:管理器,manager,网络监控终端
  • 被管理端:代理(路由器、交换机等网络设备)

image.png

8.6.2 MIB

SNMP 中交互的信息MIB(Management Information Base)。MIB 是在树形结构的数据库中为每个项目附加编号的一种信息结构。MIB 相当于 SNMP 的表示层,是一种能在网络上传输的结构

8.6.3 RMON

RMON(Remote Monitoring MIB)。MIB 的可监控信息是一个点,RMON 的可监控信息扩展到一条线上,可以更高效地监控网络,可监控的内容也增加了很多从用户角度看极为有意义的信息,如网络流量统计等,RMON 是判断当前网络是否被充分利用的重要资料

8.7 其他应用层协议

8.7.1 多媒体通信实现技术

实时多媒体通信注重系统的即时性,因而采用 UDP。当然除了 UDP,还需要综合其它技术以实现真正的实时多媒体通信

  • H.323:用于在 IP 网上传输音频、视频的一种协议
  • SIP:SIP 是与 H.323 相对的 TCP/IP 协议,更适用于互联网
    • 功能:呼叫控制与信令,相当于 OSI 的会话层

image.png

  • RTP:RTP 为每个报文附加时间戳和序列号,检查 UDP 协议的不可靠传输是否产生丢包
    • 接收报文的应用根据时间戳决定数据重构的时机,根据序列号对统一时间戳的数据进行排序
    • RTCP(RTP Control Protocol)是辅助 RTP 的协议,通过丢包率等线路质量的管理,对 RTP 的数据传送率进行控制

image.png

  • 数字压缩技术:相当于 OSI 参考模型的表示层

8.7.2 P2P

P2P(Peer To Peer),网络上的终端或主机不经过服务器直接 1 对 1 相互通信的情况

  • P2P 中主机具备客户端和服务端两方面的功能,以对等关系相互提供服务
  • 应用:IP 电话 Skype,文件传输应用 BitTorrent协议

image.png

8.7.3 LDAP

LADP(Lightweight Directory Access Protocol),轻量级目录访问协议,是访问目录服务(管理网络资源)的一种协议。