目录
- 一、域名系统 DNS
- 1.1域名系统概述
- 1.2互联网的域名结构
- 1.3域名服务器
- 二、文件传送协议
- 2.1文件传送协议 FTP
- 2.2简单文件传送协议 TFTP
- 三、万维网
- 3.1万维网概述
- 3.2统一资源定位符 URL
- 3.3超文本传送协议 HTTP
- 3.3.1 HTTP的操作过程
- 3.3.2代理服务器
- 3.3.3 HTTP的报文结构
- 3.4万维网文档
- 3.4.1动态万维网文档
- 3.4.2活动万维网文档
- 3.5信息检索系统
- 3.5.1全文检索搜索
- 3.5.2分类目录搜索
- 3.5.3垂直搜索引擎
- 四、电子邮件
- 4.1电子邮件概述
- 4.2邮件传送协议 SMTP
- 4.3邮件读取协议POP3 和 IMAP
- 五、动态主机配置协议 DHCP
- 六、网络管理协议 SNMP
- 6.1网络管理的基本概念
- 6.2管理信息机构 SMI
- 6.3管理信息库 MIB
- 6.4 SNMP 的协议数据单元和报文
- 七、系统调用和应用编程接口
- 八、P2P文件系统
- 8.1使用 P2P 的比特洪流 BT
- 8.2 P2P文件分发的分析
- 8.3在 P2P 对等方中搜索对象
本章重点
1、域名系统 DNS——从域名解析出 IP地址
2、万维网和 HTTP协议,以及万维网的两种不同的信息搜索引擎
3、电子邮件的传送过程,SMTP协议和 POP3协议、IMAP协议使用的场合
4、动态主机配置协议 DHCP的特点
5、网络管理的三个组成部分(SNMP本身、管理信息结构 SMI和管理信息库 MIB)的作用
6、系统调用和应用编程接口的概念
7、P2P文件系统
每个应用层协议是为了解决某一类应用问题,而问题的解决往往通过位于不同主机中的多个应用进程之间的通信和协同工作来完成
应用层的许多协议基于客户服务器方式。客户和服务器都是指通信中所涉及的两个应用进程,其中客户是服务请求方,服务器是服务提供方
一、域名系统 DNS
1.1域名系统概述
用户与互联网上某台主机通信时必须要知道对方的 IP地址,但是二进制主机地址很难记,应用层为了便于用户记忆,连在互联网上的主机除了有 IP地址,还有主机名
域名系统 DNS能够把互联网上的主机名转换为 IP地址。由于域名的长度不固定,机器在处理 IP数据报时使用 IP 地址而不是域名
域名到 IP地址的解析由分布在互联网上的许多域名服务器程序(可简称为域名服务器)共同完成
1.2互联网的域名结构
互联网采用层次树状结构的命名方法,任何一个连接在互联网上的主机名或路由器都有一个唯一的层次结构的名字,即域名
域可以划分为子域,子域还可以继续划分,这样就形成了顶级域、二级域、三级域等
从语法上讲,每个域名由标号序列组成,各标号之间用点隔开。例如:
注意
- 域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母
- 标号中除连字符(-)外不能使用其他的标点符号
- 级别最低的域名写在最左边,级别最高的域名写在最右边
- 由多个标号组成的完整域名总共不超过255个字符
- 域名只是一个逻辑概念,并不代表计算机所在的物理地点
- 点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个
1.3域名服务器
一个服务器管辖的(或有权限的)范围叫区。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP地址的映射
区 是 DNS服务器实际管辖的范围。区可能等于或小于域,但一定不能大于域
1、根域名服务器
最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP地址
最重要的域名服务器,不管哪个本地域名服务器,若要对互联网是任何一个域名解析(即转换成 IP地址),只要自己无法解析,首先求助于根域名服务器
2、顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)
3、权限域名服务器
负责一个区的域名服务器
当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器
4、本地域名服务器
离用户较近,一般不超过计个路由器的距离
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器
当所要查询的主机也属于同一个本地 ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的 IP地址,而不需要再去询问其他域名服务器
5、主/辅助域名服务器
为了提高域名服务器的可靠性,DNS域名服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其他的是辅助域名服务器
主域名服务器定时把数据复刻到辅助域名服务器中,而更改数据只能在主域名服务器中进行
6、域名的解析过程
- 递归查询
主机向本地域名服务器的查询一般采用递归查询
如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文
- 迭代查询
本地域名服务器向根域名服务器的查询一般采用迭代查询
当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询
7、高速缓存
域名服务器中广泛地使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录
可大大减轻根域名服务器的负荷,使互联网上的 DNS 查询请求和回答报文的数量大为减少
为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)
当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性
二、文件传送协议
2.1文件传送协议 FTP
提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件
特点
- 只提供文件传送的一些基本的服务,使用 TCP 可靠的运输服务
- 主要功能是减少或消除在不同操作系统下处理文件的不兼容性
- 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求
主进程的工作步骤
- 打开熟知端口(端口号为 21),使客户进程能够连接上
- 等待客户进程发出连接请求
- 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程
- 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行
两个连接
- 控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件
- 实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程
- 数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行
2.2简单文件传送协议 TFTP
使用客户服务器方式和使用 UDP 数据报,需要有自己的差错改正措施
只支持文件传输而不支持交互
特点
- 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节
- 数据 PDU 也称为文件块,每个块按序编号,从 1 开始
- 支持 ASCII 码或二进制传送
- 可对文件进行读或写
- 使用很简单的首部
注意:TFTP 的工作很像停止等待协议
- 发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号
- 发完数据后在规定时间内收不到确认就要重发数据 PDU
- 发送确认 PDU 的一方若在规定时间内收不到下一个文件块,也要重发确认 PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败
- 开始工作时,TFTP 客户进程发送一个读请求 PDU 或写请求 PDU 给 TFTP 服务器进程,其熟知端口号码为 69
- TFTP 服务器进程要选择一个新的端口和 TFTP 客户进程进行通信
- 若文件长度恰好为 512 字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据 PDU
- 若文件长度不是 512 字节的整数倍,则最后传送数据 PDU 的数据字段一定不满 512 字节,这正好可作为文件结束的标志
三、万维网
3.1万维网概述
万维网是一个大规模的、联机式的信息储藏所。用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息
万维网是分布式超媒体系统,它是超文本系统的扩充
一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在互联网上的超文本系统中。超文本是万维网的基础
超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像
万维网以客户-服务器方式工作
3.2统一资源定位符 URL
URL 相当于一个文件名在网络范围的扩展。因此 URL 是与互联网相连的机器上的任何可访问对象的一个指针
URL 的一般形式<协议>://<主机>:<端口>/<路径>
协议
- ftp —— 文件传送协议 FTP
- http —— 超文本传送协议 HTTP
- News —— USENET 新闻
主机
- 存放资源的主机在互联网中的域名
端口/路径
- 有时可省略
3.3超文本传送协议 HTTP
3.3.1 HTTP的操作过程
面向事务的应用层协议
定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
HTTP报文通常使用 TCP连接传送
HTTP协议是无状态的,服务器并不记得曾经访问过的用户,也不记得为该客户服务过多少次,使得服务器容易支持大量并发的 HTTP请求
从浏览器请求一个万维网文档所需的时间,从用户在点击鼠标链接某个万维网文档开始
持续连接
万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。有两种工作方式
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求
- 流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文
3.3.2代理服务器
又称为万维网高速缓存,它代表浏览器发出 HTTP 请求
万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源
使用高速缓存可减少访问互联网服务器的时延
3.3.3 HTTP的报文结构
请求报文——从客户向服务器发送请求报文
响应报文——从服务器到客户的回答
3.4万维网文档
3.4.1动态万维网文档
静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变
动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建
动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同
3.4.2活动万维网文档
活动文档技术把所有的工作都转移给浏览器端
每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行
活动文档程序可与用户直接交互,并可连续地改变屏幕的显示
由于活动文档技术不需要服务器的连续更新传送,对网络带宽的要求也不会太高
3.5信息检索系统
3.5.1全文检索搜索
通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询
用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在互联网上检索到的信息)
如:谷歌,百度
3.5.2分类目录搜索
并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询
如:搜狐,网易
3.5.3垂直搜索引擎
针对某一特定领域、特定人群或某一特定需求提供搜索服务
提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等
四、电子邮件
4.1电子邮件概述
一个电子邮件系统应具有三个主要组成构件:用户代理,邮件服务器以及邮件发送协议(SMTP)、邮件读取协议(POP3、IMAP)
SMTP和 POP3或 IMAP都使用 TCP连接发送邮件,使用 TCP的目的是为了可靠地传送邮件
用户代理 UA 是用户与电子邮件系统的接口,是电子邮件客户端软件。其功能有:撰写、显示、处理和通信
邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。按照客户-服务器方式工作
电子邮件由信封和内容两部分组成
TCP/IP 体系的电子邮件系统规定电子邮件地址的格式:收件人邮箱名@邮箱所在主机的域名
发件人的用户代理向发送方邮件服务器发送邮件,以及发送方邮件服务器向接收方邮件服务器发送邮件都使用 SMTP 协议。POP3 或 IMAP 是用户代理从接收方邮件服务器上读取邮件使用的协议
4.2邮件传送协议 SMTP
SMTP 规定的是在两个相互通信的 SMTP 进程之间应如何交换信息
SMTP 通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 客户应发送 QUIT 命令,SMTP 服务器返回“221”表示释放 TCP 连接
4.3邮件读取协议POP3 和 IMAP
1、POP3协议
在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序
只要用户从 POP3 服务器读取了邮件,POP3 服务器jiu
2、IMAP协议
IMAP 是一个联机协议
若用户需要打开某个邮件,则该邮件才传到用户的计算机上
在用户未发出删除邮件的命令之前 IMAP 服务器邮箱中的邮件一直保存着
特点
- 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件
- 允许收件人只读取邮件中的某一个部分
- 如果用户没有将邮件复制到自己的 PC 上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接
五、动态主机配置协议 DHCP
为了将软件协议做成通用的和便于移植,协议软件的编写者把协议软件参数化。这就使得在很多台计算机上使用同一个经过编译的二进制代码成为可能。一台计算机和另一台计算机的区别,都可通过一些不同的参数来体现。在软件协议运行之前,必须给每一个参数赋值
在协议软件中给这些参数赋值的动作叫做协议配置
需要配置的项目
- IP 地址
- 子网掩码
- 默认路由器的 IP 地址
- 域名服务器的 IP 地址
DHCP 给运行服务器软件而位置固定的计算机指派一个永久地址,当该计算机重新启动时其地址不变
互联网广泛使用的动态主机配置协议 DHCP提供了即插即用连网
使用客户-服务器方式
- 需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文,这时该主机就成为 DHCP 客户
- 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文
- DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池中取一个地址分配给该计算机。DHCP 服务器的回答报文叫做提供报文
- 凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文,因此 DHCP 客户可能收到多个 DHCP 提供报文,DHCP 客户从中选择一个发送 DHCP 请求报文
DHCP 中继代理
- 不是每个网络上都有 DHCP 服务器,但每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息
- 当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机
租用期
DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期
六、网络管理协议 SNMP
6.1网络管理的基本概念
- 管理站也常称为网络运行中心 NOC,是网络管理系统的核心
- 管理程序在运行时就成为管理进程
- 管理站(硬件)或管理程序(软件)都可称为管理者
- Manager 不是指人而是指机器或软件
- 网络管理员指的是人。大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备
被管对象:网络的每一个被管设备中可能有多个被管对象。被管设备有时可称为网络元素或网元
代理:在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫做网络管理代理程序,简称代理。管理程序和代理程序按客户服务器方式工作,代理程序在管理程序的命令和控制下在被管设备上采取本地的行动
网络管理协议:网络管理协议本身不管理网络,它是管理程序和代理程序之间进行通信的规则
SNMP 的网络管理由三个部分组成:SNMP 本身,管理信息结构 SMI,管理信息库 MIB
SNMP 定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象(变量)名及其状态(值)
SNMP 负责读取和改变这些数值
SNMP 使用无连接的 UDP
6.2管理信息机构 SMI
功能
- 被管对象应怎样命名
- 用来存储被管对象的数据类型有哪些
- 在网络上传送的管理数据应如何编码
- sequence:一些简单数据类型的组合(不一定要相同的类型)
- sequence of:相同类型的简单数据类型的组合或相同类型的 sequence 数据类型的组合
基本编码规则 BER指明了每种数据类型中每个数据的值的表示
6.3管理信息库 MIB
“管理信息”指在互联网的网管框架中被管对象的集合。这些被管对象构成了一个虚拟的信息存储器,称为管理信息库
管理程序使用 MIB 中这些信息的值对网络进行管理
只有在 MIB 中的对象才是 SNMP 所能管理的
6.4 SNMP 的协议数据单元和报文
SNMP 的操作只有两种基本的管理功能,且通过探询操作来实现
- “读”操作,用 get 报文来检测各被管对象的状况
- “写”操作,用 set 报文来改变各被管对象的状况
探询:SNMP 管理进程定时向被管理设备周期性地发送探询信息
特点
- 可使系统相对简单
- 能限制通过网络所产生的管理信息的通信量
- 探询管理协议不够灵活
- 所能管理的设备数目不能太多
- 探询系统的开销也较大
陷阱:SNMP 不是完全的探询协议,它允许不经过询问就能发送某些信息,这种信息称为陷阱,表示它能够捕捉“事件”。但陷阱信息的参数是受限制的
过滤:当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(即过滤)。好处:
- 仅在严重事件发生时才发送陷阱
- 陷阱信息很简单且所需字节数很少
使用探寻(至少是周期性的)以维持对网络资源的实时监视,同时也采用陷阱机制报告特殊事件,使得 SNMP 成为有效的网络管理协议
七、系统调用和应用编程接口
大多数操作系统使用系统调用的机制在应用程序和操作系统之间传递控制权
应用编程接口 API
- 当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口
- 此接口再将控制权传递给计算机的操作系统。操作系统将此调用转给某个内部过程,并执行所请求的操作
- 内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程
- 系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口 API
应用进程通过套接字接入到网络
套接字作用
当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程
操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。应用进程所进行的网络操作都必须使用这个号码
通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源
八、P2P文件系统
8.1使用 P2P 的比特洪流 BT
BitTorrent 中所有对等方集合称为一个洪流,下载文件的数据单元为长度固定的文件块。基础设施结点叫做追踪器
BT协议
- 当一个新的对等方 A 加入洪流时,追踪器就随机地从参与的对等方集合中选择若干个(例如30 个),并把这些对等方的 IP 地址告诉 A。于是 A 就和这些对等方建立了 TCP 连接。所有与 A 建立了 TCP 连接的对等方为“相邻对等方”
- 哪些文件快是 A 首先需要向其相邻对等方请求的?A 使用最稀有的优先的技术,首先向其相邻对等方请求对应的文件块
- 在很多向 A 请求文件块的相邻对等方中,A 应当向那些相邻对等方发送所请求的文件块?凡当前以最高数据率向 A 传送文件块的某相邻对等方,A 就优先把所请求的文件块传送给该相邻对等方
8.2 P2P文件分发的分析
有 N 台主机从服务器下载一个大文件,其长度为 F bit。假定主机与互联网连接的链路的上传速率和下载速率分别为 ui 和 di ,单位都是 bit/s
C/S方式
- 从服务器端考虑,所有主机分发完毕的最短时间 Tcs 不可能小于 NF/
- 下载速率最慢的主机的下载速率为 dmin,则 Tc/s 不可能小于 F/dmin
所有主机都下载完文件 F 的最少时间是:Tc/s=max( NF/ ,F/dmin )
P2P方式
- 初始服务器文件分发的最少时间不可能小于 F/
- 下载文件分发的最少时间不可能小于 F/dmin
- 上载文件分发的最少时间不可能小于 NF/ ,其中是 是上传速率之和
所有主机都下载完文件 F 的最少时间是:Tp2p >= max( F/ , F/dmin, NF/ )
8.3在 P2P 对等方中搜索对象
现在广泛使用的索引和查找技术叫做分布式散列表,它是由大量对等方共同维护的散列表
分布式散列表 DHT 利用散列函数,把资源名 K 及其存放的结点 IP 地址 N 都分别映射为资源名标识符 KID 和结点标识符 NID
Chord 把结点按标识符数值从小到大沿顺时针排列成一个环形覆盖网络,并按照下列规则进行映射:
- 结点标识符 NID 按照其标识符值映射到 Chord 环上对应的点
- 资源标识符 KID 按照其标识符值映射到与其值最接近的下一个 NID。“最接近的下一个 NID”指:从 KID 值开始,按顺时针方向沿 Chord 环遇到的下一个 NID
每个资源由 Chord 环上与其标识符值最接近的下一个结点提供服务
如图,K31 和 K2 都放在 N4,表示要查找存放资源 K31 或 K2 的结点的 IP 地址,应当到结点 N4 查找
为了加速查找,在 Chord 环上可以增加一些指针表,它又称为路由表或查找器表
第 1 列第 i 行计算(N4 + 2^( i - 1)),得出后继结点
例如,第4行 i=4,算出 N4 + 2^( i - 1) = N4 + 8 = 12,Chord环上的结点12的后继点是 N20
注意,N20的指针表中的第5行,N20 + 16 = 36,按照模2^5运算,36 mod 2^5 = 4,恰好结点4的后继结点是 N4