黑客最初需要了解的一些知识

来源:互联网 发布:政府办事大厅网络建设 编辑:程序博客网 时间:2024/05/21 08:51
 

第一个什么是FTP?
  FTP是英文File Transfer Protocol的缩写,意思是文件传输协议。它和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
   FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
   PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
   PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
  从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

第二个 : HTTP是什么?
  当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,例如:www.microsoft.com,但是在浏览器的地址栏里面出现的却是:http://www.microsoft.com ,你知道为什么会多出一个“http”吗?
一、HTTP协议是什么
  我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。因此,在我们认识HTTP之前,有必要先弄清楚URL的组成,例如:http://www.microsoft.com/china/index.htm。它的含义如下:
1. http://:代表超文本传输协议,通知microsoft.com服务器显示Web页,通常不用输入;
2. www:代表一个Web(万维网)服务器;
3. Microsoft.com/:这是装有网页的服务器的域名,或站点服务器的名称;
4. China/:为该服务器上的子目录,就好像我们的文件夹;
5. Index.htm:index.htm是文件夹中的一个HTML文件(网页)。
  我们知道,Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层(Application layer),它包含所有高层的协议。高层协议有:文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。这就是你为什么在浏览器中看到的网页地址都是以http://开头的原因。自WWW诞生以来,一个多姿多彩的资讯和虚拟的世界便出现在我们眼前,可是我们怎么能够更加容易地找到我们需要的资讯呢?当决定使用超文本作为WWW文档的标准格式后,于是在1990年,科学家们立即制定了能够快速查找这些超文本文档的协议,即HTTP协议。经过几年的使用与发展,得到不断的完善和扩展,目前在WWW中使用的是HTTP/1.0的第六版。

二、HTTP是怎样工作的
  既然我们明白了URL的构成,那么HTTP是怎么工作呢?我们接下来就要讨论这个问题。
  由于HTTP协议是基于请求/响应范式的(相当于客户机/服务器)。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP 80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。这个过程就好像我们打电话订货一样,我们可以打电话给商家,告诉他我们需要什么规格的商品,然后商家再告诉我们什么商品有货,什么商品缺货。这些,我们是通过电话线用电话联系(HTTP是通过TCP/IP),当然我们也可以通过传真,只要商家那边也有传真。
  以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过程。在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。这就好像上面的例子,我们电话订货的全过程。其实简单说就是任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。你的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。TCP/IP决定了每个数据包的格式。如果事先不告诉你,你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。
  也就是说商家除了拥有商品之外,它也有一个职员在接听你的电话,当你打电话的时候,你的声音转换成各种复杂的数据,通过电话线传输到对方的电话机,对方的电话机又把各种复杂的数据转换成声音,使得对方商家的职员能够明白你的请求。这个过程你不需要明白声音是怎么转换成复杂的数据的。

第三个 : ipc$ 是什么?
  IPC$(Internet Process Connection)是共享/"命名管道/"的资源(大家都是这么说的),它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码(当然,对方机器必须开了ipc$共享,否则你是连接不上的),而利用这个空的连接,连接者还可以得到目标主机上的用户列表(不过负责的管理员会禁止导出用户列表的)。我们总在说ipc$漏洞ipc$漏洞,其实,ipc$并不是真正意义上的漏洞,它是为了方便管理员的远程管理而开放的远程网络登陆功能,而且还打开了默认共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$)。所有的这些,初衷都是为了方便管理员的管理,但好的初衷并不一定有好的收效,一些别有用心者(到底是什么用心?我也不知道,代词一个)会利用IPC$,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测,寄希望于获得更高的权限,从而达到不可告人的目的.
  解惑:
1)IPC连接是Windows NT及以上系统中特有的远程网络登陆功能,其功能相当于Unix中的Telnet,由于IPC$功能需要用到Windows NT中的很多DLL函数,所以不能在Windows 9.x中运行。
也就是说只有nt/2000/xp才可以建立ipc$连接,98/me是不能建立ipc$连接的(但有些朋友说在98下能建立空的连接,不知道是真是假,不过现在都2003年了,建议98的同志换一下系统吧,98不爽的)
2)即使是空连接也不是100%都能建立成功,如果对方关闭了ipc$共享,你仍然无法建立连接
3)并不是说建立了ipc$连接就可以查看对方的用户列表,因为管理员可以禁止导出用户列表

第四个 : ASP 是什么?
  ASP即Active Server Page的缩写。它是一种包含了使用VB Script或Jscript脚本程序代码的网页。当浏览器浏览ASP网页时, Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的 就是动态生成的网页。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。ASP的网页文件的格式是.ASP。

第五个 : 什么是病毒
  下面我们谈一谈病毒。您以前是否听说过电脑病毒?不要一听到病毒就浑身发抖,只要了解了病毒,对付起来还是很容易的。电脑病毒与我们平时所说的医学上的生物病毒是不一样的,它实际上是一种电脑程序,只不过这种程序比较特殊,它是专门给人们捣乱和搞破坏的,它寄生在其它文件中,而且会不断地自我复制并传染给别的文件,没有一点好作用。
  电脑病毒发作了都会有哪些症状呢?
  电脑染上病毒后,如果没有发作,是很难觉察到的。但病毒发作时就很容易感觉出来:
  有时电脑的工作会很不正常,有时会莫名其妙的死机,有时会突然重新启动,有时程序会干脆运行不了。
  电脑染毒后表现为:工作很不正常,莫名其妙死机,突然重新启动,程序运行不了。
  有的病毒发作时满屏幕会下雨,有的屏幕上会出现毛毛虫等,甚至在屏幕上出现对话框,这些病毒发作时通常会破坏文件,是非常危险的,反正只要电脑工作不正常,就有可能是染上了病毒。病毒所带来的危害更是不言而喻了。
  而且,以前人们一直以为,病毒只能破坏软件,对硬件毫无办法,可是CIH病毒打破了这个神话,因为它竟然在某种情况下可以破坏硬件!
  电脑病毒和别的程序一样,它也是人编写出来的。既然病毒也是人编的程序,那就会有办法来对付它。最重要的是采取各种安全措施预防病毒,不给病毒以可乘之机。另外,就是使用各种杀毒程序了。它们可以把病毒杀死,从电脑中清除出去。

  病毒后记
  其实现在的病毒,随着网络的发展。已经变的更加的复杂。它与黑客技术、木马等技术相结合,让你无法轻易查杀!其威害之大,由近期的冲击波病毒,仅见一般!所以大家学习了解电脑知识与安全知识,是必不可少的。我们这里学习黑客等技术,也不是教你如何去攻击别人,这样是不道德的,主要是了解技术后,用于防范。 再一个,如何做好防范,让病毒无法入手。才是最重要的。对于初学的朋友,一个好的杀毒工具是必须的。个人认为正版的瑞星还是不错的,其网上升级速度很快,防与杀的效果也很好!

  第六个 : 什么是路由器
  路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。 
  路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
  多少年来,路由器的发展有起有伏。90年代中期,传统路由器成为制约因特网发展的瓶颈。ATM交换机取而代之,成为IP骨干网的核心,路由器变成了配角。进入90年代末期,Internet规模进一步扩大,流量每半年翻一番,ATM网又成为瓶颈,路由器东山再起,Gbps路由交换机在1997年面世后,人们又开始以Gbps路由交换机取代ATM交换机,架构以路由器为核心的骨干网。
  附:路由器原理及路由协议
  近十年来,随着计算机网络规模的不断扩大,大型互联网络(如Internet)的迅猛发展,路由技术在网络技术中已逐渐成为关键部分,路由器也随之成为最重要的网络设备。用户的需求推动着路由技术的发展和路由器的普及,人们已经不满足于仅在本地网络上共享信息,而希望最大限度地利用全球各个地区、各种类型的网络资源。而在目前的情况下,任何一个有一定规模的计算机网络(如企业网、校园网、智能大厦等),无论采用的是快速以太网技术、FDDI(光纤分布式数据接口)技术,还是ATM(异步传输模式)技术,都离不开路由器,否则就无法正常运作和管理。
  1 网络互连
  把自己的网络同其它的网络互连起来,从网络中获取更多的信息和向网络发布自己的消息,是网络互连的最主要的动力。网络的互连有多种方式,其中使用最多的是网桥互连和路由器互连。
  1.1 网桥互连的网络
  网桥工作在OSI(开放式系统互联参考模型)模型中的第二层,即链路层。完成数据帧(frame)的转发,主要目的是在连接的网络间提供透明的通信。网桥的转发是依据数据帧中的源地址和目的地址来判断一个帧是否应转发和转发到哪个端口。帧中的地址称为“MAC”地址或“硬件”地址,一般就是网卡所带的地址。
  网桥的作用是把两个或多个网络互连起来,提供透明的通信。网络上的设备看不到网桥的存在,设备之间的通信就如同在一个网上一样方便。由于网桥是在数据帧上进行转发的,因此只能连接相同或相似的网络(相同或相似结构的数据帧),如以太网之间、以太网与令牌环(token ring)之间的互连,对于不同类型的网络(数据帧结构不同),如以太网与X.25之间,网桥就无能为力了。
  网桥扩大了网络的规模,提高了网络的性能,给网络应用带来了方便,在以前的网络中,网桥的应用较为广泛。但网桥互连也带来了不少问题:一个是广播风暴,网桥不阻挡网络中广播消息,当网络的规模较大时(几个网桥,多个以太网段),有可能引起广播风暴(broadcasting storm),导致整个网络全被广播信息充满,直至完全瘫痪。第二个问题是,当与外部网络互连时,网桥会把内部和外部网络合二为一,成为一个网,双方都自动向对方完全开放自己的网络资源。这种互连方式在与外部网络互连时显然是难以接受的。问题的主要根源是网桥只是最大限度地把网络沟通,而不管传送的信息是什么。
  1.2 路由器互连网络
  路由器互连与网络的协议有关,我们讨论限于TCP/IP网络的情况。
  路由器工作在OSI模型中的第三层,即网络层。路由器利用网络层定义的“逻辑”上的网络地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各个网络的独立性。路由器不转发广播消息,而把广播消息限制在各自的网络内部。发送到其他网络的数据茵先被送到路由器,再由路由器转发出去。
  IP路由器只转发IP分组,把其余的部分挡在网内(包括广播),从而保持各个网络具有相对的独立性,这样可以组成具有许多网络(子网)互连的大型的网络。由于是在网络层的互连,路由器可方便地连接不同类型的网络,只要网络层运行的是IP协议,通过路由器就可互连起来。
  网络中的设备用它们的网络地址(TCP/IP网络中为IP地址)互相通信。IP地址是与硬件地址无关的“逻辑”地址。路由器只根据IP地址来转发数据。IP地址的结构有两部分,一部分定义网络号,另一部分定义网络内的主机号。目前,在Internet网络中采用子网掩码来确定IP地址中网络地址和主机地址。子网掩码与IP地址一样也是32bit,并且两者是一一对应的,并规定,子网掩码中数字为“1”所对应的IP地址中的部分为网络号,为“0”所对应的则为主机号。网络号和主机号合起来,才构成一个完整的IP地址。同一个网络中的主机IP地址,其网络号必须是相同的,这个网络称为IP子网。
  通信只能在具有相同网络号的IP地址之间进行,要与其它IP子网的主机进行通信,则必须经过同一网络上的某个路由器或网关(gateway)出去。不同网络号的IP地址不能直接通信,即使它们接在一起,也不能通信。
  路由器有多个端口,用于连接多个IP子网。每个端口的IP地址的网络号要求与所连接的IP子网的网络号相同。不同的端口为不同的网络号,对应不同的IP子网,这样才能使各子网中的主机通过自己子网的IP地址把要求出去的IP分组送到路由器上
  2 路由原理
  当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。
  路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。
  目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router based network),形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。
  路由动作包括两项基本内容:寻径和转发。寻径即判定到达目的地的最佳路径,由路由选择算法来实现。由于涉及到不同的路由选择协议和路由选择算法,要相对复杂一些。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。路由选择算法将收集到的不同信息填入路由表中,根据路由表可将目的网络与下一站(nexthop)的关系告诉路由器。路由器间互通信息进行路由更新,更新维护路由表使之正确反映网络的拓扑变化,并由路由器根据量度来决定最佳路径。这就是路由选择协议(routing protocol),例如路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议(BGP)等。
  转发即沿寻径好的最佳路径传送信息分组。路由器首先在路由表中查找,判明是否知道如何将分组发送到下一个站点(路由器或主机),如果路由器不知道如何发送分组,通常将该分组丢弃;否则就根据路由表的相应表项将分组发送到下一个站点,如果目的网络直接与路由器相连,路由器就把分组直接送到相应的端口上。这就是路由转发协议(routed protocol)。
  路由转发协议和路由选择协议是相互配合又相互独立的概念,前者使用后者维护的路由表,同时后者要利用前者提供的功能来发布路由协议数据分组。下文中提到的路由协议,除非特别说明,都是指路由选择协议,这也是普遍的习惯。
  3 路由协议
  典型的路由选择方式有两种:静态路由和动态路由。
  静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。
  动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。
  静态路由和动态路由有各自的特点和适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个分组在路由器中进行寻径时,路由器首先查找静态路由,如果查到则根据相应的静态路由转发分组;否则再查找动态路由。
  根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIP、OSPF;外部网关协议主要用于多个自治域之间的路由选择,常用的是BGP和BGP-4。下面分别进行简要介绍。
  3.1 RIP路由协议
  RIP协议最初是为Xerox网络系统的Xerox parc通用协议而设计的,是Internet中常用的路由协议。RIP采用距离向量算法,即路由器根据距离选择路由,所以也称为距离向量协议。路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。
  RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。
  3.2 OSPF路由协议
  80年代中期,RIP已不能适应大规模异构网络的互连,0SPF随之产生。它是网间工程任务组织(1ETF)的内部网关协议工作组为IP网络而开发的一种路由协议。
  0SPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用0SPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。
    与RIP不同,OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。
  3.3 BGP和BGP-4路由协议
  BGP是为TCP/IP互联网设计的外部网关协议,用于多个自治域之间。它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。它的主要功能是与其它自治域的BGP交换网络可达信息。各个自治域可以运行不同的内部网关协议。BGP更新信息包括网络号/自治域路径的成对信息。自治域路径包括到达某个特定网络须经过的自治域串,这些更新信息通过TCP传送出去,以保证传输的可靠性。为了满足Internet日益扩大的需要,BGP还在不断地发展。在最新的BGp4中,还可以将相似路由合并为一条路由。
  3.4 路由表项的优先问题
  在一个路由器中,可同时配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。
  4 路由算法
  路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。通常需要综合考虑以下几个设计目标:
