pastry算法
Ⅰ 求助NS2下如何仿真P2P里面的chord算法,现在十分迷茫
P2P的一个常见问题是如何高效的定位节点,也就是说,一个节点怎样高效的知道在网络中的哪个节点包含它所寻找的数据,如下图:
对此,有三种比较典型的来解决这个问题。
Napster:使用一个中心服务器接收所有的查询,服务器告知去哪下载其所需要的数据。存在的问题是中心服务器单点失效导致整个网络瘫痪。
Gnutella:使用消息洪泛(message
flooding)来定位数据。一个消息被发到系统内每一个节点,直到找到其需要的数据为止。当然,使用生存时间(TTL)来限制网络内转发消息的数量。存在的问题是消息数与节点数成线性关系,导致网络负载较重。
SN型:现在大多数采用所谓超级节点(Super
Node),SN保存网络中节点的索引信息,这一点和中心服务器类型一样,但是网内有多个SN,其索引信息会在这些SN中进行传播,所以整个系统的崩溃几率就会小很多。尽管如此,网络还是有崩溃的可能。
现在的研究结果中,Chord、Pastry、CAN和Tapestry等常用于构建结构化P2P的分布式哈希表系统(Distributed Hash
Table,DHT)。
DHT的主要思想是:首先,每条文件索引被表示成一个(K,
V)对,K称为关键字,可以是文件名(或文件的其他描述信息)的哈希值,V是实际存储文件的节点的IP地址(或节点的其他描述信息)。所有的文件索引条目(即所有的(K,
V)对)组成一张大的文件索引哈希表,只要输入目标文件的K值,就可以从这张表中查出所有存储该文件的节点地址。然后,再将上面的大文件哈希表分割成很多局部小块,按照特定的规则把这些小块的局部哈希表分布到系统中的所有参与节点上,使得每个节点负责维护其中的一块。这样,节点查询文件时,只要把查询报文路由到相应的节点即可(该节点维护的哈希表分块中含有要查找的(K,V)对)。
这里介绍的Chord算法就是解决网络内节点定位问题的一种P2P协议。它通过多个节点跳转找到我们所查找的资源:
我们先看看它是如何进行的,随后再总结其特点和操作特征,以及一些实现。
1.Chord里面的基本要素
节点ID:NID(node
identifier),表示一个物理机器,m位的一个数字(m要足够大以保证不同节点的NID相同的几率小的可以忽略不计),由节点机器的IP地址通过哈希操作得到。
资源ID;KID(key
identifiers),原为键ID,其实际表示一个资源(因为Key与一个资源value哈希绑定),故在本文中统称资源ID(这样比较直观),m位的一个数字(m要足够大以保证不同资源的KID相同的几率小的可以忽略不计),由Key通过哈希操作得到。
常哈希函数:较之一般哈希函数,节点的加入和离开对整个系统影响最小,另外还有一些优势在此不赘述。在Chord中使用SHA-1来进行常哈希计算。
Chord环:Chord
Ring,NID和KID被分配到一个大小为2^m的环上,用于资源分配(给某一个节点)和节点分布,以及资源定位(注:在这个环上的ID为0--2^m-1)。首先我们说资源分配,资源被分配到NID>=KID的节点上,这个节点成为k的后继节点,是环上从k起顺时针方向的第一个节点,记为successor(k)。而节点分布则顺时针将节点N由大到小放在这个环上。例如下边这幅图:
这是一个m=6的环,其中有10个节点,5个资源,K10的后继节点为N14,也就是说K10被分配给了N14。
2.Chord资源定位(Key
Location)
资源定位是Chord协议的核心功能,为了便于理解,我们先介绍一个简单的资源定位方法,然后再介绍这个可伸缩的资源定位方法。
简单方法:
考虑如下场景:节点n寻找KID为id的资源,此时节点n首先问询是否在下一个节点上(find_successor),这要看资源k的KID是否在该节点NID和下一个节点的NID之间,若在则说明资源k被分配给了下一个节点,若不在则在下一个节点上发起同样的查询,问询下下一个点是否有该资源。如此迭代下去,用伪代码定义这个操作:
n.find_successor(id)
if (id є (n; successor])
return
successor;
else
// 将查询沿着环进行下去
return
successor.find_successor(id);
例如下图:
节点N8寻找K54这个资源,N8.find_successor(K54)发现下一个节点N14不合符54є (8;
14],于是N14发起同样的搜索,然后一跳一跳后直到节点N56满足54є (51; 56],于是得知资源K54在N56这个节点上。
在一个有N个节点的环上,这样的查找方法显然在最坏的时候要查找N次才能得到所需资源的位置,查找次数与节点个数成线性关系。显然,这样的效率不给力,所以Chord使用了可伸缩资源定位的方式来提高效率。
可伸缩方法:
在每个节点N上都维护了最多有m项(m为ID的位数)的路由表(称为finger
table),用来定位资源。这个表的第i项是该节点的后继节位置,至少包含到2^(i-1)后的位置。还是延续上边的例子:
节点N8的路由表中,左边那一栏包含了N8+1到N8+32(2^5-1)的位置,右边那一栏每个位置对应的实际存在的节点。比如N8+1-N14,表示在N8后的第一个位置上的资源由N14来负责。这样记录有以下优势:
每个节点只包含全网中一小部分节点的信息。
每个节点对于临近节点负责的位置知道的更多,比如N8节点对于N14负责的位置知道3处,而对N21负责的位置只知道1处。
路由表通常不包含直接找到后继节点的信息,往往需要询问其他节点来完成。
当在某个节点上查找资源时,首先判断其后继节点是不是就持有该资源,若没有则直接从该节点的路由表从最远处开始查找,看哪一项离持有资源的节点最近(发现后跳转),若没有则说明本节点自身就有要寻找的资源。如此迭代下去。
例如:节点N8寻找K54这个资源
首先,在N8上查找后继节点为N14,发现K54并不符合54є (8;
14]的要求,那么直接在N8的路由表上查找符合这个要求的表项(由远及近查找),此时N8的路由表为:
我们发现路由表中最远的一项N8+32--N42满足42є (8;
54],则说明N42这个点离持有K54这个资源的节点最近(因为N42在该路由表中离N8这个节点最远),那么此时跳到N42这个节点上继续查找。N42的后继节点为N48,不符合54є
(42; 48]的要求,说明N48不持有资源54,此时,开始在N42的路由表上查找:
N42节点的路由表为:
我们由远及近开始查找,发现N42+8--N51满足51є (42;
54],则说明N51这个点离持有K54这个资源的节点最近,那么此时跳到N51这个节点上继续查找。N51节点的后继节点为N56,符合54є (51;
56],此时定位完成,N56持有资源节点K54。
用伪代码表示:
// 查询节点n后继节点。
n.find_successor(id)
if (id є (n;
successor])
return successor;
else n0 =
closest_preceding_node(id);
return n0.find successor(id);
// search
the local table for the highest
// predecessor of
id
n.closest_preceding_node(id)
for i = m downto 1
if (finger[i] є
(n; id))
return finger[i];
return n;
经证明,最多经过O(log N)次查找就能找到一个资源。
3.Chord的节点加入
Chord通过在每个节点的后台周期性的进行stabilization询问后继节点的前序节点是不是自己来更新后继节点以及路由表中的项。
有三个操作:
join(n0) :n加入一个Chord环,已知其中有一个节点n0.
Stabilize():
n查询其后继节点的前序节点P来决定P是否应该是n的后续节点,也就是说当p不是n本身时,说明p是新加入的,此时将n的后继节点设置为p。
Notify(n0): n0通知n它的存在,若此时n没有前序节点或,n0比n现有的前序节点更加靠近n,则n将其设置为前序节点。
Fix_fingers(): 修改路由表。
具体的,例如:
这是原先的结构:
现在N26节点要加入系统,首先它指向其后继N32,然后通知N32,N32接到通知后将N26标记为它的前序节点(predecessor)。如下图:
然后N26修改路由表,如下图:
下一次N21运行stabilize()询问其后继节点N32的前序节点是不是还是自己,此时发现N32的前序节点已经是N26:
于是N21就将后继节点修改为N26,并通知N26自己已经将其设置为后继节点,N26接到通知后将N21设置为自己的前序节点。
这个加入操作会带来两方面的影响:
1)正确性方面:当一个节点加入系统,而一个查找发生在stabilization结束前,那么此时系统会有三个状态:
A.所有后继指针和路由表项都正确时:对正确性没有影响。
B.后继指针正确但表项不正确:查找结果正确,但速度稍慢(在目标节点和目标节点的后继处加入非常多个节点时)。如下图:
C.后继指针和路由表项都不正确:此时查找失败,Chord上层的软件会发现数据查找失败,在一段时间后会进行重试。
总结一下:节点加入对数据查找没有影响。
2)效率方面:当stabilization完成时,对查找效率的影响不会超过O(log N)
的时间。当stabilization未完成时,在目标节点和目标节点的后继处加入非常多个节点时才会有性能影响。可以证明,只要路由表调整速度快于网络节点数量加倍的速度,性能就不受影响。
4.Chord节点失败的处理
我们可以看出,Chord依赖后继指针的正确性以保证整个网络的正确性。但如图,若N14, N21,
N32同时失效,那么N8是不会知道N38是它新的后继节点。为了防止这样的情况,每个节点都包含一个大小为r的后继节点列表,一个后续节点失效了就依次尝试列表中的其他后继节点。可以证明,在失效几率为1/2的网络中,寻找后继的时间为O(log
N) 。
5.Chord的特征和应用
特征:去中心化,高可用度,高伸缩性,负载平衡,命名灵活。
应用:全球文件系统、命名服务、数据库请求处理、互联网级别的数据结构、通信服务、事件通知、文件共享。
http://blog.csdn.net/foreverdengwei/article/details/6179438
Ⅱ 求用java写的chord算法完整代码,谢谢了!
P2P的一个常见问题是如何高效的定位节点,也就是说,一个节点怎样高效的知道在网络中的哪个节点包含它所寻找的数据,如下图:
对此,有三种比较典型的来解决这个问题。
Napster:使用一个中心服务器接收所有的查询,服务器告知去哪下载其所需要的数据。存在的问题是中心服务器单点失效导致整个网络瘫痪。
Gnutella:使用消息洪泛(message
flooding)来定位数据。一个消息被发到系统内每一个节点,直到找到其需要的数据为止。当然,使用生存时间(TTL)来限制网络内转发消息的数量。存在的问题是消息数与节点数成线性关系,导致网络负载较重。
SN型:现在大多数采用所谓超级节点(Super
Node),SN保存网络中节点的索引信息,这一点和中心服务器类型一样,但是网内有多个SN,其索引信息会在这些SN中进行传播,所以整个系统的崩溃几率就会小很多。尽管如此,网络还是有崩溃的可能。
现在的研究结果中,Chord、Pastry、CAN和Tapestry等常用于构建结构化P2P的分布式哈希表系统(Distributed Hash
Table,DHT)。
DHT的主要思想是:首先,每条文件索引被表示成一个(K,
V)对,K称为关键字,可以是文件名(或文件的其他描述信息)的哈希值,V是实际存储文件的节点的IP地址(或节点的其他描述信息)。所有的文件索引条目(即所有的(K,
V)对)组成一张大的文件索引哈希表,只要输入目标文件的K值,就可以从这张表中查出所有存储该文件的节点地址。然后,再将上面的大文件哈希表分割成很多局部小块,按照特定的规则把这些小块的局部哈希表分布到系统中的所有参与节点上,使得每个节点负责维护其中的一块。这样,节点查询文件时,只要把查询报文路由到相应的节点即可(该节点维护的哈希表分块中含有要查找的(K,V)对)。
这里介绍的Chord算法就是解决网络内节点定位问题的一种P2P协议。它通过多个节点跳转找到我们所查找的资源:
我们先看看它是如何进行的,随后再总结其特点和操作特征,以及一些实现。
1.Chord里面的基本要素
节点ID:NID(node
identifier),表示一个物理机器,m位的一个数字(m要足够大以保证不同节点的NID相同的几率小的可以忽略不计),由节点机器的IP地址通过哈希操作得到。
资源ID;KID(key
identifiers),原为键ID,其实际表示一个资源(因为Key与一个资源value哈希绑定),故在本文中统称资源ID(这样比较直观),m位的一个数字(m要足够大以保证不同资源的KID相同的几率小的可以忽略不计),由Key通过哈希操作得到。
常哈希函数:较之一般哈希函数,节点的加入和离开对整个系统影响最小,另外还有一些优势在此不赘述。在Chord中使用SHA-1来进行常哈希计算。
Chord环:Chord
Ring,NID和KID被分配到一个大小为2^m的环上,用于资源分配(给某一个节点)和节点分布,以及资源定位(注:在这个环上的ID为0--2^m-1)。首先我们说资源分配,资源被分配到NID>=KID的节点上,这个节点成为k的后继节点,是环上从k起顺时针方向的第一个节点,记为successor(k)。而节点分布则顺时针将节点N由大到小放在这个环上。例如下边这幅图:
这是一个m=6的环,其中有10个节点,5个资源,K10的后继节点为N14,也就是说K10被分配给了N14。
2.Chord资源定位(Key
Location)
Ⅲ 09年 9月三级网络技术笔试重点概括
第一章 计算机基础
1.1 计算机系统的组成
<1>年份事件:
1946 ENIAC 第一台计算机诞生
1969 ARPNET产生 互联网的诞生
1971 微处理器芯片4004产生 微机的诞生
1981 微处理器芯片Intel8088产生 IBM首推PC
1991.6 中科院高能所接入斯坦福大学 中国人上网
1994年 采用TCP/IP协议实现国际互联网全功能连接
1.2 计算机硬件组成
<1>计算机现实的分类
Sevrer、workstation、台式机、笔记本、手持设备
Server具有相对性、不需专门特定的处理器
<2>基本单位换算:
速率或带宽:T、G、M、K之间进率1000,单位bps
容量:T、G、M、K、B之间进率1024,单位字节
<3>英文简写:
MIPS、MFLOPS、MTBF、MTTR
<4>奔腾芯片的特点
32位、超标量、超流水、分支预测、哈佛结构、PCI总线
<5>安腾芯片特点
64位、EPIC
<6>主板的分类:
<7>网卡两层性:物理层+数据链路层
1.3 计算机软件组成
<1>软件=程序+数据+文档
<2>常用软件的分类:
<3>瀑布模型:
计划----定义、可行性
开发:初期----需求分析、总体设计、详细设计
后期----编码、测试
运行:运维
1.4 多媒体基本概念
<1>压缩标准的区别:
JPEG 静止图像
MPEG 动态图像
<2>超文本:非线性、跳跃性;
唇同步;
流媒体:边下边看
<3>压缩方法分类:
熵编码(无损压缩)----哈弗曼、算术、游程编码
源编码(有损压缩)----预测、矢量量化编码
混合编码
<4>流媒体:边下边看
技术特点:连续性、实时性、时序性(同步性)
---------------------------------------------------------------------------------
第二章 网络基本概念
2.1 计算机网络的形成与发展
<1>三网融合:计算机网络、电信通信网、广播电视网
2.2 计算机网络的基本概念
<1>定义:独立、自治、共享资源、信息传输
<2>计算机网络地理范围分类:LAN、WAN、MAN
<3>拓扑的定义:几何关系表示的网络结构 通信子网的抽象
<4>与网络拓扑相关的指标:
网络性能、系统可靠性、通信费用
<5>点对点网络不可能有总线型拓扑;
广播式网络中不可能有网状型拓扑
<6>点对点网络中星形、环形、树形、网状型拓扑各自特点;
<7>公式的计算----奈奎斯特准则与香农定理
<8>两定理基本原理:
Nyquist 理想低通 有限带宽
Shannon 有随机噪声的低通
<9>关于误码率:
是统计值,样本越大越精确;
不是越低越好,考虑实际需求;
二进制码元
2.3 分组交换技术的基本概念
<1>电路交换:
过程:线路建立、数据传输、线路释放
特点:优点----实时性高、适宜交互式会话类通信 模拟通信
不足----设备利用率底、不具备差错控制、流量控制
不适宜突发式通信
<2>存贮转发:
(1)Message----将发送数据作为一个逻辑单位转发 出错重传麻烦
(2)Packet----限定分组最大长度 如TCP/IP 最大64KB
含分组号 目的端需排序重组
<3>分组交换技术分:
(1)DG ----无需预先建立链路、需进行路由选择、目的结点需排序重组、
传输延迟大、适宜突发式通信
(2)VC----需预先建立链路、不需进行路由选择、适宜长报文传输
每个结点可同时和其他结点建立多条虚电路、
2.4 网络体系结构与网络协议
<1>协议三要素及其定义
语法----结构和格式
语义----控制信息、动作与响应
时序----实现顺序
<2>OSI七层结构
<3>Datalink、Transport、Network功能;
Datalink----建立无差错的数据链路、传送数据帧
Network----寻址、路由、拥塞控制
Transport----端到端可靠透明地传送报文
<4>TCP、UDP协议特点
TCP----可靠、面向连接、全双工、复杂、速度慢、传控制信息
UDP----不可靠、面向无连接、简单、速度快、传数据
<5>TCP/IP与OSI模型的对应关系
<6>TCP/IP协议中传输层、互联层的功能
传输层----建立用于会话的端到端的连接
互联层----将源报文发送至目的主机
<7>常见应用层协议
2.5 互联网的应用与发展(了解)
<1>p2p----非集中式、平等、独立路由、自治
2.6 无线网络应用的发展(了解)
<1>802.16----WMAN,无线城域网
<2>802.11----WLAN,无线局域网
Ad hoc----无线自组网
(1)WSN----无线传感器网络
(1)WMN----无线网格网
--------------------------------------------------------------------------------
第三章 局域网基础
3.1 局域网与城域网基本概念
<1>局域网技术三要素:
网络拓扑、传输介质与介质访问控制方法
<2>局域网介质访问控制方法:
CSMA/CD、Token bus、Token ring
<3>IEEE对Datalink划分为LLC和MAC层
<4>IEEE802标准中.1 .2 .3 .4 .5 .11 .16 所述内容
3.2 以太网
<1>CSMA/CD特点:
共享介质、广播、会听、平等竞争、随机、冲突、退避、
传输效率不稳定、 实时性差、低负荷、易实现
<2>CSMA/CD发送流程:
先听后发、边听边发、冲突停止、延迟重发
<3>理解以太网数据收发过程:
<4>冲突窗口2D/V 51.2微秒、 以太网帧长度64B--1518B
<5>以太网的实现:网卡、收发器、收发电缆线
网卡作用----编解码、帧拆装、CRC校验
<6>MAC地址的唯一性:
48 bit,厂商ID + 产品SN ,各占3个字节
<7>CSMA/CD、Token bus和Token ring的区别:
CSMA/CD----随机、实时性差、低负荷、易实现
Token----确定、实时、重负荷、实现困难
3.3 高速局域网的工作原理
<1>快速以太网及千兆以太网特点:
相同----帧格式、介质访问控制方法CSMA/CD、接口
不同:快速以太网----发送间隔10ns、MII介质独立接口、
双绞线及光纤 802.3u
千兆以太网----发送间隔1ns、GMII介质独立接口、
双绞线及光纤 802.3z
<2>万兆位以太网特点:
光纤、全双工、sonet/net、STM-64模式、10GMII
帧格式相同、不用CSMA/CD
3.4 交换式局域网与虚拟局域网
<1>交换式局域网的概念及特点:
概念----多端口之间建立多个并发连接
特点----低延迟、高带宽
支持不太速率和工作模式
支持VLAN
<2>交换式局域网端口和MAC映射表:
端口号与MAC地址 地址学习
<3>帧转发方式:
直通、存贮转发、改进的直通
<4>VLAN组网方式及特点:
组网方式----端口号、MAC地址、网络地址、IP广播组
特点式----管理方便、安全、服务质量高
3.5 无线局域网
<1>无线局域网的分类及特点:
红外----视距,包括定向、全方位、漫反射
安全、抗干扰、简单、传输距离短
扩频---- DSSS、FHSS、抗干扰能力强
<2>802.11b (1、2、5.5、11Mbps)与802.11a (54Mbps)速率
<3>802.11层次模型结构:
物理层+MAC
MAC----争用型 DCF+CSMA/CA
非争用型 PCF
3.6 局域网互联与网桥工作原理
<1>网桥的作用、工作过程及分类
作用----数据接受、地址过滤、数据转发,分割流量、连接局域网和局域网
工作过程----接受、存贮、地址过滤、帧转发
分类----源路由网桥 + 透明网桥
<2>各种网络连接所用的设备:
局域网互联----网桥
局域网与广域网、广域网与广域网----用路由器或网关
<3>网络设备工作的对应层次
Hub集线器----Physical
Bridge、Switch----Datalink
Router路由器----Network,分组存贮转发、路由选择、拥塞控制
Gateway网关----Application
-------------------------------------------------------------------------------------
第四章 网络操作系统
4.1 网络操作系统的特点
<1>单机操作系统的基本功能:
进程管理、内存管理、文件系统、设备I/O
<2>单机OS的组成及结构:
组成----驱动、内核、接口库及外围组件
结构----简单、层次、微内核、垂直和虚拟机结构
<3>OS启动进程的机制:
DOS---->EXEC
Windows---->CreatProcess
<4>常见文件系统:
DOS---->FAT
Windows---->VFAT
OS/2---->HPFS
NT---->FAT32、NTFS
<5>网络OS的基本任务:
屏蔽差异性、提供网络服务、实现资源共享管理、保证安全
4.2 网络操作系统的演变(无考点)
4.3 网络操作系统的类型与功能
<1>网络操作系统的分类:
专用型、通用型(变形级、基础级系统)
<2>NOS的发展:对等---->非对等 C/S
硬盘Server----文件Server----应用Server(DB、Web、ftp、DNS、通信)
<3>文件服务器的功能:
为用户提供完善的数据、文件和目录服务
<4>网络管理服务功能:
网络性能分析、状态监控、存贮管理
<5>NOS功能:
文件、打印、DB通信、信息、分布式目录、网络管理、Internet/Intranet服务
<6>DB中传送信息所用的语言:SQL(Structured Query Language,结构化查询语言)
4.4 Windows NOS的发展
<1>Windows NT域的概念:
域同目录,NT只有一个主域,可有多个备份域
<2>NT的特点(4个)
<3>Windows 2000的特点及其理解:
特点----活动目录服务
树状、组织单元
主域、备份域----域间平等
主从式----多主机复制
用户全局、本地组----信任可传递、单点登陆
<4>Windows 2000 Server的版本及Server 2008的虚拟化技术。
4.5 NetWare NOS
<1>NetWare文件系统的基本单位及访问方式
<2>NetWare四类用户
<3>NetWare四级安全机制
<4>NetWare三级容错 SFT1、2、3
<5>IntranetWare特点:
支持IP和IPX、Web、Ftp
4.6 UNIX NOS
<1>UNIX的发展
1969 AT&T----Unix V1 汇编
1973 AT&T----Unix V5 C
1981 AT&T----Unix SV R4.0
1969 加州大学伯克利分校----BSD4.3
<2>UNIX特点:
可移植性强、shell语言,树形文件系统
<3>UNIX标准的演进:
POSIX--->UI、OSF--->COSE--->蒙特雷计划
<4>UNIX的版本及公司
IBM---->AIX
sun---->solaris
HP---->HP-UX、Digital unix
SCO---->OpenServer、UnixWare
<5>Unix solaris 10、AIX 5L、HP11 iV3等的新特性,特别是第一点。
4.7 Linux NOS
<1>Linux 起源----芬兰,赫尔辛基大学
<2>Linux特点----开源、自由软件
<3>各公司的Linux版本:
Red Hat----Red Hat Linux9.0、Red Hat Enterprise Linux 5.0
Novell----SUSE Linux、SUSE Enterprise Linux 11
第五章 Internet基础
5.1 Internet的构成
<1>因特网的概念:
设计者----互联网络的一个实例
用户----信息资源网
<2>因特网的组成部分:
服务器客户机、信息资源、通信线路、路由器
5.2 Internet的接入
<1>Internet的接入:
电话网----Modem D/A A/D 56kbps
ADSL----上行16-640kbps 下行1.5M-9Mbps
HFC----上行10Mbps 下行10M-40Mbps
数据通信网----DDN、ATM、帧中继网 速率64kbps----2Mbps
5.3 IP协议与互联层服务
<1>IP协议内容:
IP数据报格式、寻址、路由、分片、重组、差错控制和处理
<2>互联层服务及IP地址唯一性:
互联层服务----无连接、不可靠、尽力传送
唯一性----Internet中任一台计算机均有IP地址
任两台主机IP地址不同
5.4 IP地址
<1>IP地址的构成:
32位,网络号+主机号,点分十进制记法,合法IP范围0--255
<2>单播A、B、C三类IP地址的网络位、主机为及判别:
判别:看第一个十进制数的范围,
A类(1-126)、B类(128-191)、C类(191-223)
<3>判断两台主机是否在同一网段:
看网络号是否相同,相同则在同一网络,否则不在同一网络
<4>特殊的IP地址:
网络地址----网络地址.0
有限广播地址----255.255.255.255
直接广播----网络地址.255
回送地址----127.x.x.x
私有地址---->10.x.x.x、192.168.x.x、
172.16.x.x--172.31.x.x
<5>IP地址与子网掩码关系:
子网掩码----1(网络及子网位).0(主机位)
IP地址与子网掩码相与得到网络地址,进而可计算子网号、主机号
<6>IP地址与MAC地址的转换:
IP---->MAC ARP 广播、高速缓冲表
MAC---->IP RARP
5.5 IP数据报
<1>对IP数据报格式及其相关字段的理解:
总长度最长64KB、报头最长长60B、TTL、源地址及目的地址
标识、标志、片偏移、选项、版本及协议类型等
5.6 差错与控制报文
ICMP报文分为:
<1>控制报文:
拥塞控制----源抑制,缓冲区存满
路由控制----重定向,选择最佳路径
<2>差错报文:
目的地不可达----网络、主机、协议及端口不可达
超时----TTL超期
参数错误
<3>请求/应答报文对:
回应请求/应答----测试目的主机或路由器的可达性
时戳请求/应答----同步时钟
掩码请求/应答----请求告知子网掩码
5.7 路由器与路由选择
<1>理解(N,R)对序偶、(M、N,R)三元组:
到目标网络最近的路由器的较近的端口地址(下一跳路由器)
<2>统一路由选择算法:(M、N,R)三元组+
特定主机M=255.255.255.255
默认路由M=0.0.0.0
A类IP地址M=255.0.0.0
B类IP地址M=255.255.0.0
C类IP地址M=255.255.255.0
<3>路由表建立:
静态路由表,手工维护
动态路由表,路由协议,自动维护
<4>理解RIP和OSPF路由协议:
<5>选择路由协议:
静态路由----小型、单路径、静态IP (网络数<10)
RIP----中型、多路径、动态IP (10<网络数<50)
OSPF----大型、多路径、动态IP (网络数>50)
5.8 IPV6协议
<1>IPV6基本知识:
128位,64位网络前缀+64网络接口标识符,冒号16进制表示法,8位段
零压缩,双冒号表示,缺位补零
<2>IPV6地址类型:
单播地址----可聚类全球单播、链路本地地址
组播地址----该多播地址表示的所有网络接口
任播地址----该多播地址表示的所有网络接口中的任一个
特殊地址----全零地址、回送地址(0::1)
映射到IPV4和IPV4兼容的IPV6地址
<3>IPV6数据报格式:
基本头(40B)+扩展头+数据单元
5.9 TCP与UDP
<1>TCP与UDP服务的特点
TCP----可靠、面向连接、全双工、流接口、
连接的可靠建立与优雅关闭
UDP----不可靠、无连接、简单、高效
<2>理解TCP三次握手和流量控制过程:
<3>常见应用程序对应的端口号
TCP端口:
FTP--20 21、Telnet--23、SMTP--25、DNS--53
HTTP--80、POP3--110
UDP端口:
DNS--53、TFTP--69、SNMP--161
第六章 Internet基本服务
6.1 客户机/服务器模型
<1>C/S定义及特性:
定义----客户机进程启动请求通信、服务器进程守护并响应
特性----互联网应用程序间同步、适应资源分配不均
<2>服务器的实现方法:
重复Server----面向无连接、请求处理时间已定,时间较短
并发Server----面向连接、请求处理时间不定,实时、灵活
<3>端口号----标识特点的服务
6.2 域名系统
<1>域名体系特点:
树状层次结构(倒树)、分布式
<2>传统的7个顶级域名
<3>域名解析的两种方法:
递归解析、反复解析,均有本地域名服务器完成
6.3 远程登陆服务
<1>Telnet采用C/S模式,NVT来屏蔽键盘的差异性、
屏蔽双方数据格式的差异性
6.4 FTP服务
<1>FTP通过C/S建立双重连接
控制连接(21)
Data连接(20) 建立方式----主动模式、被动模式
传输方式----文本文件、二进制文本
<2>FTP访问方式:
FTP命令行、浏览器、FTP下载工具
<3>FTP匿名服务:用户名anonymous 口令guest
6.5 电子邮件系统
<1>发送邮件用SMTP(25),接受用pop3(110)、IMAP
邮件的发送与接受均要经过邮件服务器,因SMTP和pop3均用C/S模式
<2>邮件地址格式:用户名@邮件服务器
<3>RFC822----邮件头+邮件体
MIME----邮件体多媒体化
6.6 WWW服务
<1>Web服务使用的传送协议HTTP,网页使用语言HTML
<2>URL协议类型:
HTTP、ftp、telnet、file、gopher
<3>web浏览器组成及工作原理:
控制单元、客户单元、解释单元
<4>Web服务器的安全级别
IP地址限制、用户验证、web权限、NTFS权限
<5>SSL作用及工作流程
验证客户机和服务器双方身份、加密传输数据
会话密钥有浏览器产生
第七章 网络安全技术
7.1 网络管理
<1>网络管理的5个功能:
配置、故障、性能、计费、安全管理
<2>管理者--代理模型:
通信方式----操作、通知
管理模式----集中式、分布式网络管理
<3>SNMP模型组成:
管理者、代理、SNMP、MIB(在被关节点内部)
<4>SNMP与CMIP的特点:
共同点----应用层协议、均采用管理者代理模型
不同点:SNMP用轮询监控、协议简单、安全性差
CMIP用委托监控、实时性强、安全性好
协议复杂、代理负荷重
7.2 信息安全技术概述
<1>信息安全的概念及目标:
概念----
目标----真实、完整、保密、可用、防抵赖、可控制、可审查
<2>安全准则TCSEC:
分四类7级,由D、C、B至A安全性逐步增强
<3>常见OS符合那个级别的安全要求:
D1----Dos、Win95
C2----Windows NT、Netware、Unix、Linux
<4>GB安全准则:
自主保护级---->不危害国家安全、社会秩序、经济建设、公共利益
指导保护级---->造成一定损害
监督保护级---->造成较大损害
强制保护级---->造成严重损害
专控保护级---->造成特别严重损害
7.3 网络安全分析与安全策略
<1>网络安全的概念、要素和目的:
概念----
要素----真实、完整、保密、可用、防抵赖
目的----信息存贮安全、信息传输安全
<2>常见的安全威胁及其影响的安全要素:
监听、信息泄露---->保密性
伪装、假冒---->真实性
篡改---->完整性
重放---->可控性
DOS---->可用性
否认---->防抵赖
<3>网络攻击的分类:
被动攻击----信息内容泄露、流量分析
难发现、可预防、加密
主动攻击----伪装、篡改、重放、DOS、DDOS
易检测、难预防
服务攻击----针对特定的网络服务
非服务攻击----针对网络底层协议
利用协议或OS漏洞实现
7.4 加密技术
<1>密码的分类:
转换类型----代换、置换(易位)
密钥个数----对称、非对称
明文处理方法----分组、流(序列)
<2>代换和置换算法基本原理及凯撒算法
<3>常见加密算法分类
对称----DES、IDEA、TDEA、AES、RC5、Blowfish
其中DES 数据64b、密钥56b
非对称----RSA、Elgamal、背包
<4>密钥管理:
KDC----对称密钥及私钥的分发
CA----公钥的认证,含在数字证书中
<5>理解非对称加密过程:
(发送方)加密----接收方公钥
(接受方)解密----接收方私钥
7.5 认证技术
<1>认证的目的及种类:
目的----信源识别、完整性验证
种类----消息认证、数字签名、身份认证
<2>常见认证算法及协议:
认证算法----MD5、SHA-1
一致、惟一、随机、单向不可逆
签名算法----RSA、Elgamal、椭圆曲线数字签名
身份认证协议----S/Key、X.509、Kerberos
<3>身份认证方法:
口令、个人持证、生物识别
<4>理解消息认证和数字签名的流程
7.6 安全技术应用
<1>电子邮件安全:
PGP、S/MIME,可实现签名和加密
<2>IPSec包含:
AH----源身份认证、数据完整性
ESP----身份认证、数据完整性、加密
7.7 入侵检测与防火墙
<1>入侵检测技术分类:
统计异常检测----阀值检测、基于轮廓
基于规则的检测----异常检测、渗透检测
<2>防火墙的分类:
包过滤路由器----简单、透明、处理速度快
应用级网关----代理服务器、针对特定应用、开销大
电路网关
堡垒主机
<3>防火墙的执行控制策略
服务、方向、用户、行为控制
<4>防火墙不足
不能防:绕过它的连接、内部的攻击、病毒
<5>防火墙的使用范围:
VLAN之间、外网与内网之间、总部网与分支机构网络之间
7.8 计算机病毒问题与防护
<1>病毒常识:
破坏性、传染性、潜伏性、复制能力
<2>常见病毒及防治:
木马、蠕虫、宏病毒、电子邮件病毒
检测、标识、清除
<3>扫描器的组成:
CPU模拟器、病毒签名扫描器、模拟控制模块
第八章 网络应用技术
8.1 组播技术
<1>理解单播、广播和组播:
<2>组播相关协议:
(a)组播组管理协议----IGMP、CGMP、IGMP Snooping
交换机监听发送主机发送的Router-port GMP形成
组成员和接口的对应关系,此后仅向有组成员的接口
转发组播报文,解决数据链路层中组播报文泛滥的问题
(b)组播路由协议
域间路由协议----MBGP、MSDP
域内路由协议:
密集模式----DVMRP、MOSPF、PIM-DM
稀疏模式----CBT、PIM-SM
8.2 P2P网络
<1>P2P网络结构
集中式拓扑----中心化、Server保留索引信息、快速检索
中心结点易受攻击、Napster、Maze
分布式非结构化----配置简单、洪泛搜索、随机转发、
可适应网络动态变化、支持复杂查询、
扩展性好、小网络效率高、GNUtella
分布式结构化----DHT、非中心化、自组织、良好的扩展性
健壮性、维护较复杂、Pastry、Tapestry
混合式结构----快速检索、可扩展、抗攻击 Skype、BT
eDonkey、PPLive
<2>混合式结构的P2P网络中结点分为:
用户结点、搜索结点、索引结点
<3>P2P应用:
分布式科学计算、文件共享、协同工作、流媒体直播、分布式搜索引擎
8.3 即时通信系统
<1>IM模式:
P2P(C/C)----传文件
中转(C/S)----文本消息
<2>了解IM协议----SIMPLE、XMPP
<3>SIP的组成及消息:
组成----用户代理、代理Server、重定向Server、注册Server
A消息----Request、Response
<4>XMPP采用C/S结构、由XMPP客户端、服务器、协议网关构成
8.4 IPTV
<1>IPTV基本业务
VOD----包括节目制作中心、专业视频服务器、视频节目库
VOD管理服务器、客户端播放设备
直播电视----IP网作传输网、机顶盒(信号转换)、组播
时移电视----时间轴根据用户需求而动、存贮媒体文件、点播
<2>IPTV构成及关键技术理解
构成----节目采集、存贮与服务、节目传送、用户终端设备、相关软件
理解----视频数字化、传输IP化、播放流媒体化
8.5 VoIP
<1>VoIP实现方法及构成
实现方法----PC-to-PC、PC-to-Phone、Phone-to-Phone
构成----终端设备、网关、网守、MCU
<2>VoIP网关作用
号码查询、建立通信连接、信号调制、信号解压缩、路由寻址
8.6 网络搜索技术
<1>全文搜索引擎组成
搜索器、索引器、检索器、用户接口
<2>google、网络各自技术特点
Ⅳ 点对点技术的现状
国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG) 、全球网格论坛(Global Grid Forum ,GGF) 。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面工作进展缓慢。P2PWG已经和GGF合并,由该论坛管理P2P计算相关的工作。GGF负责网格计算和P2P计算等相关的标准化工作。
从国外公司对P2P计算的支持力度来看,Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究和开发工作。Microsoft公司已经发布了基于Pastry的软件包SimPastry/ VisPastry。Rice大学也在Pastry的基础之上发布了FreePastry软件包。
在2000年8月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。2002年Intel发布了. Net基础架构之上的Accelerator Kit (P2P加速工具包) 和P2P安全API软件包,从而使得微软. NET开发人员能够迅速地建立P2P安全Web应用程序。
Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包。JXTA定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其它可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。 · 北京大学—Maze
Maze 是北京大学网络实验室开发的一个中心控制与对等连接相融合的对等计算文件共享系统,在结构上类似Napster,对等计算搜索方法类似于Gnutella。网络上的一台计算机,不论是在内网还是外网,可以通过安装运行Maze的客户端软件自由加入和退出Maze系统。每个节点可以将自己的一个或多个目录下的文件共享给系统的其他成员,也可以分享其他成员的资源。Maze支持基于关键字的资源检索,也可以通过好友关系直接获得。
· 清华大学—Granary
Granary是清华大学自主开发的对等计算存储服务系统。它以对象格式存储数据。另外,Granary设计了专门的结点信息收集算法PeerWindow的结构化覆盖网络路由协议Tourist。
· 华中科技大学—AnySee
AnySee是华中科大设计研发的视频直播系统。它采用了一对多的服务模式,支持部分NAT和防火墙的穿越,提高了视频直播系统的可扩展性;同时,它利用近播原则、分域调度的思想,使用Landmark路标算法直接建树的方式构建应用层上的组播树,克服了ESM等一对多模式系统由联接图的构造和维护带来的负载影响。
更详细介绍见[中国计算机学会通讯Page 38-51郑纬民等对等计算研究概论]