导图社区 计算机网络第六章应用层
计算机网络第六章应用层,可使用cookie来为访问互联网的主机生成一个唯一识别码,在后续的主机操作时可以识别该主机,并为其维护一个个人数据表(如购物车列表),如果在该网站上登记过A的隐私,则cookie会持续维护A的隐私数据表,并追踪其访问页面和时间。
编辑于2022-01-23 13:57:36计算机网络第六章 应用层
域名系统DNS
域名系统概述
域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址
指明这种系统是用在互联网中的
计算机用户间接使用域名系统,但DNS为互联网的各种网络应用提供了核心服务
采用的是分布式DNS(联机分布式数据库系统),层次树状结构命名方法,即时单个计算机出现故障,不影响整个DNS系统运行
DNS大多数名字都在本地进行解析,仅少量解析需要在互联网上通信,因此效率很高
域名到IP地址的解析是由分布在互联网上的许多域名服务器程序共同完成,域名服务器程序在专设的节点上运行,把运行域名服务器程序的机器称为域名服务器
域名到IP地址解析过程
当一个应用进程需要把主机名解析为IP地址时,首先调用解析程序,成为一个DNS客户
将待解析的域名放在DNS请求报文中,以UDP用户数据报方式发送给本地域名服务器(使用UDP是为减小开销)
本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回
应用进程获得目的主机的IP地址后即可通信
若本地域名服务器不能回答该请求,则会成为DNS中的另一个客户,并向其他域名服务器发出查询请求,直至找到能够回答该请求的域名服务器或超时为止
互联网的域名结构
早期互联网使用非等级的名字空间,不够用,于是使用层次树状结构的命名方法
域名
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字
域
名字空间中一个可被管理的划分
域可以分为子域、子域还可划分,这样就形成了顶级域、二级域、三级域等等
格式
每个域名都由标号序列组成,各标号之间用点隔开
例:mail.cctv.com
mail为三级域名,cctv为二级域名,com为顶级域名
DNS规定
域名中的标号都由英文字母和数字组成,每个标号不超过63个字符(最好不超过12个字符),也不区分大小写字母
标号中除了“-”外不能使用其他的标点符号
级别最低的域名写在最左边,级别最高的域名写在最右边
由多个标号组成的完整域名总共不超过255个
DNS不规定一个域名要包含多少个下级域名,也不规定每一级的域名代表什么意思
各级域名由其上一级的域名管理机构管理,最高的顶级域名则由ICANN进行管理,使用这种方法可使每一个域名在整个互联网范围内是唯一的,并且容易设置查找域名的机制
注意:域名只是逻辑概念,并不代表计算机所在的物理地点
顶级域名分类
国家顶级域名nTLD
如cn代表中国,us代表美国,uk代表英国等
通用顶级域名gTLD
com(公司企业),net(网络服务机构),org(非盈利性组织),int(国际组织),edu(美国专用教育机构),gov(美国政府部门),mil(美国的军事部门)
后又增加了13个
基础结构域名
仅有一个,arpa,用于反向域名解析,又称反向域名
可申请新的顶级域名,目前已有中文顶级域名出现,但并未广泛使用
我国的域名划分
将二级域名划分为
类别域名(7个)
ac(科研机构)
com(企业)
edu(中国教育机构)
gov(中国的政府机构)
mil(中国的国防机构)
net(提供互联网络的服务机构)
org(非盈利组织)
行政区域名(34个)
注意:互联网的名字空间是按照机构的组织来划分,与物理的网络无关,与IP地址中的“子网”也没有关系
域名服务器
一个服务器所负责管辖的范围叫区,每个区设置相应的权限域名服务器,用来保存该区的所有主机的域名到IP地址的映射
区可能小于域,但一定不能大于域,区是域的子集
四种类型
根域名服务器
是最高层次的域名服务器,也是最重要的域名服务器
全世界的根域名服务器只用了13个不同的IP地址,但每个根域名服务器并非只有13台,一般是由13套系统构成这13组根域名服务器,在每个地点的根域名服务器由多台机器组成
采用任播技术
DNS客户向某个根域名服务器的IP发送查询报文时,互联网上的路由找到离这个客户最近的根域名服务器
加快DNS查询过程,合理利用互联网资源
根域名服务器不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应该找哪个顶级域名服务器查询
顶级域名服务器(TLD服务器)
负责管理在该顶级域名服务器注册的所有二级域名
收到DNS查询后,给出相应的应答
权限域名服务器
负责一个区的域名服务器
若不能给出最后的查询回答,会告诉查询请求的DNS客户,下一步应该找哪个权限域名服务器
本地域名服务器
当一台DNS客户发送请求时,这个查询请求报文发送给本地域名服务器
距离用户较近,一般不超过几个路由的距离
为提高域名服务器的可靠性,DNS域名服务器把数据复制到几个域名服务器来保存,其中一个为主域名服务器,其他是辅助域名服务器,当主域名服务器出故障时,辅助域名服务器保证DNS查询工作不会中断
域名解析过程
注意
主机向本地域名服务器查询一般都采用递归查询
递归查询指若本地域名服务器不知道被查询域名IP,则本地域名服务器将以DNS客户身份向其他根域名服务器继续发出查询请求报文,而不是让主机自己查询
递归查询返回结果或是要查询到Ip地址,或者报错,表示无法查询到需要的IP地址
本地域名服务器向根域名服务器的查询一般为迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出IP,要么告诉本地域名服务器下一步操作应该是什么,而非替代本地域名服务器进行后续查询
文件传送协议
FTP协议概述
文件传送协议FTP曾是互联网使用的最广泛的文件传输协议
FTP提供
交互式的访问
允许客户指明文件类型和格式
允许文件具有存取权限
屏蔽各计算机系统的细节,适合在异构网络中任意计算机之间传送文件
共享文件协议
复制整个文件
若要存取一个文件,必须要先获得一个本地文件的副本
若要修改只能对副本进行修改,然后将修改后文件副本传回源节点
联机访问
允许多个程序同时对一个文件进行读取
用户不需要调用进程,而是由操作系统提供对远地共享文件进行访问的服务
透明存储
优点
处理本地数据的应用处理远地文件时不需要做明显的改动
属于文件共享协议的网络文件系统
FTP的基本工作原理
一项基本应用:将文件从一台计算机复制到另一台可能相距很远的计算机
FTP主要功能
减少或消除在不同操作系统下处理文件的不兼容性
FTP实现
使用客户服务器方式
使用TCP可靠的运输服务
一个FTP服务器进程可以为多个客户进程提供服务
两种进程
一个主进程,负责接收新的请求
若干个从属进程,负责处理单个请求
工作步骤
打开熟知端口(21),使得客户进程能够连接上
等待客户进程发送连接请求
启动从属进程处理客户进程发来的请求,处理完后即终止
回到等待状态,继续接受其他客户进程发来的请求
用户和FTP服务器连接时,有两条TCP连接
TCP控制进程
TCP数据传送进程
网络文件系统NFS
FTP问题
若要在远端大文件末尾添加信息,则需要消耗很多时间和网络资源
NFS允许应用进程打开一个远地文件,并能在文件的某一特定位置开始读写数据
在网络上传送的只是少量的修改数据
简单文件传送协议TFTP
总概
一个很小且易于实现的文件传送协议
使用UDP基础上的客户服务器方式
有自己的差错改正措施
TFTP只支持文件传输而不支持交互
优点
TFTP可用于UDP环境
TFTP代码所占的内存较小,对于一些特殊用途的设备很重要
主要特点
每次传输数据包有512字节数据,但最后一次可不足512字节
数据报文按序标号,从1开始
支持ASCII码或二进制码传送
可对文件进行读或写
使用很简单的首部
若文件恰好为512整数倍,则在文件末尾最后发送一个仅有首部但没有数据的数据报文,若不为512整数倍,则恰好可以当作文件结束标志
远程终端协议TELNET
又称终端仿真协议
网络虚拟终端NVT
TELNET定义了数据和命令行应怎样通过互联网
格式
所有通信使用8位一个字节
NVT使用7位ASCII码传送数据,而高位1时用作控制命令
NVT只使用了ASCII码的控制字符中的几个
TELNET的选项协商
使得客户和服务器可商定使用更多终端功能
协商的双方是平等的
万维网(WWW)
万维网概述
万维网WWW是一个大规模的、联机式的信息储藏所,而非特殊计算机网络
万维网是欧洲物理实验室的Tim Berners-Lee最初于1989年3月提出,1993年2月,第一个图形界面的浏览器开发成功,叫做Mosaic
万维网是一个分布式的超媒体系统,是超文本系统的扩充
超文本是指包含指向其他文档的链接的文本
超媒体文档包含其他表示方式的信息,如图像等
区别
非分布式
各种信息都驻留在单个计算机的磁盘中,可以进行一致性检查
一个非分布式超媒体系统能够保证所有的链接都是有效和一致的
分布式
由于文档的更改无更新,所有可能链接失效
万维网以客户服务器方式工作
浏览器就是在用户主机上万维网客 户程序
客户程序向服务器程序发出请求,服务器程序向客户程序回送客户所要的万维网文档
在一个客户程序主窗口现实的万维网文档称为页面
统一资源定位符URL
超文本传送协议HTTP
超文本标记语言HTML
统一资源定位符URL
URL的格式
URL是用来表示从互联网上得到的资源位置和访问这些资源的方法
URL实际上就是在互联网上的资源的地址,在互联网上的所有资源,都有唯一确定的URL
URL相当于一个文件名在网络范围内的扩展
URL一般格式
协议://主机名(:端口)/路径
:端口 这部分通常省略
协议
指出使用何种协议来获取该万维网文档
最常用的就是http,其次是ftp,在后面加上“://”是规定格式
主机名
是万维网文档所存放的主机的域名,通常以www开头,但不是硬性规定
:端口
就是端口号,经常被省略掉,因为是协议默认端口号
路径
可能是较长的字符串,有时也不需要使用
使用HTTP的URL
一般格式
http://主机名/路径
若将URL的路径忽略,则URL就指明互联网上的某个主页
主页的情况
一个WWW服务器的最高级别页面
一个组织或部门的一个定制的页面或目录,从这样的页面可链接到互联网上的与本组织或部门有关的其他站点
由某个人自己设计的描述他本人情况的WWW页面
超文本传送协议HTTP
HTTP的操作过程
事务
指一系列信息交换,而这一系列信息交换是一个不可分割的整体,即要么所有信息交换完成,要么一次交换都不进行
HTTP是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础
协议HTTP不仅传送完成超文本跳转所必须的信息,也是传送任何可从互联网上得到的任何信息如文本、图像、声音等
协议HTTP本身是无连接的
在通信双方交换HTTP报文之前不需要先建立HTTP链接
协议HTTP是无状态的
同一客户第二次访问同一个服务器上的页面时,服务器响应时间与第一次被访问时间相同
简化服务器设计,使得服务器更容易支持大量并发HTTP请求
HTTP/1.0主要缺点
每个请求文档就要有2倍的RTT开销
非持续性链接会使得万维网服务器的负担很重
HTTP/1.1
使用了持续性连接
就算万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文
两种工作方式
非流水线方式
客户收到前一个响应后才能发出下一个请求
可节省建立TCP所需的一个RTT时间
流水线方式
客户在收到HTTP的响应报文前就能够接着发送新的请求报文
服务器可以连续发回响应报文
客户访问的所有对象只需花费一个RTT时间,提高文档下载速率
HTTP/2
将服务器发回响应变成可以并行地发回,这样大大缩短了服务器的响应时间
允许客户复用TCP连接进行多个请求,节省了TCP连续多次建立和释放连接所花费的时间
将所有报文划分为许多较小的二进制编码的帧,采用新的压缩算法,不发重复的首部字段,提高了效率
向后兼容,仍然可以兼容HTTP/1.1
代理服务器
是一种网络实体,称为万维网高速缓存
原理
当新请求到达时,若代理服务器发现这个请求与暂存的请求相同,就返回暂存的响应,而不需要按URL的地址再去互联网访问该资源
可以在主机、中间系统、服务器端上工作
有时作为服务器处理客户的HTTP请求,有时作为客户帮助主机向互联网上的源点服务器发送HTTP请求
内容分发网络CDN
以代理服务器方式构成,在互联网上起到了很大一部分作用
HTTP报文结构
两类报文
请求报文
从客户向服务器发送请求报文
响应报文
从服务器到客户回答
HTTP面向文本,报文中每个字段都是ASCII码串,因而各字段的长度是不确定的
“CR”代表回车,“LF”代表换行
组成
开始行
用于区分是请求报文还是响应报文
区别
在请求报文的开始行叫做请求行
在响应报文中的开始行叫做状态行
在结尾都有CRLF
首部行
用来说明浏览器、服务器或者报文主体的一些信息
首部可以有几行,也可以不使用
首部由首部字段名和它的值,结尾要有CRLF
整个首部结束后,还有一空行将首部和后面的实体主体分开
实体主体
在请求报文中一般不使用,在响应报文段也可能没有这个字段
请求行构成
方法
指的是对所请求的对象进行的操作,实际上就是一些命令
例
OPTION
请求一些选项的信息
GET
请求读取URL所标志的信息
HEAD
请求读取URL所标志的信息首部
DELETE
删除指明的URL所标志的资源
CONNECT
用于代理服务器
请求资源的URL
HTTP版本
状态行构成
HTTP版本
状态码
三位数字构成,分为5大类,原先33种,后增加了几种
类别
1xx表示通知信息,如请求收到或正在处理
2xx表示成功,如接受或知道了
3xx表示重定向,如要完成请求还必须采取进一步的行动
4xx表示客户的差错,如请求中由错误的语法或不能完成
5xx表示服务器差错,如服务器失效无法完成请求
例:404出错了
解释状态码的简单短语
在服务器上存放用户的信息
可使用cookie来为访问互联网的主机生成一个唯一识别码,在后续的主机操作时可以识别该主机,并为其维护一个个人数据表(如购物车列表),如果在该网站上登记过A的隐私,则cookie会持续维护A的隐私数据表,并追踪其访问页面和时间
但会带来部分问题,如隐私的保护和泄露
万维网的文档
超文本标记语言HTML
一种制作万维网页面的标准语言,消除了不同计算机之间信息交流的障碍
HTML并不是应用层协议,只是万维网使用的一种语言
链接的起始点
起点
文字或图像
终点
可以是其他网站上的页面(远程连接,必须指明URL)
可以是本地的某个文件(在HDML指明路径)
其他语言
XML可扩展标记语言
为传输数据设计
允许用户对自己的标记语言进行定义的源语言
XHTML可扩展超文本标记语言
与HTML4几乎相同,但是更严格的HTML版本,也是一个W3C标准
作为一种XML应用被重新定义的HTML
CCS层叠样式表
是一种样式表语言,用于为HTML文档定义布局
HTML用于结构化内容,CCS用于格式化结构化内容
动态万维网文档
变化频繁的文档不适合做成静态文档
动态文档
指文档内容是在浏览器访问万维网服务器才由应用程序动态创建的
流程
当浏览器请求到达时,万维网服务器要运行另一个应用程序,并把控制移到此应用程序
接着该应用程序对浏览器发来的数据进行处理,并输出HTML文档
万维网服务器把应用程序的输出作为对浏览器的响应,由于对浏览器每次请求的响应都是临时生成的,因此用户通过动态文档所看到的内容是不断变化的
优点
具备报告当前最新信息的能力
与静态文档区别
文档内容的生成方法不同
动态文档创建难度比静态文档高
通用网关接口CGI标准
定义动态文档应当如何创建,输入数据应如何提供给应用程序,以及输出结果应如何使用
对万维网服务器功能进行扩充
应增加另一个应用程序,用来处理浏览器发来的数据,并创建动态文档,新增程序叫做CGI脚本(网关程序),万维网服务器与该程序通信遵循CGI标准,一般在目录 /cgi-bin下
应增加一个机制,用来使万维网服务器将浏览器发来的数据传送给这个应用程序,然后万维网服务器能够解释这个应用程序的输出,并向浏览器返回HTML文档
活动万维网文档
服务器推送
将所有工作都交给服务器,服务器不断运行与动态文档相关联的程序,定期更新信息,并发送更新过的文档
缺点
造成过多服务器资源开销
随着TCP连接数目增加,每个连接能分配的带宽下降,导致网络时延增大
活动文档
将所有工作给浏览器,每当浏览器请求一个活动文档,服务器就返回一段活动文档程序副本,使得该程序副本在本地浏览器运行,这样程序直接与用户交互,并且连续改变屏幕显示
万维网的信息检索系统
全文检索搜索与分类目录搜索
全文检索搜索
分类目录搜索
垂直搜索引擎
针对特定领域提供需求的搜索服务
元搜索引擎
google搜索技术特点
核心技术
网页排名
实现
检查整个网络的链接结构,对网页的链接数目进行加权统计
利用稀疏矩阵运算简化计算量,并使用迭代来进行网页的重要性排序
博客和微博
博客
微博
社交网站SNS
脸书
油管
推特
微信
电子邮件
电子邮件概述
两个重要的草案标准
2008年更新的简单邮件传送协议SMTP
仅能打印7位ASCII码邮件
1996年通用互联网邮件扩充MIME
互联网报文格式
构成
用户代理(UA)
用户和电子邮件系统的接口,又称电子邮件客户端软件
功能
撰写
显示
处理
通信
邮件服务器
两种协议
用于用户代理向邮箱服务器发送邮件或在邮件服务器之间发送邮件,如SMTP
用于用户代理向邮箱服务器读取邮件,如POP3
邮件服务器必须可以同时充当客户和服务器
邮件发送协议(SMTP)和邮件读取协议(POP3)
POP3是邮局协议的版本3
电子邮件地址
用户名@邮件服务器的域名
简单邮件传送协议SMTP
SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的SMTP进程就是SMTP服务器
流程
连接建立
SMTP不使用中间的邮件服务器
TCP连接总是在发送方和接收方这两个邮件服务器之间建立
邮件传送
从MAIL命令开始,后面有发件人的地址
下面跟着一个或多个RCPT命令,取决于把邮件发给一个人还是多个人,RCPT命令作用就是确定接收方是否已做好接收邮件的准备,避免浪费资源
最后是DATA命令,表示要开始传送邮件内容
连接释放
发送QUIT指令,关闭TCP连接
使用电子邮件的用户看不见以上流程
邮件是明文,不利于保密
2008年扩展的SMTP记为ESMTP,在许多命令增加了新的参数,有利于保密
电子邮件的信息格式
首部
主体
To后跟一个人或多个人地址
Subject是邮件的主题
“Cc:”表示抄送,,表示给某人发一个邮件副本
邮件读取协议POP3和IMAP
POP3
非常简单、功能有限的邮件读取协议
使用客户服务器方式
POP3服务器只有在用户输入鉴别信息后才允许对邮箱进行读取
POP3原先是将看过的邮件删除,在新版本修改了这一问题
网际报文存取协议IMAP
IMAP是一个联机协议
在用户不删除前一直保留邮件
可以使用户在不同的地方使用不同计算机随时阅读自己在邮件服务器中的邮件,或者只读邮件的一部分
基于万维网的电子邮件
好处
不管在什么地方只要能够上网,在打开任意浏览器后可以很方便收发电子邮件
邮件服务器和浏览器之间采用HTTP协议,在各邮件服务器之间仍采用SMTP协议
通用互联网邮件扩充MIME
MIME概述
SMTP缺点
不能传送可执行文件或其他二进制对象
限于传送7位ASCII码
会拒绝超过一定长度的邮件
某些SMTP并没有完全按照SMTP标准
通用互联网邮件扩充MIME,相当于在SMTP上增加了一层接口协议,用来完善SMTP不足
包括内容
5个新的邮件首部字段,可能包含在原来的邮件首部中
定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
定义了传送编码,可以对任何内容格式进行转换
三种常见的内容传送编码
7位ASCII码
每行不能超过1000个字符
quoted-printable
适用于所传输的数据中只有少量非ASCII码
除“=”外所有可打印的ASCII码都不改变
“=”和非ASCII码的转换方法
将每个字节的二进制代码转换成16进制,在没两个16进制前面加一个等于号
“=”的二进制编码为3D,所以转换为“=3D”
base64编码
将二进制代码划分为一个个24位长的单元,然后将24位单元划分为4个6位组,每个六位组有64种不同值,用a~z,A~Z,0~9,“+”表示62,“/”表示63
内容类型
MIME规定Content-Type说明必须含有两个标识符,为内容类型和子类型
multipart
mixed子类型允许单个报文含有多个相互独立的子报文
alternative子类型允许单个报文含有同一数据的多种表示
parallel子类型允许单个报文含有可同时显示的各个子部分
digest子类型允许单个报文含有一组其他报文
动态主机配置协议DHCP
总概
在协议软件中给这些参数赋值的动作叫做协议配置
一个协议软件在使用之前必须是已正确配置的
配置项目
IP地址
子网掩码
默认路由器IP地址
域名服务器的IP地址
动态主机配置协议DHCP
提供即插即用联网的机制
允许一台计算机加入新的网络和获取IP地址而不用手工参与
对于运行客户软件和服务器软件都使用
流程
需要IP地址的主机在启动时向DHCP服务器广播发送发现报文
将发送报文的源IP地址全设置为0,这样本地所有主机都能收到这个报文,但只有DHCP服务器才对此广播报文进行回答
DHCP服务器先在其数据库中查找该计算机的配置信息,若没有,则在服务器的IP池中取一个地址分配给该计算机
DHCP服务器的回答报文叫做提供报文,表示提供了IP地址等配置信息
DHCP中继代理
通常是一台路由器
替代DHCP服务器发现 发现报文时,以单播的形式向DHCP转发此报文
使用的是UDP,客户UDP端口号68,服务器UDP端口号是67
下发IP是有租用期的,从1s到136年不等
简单网络管理协议SNMP
基本概念
网络管理包括对硬件、软件和人力的使用、综合和协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常称为网管
网络管理模型的主要构件
管理站/管理器
整个网络管理系统的核心,通常有良好图形界面的高性能工作站,由网络管理员直接操作控制
管理站所在部门也常常被称为网络运行中心NOC
管理程序
运行时称为管理进程
管理站、管理程序都可被称为管理者
被管设备
可能是主机、路由、服务器、网桥等等
每一个被管设备都可能有多个被管对象
有时可称为网络元素或网元
也会有一些不能被管对象
需要运行网络管理代理程序以便和管理站中的管理程序进行通信,程序简称代理
网络管理协议
简称网管协议
SNMP按客户服务器方式工作
管理程序运行SNMP客户程序
代理程序运行SNMP服务器程序
在被管对象上运行的SNMP服务器程序不停监听来自管理站的SNMP客户程序的请求命令,一旦发现马上执行
一般是一个或少数客户程序和很多服务器程序进行交互
基本原理
若要管理某个对象,就必然会给该对象添加一些软件或硬件,但这种“添加”对原有对象的影响必须尽量小些
SNMPv3
相较于前两个版本(SNMPv2、SNMP v1),最大改进就是安全特性
委托代理
若网络元素不是使用的SNMP协议而是另一种网络管理协议,则可以使用委托代理
组成
SNMP本身
定义了管理站和代理之间所交换的分组格式,包含各代理中的对象名及其状态
SNMP负责读取和改变这些数值
管理信息结构SMI
定义了命名对象和定义对象类型的通用规则,及把对象和对象的值进行编码的规则,确保网络管理数据的语法和语义的无二义性
管理信息库MIB
在被管理的实体中创建了命名对象,并规定其类型
管理信息结构SMI
功能
被管对象命名
必须处在对象命名树上
用点隔开
用来存储被管对象的数据类型
使用最基本的抽象语法记法1(ASN.1)
数据类型
简单类型
结构化类型
sequence
sequence of
在网络上传送的管理数据如何编码
使用ASN.1制定的基本编码规则BER
组成序列
T字段定义数据类型
类别
占2位,共四种
通用类(00),即ASN.1定义的类型
应用类(01),即SMI定义类型
上下文类(10),即上下文所定义的类型
专用类(11),保留为特定厂商定义的类型
格式
占1位,共两种
简单数据类型(0)
结构化数据类型(1)
编号
占5位,用来标记不同的数据类型
范围为0~30,当编号大于30时,T字段要扩展为多字节
L字段定义V字段长度
又称长度字段
L字段为单字节时,最高位为0,后面7位定义V字段长度
当L字段为多字节时,最高位为1,后面7位定义后续字节的字节长度(二进制整数表示),这时所有的后续字节并置起来的二进制整数定义V字段的长度
V字段定义数据的值
又称为值字段
管理信息库MIB
管理信息指的是在互联网的网管框架中被管对象的集合,这些被管对象维持可供管理程序读写的若干控制和状态信息,构成了一个虚拟的信息存储器,所以称为管理信息库MIB
SNMP的协议数据单元和报文
基本管理功能
读操作
用Get报文检测各被管对象的状况
写操作
用Set报文来改变各被管对象的状况
通过探询操作实现,即SNMP管理进程定时向被管理设备周期性发送探询消息
探询的特点
优点
使系统相对简单
能限制通过网络所产生的管理信息的通信量
缺点
不够灵活,所管设别不能太多
开销大,若频繁询问但未收到有效报告则会造成资源的浪费
陷阱
允许不经过询问就能发送消息,表示能捕捉“事件”
但陷阱信息的参数受限制
过滤
当被管对象的代理检测到有事件发生时,检查其门限值
好处
仅在严重事件发生时发送陷阱
陷阱信息很简单且所需字节数很少
使用探询周期性维持对网络资源的实时监视,同时采用陷阱机制报告特殊事件
基本传输类型
使用UDP传输
但运行管理程序的客户端使用熟知端口162来接收来自各代理的trap报文
报文结构
版本
目前是版本3
首部
报文标识
最大报文长度
报文标志
占1字节,每一位定义安全类型或其他信息
安全参数
产生报文摘要
SNMP报文的数据部分
PDU类型
首部
请求ID
由管理进程设置的4字节整数值
代理进程在发送响应报文时也要返回此请求ID
差错状态
在请求报文中该字段为0,当代理进程响应时,就填入0~18一个数字
0
一切正常
1
代理无法把回答装入一个SNMP报文中
2
指明了一个不存在的变量
3
无效值
差错索引
在请求报文中该字段为0
代理进程响应时,若出现差错状态(2,3,只读),则设置一个整数,指明有差错的变量在变量列表中的偏移
变量绑定
指明一个或多个变量的名和对应的值,在请求报文中变量值应忽略
应用进程跨越网络的通信
系统调用和应用编程接口
系统调用
大多操作系统使用系统调用机制在程序和操作系统之间传递控制权
应用编程接口API
应用程序在使用系统调用之前要编写一些程序,需要设置系统调用中的许多参数
从程序设计角度定义了许多标准的系统调用函数
套接字接口API
windows WinSock
UNIX TLI
网络通信流程
首先应用进程需要使用网络进行通信时,必须首先发出socket系统调用,请求操作系统为其创建一个套接字(将网络通信需要的一些系统资源分配给该应用)
操作系统为这些资源的综合用一个叫做套接字描述符的号码(小的整数)来表示,然后把这个套接字描述符返回给应用进程
应用进程所进行的网络操作必须使用这个套接字描述符,所以几乎所有网络系统调用都把这个套接字描述符作为套接字许多参数中的第一个参数
处理调用通过套接字描述符,操作系统可以识别应该使用哪些资源来完成应用进程所请求的服务
通信完毕后,应用进程通过一个关闭套接字的close系统调用通知操作系统回收和该套接字描述符相关的所有资源
存在一个存放套接字描述符的表,每一个套接字描述符有一个指针指向存放套接字的地址
几种常用的系统调用
连接建立阶段
绑定
应用进程要调用bind来指明套接字的本地地址(本地端口号和IP)
在服务器端调用bind时就是把熟知端口号和本地IP填写到已经创立的套接字中
在客户端也可以不用调用bind,由操作系统内核自动分配一个动态端口号,通信结束后收回
收听
服务器还必须调用listen把套接字设置为被动模式,以便随时接收客户的请求
接受
服务器调用accept以便把远地客户进程发来的连接请求提取出来,系统调用accept的一个变量就是要指明是从哪一个套接字发起的连接
服务器要同时处理多个连接,这种服务通常称为并发方式工作的服务器
主服务器进程主要运行accept,当收到套接字连接请求时将连接转给从属服务器创建套接字,完成连接,主服务器还是重新调用accept,接收下一个请求
主动打开
当使用TCP的客户已经调用socket创建套接字后,客户进程调用connect,以便和远地服务器建立连接
在connect中,客户必须指明远地端点
数据传送阶段
send
客户和服务器都在TCP连接上使用send系统调用传送数据,使用recv系统调用接收数据
需要3个变量
数据要发往的套接字的描述符
要发送的数据的地址
数据的长度
通常send调用把数据复制到操作系统内核的缓存,若缓存满了则暂时阻塞,直到有空间存放新的数据
recv
要3变量
要使用的套接字描述符
缓存的地址
缓存空间的长度
连接释放阶段
close
结束使用套接字,使用close释放连接和撤销套接字
P2P应用
总概
P2P应用就是具有P2P体系结构的网络应用,没有固定的服务器,绝大多数交互都是使用对等方式进行的
应用范围广,如文件分发,实时音频或视频会议,数据库系统、网络服务支持等
相当于每个个体用户是服务器,这种分发方式解决了集中式媒体服务可能出现的问题
具有集中目录服务器的P2P工作方式
最早应用:音乐下载软件Napster,1999年
流程
用户向目录服务器查询
目录服务器回答,告知用户资源的IP地址
用户随机选择其中一个IP,使得IP方成为临时服务器,建立连接后向用户传输资源
缺点
可靠性差
用户多时成为其性能瓶颈
具有全分布式结构的P2P文件共享程序
第二代 代表应用:Gnutella
原理
使用洪泛法在大量Gnutella用户间查询
为使得查询通信量过大,设计一种有限范围的洪范查询
第三代 比特洪流BT
洪流
把参与某个文件分发的所有对等方的集合称为一个洪流
文件块
对等方下载文件的数据单元
一个文件块的长度是固定不变的
基本机制
追踪器
每个洪流都有一个基础设施节点
登记/注册
一个对等方加入洪流时,必须向追踪器登记,并周期性通知追踪器它仍在洪流中
流程
当一个新的对等方A加入洪流时,追踪器就随机从参与的对等方合集选择若干,把IP地址告诉A,于是A与这些对等方建立TCP连接
所有与A建立TCP连接的对等方称为“相邻对等方”
从不同对等方获得不同数据块,然后组装成文件要比在一个地方下载整个文件要快很多
先向对等方请求文件块顺序
最稀有优先:在相邻对等方的文件块副本少的优先请求,文件块副本多的延后请求
被请求文件块时发送文件块顺序
当前有以最高数据率向A传送数据块的相邻方(已疏通/无障碍的对等方) 优先响应其请求
P2P文件分发的分析
下载
从互联网传送数据到主机
上传
从主机向互联网传送
使用P2P会大幅降低下载所需时间
计算,掌握
在P2P对等方中搜索对象
利用散列函数定位有所需文件的对等方
数据库文件信息
资源名,也称关键字
资源名标识符KID
存放该对象的节点IP地址
节点标识符NID
分布式散列表DHT
也称为分布式哈希表,是由大量对等方共同维护的散列表
Chord算法
Chord环,比较抽象,要理解
指针表/路由表/查找器表