本章重点:
- 域名系统 DNS——从域名解析出 IP地址
- 万维网和 HTTP协议,以及万维网的两种不同的信息搜索引擎
- 电子邮件的传送过程,SMTP协议和 POP3协议、IMAP协议使用的场合
- 动态主机配置协议 DHCP的特点
- 网络管理的三个组成部分(SNMP本身、管理信息结构 SMI和管理信息库 MIB)的作用
- 系统调用和应用编程接口的概念
- P2P文件系统
目录
一、电子邮件
1.1电子邮件概述
一个电子邮件系统应具有三个主要组成构件:用户代理,邮件服务器以及邮件发送协议(SMTP)、邮件读取协议(POP3、IMAP)
SMTP和 POP3或 IMAP都使用 TCP连接发送邮件,使用 TCP的目的是为了可靠地传送邮件
用户代理 UA 是用户与电子邮件系统的接口,是电子邮件客户端软件。其功能有:撰写、显示、处理和通信
邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。按照客户-服务器方式工作
电子邮件由信封和内容两部分组成
TCP/IP 体系的电子邮件系统规定电子邮件地址的格式:收件人邮箱名@邮箱所在主机的域名
发件人的用户代理向发送方邮件服务器发送邮件,以及发送方邮件服务器向接收方邮件服务器发送邮件都使用 SMTP 协议。POP3 或 IMAP 是用户代理从接收方邮件服务器上读取邮件使用的协议
1.2邮件传送协议 SMTP
SMTP 规定的是在两个相互通信的 SMTP 进程之间应如何交换信息
SMTP 通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器
- 邮件传送
- 连接释放:邮件发送完毕后,SMTP 客户应发送 QUIT 命令,SMTP 服务器返回“221”表示释放 TCP 连接
1.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
3.1网络管理的基本概念
一般模型
主要构件
- 管理站也常称为网络运行中心 NOC,是网络管理系统的核心
- 管理程序在运行时就成为管理进程
- 管理站(硬件)或管理程序(软件)都可称为管理者
- Manager 不是指人而是指机器或软件
- 网络管理员指的是人。大型网络往往实行多级管理,因而有多个管理者,而一个管理者一般只管理本地网络的设备
被管对象:网络的每一个被管设备中可能有多个被管对象。被管设备有时可称为网络元素或网元
代理:在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫做网络管理代理程序,简称代理。管理程序和代理程序按客户服务器方式工作,代理程序在管理程序的命令和控制下在被管设备上采取本地的行动
网络管理协议:网络管理协议本身不管理网络,它是管理程序和代理程序之间进行通信的规则
SNMP 的网络管理由三个部分组成:SNMP 本身,管理信息结构 SMI,管理信息库 MIB
SNMP 定义了管理站和代理之间所交换的分组格式。所交换的分组包含各代理中的对象(变量)名及其状态(值)
SNMP 负责读取和改变这些数值
SNMP 使用无连接的 UDP
3.2管理信息机构 SMI
功能
- 被管对象应怎样命名
- 用来存储被管对象的数据类型有哪些
- 在网络上传送的管理数据应如何编码
SMI 把数据类型分为两大类
- 简单类型
- 复杂类型
- sequence:一些简单数据类型的组合(不一定要相同的类型)
- sequence of:相同类型的简单数据类型的组合或相同类型的 sequence 数据类型的组合
基本编码规则 BER指明了每种数据类型中每个数据的值的表示
3.3管理信息库 MIB
“管理信息”指在互联网的网管框架中被管对象的集合。这些被管对象构成了一个虚拟的信息存储器,称为管理信息库
管理程序使用 MIB 中这些信息的值对网络进行管理
只有在 MIB 中的对象才是 SNMP 所能管理的
3.4 SNMP 的协议数据单元和报文
SNMP 的操作只有两种基本的管理功能,且通过探询操作来实现
- “读”操作,用 get 报文来检测各被管对象的状况
- “写”操作,用 set 报文来改变各被管对象的状况
探询:SNMP 管理进程定时向被管理设备周期性地发送探询信息
特点
- 可使系统相对简单
- 能限制通过网络所产生的管理信息的通信量
- 探询管理协议不够灵活
- 所能管理的设备数目不能太多
- 探询系统的开销也较大
陷阱:SNMP 不是完全的探询协议,它允许不经过询问就能发送某些信息,这种信息称为陷阱,表示它能够捕捉“事件”。但陷阱信息的参数是受限制的
过滤:当被管对象的代理检测到有事件发生时,就检查其门限值。代理只向管理进程报告达到某些门限值的事件(即过滤)。好处:
- 仅在严重事件发生时才发送陷阱
- 陷阱信息很简单且所需字节数很少
使用探寻(至少是周期性的)以维持对网络资源的实时监视,同时也采用陷阱机制报告特殊事件,使得 SNMP 成为有效的网络管理协议
四、系统调用和应用编程接口
大多数操作系统使用系统调用的机制在应用程序和操作系统之间传递控制权
应用编程接口 API
- 当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口
- 此接口再将控制权传递给计算机的操作系统。操作系统将此调用转给某个内部过程,并执行所请求的操作
- 内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程
- 系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口 API
应用进程通过套接字接入到网络
套接字作用
当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程
操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。应用进程所进行的网络操作都必须使用这个号码
通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源
五、P2P文件系统
5.1使用 P2P 的比特洪流 BT
BitTorrent 中所有对等方集合称为一个洪流,下载文件的数据单元为长度固定的文件块。基础设施结点叫做追踪器
BT协议
- 当一个新的对等方 A 加入洪流时,追踪器就随机地从参与的对等方集合中选择若干个(例如30 个),并把这些对等方的 IP 地址告诉 A。于是 A 就和这些对等方建立了 TCP 连接。所有与 A 建立了 TCP 连接的对等方为“相邻对等方”
- 哪些文件快是 A 首先需要向其相邻对等方请求的?A 使用最稀有的优先的技术,首先向其相邻对等方请求对应的文件块
- 在很多向 A 请求文件块的相邻对等方中,A 应当向那些相邻对等方发送所请求的文件块?凡当前以最高数据率向 A 传送文件块的某相邻对等方,A 就优先把所请求的文件块传送给该相邻对等方
5.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/
)
5.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