第七章 应用层(一)

简介

  1. 应用层是干啥的?
    1. 为了使某些网络应用标准化,所以需要一些专门的应用服务要素
    2. 本章讲的就是TCP/IP协议当中,有哪些专门的应用服务要素
  2. 应用层与引用进程如何区分?
    1. 应用层和应用进程都是为特定的应用服务的
    2. 所谓的应用层就是把两个应用进程之间通信过程当中可以规定下来的东西,我们就把他当做一个应用层的协议,而不能确定的,就把他当做应用进程自己的东西
    3. 应用层往往跟某个应用进程联系在一起的
    4. 应用层主要提供应用进程与通信进程之间的接口
  3. 应用层提供两种不同的服务要素:
    1. CASE ( Common Application Service Element)
      1. 公共应用服务要素(任何应用进程他们之间通信都需要的服务)
      2. CASE提供整个通信所要求的功能,如两个通信伙伴之间建立联系,向低层指示通信所用的参数、要求的服务质量等
    2. SASE ( Special Application Service Element)
      1. 专门的(或具体的)应用服务要素(针对某一个应用服务特定的服务)
      2. SASE包括专门的、但广泛应用的功能
      3. 如:虚拟终端、文件传输等
  4. 本章将讨论:
    1. SNMP – 简单网络管理协议
    2. DNS – 域名系统
    3. 电子邮件E - mail
    4. WWW
    5. 多媒体

一、简单网络管理协议(略)

  1. 网络管理的基本出发点
    1. 具有网络监视和控制两方面的能力
    2. 能够管理所有层次的协议
    3. 尽可能大的可管理范围(设备种类)
    4. 尽可能小的系统开销
    5. 可管理不同厂家的设备

二、DNS – 域名系统

  1. DNS是干啥的?
    1. DNS:Domain Name System (域名系统)
    2. 之前学的通信都是用IP地址通信,没有任何物理的含义,很难记住,因此为了解决这个问题,我们就把他变成了一个有含义的名字,但是对于IP协议来讲他根本不认识这个名字,他只认识IP地址,所以呢我们就需要在人和机器之间做一个平衡
    3. 人和机器之间用的地址是比较容易记住的地址,但机器之间用的是IP地址
    4. 于是这之间就有一个转换,这个转换我们就把他称为是一个DNS转换服务
    5. 平时我们用的网址就称为一个域名

DNS的主要功能

图1

  1. 功能:映射域名与IP地址之间的对应关系
  2. 特点:分级的、基于域的命名机制和分布式的数据库系统
  3. 因此本节主要讲域名到IP地址的转换

DNS的名字空间

  1. 域名是怎样来构造的呢?肯定要有一套命名的规范
  2. 那么如何才能保证自己命的命跟别人不一样呢?-分层控制
  3. DNS的分层结构
    图1
    1. 按照国家来分,每个国家都有一个组:jp是日本,cn是中国
    2. 按照通用的方法分
      1. int :Internet机构
      2. com: 商业机构
      3. edu: 教育机构
      4. gov: 政府机构
    3. 上面的哪些组都是由Internet组织规定好的
      1. 如果一个机构要为自己的资源分配名字,那就必须在相应的组里面去申请
      2. 比如是一个教育机构(yale),他就向edu那个组去申请;比如是一个商业机构(sun),那就应该想com那个组里面去申请,然后他们就给你分配一个名字,也由此就有了抢占域名,一但你命名了,别人就不能用这个名字了
      3. 每一个机构会为他下面的子机构取一个唯一的名字,比如sun公司下面有一台服务器,那么他就可以自己为他取一个名字比如eng
      4. 自己为子节点命命名不一样就行了,每一层之间用点分开
      5. 这样就保证了唯一性
    4. 上面的图补充说明:
      1. 其中:int - 特定组织机构,net - 网络提供者
      2. 命名:域名是从叶到根的路径,用点分开
      3. 例:  network.cs.sjtu.edu.cn
        1. 大小写不敏感
        2. 新建一个域,必须征得所属域的同意
        3. 命名遵循组织界限,而非物理网络
      4. 顶层域名就是放在最有面的那个域名 图1