——(1)最优化:指路由算法选择最佳路径的能力。
——(2)简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。
——(3)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。
——(4)快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。
——(5)灵活性:路由算法可以快速、准确地适应各种网络环境。例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。
  路由算法按照种类可分为以下几种:静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。前面几种的特点与字面意思基本一致,下面着重介绍链路状态和距离向量算法。
  链路状态算法(也称最短路径算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。距离向量算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。
  由于链路状态算法收敛更快,因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此链路状态算法将会在实现时显得更昂贵一些。除了这些区别,两种算法在大多数环境下都能很好地运行。
  最后需要指出的是,路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法可能采用多种度量来选择路由,通过一定的加权运算,将它们合并为单个的复合度量、再填入路由表中,作为寻径的标准。通常所使用的度量有:路径长度、可靠性、时延、带宽、负载、通信成本等.
  5 新一代路由器
  由于多媒体等应用在网络中的发展,以及ATM、快速以太网等新技术的不断采用,网络的带宽与速率飞速提高,传统的路由器已不能满足人们对路由器的性能要求。因为传统路由器的分组转发的设计与实现均基于软件,在转发过程中对分组的处理要经过许多环节,转发过程复杂,使得分组转发的速率较慢。另外,由于路由器是网络互连的关键设备,是网络与其它网络进行通信的一个“关口”,对其安全性有很高的要求,因此路由器中各种附加的安全措施增加了CPU的负担,这样就使得路由器成为整个互联网上的“瓶颈”。
  传统的路由器在转发每一个分组时,都要进行一系列的复杂操作,包括路由查找、访问控制表匹配、地址解析、优先级管理以及其它的附加操作。这一系列的操作大大影响了路由器的性能与效率,降低了分组转发速率和转发的吞吐量,增加了CPU的负担。而经过路由器的前后分组间的相关性很大,具有相同目的地址和源地址的分组往往连续到达,这为分组的快速转发提供了实现的可能与依据。新一代路由器,如IP Switch、Tag Switch等,就是采用这一设计思想用硬件来实现快速转发,大大提高了路由器的性能与效率。
  新一代路由器使用转发缓存来简化分组的转发操作。在快速转发过程中,只需对一组具有相同目的地址和源地址的分组的前几个分组进行传统的路由转发处理,并把成功转发的分组的目的地址、源地址和下一网关地址(下一路由器地址)放人转发缓存中。当其后的分组要进行转发时,应先查看转发缓存,如果该分组的目的地址和源地址与转发缓存中的匹配,则直接根据转发缓存中的下一网关地址进行转发,而无须经过传统的复杂操作,大大减轻了路由器的负担,达到了提高路由器吞吐量的目标。(6.17/17:22)

  第七个:什么是肉鸡
  肉鸡就是具有最高管理权限的远程电脑。简单的说就是受你控制的远程电脑。肉鸡可以是win、Unix/Linux……等各种系统;肉鸡可以是一家公司的服务器,一家网站的服务器,甚至是美国白宫或军方的电脑,只要你有这本事入侵并控制他,呵呵。莱鸟所说用的肉鸡一般是开了3389端口的Win2K系统的服务器。
要登陆肉鸡,必须知道3个参数:远程电脑的IP、用户名、密码。

  第八个:什么是shell
  操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
  shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。
  Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
  交互式shell和非交互式shell
  交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
  shell的类型
在UNIX中主要有两大类shell
Bourne shell (包括 sh, ksh, and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
  Bourne Shell
  最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是Bourne shell。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。
  C Shell
  Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。
  Korn Shell
  有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。
  Bourne Again Shell (bash)
  bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。
  POSIX Shell
  POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.
  各主要操作系统下缺省的shell:
  AIX 下是Korn Shell.
  Solaris和FreeBSD缺省的是Bourne shell.
  HP-UX缺省的是POSIX shell.
  Linux是Bourne Again shell.
  【TIP】
  #!/usr/bin/sh的用途
shell script的第一行一般都是#!/usr/bin/sh或#!/usr/bin/ksh等,它的用途就是指出本脚本是用的哪种shell写的,执行时系统应该用哪种shell来解释执行它。
  附:LINUX系统的shell原理
  Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
  shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。   shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
  有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
  shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。
  shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。
  当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。
  一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。
  当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。
  我们来实习一下shell是如何工作的。
  $ make work
  make:***No rule to make target ‘work’. Stop.
  $
  注释:make是系统中一个命令的名字,后面跟着命令参数。在接收到这个命令后,shell便执行它。本例中,由于输入的命令参数不正确,系统返回信息后停止该命令的执行。
  在例子中,shell会寻找名为make的程序,并以work为参数执行它。make是一个经常被用来编译大程序的程序,它以参数作为目标来进行编译。在“make work”中,make编译的目标是work。因为make找不到以work为名字的目标,它便给出错误信息表示运行失败,用户又回到系统提示符下。
  另外,用户键入有关命令行后,如果shell找不到以其中的命令名为名字的程序,就会给出错误信息。例如,如果用户键入:
  $ myprog
  bash:myprog:command not found
  $
  可以看到,用户得到了一个没有找到该命令的错误信息。用户敲错命令后,系统一般会给出这样的错误信息。

  第九个:什么是端口?
  在开始讲什么是端口之前,我们先来聊一聊什么是 port 呢?常常在网络上听说『我的主机开了多少的 port ,会不会被入侵呀!?』或者是说『开那个 port 会比较安全?又,我的服务应该对应什么 port 呀!?』呵呵!很神奇吧!怎么一部主机上面有这么多的奇怪的 port 呢?这个 port 有什么作用呢?!
  由于每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,所以啰,当你的主机同时开启了 FTP 与 WWW 服务的时候,那么别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理,当然就不会搞乱啰!(注:嘿嘿!有些很少接触到网络的朋友,常常会问说:『咦!为什么你的计算机同时有 FTP、WWW、E-Mail 这么多服务,但是人家传资料过来,你的计算机怎么知道如何判断?计算机真的都不会误判吗?!』现在知道为什么了吗?!对啦!就是因为 port 不同嘛!你可以这样想啦,有一天,你要去银行存钱,那个银行就可以想成是『主机』,然后,银行当然不可能只有一种业务,里头就有相当多的窗口,那么你一进大门的时候,在门口的服务人员就会问你说:『嗨!你好呀!你要做些什么事?』你跟他说:『我要存钱呀!』,服务员接着就会告诉你:『喝!那么请前往三号窗口!那边的人员会帮您服务!』这个时候你总该不会往其它的窗口跑吧?! ^_^/"/"这些窗口就可以想成是『 port 』啰!所以啦!每一种服务都有特定的 port 在监听!您无须担心计算机会误判的问题呦!)
  · 每一个 TCP 联机都必须由一端(通常为 client <客户端>)发起请求,这个port 通常是随机选择大于1024 以上的 port 号来进行!其 TCP 封包会将(且只将) SYN 旗标设定起来!这是整个联机的第一个封包;
  · 如果另一端(通常为 Server <服务端> ) 接受这个请求的话(当然啰,特殊的服务需要以特殊的 port 来进行,例如 FTP 的 port 21 ),则会向请求端送回整个联机的第二个封包!其上除了 SYN 旗标之外同时还将 ACK 旗标也设定起来,并同时时在本机端建立资源以待联机之需;
  · 然后,请求端获得服务端第一个响应封包之后,必须再响应对方一个确认封包,此时封包只带 ACK 旗标(事实上﹐后继联机中的所有封包都必须带有 ACK 旗标)﹔
  · 只有当服务端收到请求端的确认( ACK )封包(也就是整个联机的第三个封包)之后﹐两端的联机才能正式建立。这就是所谓的 TCP 联机的/'三段式交握( Three-Way Handshake )/'的原理。
  经过三向交握之后,呵呵!你的 client 端的 port 通常是高于 1024 的随机取得的 port 至于主机端则视当时的服务是开启哪一个 port 而定,例如 WWW 选择 80 而 FTP 则以 21 为正常的联机信道!
  总而言之,我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念.工具提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。那么,如果攻击者使用软件扫描目标计算机,得到目标计算机打开的端口,也就了解了目标计算机提供了那些服务。我们都知道,提供服务就一定有服务软件的漏洞,根据这些,攻击者可以达到对目标计算机的初步了解。如果计算机的端口打开太多,而管理者不知道,那么,有两种情况:一种是提供了服务而管理者没有注意,比如安装IIS的时候,软件就会自动增加很多服务,而管理员可能没有注意到;一种是服务器被攻击者安装木马,通过特殊的端口进行通信。这两种情况都是很危险的,说到底,就是管理员不了解服务器提供的服务,减小了系统安全系数。

  第十个:什么是扫描 (希望大家主动提出想了解什么?)
  如果你的机子连入互联网,那么你就有被扫描的危险。这里要给大家介绍的就是:什么是扫描,为什么有人要扫描,以及有趣的秘密握手机制和不同的扫描技术。
  扫描一个系统或者一个网络,通常是为了发现这个被扫描的对象在提供哪些服务。扫描者可以分成两种类型,一种是“好人”:比如系统管理员和网络安全顾问,他们扫描的目的纯粹是外了找出系统的缺陷或漏洞,进而想办法弥补。当然另一类的就只能是“坏人”了,比如有“脚本小孩”或者更“坏”的,他们的目的是为了找出漏洞,进而实施攻击。
  扫描就象是去一栋公寓然后挨家敲门看谁在家。你是否在运行一个WEB服务器,或者邮件服务器、BIND、Telnet、FTP、RPC等等。这些问题的答案扫描都可以给出。遗憾的是,这些答案通常很明显的暴露在外,使得那些技术不是很高明的人可以轻而易举的进去“参观”。
  当然,我这里指的并非是那些极为高明,技术顶尖的黑客,我指的是那些只知道如何从网络上下载文件或收发EMAIL的大学生,当然中学生也不例外,他们通常被称为“脚本孩子”,因为他们并没有高深的技术知识作后盾,仅仅是通过运行别人写出的脚本程序来扫描或攻击别人的系统。 除了这些可以随意下载的脚本外,攻击者通常还会下载一个叫做端口扫描器的软件工具。这种工具较旧的比如有ISS,较新的则如NMAP2.54的BETA22.1等。如果攻击者可以在你的系统中找到一个明显的漏洞,那么完了,你的系统很快将会属于他了,而且,扫描并不犯法,它并不是抢劫,你还无处申诉。
  如今,“坏人”的扫描通常会遇到这样的问题,就是他们扫描过的系统往往会记录扫描行为所利用的每一个连接信息,或许扫描的人的确很浅薄,没有意识到在他们扫描过程中会在系统中留下“犯罪”的记录,但稍微留意的人都会想法抹除他们的犯罪记录。有很多方法可以达到这个目的。比如,许多黑客通过他预先攻击过的主机来扫描远程主机,这样,即使被扫描的主机记录了这一信息,逆向搜索的人能知道的也仅限于黑客预先攻击过的主机,真正的黑客信息并不能找到。这里介绍的秘密扫描就属于这样一种扫描方式,它使得逆向搜索变的更为困难,因为它的工作机制甚至不需要建立连接。
  为了理解什么是秘密扫描以及它的工作原理,你首先应该对TCP/IP数据包的内容以及TCP的秘密握手机制有所了解。除了携带发送和接收方的IP地址和端口号外,TCP的报头还包含一个序列号和一些起着特殊作用的标记位。这里仅提到其中的三个标记位:SYN,ACK和FIN。因为它们三个的作用与这里讨论的主题密切相关。
  当系统间彼此说“HELLO”或道“GOODBYE”时,就会用到所谓的握手机制。让我们先看看如何利用TCP/IP的握手机制来建立一个连接。本文中所提到的连接均指的是发生在两个IP地址间,有一定的端口号的连接。当你想网上冲浪,或者想TELNET到远程主机时,三次握手机制就会为你生成一个这样的连接。
  它的工作原理大致如下:握手的第一步,一台计算机首先请求和另外一台计算机建立连接,它通过发送一个SYN请求来完成,也即将前面提到的SYN标记位置位。消息的内容就象是说:“HI,听着,我想和你的机子端口X上的服务说话,咱们先同步一下,我用序列号Y来开始连接。” 端口X表示了连接的服务类型。至于哪些端口支持哪些类型的服务,可以参考UNIX下面的/etc/services文件。两台计算机间的每条信息都有一个由发送方产生的序列号,序列号的使用使得双方知道他们之间是同步的,而且还可以起到丢失信息时或接收顺序错误时发送警告信息的作用。
  握手的第二步,接收到SYN请求的计算机响应发送来的序列号,它会将ACK标记位置位,同时它也提供自己的序列号,这个做法类似于说:OH,亲爱的,我已经收到了你的号码,这是我的号码。
  到现在为止,发起连接建立请求的计算机认为连接已经建立起来,然而对方却并不这样认为,对方还要等到它自己的序列号有了应答后才能确认连接建立起来。因此现在的状态可以称为“半连接”。如果发起连接请求的计算机不对收到的序列号作出应答,那么这个连接就永远也建立不起来,而正因为没有建立连接,所以系统也不会对这次连接做任何记录。
  握手的第三步,发起连接请求的计算机对收到的序列号作出应答,这样,两台计算机之间的连接才算建立起来。
  两台计算机说”GOODBYE“时的握手情况与此类似:当一台计算机说没有更多的数据需要发送了,它发送一个FIN信号(将FIN标记位置位)通知另一端,接收到FIN的另一端计算机可能发送完了数据,也可能没发送完,但它会对此作出应答,而当它真正完成所有需要发送的数据后,它会再发送一个自己的FIN信号,等对方对此作出应答后,连接才彻底解除。
  FIN秘密扫描的工作原理就是向它的目的地一个根本不存在的连接发送FIN信息,如果这项服务没有开,那么目的地会响应一条错误信息,但如果是有这项服务,那么它将忽略这条消息。这样,扫描者的问题“你运行X吗”就有了答案,而且还不会在系统中有所记录。
  还有两种其他的扫描手段值得注意。一种叫做圣诞树扫描,因为,它将所有的标记位都置位(不仅仅是SYN,ACK,FIN);另一种叫做空扫描,因为所有的标记位都被复位。这些秘密的扫描行为将会根据接收端所运行的平台不同而产生不同的错误响应信息。
  现代的端口扫描工具,象NMAP就是利用这样的原理来检测在一个系统上有那些服务是开着的。NMAP不光是最著名的,同时也是最出色的端口扫描工具。它被系统管理人员和“坏人”们广泛的应用,有关NMAP的介绍,大家可以通过搜索引擎去查找相关的资料。 

  第十二个:什么是加壳和脱壳!
  加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东东。软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当你执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。所以,这些的工作只是在内存中运行的,是不可以了解具体是怎么样在内存中运行的。通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时候程序会过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程序被人跟踪调试,防止算法程序不想被别人静态分析。加密代码和数据,保护你的程序数据的完整性。不被修改或者窥视你程序的内幕。
  脱壳,是完全破除压缩后软件无法编辑的限制,去掉头部的解压缩指令,然后解压出加壳前的完整软件。这样,你就可以对其“动刀”了。呵呵~~当然是和加壳相反哟。从字面上也该明白了吧,我就不多说了~~
  
  第十三个:什么是代理服务器
  代理有很多种解释,而我们常常提到的代理,从计算机专业角度来说就是指代理服务器相关,针对syx-kn 的提问,我先把代理服务器向大家简单的介绍一下吧!!
  代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server (代理服务器)是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层。
  代理服务器(Proxy Server)就是个人网络和因特网服务商之间的中间代理机构,它负责转发合法的网络信息,并对转发进行控制和登记。在使用网络浏览器浏览网络信息的时候,如果使用代理服务器,浏览器就不是直接到Web服务器去取回网页,而是向代理服务器发出请求,由代理服务器取回浏览器所需要的信息。目前使用的因特网是一个典型的客户机/服务器结构,当用户的本地机与因特网连接时,通过本地机的客户程序比如浏览器或者软件下载工具发出请求,远端的服务器在接到请求之后响应请求并提供相应的服务。
  代理服务器处在客户机和服务器之间,对于远程服务器而言,代理服务器是客户机,它向服务器提出各种服务申请;对于客户机而言,代理服务器则是服务器,它接受客户机提出的申请并提供相应的服务。也就是说,客户机访问因特网时所发出的请求不再直接发送到远程服务器,而是被送到了代理服务器上,代理服务器再向远程的服务器提出相应的申请,接收远程服务器提供的数据并保存在自己的硬盘上,然后用这些数据对客户机提供相应的服务。
  讲了这么多,其实对于菜鸟们所提的代理,主要是应用,这里我再附加上设置代理服务器的方法:
  IE4.01:菜单栏“查看”-> 下拉菜单“Internet选项”-> 选项卡“连接”-> 在“代理服务器”一栏选中“通过代理服务器访问Internet”,输入地址和端口号。-> 确定。
  IE 5.0:菜单栏“工具”-> 下拉菜单“Internet选项”-> 选项卡“连接”-> 在“拨号设置”中选中您目前使用的连接,然后点击右侧的“设置”-> 在中间的“代理服务器”栏选中“使用代理服务器”-> 在“地址”和“端口”栏输入HTTP代理服务器地址和端口-> 确定 -> 确定。
  
  第十四个:什么是协议
  协议就是对计算机之间连接的信息格式、能被收/发双方接受的传送信息内容的一组定义。协议有“多层”结构,高层协议如IPX或TCP/IP负责点到点传送信息包,较低层协议提供专门的信息和命令允许系统操作。

  第十五个:什么是数据包
  “包”(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。有人说,局域网中传输的不是“帧”(Frame)吗?没错,但是TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。
  名词解释:OSI(Open System Interconnection,开放系统互联)模型是由国际标准化组织(ISO)定义的标准,它定义了一种分层体系结构,在其中的每一层定义了针对不同通信级别的协议。OSI模型有7层,17层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI模型在逻辑上可分为两个部分:低层的14层关注的是原始数据的传输;高层的57层关注的是网络下的应用程序。
  我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。
  “包”听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。比如在Windows 2000 Server中,把鼠标移动到任务栏右下角的网卡图标上(网卡需要接好双绞线、连入网络),就可以看到“发送:××包,收到:××包”的提示。通过数据包捕获软件,也可以将数据包捕获并加以分析。
(见:附件图)就是用数据包捕获软件Iris捕获到的数据包的界面图,在此,大家可以很清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。
  附:数据包的结构
  数据包的结构非常复杂,不是三言两语能够说清的,在这里我们主要了解一下它的关键构成就可以了,这对于理解TCP/IP协议的通信原理是非常重要的。数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成。
 数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。
  正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具有至关重要的意义。

  第十六个:什么是IPX
  IPX(Internetwork Packet eXchange‘网络报文分组交换’)是Novell公司用于Netware网络操作系统的通信协议。基于此协议可实现客户机/服务器模式的局域网,因此在局域网领域被广泛采用。随着Internet和Intranet的迅速发展,这种协议将被Internet的基本通信协议TCP/IP协议取代,因为采用TCP/IP协议可建立更加简单而统一的信息交换平台。

  第十七个:什么是Internet/Intranet
  Internet的计算机网络包括局域网(LAN)、城域网(MAN)以及大规模的广域网(WAN)等。这些网络通过普通电话线、高速率专用线路、卫星、微波和光缆等通信线路把不同国家的大学、公司、科研机构以及军事和政府等组织的网络连接起来。Internet网络互连采用的基本协议是TCP/IP。任何一个地方的任意一个Internet用户都可以从Internet中获得任何方面的信息,如自然、社会、政治、历史、科技、教育、卫生、娱乐、政治决策、金融、商业和天气预报等等。
  Intranet(内部网)指采用Internet技术建立的企业内部专用网络。它以TCP/IP协议作为基础,以Web为核心应用,构成统一各便利的信息交换平台。Intranet可实现的功能极为广泛和强大。

  第十七个:什么是IRC(Internet转播交谈)?
  IRC(Internet Relay Chat)是一种基于Internet的通信协议,经过十年的发展,目前世界上有超过60个国家提供了IRC的服务。在人气最旺的EFnet上,您可以看到上万的使用者在同一时间使用IRC。IRC采用客户机/服务器模式, 它能使Internet用户实时地与其他用户交谈,每个用户通过客户端程序与远程主机建立连接,远程主机接受多个来自客户端程序的连接,并实现多个用户之间的实时通话。在海湾战争期间,IRC受到了全世界的关注。当时以色列特拉维夫的居民们在空袭期间通过IRC方式,向世界各地的听众现场描述所发生的事件。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以 IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为///"Channel///"(频道)的地方 就某一话题进行交谈或密谈。每个IRC的使用者都有一个Nickname(昵称),所有的沟通就在他们所在的Channel内以不同的Nickname进行交谈。
IRC工具中国际上比较好用的是英文的mirc,在国内,比较好用的是中文的Chatkey。你可以到有关的网站下载。mirc的网址为:http://www.mirc.com (英文),Chatkey的网址是: http://www.chatkey.com (中文)。这里以中文的Chatkey为例,带你玩转IRC。

  第十八个:什么是Ping
 Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,曾经Yahoo就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据包而瘫痪的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议),如果一切正常,你应能得到4个回送应答。
Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time To Live存在时间)值,你可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。
  通过Ping检测网络故障的典型次序
正常情况下,当你使用Ping命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:
  ping 127.0.0.1--这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。
  ping 本机IP--这个命令被送到你计算机所配置的IP地址,你的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。
  ping 局域网内其他IP--这个命令应该离开你的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。
  ping 网关IP--这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。
  ping 远程IP--如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。
  ping localhost--localhost是个作系统的网络保留名,它是127.0.0.1的别名,每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。
  ping www.yahoo.com--对这个域名执行Ping命...是通过DNS服务器 如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:你也可以利用该命令实现域名对IP地址的转换功能。
如果上面所列出的所有Ping命令都能正常运行,那么你对你的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示你所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。
  Ping命令的常用参数选项
  ping IP -t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
  ping IP -l 2000--指定Ping命令中的数据长度为2000字节,而不是缺省的32字节。
  ping IP -n--执行特定次数的Ping命令。

  第二十个:什么是系统的进程
  下面针对hejb的提问,我先让朋友们了解一下在任务管理器里的进程。其实在谈到进程时,还要涉及到线程的概念。 进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。
那进程与线程的区别到底是什么?进程是执行程序的实例。例如,当你运行记事本程序(Nodepad)时,你就创建了一个用来容纳组成Notepad.exe的代码及其所需调用动态链接库的进程。每个进程均运行在其专用且受保护的地址空间内。因此,如果你同时运行记事本的两个拷贝,该程序正在使用的数据在各自实例中是彼此独立的。在记事本的一个拷贝中将无法看到该程序的第二个实例打开的数据。
  我这里以沙箱为例进行阐述。一个进程就好比一个沙箱。线程就如同沙箱中的孩子们。孩子们在沙箱子中跑来跑去,并且可能将沙子攘到别的孩子眼中,他们会互相踢打或撕咬。但是,这些沙箱略有不同之处就在于每个沙箱完全由墙壁和顶棚封闭起来,无论箱中的孩子如何狠命地攘沙,他们也不会影响到其它沙箱中的其他孩子。因此,每个进程就象一个被保护起来的沙箱。未经许可,无人可以进出。
  实际上线程运行而进程不运行。两个进程彼此获得专用数据或内存的唯一途径就是通过协议来共享内存块。这是一种协作策略。下面让我们分析一下任务管理器里的进程选项卡。
这里的进程是指一系列进程,这些进程是由它们所运行的可执行程序实例来识别的,这就是进程选项卡中的第一列给出了映射名称的原因。请注意,这里并没有进程名称列。进程并不拥有独立于其所归属实例的映射名称。换言之,如果你运行5个记事本拷贝,你将会看到5个称为Notepad.exe的进程。它们是如何彼此区别的呢?其中一种方式是通过它们的进程ID,因为每个进程都拥有其独一无二的编码。该进程ID由Windows NT或Windows 2000生成,并可以循环使用。因此,进程ID将不会越编越大,它们能够得到循环利用。

  第三列是被进程中的线程所占用的CPU时间百分比。它不是CPU的编号,而是被进程占用的CPU时间百分比。此时我的系统基本上是空闲的。尽管系统看上去每一秒左右都只使用一小部分CPU时间,但该系统空闲进程仍旧耗用了大约99%的CPU时间。

  第四列,CPU时间,是CPU被进程中的线程累计占用的小时、分钟及秒数。请注意,我对进程中的线程使用占用一词。这并不一定意味着那就是进程已耗用的CPU时间总和,因为,如我们一会儿将看到的,NT计时的方式是,当特定的时钟间隔激发时,无论谁恰巧处于当前的线程中,它都将计算到CPU周期之内。通常情况下,在大多数NT系统中,时钟以10毫秒的间隔运行。每10毫秒NT的心脏就跳动一下。有一些驱动程序代码片段运行并显示谁是当前的线程。让我们将CPU时间的最后10毫秒记在它的帐上。因此,如果一个线程开始运行,并在持续运行8毫秒后完成,接着,第二个线程开始运行并持续了2毫秒,这时,时钟激发,请猜一猜这整整10毫秒的时钟周期到底记在了哪个线程的帐上?答案是第二个线程。因此,NT中存在一些固有的不准确性,而NT恰是以这种方式进行计时,实际情况也如是,大多数32位操作系统中都存在一个基于间隔的计时机制。请记住这一点,因为,有时当你观察线程所耗用的CPU总和时,会出现尽管该线程或许看上去已运行过数十万次,但其CPU时间占用量却可能是零或非常短暂的现象,那么,上述解释便是原因所在。上述也就是我们在任务管理器的进程选项卡中所能看到的基本信息列。


  说到这里,我想大家对进程有一定的认识了吧,最后我对平时见到的各进程项细述一下,有哪些是能关的,有哪些是不能关的........
    ***********************************************************************************
  最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):
  smss.exe Session Manager
  csrss.exe 子系统服务器进程
  winlogon.exe 管理用户登录
  services.exe 包含很多系统服务
  lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务)
  产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)
  svchost.exe 包含很多系统服务
  svchost.exe
  SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)
  explorer.exe 资源管理器
  internat.exe 托盘区的拼音图标
  附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):
  mstask.exe 允许程序在指定时间运行。(系统服务)
  regsvc.exe 允许远程注册表操作。(系统服务)
  winmgmt.exe 提供系统管理信息(系统服务)。
  inetinfo.exe 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)
  tlntsvr.exe 允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)
  允许通过 Internet 信息服务的管理单元管理 Web 和 FTP 服务。(系统服务)
  tftpd.exe 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)
  termsrv.exe 提供多会话环境允许客户端设备访问虚拟的 Windows 2000 Professional 桌面会话以及运行在服务器上的基于 Windows 的程序。(系统服务)
  dns.exe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)
  以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉
  tcpsvcs.exe 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系统服务)
  支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系统服务)
  ismserv.exe 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)
  ups.exe 管理连接到计算机的不间断电源(UPS)。(系统服务)
  wins.exe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)
  llssrv.exe License Logging Service(system service)
  ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。(系统服务)
  RsSub.exe 控制用来远程储存数据的媒体。(系统服务)
  locator.exe 管理 RPC 名称服务数据库。(系统服务)
  lserver.exe 注册客户端许可证。(系统服务)
  dfssvc.exe 管理分布于局域网或广域网的逻辑卷。(系统服务)
  clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)
  msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)
  faxsvc.exe 帮助您发送和接收传真。(系统服务)
  cisvc.exe Indexing Service(system service)
  dmadmin.exe 磁盘管理请求的系统管理服务。(系统服务)
  mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)
  netdde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)
  smlogsvc.exe 配置性能日志和警报。(系统服务)
  rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)
  RsEng.exe 协调用来储存不常用数据的服务和管理工具。(系统服务)
  RsFsa.exe 管理远程储存的文件的操作。(系统服务)
  grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间。(系统服务)
  SCardSvr.exe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)
  snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)
  snmptrap.exe 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序。(系统服务)
  UtilMan.exe 从一个窗口中启动和配置辅助工具。(系统服务)
  msiexec.exe 依据 .MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)
 
  详细说明:
  win2k运行进程
  Svchost.exe
  Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位
