每个应用层协议都是为了解决某一类应用问题,通过位于不同主机中的多个应用进程之间的通信和协同工作来完成。
应用层的具体内容就是规定应用进程在通信时所遵循的协议
应用层的许多协议都是基于客户服务器方式----CS
应用层软件经常直接使用域名系统 DNS,但计算机的用户只是间接而不是直接使用域名系统
互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS
多个域名服务器完成名字到 IP 地址的解析
域名:任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字
域名的结构由标号序列组成,各标号之间用点隔开: . 三级域名 . 二级域名 . 顶级域名
域名只是个逻辑概念,并不代表计算机所在的物理地点
国家顶级域名 nTLD、通用顶级域名 gTLD、基础结构域名(arpa反向域名)
一个服务器负责管辖的范围叫做区,区中的所有节点必须是能够连通的,区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射,DNS 服务器的管辖范围以“区”为单位
根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器
根域名服务器:并不直接把域名直接转换成 IP 地址。在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器
顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名
权限域名服务器:负责一个区的域名服务器
本地域名服务器(默认域名服务器):当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器
DNS 域名服务器把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。更改数据只能在主域名服务器中进行。这样就保证了数据的一致性
主机向本地域名服务器的查询一般都是采用递归查询
本地域名服务器向根域名服务器的查询通常是采用迭代查询
每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。使互联网上的 DNS 查询请求和回答报文的数量大为减少
增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。
文件传送协议 FTP,提供交互式访问,适合于在异构网络中任意计算机之间传送文件
网络环境下复制文件的复杂性:
(1) 计算机存储数据的格式不同
(2) 文件的目录结构和文件命名的规定不同
(3) 对于相同的文件存取功能,操作系统使用的命令不同
(4) 访问控制方法不同
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用TCP 可靠的运输服务
主要功能是减少或消除在不同操作系统下处理文件的不兼容性
FTP 使用客户服务器方式。
一个 FTP 服务器进程可同时为多个客户进程提供服务。
FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。主进程与从属进程的处理是并发地进行
控制连接:FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程
数据连接:服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程
FTP 使用的两个 TCP 连接:TCP 控制连接、TCP 数据连接
端口20和端口21、连接不会发生混乱、协议更加简单和更容易实现
NFS 在网络上传送的只是少量的修改数据允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据
Trivial<微不足道的>
一个很小且易于实现的文件传送协议
使用客户服务器方式和使用 UDP 数据报
只支持文件传输、没有一个庞大命令集、没有列目录的功能、不能对用户进行身份鉴别
主要特点:
PDU 中有 512 字节数据
文件块 (block),按序编号,从 1 开始
支持 ASCII 码或二进制传送
可对文件进行读或写
使用很简单的首部
类似停止等待协议
发送完一个文件块后就等待对方的确认,发完数据后在规定时间内收不到确认就要重发数据 PDU,发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。
文件的传送不致因某一个数据报的丢失而告失败
只有收到一个不足512字节(可以是只有首部数据为空)的PDU才意味着传送完成
可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)
服务是透明的、客户&服务器方式
本地系统运行 TELNET 客户进程,远地主机运行 TELNET 服务器进程。
服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接
网络虚拟终端 NVT 格式、TCP 连接
NVT作为命令和响应相互理解的中间媒介
万维网是一个大规模的、联机式的信息储藏所
用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息
万维网是分布式超媒体系统,它是超文本系统的扩充
一个超文本由多个信息源链接成、超媒体与超文本的区别是文档内容不同
万维网以客户服务器方式工作
浏览器是万维网客户程序,万维网文档所驻留的计算机运行服务器程序
服务器程序向客户程序送回客户所要的万维网文档
页面:在一个客户程序主窗口上显示出的万维网文档
WWW要解决的问题:
a.统一资源定位符 URL标志万维网上的各种文档(唯一性)
b.超文本传送协议 HTTP实现万维网上各种超链的链接
(应用层协议,使用 TCP 连接进行可靠的传送)
c.超文本标记语言 HTML:用一个超链从本页面链接到互联网上的万维网页面,并显示
d.搜索工具(即搜索引擎):使用户能够找到所需的信息
对可以从互联网上得到的资源的位置和访问方法的一种简洁表示
资源位置抽象的识别方法、资源定位
一个文件名在网络范围的扩展,类似指针
<协议>://<主机>:<端口>/<路径>
协议:ftp、http、news
://
主机:存放资源的主机在互联网中的域名
http://<主机>:<端口>/<路径>
默认端口80
从层次角度看,HTTP 是面向事务的应用层协议
是万维网上能够可靠地交换文件的重要基础
浏览器分析超链指向页面的 URL;向 DNS 请求解析IP地址;解析完成;建立TCP链接;浏览器发出取文件命令; 服务器响应,并发送文件;TCP链接释放;浏览器显示文件
1.HTTP特点:
面向事务的客户服务器协议
协议本身也是无连接的,即使使用了面向连接的 TCP 向上提供的服务
无状态的
持续连接(后续报文传输、同一服务器上所有文档)
( 非流水线方式节省开销、流水线方式提升效率)
2.代理服务器
又称为万维网高速缓存,代表浏览器发出 HTTP 请求
万维网高速缓存把最近的一些请求和响应暂存
使用高速缓存可减少访问互联网服务器的时延
1. 超文本标记语言 HTML
Markup 设置标记
ASCII 码文件、规定了标签和链接的设置方法
当浏览器从服务器读取 HTML 文档后,就按照 HTML 文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面
远程链接:超链的终点是其他网点上的页面
本地链接:超链指向本计算机中的某个文件
XML:可扩展标记语言(为了方便传输,是对HTML的补充)
XHTML:可扩展超文本标记语言
CSS:层叠样式表(样式表语言,用于为 HTML 文档定义布局)
HTML 用于结构化内容,而 CSS 则用于格式化 结构化的内容
2. 动态万维网文档
静态文档
动态文档:文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建
差别:在服务器一端,文档内容的生成方法不同
万维网服务器功能的扩充
通用网关接口 CGI:定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用
通用、网关、接口
CGI 程序的正式名字是 CGI 脚本,被解释程序来解释或执行
(运行起来要比一般的编译程序要慢,因为每一条指令先要被解释程序处理,需要附加指令)
3. 活动万维网文档
活动文档技术把所有的工作都转移给浏览器端
当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行
活动文档程序可与用户直接交互,并可连续地改变屏幕的显示
不需要服务器的连续更新传送,对网络带宽的要求不高
Java的三个组成部分:程序设计语言、运行环境、类库
Java 小应用程序与机器无关可使在任何计算机上运行的浏览器程序能够下载并运行活动文档
解释程序的核心是一个模仿计算机的简单循环。维持一个指令指针,在初始化时指在小应用程序的开始处。在每一次循环操作时,解释程序在指令指针指向的地址读取字节码。然后解释程序对字节码进行解码,并完成指明的操作
全文检索搜索和分类目录搜索
全文检索搜索引擎,搜索软件,各网站链接组合,大型在线数据库,从已经建立的索引数据库上进行查询
分类目录搜索引擎,不采集网站的任何信息,各网站提交网站信息,人工建立分类目录的数据库
垂直搜索引擎,针对某一特定领域、特定人群或某一特定需求提供搜索服务,返回的结果更倾向于信息、消息、条目等
1.博客万维网日志,web log
2.微博微型博客
3.轻博轻博客,介于博客和微博之间的网络服务
Social Networking Site
发送邮件的协议:SMTP
读取邮件的协议:POP3 和 IMAP
MIME:在首部中说明了数据类型,支持同时传送多种类型的数据
用户代理 UA :用户与电子邮件系统的接口,是电子邮件客户端软件
用户代理的功能:撰写、显示、处理和通信
邮件服务器的功能:发送和接收邮件,且向发信人报告邮件传送的情况
客户服务器方式
发件人----用户代理–SMTP–发送方服务器----邮件缓存队列
发送方邮件服务器的 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接
电子邮件由信封和内容组成
格式:收件人邮箱名@邮箱所在主机的域名
SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息
客户服务器方式
连接建立、邮件传送、连接释放
信封和内容
首部:To邮件地址、Subject邮件主题、Cc邮件副本、From发件人、Reply-To回信地址
邮局协议 POP、客户-服务器方式
在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序
IMAP、客户服务器:用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱
特点:用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件
缺点:邮件未保存到PC,则一直存放在服务器,则PC与服务器长连
从PC与邮件服务器使用HTTP协议
好处:只要能够找到上网的计算机,打开任何一种浏览器就可以非常方便地收发电子邮件
SMTP 缺点:不能传送可执行文件或其他的二进制对象、限于传送 7 位的 ASCII 码、会拒绝超过一定长度的邮件
1. MIME 概述
MIME:增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则
(MIME能够将用户发送的非 ASCII 码转变为7 位 ASCII 码)
a.定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
b.定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
c.5个新的邮件首部
(标志 MIME 的版本、唯一标识符、主体是如何编码的、邮件的性质、邮件的主题)
2. 内容传送编码
base64、7 位 ASCII 、quoted-printable
3. 内容类型
内容类型(7)和子类型(15)
协议软件参数化、很多计算机上使用同一个经过编译的二进制代码
协议配置:在协议软件中给这些参数赋值(具体的配置信息取决于协议栈)
需要配置的项目:IP地址、子网掩码、默认路由器的IP地址、域名服务器的IP地址
动态主机配置协议 DHCP提供了即插即用连网的机制(自动获取IP地址)
客户服务器、临时IP、租用期
每一个网络至少有一个 DHCP 中继代理
DHCP协议工作过程P164
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求
管理站也常称为网络运行中心NOC,是网络管理系统的核心。
manager、administrator
被管设备–网络元素(网元)
网络管理代理程序
网络管理协议:管理程序和代理程序之间进行通信的规则
网络管理员利用网管协议通过管理站对网络中的被管设备进行管理
客户服务器方式:管理程序运行 SNMP 客户程序、代理程序运行 SNMP 服务器程序
SNMP 最重要的指导思想就是要尽可能简单。
SNMP 的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等
管理站(管理进程和代理进程利用 SNMP 报文进行通信)
委托代理(当网络元素不使用SNMP时,委托代理提供协议转换与过滤操作等)
SNMP 的网络管理结构:SNMP自身、管理信息结构 SMI、管理信息库 MIB
SNMP 定义了管理站和代理之间所交换的分组格式;所交换的分组包含各代理中的对象(变量)名及其状态(值);SNMP 负责读取和改变这些数值
SMI定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则----避免二义性
MIB被管理的实体中创建了命名对象,并规定了其类型
功能:
被管对象应怎样命名
用来存储被管对象的数据类型有哪些种
在网络上传送的管理数据应如何编码
SMI 规定所有被管对象必须在命名树上
SMI 规定所有MIB变量必须用抽象语法记忆1(ASN.1)来定义
SMI 把数据类型分为两大类:简单类型和结构化类型
基本编码规则 BER:指明了每种数据类型中每个数据的值的表示
(报文<--------->唯一的比特序列)
TLV编码:
T-标识符:类别、格式、编号
L-长度:L指出V的长度或后续字节数
V-内容
被管对象必须维持可供管理程序读写的若干控制和状态信息(总称为管理信息库 MIB)
管理程序使用 MIB 中这些信息的值对网络进行管理
通过探询操作实现功能
“读”操作,用 get 报文来检测各被管对象的状况
“写”操作,用 set 报文来改变各被管对象的状况
SNMP 管理进程定时向被管理设备周期性地发送探询信息
(简单且能限制通信量,但不够灵活,管理数目不能太多)
陷阱trap、过滤
(仅在严重事件发生时才发送陷阱,陷阱信息很简单且所需字节数很少)
SNMP是一种有效的网络管理协议:
周期性探询以维持对网络资源的实时监视
采用陷阱机制报告特殊事件
使用无连接的 UDP---->报文开销小但不保证可靠交付
协议数据单元类型、报文格式、ASN.1 编码
操作系统使用系统调用的机制在应用程序和操作系统之间传递控制权
系统调用接口(将控制权传递给操作系统)====应用编程接口 API
套接字、套接字描述符(调用 socket 创建套接字)
所有的音频/视频文件都是在普通的互联网用户之间传输
所有的音乐文件地址集中存放在一个 Napster 目录服务器中
Napster 的文件传输是分散的,但文件的定位则是集中的。
Gnutella
采用全分布方法定位内容
不使用集中式的目录服务器
有限范围的洪泛查询
电骡eMule
分散定位和分散传输技术
多源文件传输协议 MFTP 进行传送(同时从很多地方下载一个文件中的不同文件块)
BT 协议
C/S 方式下分发的最短时间
Tcs=max( NF/us,F/dmin )
P2P 方式下分发的最短时间
Tp2p >= max( F/us , F/dmin, NF/uT )
分布式散列表 DHT(哈希表)
利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射为资源名标识符 KID 和结点标识符 NID
Chord 把结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络
通过指针表加速 Chord 表查找