名字服务器

  1. 有了域名,然后把域名翻译成IP地址,这个工作谁来做?
    1. 在每一个域里面都有一个域名服务器
    2. 域名服务器就是负责解析我这个域里面的域名到IP地址的一个转换
  2. 功能: 提供域名解析
  3. 域名的解析是通过分布式数据库系统,由区域管理员划分区域边界,每个区域有自己的DNS服务器
  4. 一台域名服务器必须负责自己所管辖的所有主机的域名解析,也必须知道上一层域名服务器的IP地址

资源记录

  1. 每一个域都有一组资源记录,对任意一台主机来说,最常见的资源记录是它的IP地址
  2. 域名服务器的主要功能是将域名映射成一组资源记录
  3. 资源记录的组成
    图1
    1. Domain name:该资源记录对应的域
    2. Time to live:该资源记录的生存期(秒)
    3. Class:常量“IN”,即Internet类
    4. Type:记录类型
    5. Value:取决于记录类型
  4. 记录类型 Type
    图1

域名解析过程

  1. 通过UDP包传输请求和应答
    1. cs.sjtu.edu.cn要知道www.cs.tsinghua.edu.cn的IP地址,其过程(递归)为: 图1
      1. 交大(cs.sjtu.edu.cn)是不知道清华(www.cs.tsinghua.edu.cn)的IP的,但是他们有个共同的父类edu知道,因此,交大把请求一步步上传给edu,然后edu向下分工找到清华的IP,然后返回给edu,然后edu在向下分工发给交大
  2. DNS性能的优化
    1. 解决根服务器太忙的问题
      1. 复制:每个根服务器被复制许多份,存于整个世界,实际使用时,找物理上最近的服务器
      2. 缓存:每个服务器都有一个域名缓存,当查找到一个新的记录时,DNS将它的副本存于缓存中,此后如有域名解析请求,服务器优先查找缓存,但此信息不是权威(最原始)的,所以生存期是必须的

三、电子邮件E - mail(略)

  1. 电子邮件
    1. 电子邮件是使用方便、传递迅速、价格低廉的通信手段
    2. 电子邮件标准
      1. SMTP – Internet 的标准(常用)
      2. X.400 – CCITT的标准
  2. 电子邮件E-mail
    1. E-mail服务基于客户/服务器模式,逻辑上分成用户代理和消息传输代理两个子系统
    2. 电子邮件系统具有五个基本功能:撰写、传输、报告、显示、处理

四、WWW

简介

  1. WWW
    1. 万维网是分布式的超媒体信息系统,是超文本的扩展
      1. 分布式系统:就是信息不是放在一台机器上面,而是分布在网上的很多台机器上面
      2. 超文本
        1. 由多个文本信息源连接而成,通过链接,用户可以找到其他文档,就是一个文档中有些信息不知道,可以直接查找不知道的信息是什么意思,即各种文本信息连接在一起的一个文本
        2. 就是一个界面上只有文本信息
      3. 超媒体: 超文本的扩展
        1. 与超文本的区别是文档内容不同,超媒体信息可包括声音、图象、活动图象等
        2. 即各种类型信息(文本、声音、图像。。。)连接在一起的一个信息
        3. 就是一个界面上有各种类型的信息
    2. 万维网的结构:
      1. 基于客户/服务器结构,客户端称为浏览器,用TCP作为传输层协议,服务器方用固定端口80侦听连接请求
  2. 浏览器(Browser)
    1. 客户端软件即浏览器,主要用于:
      1. 连接Web server 
      2. 解释执行由HTML语言编写的文档
      3. 将执行结果显示在屏幕上
    2. 较有影响的几个浏览器
      1. Microsoft(IE Internet Explorer)
      2. Netscape(Navigator)
      3. Mosaic
    3. 注意: Navigator和IE等浏览器,除了支持访问Web server 的HTTP协议外,还包含了E-mail、Telnet、FTP等功能
  3. Web server 
    1. www系统的服务器
    2. 在 server 上,信息以网页形式来发布多媒体信息
    3. 网页采用超文本标记语言HTML来编写
    4. 资源使用统一的资源定位器URL来唯一标识