在系统的%systemroot%//system32文件夹下。在启动的时候,Svchost.exe检查注册表中的位置来构建需要
加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务,
以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。
  Svchost.exe 组是用下面的注册表值来识别。

  HKEY_LOCAL_MACHINE//Software//Microsoft//Windows NT//CurrentVersion//Svchost
每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的
例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一个
或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值。
HKEY_LOCAL_MACHINE//System//CurrentControlSet//Services//Service

  更多的信息
  为了能看到正在运行在Svchost列表中的服务。
  开始-运行-敲入cmd
  然后在敲入 tlist -s (tlist 应该是win2k工具箱里的冬冬)
  Tlist 显示一个活动进程的列表。开关 -s 显示在每个进程中的活动服务列表。如果想知道更多的关于
  进程的信息,可以敲 tlist pid。

Tlist 显示Svchost.exe运行的两个例子。
0 System Process
8 System
132 smss.exe
160 csrss.exe Title:
180 winlogon.exe Title: NetDDE Agent
208services.exe
Svcs: AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,LanmanWorkstation,LmHosts,Messenger,PlugPlay,
ProtectedStorage,seclogon,TrkWks,W32Time,Wmi
220 lsass.exe Svcs: Netlogon,PolicyAgent,SamSs
404 svchost.exe Svcs: RpcSs
452 spoolsv.exe Svcs: Spooler
544 cisvc.exe Svcs: cisvc
556 svchost.exe Svcs: EventSystem,Netman,NtmsSvc,RasMan,SENS,TapiSrv
580 regsvc.exe Svcs: RemoteRegistry
596 mstask.exe Svcs: Schedule
660 snmp.exe Svcs: SNMP
728 winmgmt.exe Svcs: WinMgmt
852 cidaemon.exe Title: OleMainThreadWndName
812 explorer.exe Title: Program Manager
1032 OSA.EXE Title: Reminder
1300 cmd.exe Title: D://WINNT5//System32//cmd.exe - tlist -s
1080 MAPISP32.EXE Title: WMS Idle
1264 rundll32.exe Title:
1000 mmc.exe Title: Device Manager
1144 tlist.exe
在这个例子中注册表设置了两个组。
HKEY_LOCAL_MACHINE//Software//Microsoft//Windows NT//CurrentVersion//Svchost:
netsvcs: Reg_Multi_SZ: EventSystem Ias Iprip Irmon Netman Nwsapagent Rasauto Rasman Remoteaccess SENS Sharedaccess
Tapisrv Ntmssvc
rpcss :Reg_Multi_SZ: RpcSs

