找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1875|回复: 3

[分享] 网上邻居共享详解1

dailiyang 发表于 2008-3-19 10:19:14 | 显示全部楼层 |阅读模式 来自 中国江苏南京

马上注册,结交更多好友,享用更多功能。

您需要 登录 才可以下载或查看,没有帐号?注册

x
说到“网上邻居”,相信很多人都很熟悉。操作系统安装完毕后,桌面上仅有的几个图标中就包含了“网上邻居”。
但是,要说起“网上邻居”的工作机制,可能大家就不太清楚了。
要说“网上邻居”的工作机制,需要联系一下生活中的例子:比如我,要拜访一个远方的朋友——A,我要去他的家里,那么应该怎么样做?答案是先找到A的家,然后再确定看看A让不让我进他的家里。不要认为这是笑话,“网上邻居”的工作机制就是这样的。
在一个局域网中,只要双击桌面的“网上邻居”,就能看到所在网络中的所有用户,这一切似乎都顺理成章。可你有否想过:Windows怎么知道这些电脑叫什么名字、在什么地方?它是如何获得它们的位置的?
Windows 2000开始,通过“网上邻居”进行的访问实际上是通过browser service(浏览服务)来进行的,下面就浏览服务的几个关键地方向大家讲解一下。
一、浏览列表
浏览列表是浏览服务的关键部分。通过这个列表,基于Windows的电脑才能发现处于网络上的电脑和服务资源,浏览列表像一个地址簿,它告诉你的电脑在哪里有资源。你的电脑通过这个列表中的信息将电脑名称解析成IP地址,提供给用户来进行访问。
那么,浏览列表是从哪里来的呢?正确答案是――浏览列表是通过广播查询浏览服务器,由浏览服务器提供的。
很多时候网络中的计算机并不能正确更新浏览列表。当一台计算机正常关机时,它会向网络发出广播宣告,使浏览主控服务器及时将它从浏览列表中删除;而非正常关机后,浏览列表里仍会把该条目保持很长一段时间,这可能造成我们仍能在网络邻居里看到它而访问不了。大家可能会奇怪,我们的网络中哪来的浏览服务器?
二、浏览服务器
浏览服务器是通过选举选出来的。选举的主要条件是操作系统,实验中发现windows 2000 professional 的优先级是比windows
xp
高的。当XP先启动时它自己是浏览服务器,但当2000也启动时,2000就会发出选举请求,并最终在选举中把浏览服务器的身份抢过来。其他的条件我们就不再作探究了,反正结果就是选出主浏览服务器和备份浏览服务器。一个工作组中主浏览服务器只有一个,备份浏览服务器可以有多个,担任主浏览服务器的计算机可以同时担任备份浏览服务器。
当一个台电脑启动的时候,如果它的打印和文件共享功能是打开的,它就会在网络中发出广播包登记它自己,主浏览服务器收到广播后会把相关信息加入浏览列表中,并每隔一段周期进行验证,于是我们就会看到这个新启动的电脑了。
初次进行时,这个周期是1分钟、2分钟、4分钟和8分钟,最后到12分钟,而之后每12分钟客户机都会发一个通知,通知主浏览服务器器说我还在呢。如果经过三个周期(36分钟),主浏览器都没有听到我还在呢的通知,那么它就会把这个客户机的名字从浏览列表中删除掉,网上邻居中就再也不会有这个用户了。
如果网络较大,所有的事情都让主浏览服务器干岂不是会较大影响这台计算机性能,所以我们查询的浏览列表并不是从主浏览服务器那里来的,而是从备份服务器那里来的。主浏览服务器会把定期把浏览列表发送到备份浏览服务器以让浏览列表得到更新。
总之,网上邻居访问方法的过程是:客户机先广播(UDP)查询备份浏览服务器列表,主浏览服务器告之,要注意告知的只是计算机名。客户机用广播(UDP)查询对计算机名的IP地址,对同一个计算机名广播三次然后等待回答,无回答再广播下一个备份浏览服务器的计算机名(如果还有下一个的话)。成功获得IP后,客户机将建立一条到备份浏览服务器139端口的TCP连接,然后获得这个工作组中的其他计算机的名字。当你打开某台计算机时,客户机会广播(UDP)查询这台计算机的IP,如果得不到回答,连接将是错误的;如果得到回答,那么就进入连接的建立阶段了。
上面的这些过程使用的是netbios协议。
三、NETBIOS协议
Netbois(网络基本输入/输出系统)最初由IBM,Sytek作为API开发,使用户软件能使用局域网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios是接入网络服务的接口标准。
NBT(netbios over TCP/IP)就是建立在TCP/IP传送协议之上的NETBIOS接口,我们先将它与Nbf进行一番对比。Nbf指的是NETBIOS帧协议,以NetBEUI为基础,这可是真正的架构在链路层之上的协议,不过也因为它是在LLC(逻辑链路控制层)层上,所以无法路由。只有借助一些可路由协议(如IPIPX)才能实现跨广播域浏览。因为TCP/IP发展最为迅速,最为普及,NBT也才受到大家如此的关注,现在所有的windows系统都使用NBTNBT提供的服务可以分成三类:名称服务(UDP137端口)、数据报服务(UDP138端口)和会话服务(TCP139端口)。现在所有的windows系统都是默认支持NBT协议,至于NetBEUI就没有什么用了(好像XP系统默认已经不安装了),网上邻居访问不了也同它没有关系,不要再混为一谈。NBT才是网上邻居所用到的协议(系统默认)
1、名称服务(UDP137端口)主要用于广播解决本子网的NETBIOS名和IP地址转换的关系。因为NBT是建立在TCP/IP之上,而建立TCP/IP通讯是必须知晓双方IP地址的。但因为使用的是UDP广播,所以名称服务无法跨越路由器。
2、数据报服务(UDP138端口)提供了无连接(UDP)和面向广播的通信方式。它主要用于从主浏览服务器那里广播查询到备份浏览服务器列表。因为它使用了UDP广播,因而在跨越路由器时也会遇到与名称服务相同的问题。
3、面向连接TCP协议的会话服务(TCP139端口)用于向备份浏览服务器查询得到一个工作组的计算机列表,也可建立98系统下面网上邻居的数据传送通道。
浪沧海 发表于 2008-3-20 01:36:13 | 显示全部楼层 来自 中国陕西安康
看看,学习学习。谢谢楼主的分享。
shuidou007 发表于 2008-3-20 17:58:55 | 显示全部楼层 来自 中国广东深圳
我给您提了个问题,期待你的解答
李搜狐李 发表于 2008-6-22 19:02:28 | 显示全部楼层 来自 中国重庆
谢谢,楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表