有关万维网的几个问题

  1. 怎样表示分布在整个Internet上的万维网文档?  URL
    1. 信息都是以一个一个网页的形式来存放,但是每一个网页必须是全球唯一的
    2. 即怎样标记让这个网页唯一的名字–URL来唯一表示
  2. 用什么样的协议来实现万维网上各种超链的链接?  HTTP
    1. 各个网页之间有一定的连接关系,怎样来表示这样的连接关系呢?
    2. 必须有一个协议–HTTP
  3. 怎样使不同作者创作的不同风格的万维网文档都能在Internet上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在链接? 网页制作
  4. 怎样使用户能方便地找到所需的信息? Search Engine
  5. 万维网性能的提高

统一资源定位符URL

  1. 作用: 给一个网页取一个名字,保证这个名字全球唯一的
  2. URL(Uniform Resource Locator)
  3. 一般格式: protocol://computer_name:port/document_name
    1. 其中port 通常不用(因为www的端口号是80,固定的,所以不用写)
    2. protocol:我要访问你的资源,需要用什么协议,www一般用http协议传递的
    3. computer_name: 域名,全球唯一的
    4. :port :要访问的这个服务器对应的端口号是多少
    5. document_name: 这个网页在这台机器上面的目录
  4. v举例:
    1. http://www.cs.sjtu.edu.cn/welcome.html
    2. ftp://ftp.cs.sjtu.edu.cn