smss.exe

csrss.exe

  这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统必须一直运。csrss 负责控制windows,创建或者删除线程和一些16位的虚拟MS-DOS环境。
  explorer.exe
  这是一个用户的shell(我实在是不知道怎么翻译shell),在我们看起来就像任务条,桌面等等。这个进程并不是像你想象的那样是作为一个重要的进程运行在windows中,你可以从任务管理器中停掉它,或者重新启动。
通常不会对系统产生什么负面影响。
  internat.exe
  这个进程是可以从任务管理器中关掉的。
internat.exe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置HKEY_USERS//.DEFAULT//Keyboard Layout//Preload 加载内容的。internat.exe 加载“EN”图标进入系统的图标区,允许使用者可以很容易的转换不同的输入点。当进程停掉的时候,图标就会消失,但是输入点仍然可以通过控制面板来改变。
  lsass.exe
这个进程是不可以从任务管理器中关掉的。
这是一个本地的安全授权服务,并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是通过使用授权的包,例如默认的msgina.dll来执行的。如果授权是成功的,lsass就会产生用户的进入令牌,令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。
  mstask.exe
  这个进程是不可以从任务管理器中关掉的。这是一个任务调度服务,负责用户事先决定在某一时间运行的任务的运行
  smss.exe
  这个进程是不可以从任务管理器中关掉的。这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,包括已经正在运行的Winlogon,Win32(Csrss.exe)线程和设定的系统变量作出反映。在它启动这些进程后,它等待Winlogon或者Csrss结束。如果这些过程时正常的,系统就关掉了。如果发生了什么不可预料的事情,smss.exe就会让系统停止响应(就是挂起)。
  spoolsv.exe
  这个进程是不可以从任务管理器中关掉的。缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
  service.exe
  这个进程是不可以从任务管理器中关掉的。大多数的系统核心模式进程是作为系统进程在运行。
  System Idle Process
  这个进程是不可以从任务管理器中关掉的。这个进程是作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。
  winlogon.exe
  这个进程是管理用户登录和推出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框。
  winmgmt.exe
  winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化
  taskmagr.exe
  这个进程当然就是任务管理器了.不要忘哟.

  第二十一:TCP/IP协议介绍
  TCP/IP的通讯协议
  这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。
  TCP/IP整体构架概述
  TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:
  应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
  传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
  互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
  网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
  TCP/IP中的协议
  以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:
  1. IP
  网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
  IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
  高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
  2. TCP
  如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
  TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
  面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
  3.UDP
  UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。
  欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。
  4.ICMP
  ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
  5. TCP和UDP的端口结构
  TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
  两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:
  源IP地址---发送包的IP地址。
  目的IP地址---接收包的IP地址。
  源端口---源系统上的连接的端口。
  目的端口---目的系统上的连接的端口。
  端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。

  第二十二个:什么是Sniffer
  现在人们谈到黑客攻击,一般所指的都是以主动方式进行的,例如利用漏洞或者猜测系统密码的方式对系统进行攻击。但是其实还有一类危害非常大的被动攻击方式往往为大家所忽视,那就是利用Sniffer进行嗅探攻击。Sniffer,中文可以翻译为嗅探器,是一种威胁性极大的被动攻击工具。使用这种工具,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。黑客们常常用它来截获用户的口令。据说某个骨干网络的路由器曾经被黑客攻人,并嗅探到大量的用户口令。本文将详细介绍Sniffer的原理和应用。
  一、Sniffer 原理
  1.网络技术与设备简介
  在讲述Sni计er的概念之前,首先需要讲述局域网设备的一些基本概念。
