查看端口
在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:
依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
关闭/开启端口
在介绍各种端口的作用前,这里先介绍一下在Windows中如何关闭/打开端口,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,比如Telnet服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等等。为了保证系统的安全性,我们可以通过下面的方法来关闭/开启端口。
关闭端口
比如在Windows 2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,再双击“服务”。接着在打开的服务窗口中找到并双击“Simple Mail Transfer Protocol (SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。
开启端口
如果要开启该端口只要先在“启动类型”选择“自动”,单击“确定”按钮,再打开该服务,在“服务状态”中单击“启动”按钮即可启用该端口,最后,单击“确定”按钮即可。
提示:在Windows 98中没有“服务”选项,你可以使用防火墙的规则设置功能来关闭/开启端口。
端口分类
下面的就是我们hacking时常见的端口。
Port 7 Echo
在你看到许多人搜索Fraggle服务器时,发送到x.x.x.0和x.x.x.255的信息。
Port 11 Sysstat
这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动了这些进程。
Port 21 FTP
攻击者用于寻找打开“anonymous”的FTP服务器的最常见方法。
Port 23 Telnet
入侵者经常搜索远程登录UNIX的服务。在大多数情况下入侵者扫描这一端口是为了找到机器运行的操作系统。此外使用其它技术,入侵者会找到密码。
Port 25 SMTP
垃圾邮件制造者(spammer)寻找SMTP服务器是为了传递他们的Spam(垃圾邮件)。
Port 53 DNS
Crackers经常试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其它通讯。因此防火墙常常过滤或记录53端口。
Port 67和68 Bootp和DHCP UDP上的Bootp/DHCP
通过DSL和Cable-Modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。
Port 69 TFTPUDP
许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供文件,如密码文件。
Port 80 HTTP
超文本传输协议,是最常见的协议,用于互联网的超文本页面访问。
Port 79 Finger
Crackers用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器的Finger扫描。
Port 109 POP2
并不像POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样存在。
Port 110 POP3
用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。
Port 113 Ident Auth
这是一个在许多机器上运行的协议,用于鉴别与TCP连接的用户。
Port 119 NNTP news
新闻组传输协议,承载USENET通讯。
Port 135 OC-serv MS RPC end-point mapper
Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。
Port 139 NetBIOS 文件和打印共享
Cracker通过这个端口的连接,试图获得NetBIOS/SMB服务。
Port 143 IMAP
和上面POP3的安全问题一样,许多IMAP服务器在登录过程中有缓冲区溢出漏洞。
Port 161 SNMPUDP
入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP获得这些信息。
Port 177 Xdmcp
许多Crackers通过它访问X-Windows控制台, 它同时需要打开6000端口。
Port 513 rwho
可能是从使用cable modem或DSL登录到的子网中的UNIX机器发出的广播,这些人为Crackers进入他们的系统提供了很有趣的信息。
Port 553 CORBA IIOP UDP
如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统,Crackers会利用这些信息进入系统。
Port 1524 Ingreslock后门
许多攻击脚本将安装一个后门Shell于这个端口,尤其是那些针对Sun系统中,Sendmail和RPC服务漏洞的脚本。
Port 6776 Sub-7 artifact
这个端口是从Sub-7主端口分离出来的,用于传送数据。
Port 6970 RealAudio
RealAudio客户从服务器6970-7170的UDP端口接收音频数据流。这是由TCP7070端口外向控制连接设置的。
Port 30100 NetSphere木马TCP
通常这一端口的扫描是为了寻找中了的NetSphere木马的主机。
Port 31337 Back Orifice
“elite” Crackers中31337读作“elite”/ei’lit/(法语,译为中坚力量,精华。即3=E 1=L 7=T)。因此许多后门程序运行于这一端口,其中最有名的是Back Orifice。
Port 31789 Hack-a-tack
这一端口的UDP通讯通常是由于Hack-a-tack远程访问木马端口(RATRemote Access Trojan)。
Port 32770~32900 RPC服务
Sun Solaris的RPC服务在这一范围内。
缓冲区溢出
缓冲区溢出也是目前比较流行的攻击手段,大家应该对它的原理做些了解。
作为成功的渗透系统安全的方法缓冲区溢出使用已经超过12年了。最早的缓冲区溢出攻击是著名的Robert Morris的因特网蠕虫,它获得了空前的成功。1988年,Morris发布了一个程序,在因特网上感染了上千台UNIX主机,Morris成功的获得了一个脆弱系统的存取方法,就是存在于fingerd Daemon的缓冲区溢出错误。一旦获得了一个脆弱系统的存取权限,Morris的程序会在机器上自动安装,并且千方百计去感染其他机器。Morris原来的目的是相对慢慢的传播到其他系统并且不被发现,在任何有影响的机器上不造成重要的混乱,然而,他的目的的完全落空了。Morris的一个编程错误导致了比原来预想更高的传播率。由于这个错误,机器被感染的速度非常的快,蠕虫以压倒性的优势攻击了系统,当然这也使其程序很快被检测出来,并且转变成当时最具破坏力的拒绝服务攻击。Morris的程序通常不能获得系统管理员权限,并且没有破坏被入侵系统上的任何信息,也没有留下任何时间爆炸或恶意的代码。
1988-1996年,缓冲区溢出攻击仍然保持相对低的数量,一直的漏洞及时修补,而且由于很少人知道攻击的方法,发现并且执行新漏洞被认为很困难的事情。这一情况在1996年被戏剧性地改变了,当时Levy发表了一篇很好的论文,它显示了很多程序存在缓冲区溢出的危险,并且 表明了对目标程序构造成功的缓冲区溢出攻击的技术比较简单,甚至攻击者没有对目标程序的实际代码的存取权。这两个因素的联合刺激了很多攻击者发现新漏洞。另外许多攻击被自动化,即使使用者一窍不通,也可以执行攻击。对如此攻击感兴趣的人常被成为“脚本小孩”
不幸的是,太多这样一来的脚本小孩进行自动化攻击,是不慎重的系统管理员感到极其头痛。
缓冲区溢出攻击是什么?
当程序在数组中存储信息超过其预留的空间时,缓冲区溢出发生。这时引起临近区域的缓冲区被覆盖,从而破坏以前存储的数据。缓冲区溢出总是典型的被归为程序编程错误,因为程序员没有能预感程序输入进缓冲区的信息可能超过它定义的大小。不幸的是,正如我们所见,由于危险的C程序被广泛的使用,缓冲区溢出编程错误相当普遍。一旦缓冲区溢出漏洞在不适当的测试中未能被发现,以致于漏洞在隐蔽的程序中潜藏不被发现且沉默多年,这潜在的开放程序将成为利用漏洞获得系统非法存取的攻击目标。
缓冲区溢出会偶然的在程序的执行其发生。当它发生时,并没有很大可能导致系统安全问题。最常用的是对缓冲区临近区域的信息进行攻击,从而引起程序崩溃或者产生明显错误的结果。另一方面,缓冲区溢出攻击中,攻击者的目的是利用漏洞惊心策划某种方法破坏信息,从而执行先前已经由攻击者植入的攻击代码,一旦成功,攻击者将有效的保持对程序的控制,典型的攻击代码在shell上执行,它允许攻击者在系统上执行任意的命令。
当一个新的shell在Unix系统上产生,它将继承产生此shell的进程的存取权限,因而,如果被攻击具有缓冲区溢出危险进程的root权限,攻击者也将得到root,再次我们的讨论仅限于Unix系统,而实际上缓冲区溢出对大多数操作系统都适用,特别是许多攻击是成功的针对windows NT和windows 2000系统,Axelsson [1]通过已知的攻击类型对WINDOWS NT和UNIX系统安全进行了比较,发现他们几乎是同等的脆弱,缓冲区溢出可以是本地或者远程,本地攻击中,攻击者已经能访问系统,而他希望提高存取权限,远程攻击是通过一个网络端口进行的,并且可以同时完成获得非法存取权限和最大存取权限,总之,我们所见的缓冲区溢出的攻击通常由三部分组成:
1,在目标程序中植入攻击代码。2,实际拷贝进入要溢出的缓冲区并破坏临近区域的数据结构。3,控制劫持从而执行攻击代码。
下面我们对缓冲区攻击类型进行详细描述,
破坏栈
缓冲区溢出攻击的分类取决于缓冲区的分配,如果缓冲区的一个函数为本地一个变量,那么缓冲区存在于run-time stack。着是Levy论文中提到的攻击类型而且是迄今为止缓冲区溢出攻击最流行的形式,当函数被一个C程序调用时,在执行跳到被调用的函数的实际代码以前,函数的激活记录必须被推入run-time stack,在C程序中激活记录有下列区域组成:
1,为函数中每个参数分配的空间。
2,返回地址。
3,动态连接。
4,为函数每个本地变量所分配的空间。
为了方便起见,我们认为动态连接的地址就是激活记录的基地址,函数能够存取他的参数和本地变量,在要求在函数执行其间寄存器包容函熟激活记录的基地址即动态连接区域的地址,参数位于栈中此地址之下,并且本地变量在此上面,当函数返回时,寄存器必须回复到它以前的值来指向被调用函数的激活记录,为了能做到这点,当函数被调用时,寄存器的值被保存在动态连接区域中,这样一来,每个激活记录的动态连接区域在栈上指向先前激活记录的动态连接域,接着在指向先前的激活记录的动态连接域,依此类推一直到栈的底部,在栈上的第一个激活记录是main()这一指针链被称为动态连接链,许多C编译器中缓冲区栈的底部发展,如果缓冲区溢出并且溢出足够,那么,返回地址将被破坏,(如作为两者之间的其他内容,包括动态连接)如果返回地址被缓冲区溢出覆盖,因而指向攻击代码,当函数返回时代码将被执行,这样一来,此类攻击就是利用在栈上的返回地址来劫持程序的控制权,正如以上所说,覆盖返回地址,赋予攻击者一定意义上劫持程序控制权,但是攻击代码应该存储在哪里呢?通常它在缓冲区存储,这样一来payload字符号串包含二进制机器语言的攻击代码将被复制到缓冲区中,就象覆盖返回地址的代码地址一样,攻击者执行这个计划必须克服一些困难,如果攻击者拥有被攻击程序的源代码就可以确切的知道缓冲区大小,离返回地址多远,以即payload字符串必须有多大?如今在许多操作系统中,例如:linux ,openbsd,freebsd,甚至solaris源代码的存取是很普通的事情然而,levy演示的攻击即使不访问源代码,甚至不需要知道任何关于攻击程序运行的准确细节的知识也能实现攻击,攻击代码的地址可以通过各种各样的技术做近似猜测,例如攻击代码能以没有操作指令的一张长长的列表开始,以便控制能被传递给任何一方,从而正确执行攻击代码的关键部分,来实现没有权限而建立一个新的SHELL,该技术已经在morris的蠕虫中使用,同样payload字符串的尾巴可以由一张我们希望用来覆盖返回地址重复猜测攻击代码地址的表构成,这些技术增加了猜测地址的机会,从而足够接近编码攻击工作,现在我们看看为什么缓冲区溢出是如此普遍,假定缓冲区是用来存放字符串的字符数组,大多数程序具有字符串输入或能被攻击者利用实现的环境变量,程序必须读入这些输入并且分析它,以便做出适当的反映,通常为了分析输入,程序首先需要将输入内容复制到函数所分配的变量中,然后进行分析,为了这一目的程序员通常会为任何合理的输入保留一个足够大的缓冲区,将输入复制到缓冲区,程序通常使用典型标准C库中的字符拷贝函数,例如:strcpy()如果不够小心的话,将引发缓冲区溢出的危险,许多C程序员需要使用此模式,所以许多程序将包含缓冲区溢出的危险。
网络*****服务器
*****也是黑客们常用到的,黑客可以利用它在网络里隐身,是逃避追踪的良好手段,下面我们来了解一下吧!
*****有很多种解释,而我们常常提到的*****,从计算机专业角度来说就是指*****服务器相关,针对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*****服务器地址和端口-> 确定 -> 确定
肉鸡是什么
什么是肉鸡呢?
假如你已经获得一台远程电脑的控制权限,那么这台电脑对于你来说就是肉鸡。肉鸡可以是win、Unix/Linux……等各种系统;肉鸡可以是一家公司的服务器,一家网站的服务器,甚至是美国白宫或军方的电脑,只要你有这本事入侵并控制他。
要登陆肉鸡,必须知道3个参数:远程电脑的IP、用户名、密码。
怎么获得肉鸡呢?相信这个是大家最迫切想知道的。
我就告诉大家一些普通的方法。
首先你需要一个扫描器,比如流光,X-SCAN等,扫带弱口令并且开了telnet或3389等的机器,然后登陆留下后门(但这种肉鸡似乎绝种了)。
还可以扫SQL弱口令机器,然后用SQL连接器连接并控制,目前很多人都采用此方法。
知道redmin的朋友也可以扫4899空密码的机器。
方法还有很多,等待大家去挖掘开发
路由器是什么
路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。
路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
多少年来,路由器的发展有起有伏。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等,就是采用这一设计思想用硬件来实现快速转发,大大提高了路由器的性能与效率。
新一代路由器使用转发缓存来简化分组的转发操作。在快速转发过程中,只需对一组具有相同目的地址和源地址的分组的前几个分组进行传统的路由转发处理,并把成功转发的分组的目的地址、源地址和下一网关地址(下一路由器地址)放人转发缓存中。当其后的分组要进行转发时,茵先查看转发缓存,如果该分组的目的地址和源地址与转发缓存中的匹配,则直接根据转发缓存中的下一网关地址进行转发,而无须经过传统的复杂操作,大大减轻了路由器的负担,达到了提高路由器吞吐量的目标.
部分缩略词的解释
现在是个信息爆炸的时代,网络是信息交流最频繁的地方,每天都会有新的名词诞生,下面我就给大家介绍些目前网络上常见的缩略词。(当然只是一小部分)给大家做参考。
按首字母顺序排列
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) 万维网
OK绝笔