超文本传输协议HTTP

  1. 这台机器上的文件怎样和那台机器上的文件建立关系呢?
  2. 工作过程 图1
    1. http是应用层的一个协议
    2. 传输层用的是TcP协议
    3. 当一台机器上面有一个网页,网页上显示一个超链接,当用户点击了之后会发生什么事情呢?
  3. 一次成功的Web访问(当点击了 http:// www.cs.sjtu.edu.cn/welcome.html
    1. 浏览器分析超链指向页面的URL
    2. 浏览器向DNS请求解析www.cs.sjtu.edu.cn的IP地址
    3. DNS解析出服务器的IP地址为202.120.1.154
    4. 浏览器与服务器建立TCP连接(202.120.1.154使用端口80)
    5. 浏览器发出取文件命令:get/welcome.html
    6. www.cs.sjtu.edu.cn服务器响应,将文件welcome.html发给浏览器
    7. TCP连接释放
    8. 浏览器显示文件welcome.html中的所有文本
    9. 浏览器显示文件welcome.html中的所有图象
  4. HTTP报文的通用结构
    1. HTTP(Hypertext Transfer Protocol) 图1
      1. 有2类报文:请求报文、响应报文
  5. HTTP请求方法
    1. 请求命令(大小写敏感) 图1

网页的制作

  1. 分类:
    1. 静态网页
      1. 某个服务器上等待用户访问的文件
      2. 即要显示的信息都在一个文件中已经存放好了
    2. 动态网页
      1. 按用户的需求在服务器上动态组织一个网页
      2. 这一次访问和下一次访问这个网页的信息可能是不一样的
  2. 静态网页
    1. HTML(HyperText Markup Language)允许用户创建包含文本、图像及指向其它Web页面的指针
    2. XML(eXtensible Markup Language)允许定义结构化的数据
    3. XHTML(eXtended HyperText Markup Language)是一种新的Web标准,为了达到最大的平台移植性
  3. 动态网页
    1. 服务器端的动态网页的生成,比如根据用户的需求从数据库中读取数据并组织成网页
    2. 客户端的动态网页的生成,如在客户端利用一段SCRIPT程序生成一些预定格式的网页

搜索引擎Search Engine

  1. 搜索万维网的程序
    1. 万维网是一无向图,页面即为节点,超链接为边
    2. 数据量十分庞大,且经常更新
    3. 使用递归的搜索算法,根据关键字到URL列表(可能有几百万个表项)中指向的主机进行搜索
    4. 问题:数据结构的定义、搜索策略与搜索时间和存储空间的问题、搜索准确率等等

万维网性能的提高

  1. 缓存
    1. 是客户端采用的技术,它利用代理(proxy)技术,将网页保存在代理的缓冲区中,此代理可以是本地的个人PC、可以是公司LAN上的服务器,也可以是ISP的服务器
  2. 服务器的复制
    1. 镜像服务器
  3. 内容分发网络

五、多媒体

  1. 主要是讲
    1. 音频
    2. 视频

音频

  1. 音频是一个连续的信号,因此一个音频要在计算机上传递,必须数字化
  2. 数字音频
    1. 音频是一维的声波
    2. 音频数字化
      1. PCM调制
        1. 每秒8000次采样,每个采样被量化为8 bit,即带宽64k
      2. 音频CD
        1. 提高音频质量:1. 采样频率更高 2.量化级别更大
        2. 每秒44100次采样,每个采样被量化为16 bit,因此非立体声需要705.6K bps,立体声需要1.4112M bps
  3. 音频压缩
    1. 波形编码(waveform coding)
      1. 利用傅立叶级数的展开,记下每一个分量的振幅,并以最小化的方式编码
    2. 知觉编码(perceptual coding)(MP3使用的)
      1. 以人对声音的感觉方式来编码,MP3就用此方法压缩,其关键技术是某些声音能掩盖其它声音
  4. 数字音频的应用
    1. 流音频:在Internet上听音乐
      1. 通过HTTP下载一个音频文件,由Media play回放
    2. Internet无线电广播
      1. 节目事先录制在磁盘上
      2. Internet上的直播
    3. Voice over IP(网络电话)

Voice over IP

  1. 传统的电话网传递的大部分是话音(打电话),少部分是数据(网络数据),但数据流量在不断增长,在1999年已与话音量持平,2002年数据流量已比语音流量多一个数量级(就是说电话网传递的大部分是计算机数据了)
    1. 早期是数据网侵占电话网,因为电话网出现的早,计算机网出现的晚
    2. 所以在建计算机网的时候,借助电话网传递信息
    3. 所以电话网上传递的信息很多都是计算机网的数据
  2. 由于话音通过PCM调制也变成了数字,因此也可以在数据网络上传输,在Internet上传输电话称为Internet电话,也称为Voice over IP
    1. 既然计算机网络数据可以在电话网上传递,那么电话数据也能在计算机网上传递
    2. 如果一个单位里面建立了计算机网络,那么这个单位就不需要电话了,直接用计算机网络打电话,这就是voice over IP ,即在IP网上传递声音
  3. voice over IP实现方式
    1. ITU的H.323
    2. IETF的SIP
H.323
  1. 国际电信联盟提出了一个网络电话的模型
  2. H.323的全名为:Visual Telephone System and Equipment for Local Area Network Which Provide a Non-Guaranteed Quality of Service
  3. H.323提出了Internet电话的总体结构
  4. IP phone的结构 图1
    1. 把计算机网络看成一个电话的传输网络
    2. 把计算机网(internet)和电话网络(PSTN)连接起来中间需要一个网关(作用就是把2个不同的网络连接起来的),把计算机网和电话网之间做一个转换
    3. 每一组用户称作Zone,每个组有一个网首gatekeeper,就相当于一个小交换机
    4. 当zone中有一个用户发起呼叫时,就通过网首传给gateway,gateway转化成电话网的消息,再传递给电话用户
  5. IP phone的工作原理
    1. IP phone用到的协议
      1. 声音在计算机网络如何传递-声音的编码解码
        1. G.711(PCM):每秒8000采样 每样本8bit64K bps
        2. G.723:用知觉编码,将每30 ms的声音信息用24  或20个字节来表示,6.4K或5.3K bps
      2. H.245:双方协商压缩方法(规定双方之间用哪种编码、压缩方式)
      3. RTCP:协商连接过程中的其它事宜,如比特率
      4. Q.931:处理诸如连接建立与断开、提供拨号音 和振铃声等
      5. H.225: PC与gatekeeper之间的对话协议,如  注册、准入等工作
    2. 连接建立
      1. PC与gatekeeper建立连接
        1. PC寻找自己的gatekeeper
        2. 向gatekeeper注册
        3. 得到确认后,PC向gatekeeper申请所需的带宽
        4. 得到承诺后开始连接建立过程,PC与gatekeeper之间建立一个TCP连接
      2. 建立电话连接
        1. PC发送Q.931的连接消息,指出与哪个电话通话,通过gatekeeper送到gateway
        2. Gateway发出一个普通的电话呼叫
        3. PSTN本地局向被叫电话发出振铃信号,并用Q.931 ALERT 消息告诉PC振铃开始
        4. 当被叫电话摘机时,局端发回一个Q.931的CONNECT消息,通知PC连接已建立
    3. PC与电话用户的通话和连接释放
      1. 通话
        1. 双方以G.711或其他的压缩协议通话
      2. 与gatekeeper释放连接
        1. PC通知gatekeeper释放相应的带宽
IETF的SIP
  1. 数据的传输都是以数据包的方式传输
  2. 把每一个用户看成是一个网站,相当于一个url
  3. 因此他们之间的信息传输就是一个特殊的报文SIP,这个协议就是专门用来传递电话的报文
  4. SIP是一种更加简单的建立Internet电话、电视会议和其他多媒体连接的方法
  5. 特点
    1. 可以建立一对一、一对多和多对多的会话
    2. 每个会话可以包含声音、图像和数据
    3. 电话号码表示为URL
  6. SIP的信令
    1. SIP共规定了六种信令:INVITE、ACK、CANCEL、OPTIONS、BYE、REGISTER。
    2. INVITE和ACK用于建立呼叫,完成三次握手,或者用于建立以后改变会话属性
    3. BYE用以结束会话;
    4. OPTIONS用于查询服务器能力;
    5. CANCEL用于取消已经发出但未最终结束的请求;
    6. REGISTER用于客户出向注册服务器注册用户位置等消息。
  7. 会话建立过程
    1. 会话的建立利用三次握手
      1. 主叫方与被叫方建立一个TCP连接,并发送一个INVITE消息,或用UDP发送一个INVITE消息,请求建立一个会话,在此消息中还包括了发送方的容量、介质类型和格式
      2. 如果被叫方接纳呼叫,发回一个HTTP的应答代码,以及应答方的容量、介质类型和格式
      3. 发送方发送一个ACK
  8. 会话断开
    1. 任意一方都允许请求会话断开
      1. 一方发送BYE消息
      2. 另一方发回一个应答
  9. H.323与SIP的比较
    1. 相同点
      1. 允许两方或多方会话
      2. 允许计算机和电话通信
      3. 支持参数协商、封装和RTP/RTCP协议
    2. 不同点
      1. H.323是一个典型的、符合电话标准的、完整的协议栈,它严格规定了什么是允许的,什么是不允许的
      2. SIP是一个典型的Internet协议,用ASCII文本交换信息,它是一个模块,可以和其他Internet协议一起工作

视频

  1. 同样视频要要传递也需要采样数字化、压缩
  2. 视频就相当于以前的电影交卷,每一刻都有一个图片,一旦这些图片连续播放就形成了连续动作
  3. 因此处理视频实际上就是处理很多很多的图片
  4. 一般来讲,每秒钟播放的图片(帧)不小于30个

数字视频

  1. 由一系列帧组成,每个帧由一个矩形图像元素,称为像素(pixel)组成,每个像素可以是一个bit,表示黑的还是白的
    1. 把一个图片分成n行,n列,每一个交接都有一个点,一个点称为一个像素
  2. 可以用8 bit表示一个像素,即分为256级灰度
  3. 彩色图像每个像素用3个部分来表示,如用3个8 bit 分别表示三基色RGB的强度,则共有224 (16M)种颜色
  4. 连续的视频至少用每秒25帧表示
  5. 传输video所需的带宽=每秒传输的帧数*每帧的bit数
  6. 最小的带宽 = 25帧 * 1024 * 768 * 24 bit = 472M bps

视频压缩

  1. 从上面可以看出,最基础的每秒播放的视频需要472M,那是不现实的,一个视频有3个小时,那就大了去了,因此,为了提高实用性,需要视频压缩
  2. JPEG
    1. 通过对单个图像的压缩,减少连续图像所需的带宽
  3. MPEG
    1. 通过记录与前一帧的不同之处达到压缩的目的
Table of Contents