数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。
  每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。
  2.网络监听原理
  Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。
  普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备Bpfilter,而且需要root权限来运行这种程序,所以sniffer需要root身份安装,如果只是以本地用户的身份进人了系统,那么不可能唤探到root的密码,因为不能运行Sniffer。
  基于Sniffer这样的模式,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。
  3 Snifffer的分类
  Sniffer分为软件和硬件两种,软件的Sniffer有 NetXray、Packetboy、Net monitor等,其优点是物美价廉,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer通常称为协议分析仪,一般都是商业性的,价格也比较贵。
  实际上本文中所讲的Sniffer指的是软件。它把包抓取下来,然后打开并查看其中的内容,可以得到密码等。Sniffer只能抓取一个物理网段内的包,就是说,你和监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。
  4.网络监听的目的
  当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一网段上的其他主机时,他就会在这台主机上安装Sniffer软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个LOg文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。一旦黑客截获得了某台主机的密码,他就会立刻进人这台主机。
  如果Sniffer运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。
  Sniffer属于第M层次的攻击。就是说,只有在攻击者已经进入了目标系统的情况下,才能使用Sniffer这种攻击手段,以便得到更多的信息。
  Sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。Sniffer几乎能得到任何在以太网上传送的数据包。
  Sniffer是一种比较复杂的攻击手段,一般只有黑客老手才有能力使用它,而对于一个网络新手来说,即使在一台主机上成功地编译并运行了Sniffer,一般也不会得到什么有用的信息,因为通常网络上的信息流量是相当大的,如果不加选择地接收所有的包,然后从中找到所需要的信息非常困难;而且,如果长时间进行监听,还有可能把放置Sniffer的机器的硬盘撑爆。
  5.一个简单的Sniffer程序
  下面是一个非常简单的C程序,它可以完成一般的监听功能,/* */中的内容是本文的注解。
  /*下面是包含进行调用系统和网络函数的头文件*/
#include〈stdio.h〉
#include〈sys/socket.h〉
#include〈netinet/in.h〉
#include〈arpa/inet.h〉
/*下面是IP和TCP包头结构*/
struct IP{
unsigned int ip_length:4;
/*定义IP头的长度*/
unsigned int ip_version:4;
/*IP版本,Ipv4 */
unsigned char ip_tos;
/*服务类型*/
unsigned short
ip_total_length; /*IP数据包的总长度*/
unsigned short ip_id;
/*鉴定城*/
unsigned short ip_flags;
/*IP 标志 */
unsigned char ip_ttl;
/*IP 包的存活期*/
unsigned char ip_protocol;
/*IP 上层的协议*/
unsigned short ip_cksum;
/*IP头校验和*/
unsigned int ip_source ;
/*源IP地址*/
unsigned int ip_source;
/*目的IP地址*/
};
struct tcp{
unsigned short tcp_source_port;
/*定义TCP源端口*
unsigned short tcp_dest_port;
/*TCP目的端口*/
unsigned short tcp_seqno;
/*TC P序列号*/
unsigned int tcp_ackno;
/*发送者期望的下一个序列号*/
unsigned int tcp_res1:4;
/*下面几个是TCP标志*/
tcp_hlen:4
tcp_fin:1,
tcp_syn:1,
tcp_rst:1,
tcp_psh:1,
tcp_ack:1,
tcp_urg:1,
tcp_res2:2;
unsignd short tcp_winsize; /*能接收的最大字节数*/
unsigned short tcp_cksum;
/* TCP校验和*/
unsigned short tcp_urgent;
/* 紧急事件标志*/
};
/*主函数*/
int main()
{
int sock,bytes_recieved,fromlen;
char buffer[65535];
struct sockaddr_in from;
/*定义socket结构*/
struct ip ip;
/*定义IP和TCP*/
struct tcp *tcp;
sock=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
/* 上面是建立socket连接,第一个参数是地址族类型,用INTERNET类型*/
/* 第二个参数是socket类型,这里用了SOCK_RAW,它可以绕过传输层*/
/* 直接访问IP层的包,为了调用SOCK_RAW,需要有root权限*/
/* 第三个参数是协议,选IPPROTO_TCP指定了接收TCP层的内容*/
while(1)
/*建立一个死循环,不停的接收网络信息*/
{
fromlen=sizeof from;
bytes_recieved=recvfrom(sock,buffer,sizeofbuffer,0,(struct sockaddr *)&from,&fromlen);
/*上面这个函数是从建立的socket连接中接收数据*/
/*因为recvfrom()需要一个sockaddr数据类型,所以我们用了一个强制类型转换*/
print(/"//nBytes received ::: %5d//n/",bytes_recieved);
/*显示出接收的数据字节数*/
printf(/"source address ::: %s//n/",inet_ntoa(from.sin_addr));
/*显示出源地址*/
ip=(struct ip *)buffer;
/*把接收的数据转化为我们预先定义的结构,便于查看*/
printf(/"IP header length ::: %d//n/",ip->ip_length);
/*显示IP头的长度*/
print(/"Protocol ::: %d//n/",ip->ip_protocol);
/*显示协议类型,6是TCP,17是UDP*/
tcp=(struct tcp *)(buffer + (4*ip->ip_iplength));
/*上面这名需要详细解释一下,因为接收的包头数据中,IP头的大小是固定的4字节*/
/*所以我用IP长度乘以4,指向TCP头部分*/
printf(/"Source port ::: %d//n/",ntohs(tcp->tcp_source_port); /*显示出端口*/
printf(/"Dest prot ::: %d//n/",ntohs(tcp->tcp_dest_port));/*显示出目标端口*/
以上这个C程序是为了说明Sniffer的接收原理而列举的一个最简单的例子,它只是完成了Sniffer的接收功能,在运行它之前,我们还需要手工把同卡设为混杂模式,在root权限下用如下命令设置:
ifconfig eth0 promisc
假设etho是你的以太网设备接口,然后运行编译好的程序,就可以看到接收的数据包了。
这个程序虽然简单,但是它说明了Sniffer的基本原理,就是先把同卡设备设为混杂模式,然后直接接收IP层的数据。
当然这个程序的功能也太简单,只能显示源地址、目标地址和源端口、目标端口等极为简单的信息,这对于黑客来说是没有什么用处的,黑客要的是密码之类的信息,这可以使用一些免费的Sniffer程序来完成。
想了解更全面的Sniffer知识,请进入这个页面:http://www.cn90.net/viewthread.php?tid=2358&pid=10814

  第二十三个:什么是PID值
  针对5minglei 的提问,我真是不好回答,因为PID有很多解释,其中之一是: PID是比例(p)+积分(I)+微分(D)控制程序但是你说的是PID值,我猜你是不是指进程里的PID项呢? 如果是这样的话,其实PID一列代表了各进程的进程ID,也就是说,PID就是各进程的身份标识.
  呵~~本来我还想多说点,可是下班了,没时间了,不写了,这样吧,我拿出(部分)进程的编程源码大家参考一下吧
创建新进程:fork函数
#include
#include
pid_t fork(void);
‘fork()’函数用于从已存在进程中创建一个新进程。新进程称为子进程,而原进程称为父进程。你可以通过检查‘fork()’函数的返回值知道哪个是父进程,哪个是子进程。父进程得到的返回值是子进程的进程号,而子进程则返回0。以下这个范例程序说明它的基本功能:
pid_t pid;
switch (pid = fork())
{
case -1:
/* 这里pid为-1,fork函数失败 */
/* 一些可能的原因是 */
/* 进程数或虚拟内存用尽 */
perror(/"The fork failed!/");
break;
case 0:
/* pid为0,子进程 */
/* 这里,我们是孩子,要做什么? */
/* ... */
/* 但是做完后, 我们需要做类似下面: */
_exit(0);
default:
/* pid大于0,为父进程得到的子进程号 */
printf(/"Child/'s pid is %d//n/",pid);
}
当然,有人可以用‘if() ... else ...’语句取代‘switch()’语句,但是上面的形式是
一个有用的惯用方法。

  第二十四个:什么是主机、服务器、空间?他们的区别是什么?
  街街的提问,由于我现在时间有限,我作一下简单的解答,希望你能理解~~
  主机一般是指个人使用的电脑PC机。而在专业术语中,主机仅是电脑的一部分。而我们常说的主机却往往代表整个电脑,你目前理解为这个也行。。。
  服务器一般是指用于专业用的电脑PC机,在实质上,服务器和主机没有什么意义上的区别。主机如果做为服务器也是可以的,服务器也可以当个人主机用。
然而我们平时要做为真正的服务器来使用时(一般是企业)。服务器的硬件要求要比普通的个人PC要求要高的多。比如WEB服务器,要24小时不能离线。所以在散热,耐热等方面就比普通PC要高很多。
  至于空间,就是能通过网络访问到的计计算机磁盘空间,我们一般是指WEB服务器空间。如果你的主机有固定的IP地址。也能24在线,那么你的硬盘也是可以作为空间使用的,当然,还是需要进行一系列的服务器配置,别人才能访问的到的~~

  互联网上缩略词简编
名 称 释 意
ANSI(American National Standards Institute) 美国国家标准学会。
APNA-CC(Asian Pacific Networking Group-Chinese Characters) 亚太地区网络-中文分组。
ARPANET(Advanced Research Projects Agency NETwork) (美国国防部)高级研究规划局网络。
ASCII(American Standard Code for InFORMation Interchange) 美国信息交换标准代码。
BBS(Bulletin Board System) 布告栏系统。
BITNET(Because IT/'s TimeNETwork) “因为正适时宜”网。
CANET(China Academic NETwork) 中国学术网。
CCITT(Consultative Committee on International Telephone and Telegraph) 国际电话电报咨询委员会。
CERN(European Naclear Research Center) 欧洲核研究中心。
CERNET(China Educational and Research NETwork) 中国教育与科研网。
CGI(Connon Gateway Interface): 公共网关接口
CNTDR(Clearinghouse for Networked InFORMatoin Discovery and Retrieval) (美国)网络信息开发和检索交换中心。
DNS:(Domaim Name system) 域名服务系统
FAQ(Frequently Asked Questions) 常问问题。
FTP:(File Transfer Protocol) 文件传输协议
HTML(Hypertext Markup Language ) 超文本置标语言
HTTP:(Hypertext Transfer Protocol) 超文本传输协议
IRC(Internet Relay Chat) 网络中继聊天
IAB(Internet Architecture Borad) 国际互联网网络体系技术委员会。
InterNIC(Internet Network InFORMation Center) 国际互联网网络信息中心。
LAN(Local Area Network) 局域网。
MILNET(Military NETwork) 军用网、军事网。
NIC(Network InFORMation Center) 网络信息中心。
PCMCIA(Personal Computer Memory Card International) 国际个人计算机存储卡协会
PPP(Point to Point Protocol ) 点对点通信协议
SLIP(Serial Line internet Protocol) 串行线Internet协议
SMTP(Simple Mail Transfer Protocol) 简易电子邮件传送协议。
TCP(Transmission Control Protocol) 传输控制协议。
URL(UniFORM Resource Locator) 通用资源定位器。
VRML(Virtual Reality Modeling Language) 虚拟现实建模语言
WAIS(Wide Area InFORMation Server) 广域信息服务站
WAN(Wide Area Net ) 广域网
WWW(World Wide Web) 万维网

  第二十五个:什么是 RPC ?
  远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。

  第二十六个:什么是域名
  Internet是一个信息的海洋,但这些信息存放在什么地方呢?,实际上,这些信息是存放在世界各地称为“站点”的计算机上,各个站点由拥有该站点的单位维护,上面的信息即是由维护该站点的单位发布,这些信息也称为“网页”。
  为了区别各个站点,必须为每个站点分配一个唯一的地址,这个地址即称为“IP地址”,IP地址也称为URL(Unique Resource Location,中文意义为“统一资源定位符”),IP地址由四个从0到255之间的数字组成,如202.116.0.54,但这些数字比较难记,所以有人发明了一种新方法来代替这种数字,即“域名”地址,域名由几个英文单词组成,如www.jnu.edu.cn 具有一定的意义,其中cn代表中国(China),edu代表教育网(education),jnu代表暨南大学(JiNan University),www代表全球网(或称万维网,World Wide Wed),整个域名合起来就代表中国教育网上的暨南大学站点。
  域名地址和用数字表示的IP地址实际上是同一个东西,只是外表上不同而已,在访问一个站点的时候,您可以输入这个站点用数字表示的IP地址,也可以输入它的域名地址,这里就存在一个域名地址和对应的IP地址相转换的问题,这些信息实际上是存放在ISP中称为域名服务器(DNS)的计算机上,当您输入一个域名地址时,域名服务器就会搜索其对应的IP地址,然后访问到该地址所表示的站点。站点地址可以在有关计算机的杂志、报纸和书籍上找到,在Internet上有更多站点地址的信息。从现在开始您就可以搜集一些您感兴趣的站点域名地址了。
  Internet的域名系统是为方便解释机器的IP地址而设立的。域名系统采用层次结构,按地理域或机构域进行分层。书写中采用圆点将各个层次隔开,分成层次字段。在机器的地址表示中,从右到左依次为最高域名段、次高域名段等,最左的一个字段为主机名。例如,在bbs.jnu.edu.cn中,最高域名为cn,次高域名edu为,最后一个域为jnu,主机名为bbs。

  第二十七个:DMA是什么
  当我们向计算机中加入了一块新的声卡或其它适配卡时,安装程序可能会提醒我们应该选择一个DMA通道。那DMA是什么呢?
  DMA(Direct Memory Access) ,即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。DMA技术的重要性在于,利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。
  利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。
  计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。要从适配卡到内存传送数据,DMA同时触发从适配卡读数据总线(即I/O读操作)和向内存写数据的总线。激活I/O读操作就是让适配卡把一个数据单位(通常是一个字节或一个字)放到PC数据总线上,因为此时内存写总线也被激活,数据就被同时从PC总线上拷贝到内存中。对于每一次写操作,DMA控制器都控制地址总线,通知应将数据写到哪段内存中去。
  DMA控制数据从内存传送到适配卡的方法与上面类似。对每一个要传送的单位数据,DMA控制器激活读内存和I/O写操作的总线。内存地址被放到地址总线上,像从适配卡到内存传送数据一样,以数据总线为通道,数据从源地址直接传送到目的地址。
  DMA从DMA请求线(DREQ)上接收DMA请求,正像中断控制器从中断请求线(IRQ)上接收中断请求一样。一个典型的从适配卡到内存的数据传送是这样进行的,首先,对DMA控制器编程,写入数据要到达的内存地址和要传送的字节数。适配器可以开始传送数据时,它将激活DREQ线,与DMA控制器连通。DMA控制器在与CPU取得总线控制权后,输出内存地址,发送控制信号,使得一个字节或一个字从适配器读出并写入相应内存中,然后更新内存地址,指向下一个字节(或字)要写入的地址,重复上面的操作,直至数据传送完毕。对控制器进行不同编程,就可以实现单字节传送(即每传送一个字节都要求一个DREQ信号)或块数据传送(即全部数据传送只需要一个DREQ信号)。
  如果你要往计算机中插一块适配卡,而且适配卡使用DMA,通常安装程序会让你选择一个DMA通道,设定DIP开关或跳线,来为相应适配器设置DMA通道。尽管从理论上讲,只要不是同时使用DREQ线,不同的适配卡可以共享这条线的,但是按常规,我们最好为每个适配卡单独安排一个DMA通道,这样就可以保证不会发生DMA冲突。附表是DMA的缺省分配情况。
  通道   功能   通道   功能
   O   空闲    4   用于级联DMA控制器
   1   空闲    5   空闲
   2   软盘    6   空闲
   3   空闲    7   空闲
  从中可以看出,DMA通道2和4已被占用,在大多数微机上,通道1、3、5、6和7可由你任意分配。我们平时最好对自己的计算机上DMA通道的分配情况记录下来,以免我们向计算机增加新硬件时出现两个适配卡共用一个通道,导致冲突。 (06.20/17:25)

  第二十八个:IRQ是什么
  IRQ就是一个中断,通过中断,外设可以取得CPU的处理时间。下表表示了通常的NT系统中的IRQ设置。
中断级别  通常用途  说明
 0     时钟  
 1     键盘  
 2    与IRQ9级连  
 3    COM2或COM4  
 4    COM1或COM3  
 5     LPT2   因为许多用户没有第二个并行口,因此它常常空闲,声卡可以使用此中断
 6    软盘控制器  
 7     LPT1   声卡可以使用此中断
 8    实时时钟  
 9    与IRQ 2级连 直接与2相连,有时通知软件9时意味着2
 10    未使用   通常用于网卡
 11    未使用   由SCSI控制器使用
 12    PS/2,  总线鼠标 如果用户没有PS/2或总线鼠标,此中断空闲
 13    协处理器  通知CPU协处理器错误
 14    硬盘控制器  如果用户未使用IDE硬盘,可以将它用于其它设备
 15    有些计算机将此中断分配为第二个IDE控制器 I如果用户未使用第二个IDE硬盘控制器,可以将它用于其它设备

  什么是木马~!
  特洛伊木马(以下简称木马),英文叫做“Trojan house”,其名称取自希腊神话的特洛伊木马记。
  它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。
  所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件,修改注册表,控制鼠标,键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。
  从木马的发展来看,基本上可以分为两个阶段。
  最初网络还处于以UNIX平台为主的时期,木马就产生了,当时的木马程序的功能相对简单,往往是将一段程序嵌入到系统文件中,用跳转指令来执行一些木马的功能,在这个时期木马的设计者和使用者大都是些技术人员,必须具备相当的网络和编程知识。
  而后随着WINDOWS平台的日益普及,一些基于图形操作的木马程序出现了,用户界面的改善,使使用者不用懂太多的专业知识就可以熟练的操作木马,相对的木马入侵事件也频繁出现,而且由于这个时期木马的功能已日趋完善,因此对服务端的破坏也更大了。所以所木马发展到今天,已经无所不用其极,一旦被木马控制,你的电脑将毫无秘密可言。
  鉴于木马的巨大危害性,我们将分原理篇,防御与反击篇,资料篇三部分来详细介绍木马,希望大家对特洛伊木马这种攻击手段有一个透彻的了解。
  原 理 篇
  基础知识
  在介绍木马的原理之前有一些木马构成的基础知识我们要事先加以说明,因为下面有很多地方会提到这些内容。
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。
  (1)硬件部分:建立木马连接所必须的硬件实体。 控制端:对服务端进行远程控制的一方。 服务端:被控制端远程控制的一方。 INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。
  (2)软件部分:实现远程控制所必须的软件程序。 控制端程序:控制端用以远程控制服务端的程序。 木马程序:潜入服务端内部,获取其操作权限的程序。 木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。
  (3)具体连接部分:通过INTERNET在服务端和控制端之间建立一条木马通道所必须的元素。 控制端IP,服务端IP:即控制端,服务端的网络地址,也是木马进行数据传输的目的地。 控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马程序。
  木马原理
  用木马这种黑客工具进行网络入侵,从过程上看大致可分为六步(具体可见下图),下面我们就按这六步来详细阐述木马的      攻击原理。
  一.配置木马
  一般来说一个设计成熟的木马都有木马配置程序,从具体的配置内容看,主要是为了实现以下两方 面功能:
  (1)木马伪装:木马配置程序为了在服务端尽可能的好的隐藏木马,会采用多种伪装手段,如修改图标 ,捆绑文件,定制端口,自我销毁等,我们将在“传播木马”这一节中详细介绍。
  (2)信息反馈:木马配置程序将就信息反馈的方式或地址进行设置,如设置信息反馈的邮件地址,IRC号 ,ICO号等等,具体的我们将在“信息反馈”这一节中详细介绍。
  二.传播木马
  (1)传播方式:
  木马的传播方式主要有两种:一种是通过E-MAIL,控制端将木马程序以附件的形式夹在邮件中发送出 去, 收信人只要打开附件系统就会感染木马;另一种是软件下载,一些非正规的网站以提供软件下载为 名义, 将木马捆绑在软件安装程序上,下载后,只要一运行这些程序,木马就会自动安装。
  (2)伪装方式:
  鉴于木马的危害性,很多人对木马知识还是有一定了解的,这对木马的传播起了一定的抑制作用,这 是木马设计者所不愿见到的,因此他们开发了多种功能来伪装木马,以达到降低用户警觉,欺骗用户的目 的。
  (一)修改图标
  当你在E-MAIL的附件中看到这个图标时,是否会认为这是个文本文件呢?但是我不得不告 诉你,这也有可能是个木马程序,现在 已经有木马可以将木马服务端程序的图标改成HTML,TXT, ZIP等各种文件的图标,这有相当大的迷 惑性,但是目前提供这种功能的木马还不多见,并且这种 伪装也不是无懈可击的,所以不必整天提 心吊胆,疑神疑鬼的。
  (二)捆绑文件
  这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的 情况下 ,偷偷的进入了系统。至于被捆绑的文件一般是可执行文件(即EXE,COM一类的文件)。
  (三)出错显示
  有一定木马知识的人都知道,如果打开一个文件,没有任何反应,这很可能就是个木马程序, 木马的 设计者也意识到了这个缺陷,所以已经有木马提供了一个叫做出错显示的功能。当服务 端用户打开木 马程序时,会弹出一个如下图所示的错误提示框(这当然是假的),错误内容可自由 定义,大多会定制成 一些诸如“文件已破坏,无法打开的!”之类的信息,当服务端用户信以 为真时,木马却悄悄侵入了 系统。
  (四)定制端口
  很多老式的木马端口都是固定的,这给判断是否感染了木马带来了方便,只要查一下特定的 端口就 知道感染了什么木马,所以现在很多新式的木马都加入了定制端口的功能,控制端用户可 以在1024---65535之间任选一个端口作为木马端口(一般不选1024以下的端口),这样就给判断 所感染木马类型带 来了麻烦。
  (五)自我销毁  
  这项功能是为了弥补木马的一个缺陷。我们知道当服务端用户打开含有木马的文件后,木马 会将自己拷贝到WINDOWS的系统文件夹中(C://WINDOWS或C://WINDOWS//SYSTEM目录下),一般来说 原木马文件 和系统文件夹中的木马文件的大小是一样的(捆绑文件的木马除外),那么中了木马 的朋友只要在近来 收到的信件和下载的软件中找到原木马文件,然后根据原木马的大小去系统 文件夹找相同大小的文件, 判断一下哪个是木马就行了。而木马的自我销毁功能是指安装完木 马后,原木马文件将自动销毁,这 样服务端用户就很难找到木马的来源,在没有查杀木马的工 具帮助下,就很难删除木马了。
  (六)木马更名
  安装到系统文件夹中的木马的文件名一般是固定的,那么只要根据一些查杀木马的文章,按 图索骥在系统文件夹查找特定的文件,就可以断定中了什么木马。所以现在有很多木马都允许控 制端用户自由定制安装后的木马文件名,这样很难判断所感染的木马类型了。
  三.运行木马
  服务端用户运行木马或捆绑木马的程序后,木马就会自动进行安装。首先将自身拷贝到WINDOWS的 系统文件夹中(C://WINDOWS或C://WINDOWS//SYSTEM目录下),然后在注册表,启动组,非启动组中设置好木马 的触发条件 ,这样木马的安装就完成了。安装后就可以启动木马了,具体过程见下图:
  (1)由触发条件激活木马
  触发条件是指启动木马的条件,大致出现在下面八个地方:
  1.注册表:打开HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//下的五个以Run 和RunServices主键,在其中寻找可能是启动木马的键值。
  2.WIN.INI:C://WINDOWS目录下有一个配置文件win.ini,用文本方式打开,在[windows]字段中有启动 命令 load=和run=,在一般情况下是空白的,如果有启动程序,可能是木马。             3.SYSTEM.INI:C://WINDOWS目录下有个配置文件system.ini,用文本方式打开,在[386Enh],[mic], [drivers32]中有命令行,在其中寻找木马的启动命令。
  4.Autoexec.bat和Config.sys:在C盘根目录下的这两个文件也可以启动木马。但这种加载方式一般都 需要控制端用户与服务端建立连接后,将已添加木马启动命令的同名 文件上传 到服务端覆盖这两个文件才行。
  5.*.INI:即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马 启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。
  6.注册表:打开HKEY_CLASSES_ROOT//文件类型//shell//open//command主键,查看其键值。举个例子,国产 木马“冰河”就是修改HKEY_CLASSES_ROOT//txtfile//shell//open//command下的键值,将“C ://WINDOWS //NOTEPAD.EXE %1”该为“C://WINDOWS//SYSTEM//SYSEXPLR.EXE %1”,这时你双 击一个TXT文件 后,原本应用NOTEPAD打开文件的,现在却变成启动木马程序了。还要说明 的是不光是TXT文件 ,通过修改HTML,EXE,ZIP等文件的启动命令的键值都可以启动木马 ,不同之处只在于“文件类型”这个主键的差别,TXT是txtfile,ZIP是WINZIP,大家可以 试着去找一下。
  7.捆绑文件:实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具 软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使 木马被删 除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。
  8.启动菜单:在“开始---程序---启动”选项下也可能有木马的触发条件。
  (2)木马运行过程
  木马被激活后,进入内存,并开启事先定义的木马端口,准备与控制端建立连接。这时服务端用 户可以在MS-DOS方式下,键入NETSTAT -AN查看端口状态,一般个人电脑在脱机状态下是不会有端口 开放的,如果有端口开放,你就要注意是否感染木马了。下面是电脑感染木马后,用NETSTAT命令查 看端口的两个实例:
  其中①是服务端与控制端建立连接时的显示状态,②是服务端与控制端还未建立连接时的显示状态。
  在上网过程中要下载软件,发送信件,网上聊天等必然打开一些端口,下面是一些常用的端口:
(1)1---1024之间的端口:这些端口叫保留端口,是专给一些对外通讯的程序用的,如FTP使用21, SMTP使用25,POP3使用110等。只有很少木马会用保留端口作为木马端口 的。
(2)1025以上的连续端口:在上网浏览网站时,浏览器会打开多个连续的端口下载文字,图片到本地 硬盘上,这些端口都是1025以上的连续端口。
(3)4000端口:这是OICQ的通讯端口。
(4)6667端口:这是IRC的通讯端口。 除上述的端口基本可以排除在外,如发现还有其它端口打开,尤其是数值比较大的端口,那就要怀疑 是否感染了木马,当然如果木马有定制端口的功能,那任何端口都有可能是木马端口。
  四.信息泄露:
  一般来说,设计成熟的木马都有一个信息反馈机制。所谓信息反馈机制是指木马成功安装后会收集 一些服务端的软硬件信息,并通过E-MAIL,IRC或ICO的方式告知控制端用户。下图是一个典型的信息反馈邮件。
  从这封邮件中我们可以知道服务端的一些软硬件信息,包括使用的操作系统,系统目录,硬盘分区况, 系统口令等,在这些信息中,最重要的是服务端IP,因为只有得到这个参数,控制端才能与服务端建立 连接,具体的连接方法我们会在下一节中讲解。
  五.建立连接:
  这一节我们讲解一下木马连接是怎样建立的 。一个木马连接的建立首先必须满足两个条件:一是 服务端已安装了木马程序;二是控制端,服务端都要在线 。在此基础上控制端可以通过木马端口与服 务端建立连接。为了便于说明我们采用图示的形式来讲解。
  如上图所示A机为控制端,B机为服务端,对于A机来说要与B机建立连接必须知道B机的木马端口和IP地 址,由于木马端口是A机事先设定的,为已知项,所以最重要的是如何获得B机的IP地址。获得B机的IP 地址的方法主要有两种:信息反馈和IP扫描。对于前一种已在上一节中已经介绍过了,不再赘述,我们 重点来介绍IP扫描,因为B机装有木马程序,所以它的木马端口7626是处于开放状态的,所以现在A机只 要扫描IP地址段中7626端口开放的主机就行了,例如图中B机的IP地址是202.102.47.56,当A机扫描到 这个IP时发现它的7626端口是开放的,那么这个IP就会被添加到列表中,这时A机就可以通过木马的控 制端程序向B机发出连接信号,B机中的木马程序收到信号后立即作出响应,当A机收到响应的信号后, 开启一个随即端口1031与B机的木马端口7626建立连接,到这时一个木马连接才算真正建立。值得一提 的要扫描整个IP地址段显然费时费力,一般来说控制端都是先通过信息反馈获得服务端的IP地址,由于 拨号上网的IP是动态的,即用户每次上网的IP都是不同的,但是这个IP是在一定范围内变动的,如图中 B机的IP是202.102.47.56,那么B机上网IP的变动范围是在202.102.000.000---202.102.255.255,所以 每次控制端只要搜索这个IP地址段就可以找到B机了。
  六.远程控制:
  木马连接建立后,控制端端口和木马端口之间将会出现一条通道,见下图
  控制端上的控制端程序可藉这条通道与服务端上的木马程序取得联系,并通过木马程序对服务端进行远 程控制。下面我们就介绍一下控制端具体能享有哪些控制权限,这远比你想象的要大。
  (1)窃取密码:一切以明文的形式,*形式或缓存在CACHE中的密码都能被木马侦测到,此外很多木马还 提供有击键记录功能,它将会记录服务端每次敲击键盘的动作,所以一旦有木马入侵, 密码将很容易被窃取。
  (2)文件操作:控制端可藉由远程控制对服务端上的文件进行删除,新建,修改,上传,下载,运行,更改属 性等一系列操作,基本涵盖了WINDOWS平台上所有的文件操作功能。
  (3)修改注册表:控制端可任意修改服务端注册表,包括删除,新建或修改主键,子键,键值。有了这 项功能控制端就可以禁止服务端软驱,光驱的使用,锁住服务端的注册表,将服务端 上木马的触发条件设置得更隐蔽的一系列高级操作。
  (4)系统操作:这项内容包括重启或关闭服务端操作系统,断开服务端网络连接,控制服务端的鼠标, 键盘,监视服务端桌面操作,查看服务端进程等,控制端甚至可以随时给服务端发送信 息,想象一下,当服务端的桌面上突然跳出一段话,不吓人一跳才怪

  第三十五个:什么是 sysCONFIG
  sysCONFIG 是莱迪思基于 ispXP 技术的 CPLD 和 FPGA 器件(也就是 ispXPLD 5000MX 和 ispXPGA FPGA 器件)的微处理器接口的商标名称。sysCONFIG 端口是用来快速组态这些器件的 SRAM 部分的。
  快速器件组态是许多嵌入式系统的常见要求。在这类系统中,sysCONFIG 端口可以用来连接总线或微处理器,以快速组态 ispXP 器件。sysCONFIG 端口需要 8 个数据引脚和 4 个控制引脚来进行器件组态。
  请注意,通过 sysCONFIG 端口只能组态 ispXP 器件的 SRAM 部分。sysCONFIG 端口不能访问非易失的 E2CMOS 内存。要组态 ispXP 器件的 E2CMOS,必须使用 ISP 端口。ISP 端口完全符合 IEEE 1149.1 测试访问端口(TAP)标准,又叫 JTAG 标准。
  
  第三十六个:什么是MIB
  网络管理信息库(MIB)是网络管理数据的标准,在这个标准里规定了网络代理设备必须保存的数据项目,数据类型,以及允许在每个数据项目中的操作。通过对这些数据项目的存取访问,就可以得到该网关的所有统计内容。再通过对多个网关统计内容的综合分析即可实现基本的网络管理。

  第三十七个:什么是WINS
  WINS全称Windows Internet Name Service,即Windows互联网名称服务。它和DNS一样,都是用来将主机名转换成IP地址的。但在互联网解析主机名的是DNS,事实上WINS主要的是用在局域网内缓解网络风暴。
WINS基于计算机的NetBIOS名工作,所以要了解WINS,必须对计算机名、NetBIOS及NetBIOS名有一个初步的认识。
在微软的系统中,任何一台计算机,不论是否联网,都必须定义一个不超过15位的字符作为计算机名,该名在系统安装时指定,如不指定,则由系统随机生成。设定以后,可在我的电脑—属性—计算机选项卡(WIN2000以上)或网上邻居—属性—标识选项卡中(WINME以下)查看并管理;如果该计算机处于网络环境下,则该计算机名还必须在网络中保证唯一。这个计算机名的存在,是实现NetBIOS的前提。
  在局域网发展早期,为在个人机上实现网络能力,MS和IBM合作开发了一套网络协议,认为它如同计算机的BIOS一样,将成为最基本的网络访问接口,因此使用了NetBIOS(Network Basic Input/Output System)这个名字。MS就利用NetBIOS接口开发网络服务器及相应的客户软件,后来, 打通NetBIOS和网络物理层的各种具体接口的NetBEUI(NetBIOS Extend User Interface)又开发成功,成为NetBIOS的增强版。它直接控制Token Ring(令牌环)和Ethernet(以太网)驱动程序,使之只能运行于局域网,其缺点是不支持路由, 要在大型的或路由式的网络间通信,必须使用基于路由的传输机制(一般是TCP/IP)加以补充,叫做NetBIOS over TCP/IP(NetBT),意为运行于TCP/IP基础上的NetBIOS。WIN2000以下的计算机强制使用NetBIOS名;WIN2000以上的计算机为了在网络中和WIN2000以下的计算机保持通信,保留NetBIOS名。
  NetBIOS名的前15位沿用计算机名,最后增加一位字符作为后缀,用于标识某种服务或应用程序,所以对同一个计算机名,可以生成多个NetBIOS 名;而同一计算机的多个服务也可以注册到另一个计算机的NetBIOS名上,均由该后缀加以区分。    WIN2000中专门提供文件和打印机共享的 server服务就是典型的例子,它的后缀是八进制的20。
  不难看出,即使没有WINS服务器,只要是基于NetBIOS的主机,它们都能够自己管理自己,其原理如下:
主机A登录网络时,它将向网络发送注册广播6--10次,声明自身的NetBIOS名称,确保网内其他主机收到该消息,如果该名与主机B重名,主机B将发出一个包括它自己NetBIOS名称的广播包,要求主机A停止注册,主机A会发出一个负的名称注册(negative name registration)广播作为响应,主机A注册失败;如无其他主机反对,A成功注册。
与此同时,网络上的其它主机也向A发出一个包括自己NetBIOS名称的广播包,声明自己的存在。这在形式上表现为其它主机的网络邻居窗口在刷新后会出现该主机A的NetBIOS名;而主机A的网络邻居窗口中也出现了其它主机的NetBIOS名,也就是通常所认为的计算机名。
  当主机A联系主机B时,A广播一个包含B主机NetBIOS名的地址请求,如果B在线,它将向主机A广播一个包括自己IP地址的正的名称查询(positive name query)消息予以响应,然后A就可以利用这个地址连接到主机B;
当主机A正确关机时,自动发生名称释放操作,这时其它主机可以用主机A的名称登陆网络;但主机A非正常关机时,其它主机的网络邻居窗口中仍然会有该主机名,双击后会出现“找不到网络路径”的错误提示:主机A已经名存实亡。
这种“无组织无纪律”的自我管理,带来的是通信效率的大大下降:每台主机在登陆和重登陆网络的时候,都将向网络发送广播;然后所有主机再向它发送广播;然后主机间要求通信都以广播的方式进行……,每台主机随时都在大呼小叫,其巨大的数据流量将造成网络响应速度直线下降,这是最不能接受的网络问题。
  所以,必须有一个“老板”对所有主机的NetBIOS名称和IP地址进行集中统一的管理和维护,NetBIOS客户端通过直接与“老板”进行名称的注册、更新、查询和释放操作,最大程度的减少了广播流量。这个“老板”就是WINS服务器。
在WINS中,NetBIOS名可以被注册为唯一的名称,这时它对应一个IP地址;也可以映射为一个组的名称,这时它对应多个IP地址。所以准确的说,WINS服务应该叫WINS的NetBIOS 名称服务,正是它使NetBIOS名称到地址的解析成为可能。
为更深刻的理解WINS,我们还要说明由NetBT规定的WINS名称解析的四种方法(又叫nodes,节点):① nodeB:广播的方法(broadcast);② nodeP:对等的方法(peer-to-peer),直接在WINS服务器中查询;③ nodeM:混合的方法(mixed),即联合使用nodeB和nodeP,默认为B;④ nodeH:另一种混合的方法(hybrid),和nodeM一样,但默认为nodeP。如果网络中没有WINS服务器,则系统默认使用B节点的方法,如前所述;如果系统中至少有一台WINS服务器,则系统默认使用H节点的方法。
  NetBIOS客户机——即WINS客户机向WINS服务器注册、更新、查询和释放的工作流程与DHCP的工作流程异曲同工:都是以租约的形式进行——但在表现形式上更像是老板与员工之间签订用工合同的一幕。仍以客户机A 和B为例描述如下:

一、 注册
客户机A一诶启动,就向TCP/IP配置中指定的WINS服务器发送一个名称查询请求(请求签订合同),要求注册其NetBIOS名和IP地址,如果WINS在线,它首先检查自己的数据库中是否已有该NetBIOS名,如客户机B与该名同名,则WINS以500毫秒为间隔向B发送三次名称查询请求,用以确定B是否仍然还在上班,如收到响应,则向A发出一个负的名称注册(negative name registration)。A注册失败;如果没有响应,则A注册成功,该WINS服务器会将这一对应关系(重新)记录在自己的数据库中,并向该客户机返回一个注册成功的消息,其中包括一个指定的生存周期 TTL(Time to Live)——它的存在表明了WINS客户机只是一个钟点工,此时合同签订成功。
一旦A三次联系WINS服务器都失败的话,意味着WINS服务器宕机或不可用,这时,如果网络中再无其它的WINS服务器存在,则又回到了无组织无纪律的洪荒状态,WINS客户机会按照上述“广播”的方式来工作。

二、更新
默认情况下,WINS服务器数据库更新时间(合同期限)即TTL是六天,如果到时客户机没有发出更新请求(要求续签合同),名称注册即告失效(合同终止),WINS会将该员工从花名册上删除,这就是TTL的作用。
所以一般来说,客户机会在相应的TTL值过去50%也就是三天的时候向服务器发出一次名称刷新请求,说明自己还在任劳任怨的继续上班,当WINS服务器收到该请求后,即向该客户机发出包含了一个新的TTL的名称刷新响应,表示合同已然重签。

三、 查询
当A需要联系B的时候,它首先检查缓存,看是否有B的NetBIOS名对应IP地址的记录,如果没有,则向WINS服务器发出该NetBIOS名称的IP查询请求,要求WINS回应其IP 地址。如果没有任何WINS服务器响应,或者某个WINS服务器发出了一个“Requested Name Does Not Exist”(请求的名称不存在)消息,客户机即启用广播的方式查找,如果仍未响应,如果有事先的设置,主机A还要尽最后的努力,去查找自己的数据库文件Lmhost,仍然无效的时候,才善罢甘休。

四、 释放
如果WINS客户机A停止某个注册的网络服务或正常关机的时候,该A即针对注册的某个服务或者A的NetBIOS名直接向WINS发出一个包括A机IP地址和NetBIOS名称的释放请求(要求解除合同)。WINS收到该请求后,先检查它的数据库,如果WINS找到了一个对应的记录,则向A发送一个正的名称释放(positive name release)消息作为响应,其中包括了被释放的NetBIOS名称和值为0的TTL,同时在数据库中将这条记录标记为已经释放,合同正式解除;
如果WINS没有找到对应的记录或者该NetBIOS名被 指向了另一个IP地址,那么WINS会向A发出一个负的名称释放(negative name release)消息作为回应。合同无法解除。
如果A非正常关机,是不会发出名称释放消息的,显然,WINS服务器的数据库中就会多出一条“假”记录,当B向WINS发出A的地址请求时,WINS仍然会向B给出已不存在了的A的地址信息,当然B不可能再通过这个地址联系到A,最终会出现超时错。在B的网络邻居窗口中,A的存在仅仅证明了A“曾经来过”。
限于篇辐,WINS与DNS的集成、WINS代理以及多个WINS服务器的管理维护和排故等WINS服务器的高级应用只有以后再谈了。
WINS是老生常谈了,希望本文对老资格的网管朋友能温故知新,对初入道的新网管朋友能有一些帮助。敬请专家指正。

  第三十八个:什么是DNS
  DNS(Domain Name System) 翻成中文是「领域名称系统」.
  在一个 TCP/IP 架构的网路 (例如 Internet) 环境中, DNS 是 一个非常重要而且常用的系统. 主要的功能就是将人易於记忆的 Domain Name 与人不容易记忆的 IP Address 做转换. 而上面执行 DNS 伺服软体的这台网路主机, 就可以称之为 DNS Server.
  基本上, 通常我们都认为 DNS 只是将 Domain Name 转换成 IP Address, 然後再使用所查到的 IP Address 去做连线. 事实上, 将 IP Address 转换成 Domain Name 的功能也是相当常使用到的 , 当 login 到一台 Unix 工作站时, 工作站就会去做反查, 找出你是从哪个地方连线进来的.
  DNS 是使用阶层式的方式来运作的. 例如:
  chameleon的 Domain Name 为 www.cn90.net 这个 Domain Name 当然不是凭空而来的, 是从/" .net /"所分配下来的. 那么.net 又是从哪里来的呢? 答案是从 /"./", 也就是所谓的「根领域」 (root domain) 来的. 根领域已经是 Domain Name 的最上层. 而 /"./" 这层是由 InterNIC (Internet Network Information Center, 网际网路资讯中心) 所管理. 全世界的 Domain Name 就是这样, 一层一层的授与下来.

  1、OSI参考模型的基本概念
国际标准化组织ISO发布的著名的标准是ISO/IEC7498,又称为X.200建议。该体系结构标准定义了网络互连的七层框架,即ISO开放系统互连参考模型。在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性(interconnection)、互操作性(interoperation)和应用的可移植性(portability)。
开放系统互连OSI中的“开放”是指只要遵循OSI标准,一个系统就可以和体于世界上任何地方的,也遵循这同一标准的其他任何系统进行通信。
OSI标准制定过程中所采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构方法。在OSI中,采用了三级抽象,即体系结构、服务定义(Service Definition)和协议规格说明(Protocol Specification)。
OSI参考模型定义了开放系统的层次结构、层次之间的相互关系及各层所包括的可能的服务。它是作为一个框架来协调和组织各层协议的制定,也是对网络内部结构最精炼地概括与描述。
OSI参考模型的服务定义详细地说明了各层所提供的服务。某一层的服务就是该层及其以下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎样实现的无关。同时,各种服务定义还定义了层与层之间的接口和各层的所使用的原语,但不涉及接口是怎样实现的。
OSI标准中的各种协议精确地定义了应当发送什么样的控制信息,以及应当用什么样的过程来解释这个控制信息。协议的规程说明具有最严格的约束。
OSI参考模型并没有提供一个可以实现的方法。OSI参考模型只是描述了一些概念,用来协调进程间通信标准的制定。在OSI的范围内,只有在各种的协议是可以被实现的而各种产品只有和OSI的协议相一致时才能互连。这也就是说,OSI参考模型并不是一个标准,而只是一个在制定标准时所使用的概念性的框架。
从历史上来看,在制定计算机网络标准方面起着很大作用的两大国际组织是CCITT与ISO。CCITT与ISOTC97的工作领域是不同的,CCITT主要是从通信的角度考虑一些标准的制定,而ISO的TC97则关心信息的处理与网络体系结构。但随着科学技术的发展,通信与信息处理的界限变得比较模糊了。于是,通信与信息处理就都成为CCITT与TC97共同关心的领域。CCITT的建议书X.200就是开放系统互连的基本参考模型,它和ISO7498基本上是相同的。
2 OSI参考模型的结构与各层的主要功能
提供各种网络服务功能的计算机网络系统是非常复杂的。根据分而治之的原则,ISO将整个通信功能划分为七个层次,划分层次的原则是:
(1)网中各结点都有相同的层次;
(2)不同结点的同等层具有相同的功能;
(3)同一结点内相邻之间通过接口通信;
(4)每一层使用下层提供的服务,并向其上层提供服务;
(5)不同结点的同等层按照协议实现对等层之间的通信。
OSI各层的主要功能是:
(1)物理层(Physical layer)
物理层处于OSI参考模型的最低层。物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明地传送比特流。
(2)数据链路层(Data link layer)
在物理层提供比特流传输服务的基础上,在通信的实体之间建立数据链路连接,传送以帧为单位的数据,采用差错控制、流量控制方法,使有差错的物理线路变成无差错的数据链路。
(3)网络层(Network layer)
网络层主要任务是通过路由器算法,为分组通过通信子网选择最适当的路径。网络层要实现路由器选择、拥塞控制与网络互连等功能。
(4)传输层(Transport layer)
传输层的主要任务是向用户提供可靠的端到端(End-to-End)服务,透明地传送报文。它向高层屏蔽了下层数据通信的细节,因而是计算机通体体系结构中最关键的一层。
(5)会话层(Session layer)
会话层的主要任务是组织两个会话进程之间的通信,并管理数据的交换。
(6)表示层(Presentation layer)
表示层主要用于处理在两个通信系统中交换信息的表示方式。它包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
(7)应用层(Application layer)
应用层是OSI参考模型中的最高层。应用层确定进程之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理(User Agent),来完成一些为进行信息交换所必需的功能。它包括:文件传送访问和管理FTAM、虚拟终端VT、事务处理TP、远程数据库访问RDA、制造业报文规范MMS、目录服务DS等协议。

  什么是 TCP SYN Flood 攻击!!!
  在 TCP/IP 协议里,开取一次正常的连接时需要经过三次“握手”,在第一步中,客户端向服务端提出连接请求。这时TCP SYN标志置位。客户端告诉服务端序列号区域合法,需要检查。客户端在TCP报头的序列号区中插入自己的ISN。服务端收到该TCP分段后,在第二步以自己的ISN回应(SYN标志置位),同时确认收到客户端的第一个TCP分段(ACK标志置位)。在第三步中,客户端确认收到服务端的ISN(ACK标志置位)。到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。
  在攻击发生时,客户端的来源IP地址是经过伪造的(spoofed),现行的IP路由机制仅检查目的IP地址并进行转发,该IP包到达目的主机后返回路径无法通过路由达到的,于是目的主机无法通过TCP三次握手建立连接。在此期间因为TCP缓存队列已经填满,而拒绝新的连接请求。目的主机一直尝试直至超时(大约75秒)。这就是该攻击类型的基本机制。发动攻击的主机只要发送较少的,来源地址经过伪装而且无法通过路由达到的SYN连接请求至目标主机提供TCP服务的端口,将目的主机的TCP缓存队列填满,就可以实施一次成功的攻击。实际情况下,发动攻击时往往是持续且高速的。
  附:TCP SYN Flood是一种常见,而且有效的远程拒绝服务(Denial of Service)攻击方式,它通过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得提供TCP服务的主机系统无法正常工作。 由于TCP SYN Flood是通过网络底层对服务器进行攻击的,它可以在任意改变自己的网络地址的同时,不被网络上的其他设备所识别,这样就给公安部门追查犯罪来源造成很大的困难。 在国内与国际的网站中,这种攻击屡见不鲜。例:在一个拍卖网站上,曾经有犯罪分子利用这种手段,在低价位时阻止其他用户继续对商品拍卖,干扰拍卖过程的正常运作。前两天www.cn90.net服务器也受到过SYN Flood攻击....不过也让我认清了blackICE的抗DDoS能力...唉....

  什么是缓冲区溢出??
  一个程序在运行时,为了保存变量,会分配一定的内存区域来存放这些变量,当变量的长度超过程序分配区域的长度时,就会导致缓冲区溢出。对缓冲区溢出的额外数据的处理依赖于操作系统,而有所不同。黑客可以使用它来引起系统部分功能失常,甚至能利用它来执行任意的代码。
  许多的缓冲区溢出问题集中在用户输入了超过缓冲区长度的数据,这些额外的数据可能会在堆栈区被执行,从而打开另外的存取通道。黑客通常使用它来提升权限。
缓冲区溢出问题几乎在所有的操作系统上都存在。

原创粉丝点击