小彭屋

导航

网络协议规范大全

在网络的各层中存在着许多协议,它是定义通过网络进行通信的规则,接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息,以这种规则规定双方完成信息在计算机之间的传送过程。下面就对网络协议规范作个概述。

  ARP(Address Resolution Protocol)地址解析协议

  它是用于映射计算

  机的物理地址和临时指定的网络地址。启动时它选择一 个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。

  SNMP(Simple Network Management P)网络管理协议

  它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。

  AppleShare protocol(AppleShare协议)

  它是Apple机上的通信协议,它允许计算机从服务器上请求服务或者和服务器交换文件。AppleShare可以在TCP/IP协议或其它网络协议如IPX、AppleTalk上进行工作。使用它时,用户可以访问文件,应用程序,打印机和其它远程服务器上的资源。它可以和配置了AppleShare协议的任何服务器进行通信,Macintosh、Mac OS、Windows NT和Novell Netware都支持AppleShare协议。

  AppleTalk协议

  它是Macintosh计算机使用的主要网络协议。Windows NT服务器有专门为Macintosh服务,也能支持该协议。其允许Macintosh的用户共享存储在 Windows NT文件夹的Mac-格式的文件,也可以使用和Windows NT连接的打印机。Windows NT共享文件夹以传统的Mac文件夹形式出现在Mac用户面前。Mac文件名按需要被转换为FAT(8.3)格式和NTFS文件标准。支持MAc 文件格式的DOS和Windows客户端能与Mac用户共享这些文件。

  BGP4(Border Gateway Protocol Vertion 4)边界网关协议-版本4

  它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理员能够在已知的路由策略上配置路由加权,可以更方便地使用无级内部域名路由(CIDR),它是一种在网络中可以容纳更多地址的机制,它比外部网关协议(EGP)更新。BGP4经常用于网关主机之间,主机中的路由表包括了已知路由的列表,可达的地址和路由加权,这样就可以在路由中选择最好的通路了。BGP在局域网中通信时使用内部BGP(IBGP),因为IBGP不能很好工作。

  BOOTP协议

  它是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,现在我们通常使用DHCP协议进行这一工作。

  CMIP(Common Management Information Protocol)通用管理信息协议

  它是建立在开放系统互连通信模式上的网络管理协议。相关的通用管理信息服务(CMIS)定义了访问和控制网络对象,设备和从对象设备接收状态信息的方法。

  Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议

  在广域网中,两台计算机建立物理连接过程所使用的协议,这种物理连接要持续到成功地交换完数据为止。在Internet中,TCP(传输控制协议)即这一类型的协议,它为两台连接在网络上的计算机提供了可相互通信且确保数据成功传输的一种手段。面向连接的协议一定要保证数据传送到对方。在广域网中,对接收方的计算机不做在线状态,或接收能力的测试,都能使数据由一台计算机传输到另外一台计算机上的协议。这是包交换网络中的主要协议,在Internet中的IP协议即无连接协议,IP只关注将数据分成数据包进行传输,并在这些数据包被接收后重新组包,而不关注接收方计算机的状态。由面向连接的协议(如Internet中的TCP)来确保数据的接收。

  DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

  它是在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能。这两个协议可以通过一些机制互操作。DHCP协议在安装TCP/IP协议和使用TCP/IP协议进行通迅时,必须配置IP地址、子网掩码、缺省网关三个参数,这三个参数可以手动配置,也可以使用DHCP自动配置。

  Discard Protocol抛弃协议

  它的作用就是接收到什么抛弃什么,它对调试网络状态的一定的用处。基于TCP的抛弃服务,如果服务器实现了抛弃协议,服务器就会在TCP端口9检测抛弃协议请求,在建立连接后并检测到请求后,就直接把接收到的数据直接抛弃,直到用户中断连接。而基于UDP协议的抛弃服务和基于TCP差不多,检测的端口是UDP端口9,功能也一样。

  Echo Protocol协议

  这个协议主要用于调试和检测中。这个协议的作用也十分简单,接收到什么原封发回就是了。它可以基于TCP协议,服务器就在TCP端口7检测有无消息,如果有发送来的消息直接返回就是了。如果使用UDP协议的基本过程和TCP一样,检测的端口也是7。

FTP(File Transfer Protocol)文件传输协议

  它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。象传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件。现在有许多服务器支持匿名登录,允许用户使用FTP和ANONYMOUS作为用户名进行登录,通常可使用任何口令或只按回车键。

  HDLC(High-Level Data Link Control)高层数据链路协议

  它是一组用于在网络结点间传送数据的协议。在HDLC中,数据被组成一个个的单元(称为帧)通过网络发送,并由接收方确认收到。HDLC协议也管理数据流和数据发送的间隔时间。HDLC是在数据链路层中最广泛最使用的协议之一。现在作为ISO的标准,HDLC是基于IBM的SDLC协议的,SDLC被广泛用于IBM的大型机环境之中。在HDLC中,属于SDLC的被称为通响应模式(NRM)。在通常响应模式中,基站(通常是大型机)发送数据给本地或远程的二级站。不同类型的HDLC被用于使用X.25协议的网络和帧中继网络,这种协议可以在局域网或广域网中使用,无论此网是公共的还是私人的。

  HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文本传输协议-版本1.1

  它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。

  HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

  它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

  ICMP(Internet Control Message Protocol)Internet控制信息协议

  它是一个在主机和网关之间消息控制和差错报告协议。ICMP使用IP数据报,但消息由TCP/IP软件处理,对于应用程序使用者是不可见的。在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,赡养或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。

  IMAP4(Internet Mail Access Protocol Version 4)Internet邮件访问协议-版本4

  它是用于从本地服务器上访问电子邮件的标准协议,它是一个C/S模型协议,用户的电子邮件由服务器负责接收保存。IMAP4改进了POP3的不足,用户可以通过浏览信件头来决定是不是要下载此信,还可以在服务器上创建或更改文件夹或邮箱,删除信件或检索信件的特定部分。在用户访问电子电子邮件时,IMAP4需要持续访问服务器。在POP3中,信件是保存在服务器上的,当用户阅读信件时,所有内容都会被立刻下载到用户的机器上。我们有时可以把IMAP4看成是一个远程文件服务器,把POP3可以看成是一个存储转发服务。

  NNTP(Network News Transfer Protocol)网络新闻传输协议

  NNTP同POP3协议一样,也存在某些局限性。

  IOTP(Internet Open Trading Protocol)Internet开放贸易协议

  Internet开放贸易协议是一系列的标准,它使电子购买交易在客户,销售商和其它相关部分都是一致的,无论使用何种付款系统。IOTP适用于很多的付款系统,如SET,DigiCash,电子支票或借记卡。付款系统中的数据封装在IOTP报文中。IOTP处理的交易可以包括客户、销售商、信用支票、证明、银行等部分。IOTP使用XML语言(Extensible Markup Language)来定义包含在交易中的数据。

  IPv6(Internet Protocol Version 6)Internet协议-版本6

  它是Internet协议的最新版本,已作为IP的一部分并被许多主要的操作系统所支持。IPv6也被称为“Ipng”(下一代IP),它对现行的IP(版本4)进行重大的改进。使用IPv4和IPv6的网络主机和中间结点可以处理IP协议中任何一层的包。用户和服务商可以直接安装IPv6而不用对系统进行什么重大的修改。相对于版本4新版本的最大改进在于将IP地址从32位改为128位,这一改进是为了适应网络快速的发展对IP地址的需求,也从根本上改变了IP地址短缺的问题。简化IPv4首部字段被删除或者成为可选字段,减少了一般情况下包的处理开销以及IPv6首部占用的带宽。改进IP 首部选项编码方式的修改导致更加高效的传输,在选项长度方面更少的限制,以及将来引入新的选项时更强的适应性。加入一个新的能力,使得那些发送者要求特殊处理的属于特别的传输流的包能够贴上标签,比如非缺省质量的服务或者实时服务。为支持认证,数据完整性以及(可选的)数据保密的扩展都在IPv6中说明。本文描述IPv6基本首部以及最初定义的IPv6 扩展首部和选项。还将讨论包的大小问题,数据流标签和传输类别的语法,以及IPv6对上层协议的影响。IPv6 地址的格式和语法在其它文章中单独说明。IPv6版的 ICMP 是所有IPv6应用都需要包含的。

 IPX/SPX(Internetwork Packet Exchange/Sequential PacketExchange)互连网包交换/顺序包交换

  它是由Novell提出的用于客户/服务器相连的网络协议。使用IPX/SPX协议能运行通常需要NetBEUI支持的程序,通过IPX/SPX协议可以跨过路由器访问其他网络。

  MIME(Multi-Purpose Internet Mail Extensions)多功能Internet邮件扩展

  MIME是扩展SMTP协议,是1991年Nathan Borenstein向IETF提出。在传输字符数据的同时,允许用户传送另外的文件类型,如声音,图像和应用程序,并将其压缩在MIME附件中。因此,新的文件类型也被作为新的被支持的IP文件类型。

  NetBEUI(NetBIOS Enhanced UserInterface)网络基本输入输出系统扩展用户接口

  NetBEUI协议是IBM于1985年提出。NetBEUI主要为20到200个工作站的小型局域网设计的,用于NetBEUI、LanMan网、Windows For Workgroups及Windows NT网。NetBEUI是一个紧凑、快速的协议,但由于NetBEUI没有路由能力,即不能从一个局域网经路由器到另一个局域网,已不能适应较大的网络。如果需要路由到其他局域网,则必须安装TCP/IP或IPX/SPX协议。

  OSPF(Open Shortest Path First)开放最短路优先

  OSPF是用于大型自主网络中替代路由信息协议的协议标准。象RIP一样,OSPF也是由IETF设计用作内部网关协议族中的一个标准。在使用OSPF时网络拓朴结构的变化可以立即在路由器上反映出来。不象RIP,OSPF不是全部当前结点保存的路由表,而是通过最短路优先算法计算得到最短路,这样可以降低网络通信量。如果您熟悉最短路优先算法就会知道,它是一种只关心网络拓朴结构的算法,而不关心其它情况,如优先权的问题,对于这一点,OSPF改变了算法使它根据不同的情况给某些通路以优先权。

  POP3(Post Office Protocol Version 3)邮局协议-版本3

  它是一个关于接收电子邮件的客户/服务器协议。电子邮件由服务器接收并保存,在一定时间之后,由客户电子邮件接收程序检查邮箱并下载邮件。POP3它内置于IE和Netscape浏览器中。另一个替代协议是交互邮件访问协议(IMAP)。使用IMAP您可以将服务器上的邮件视为本地客户机上的邮件。在本地机上删除的邮件还可以从服务器上找到。E-mail 可以被保存在服务器上,并且可以从服务器上找回。

  PPP(Point to Point Protocol)点对点协议

  它是用于串行接口的两台计算机的通信协议,是为通过电话线连接计算机和服务器而彼此通信而制定的协议。网络服务提供商可以提供您点对点连接,这样提供商的服务器就可以响应您的请求,将您的请求接收并发送到网络上,然后将网络上的响应送回。PPP是使用IP协议,有时它被认为是TCP/IP协议族的一员。PPP协议可用于不同介质上包括双绞线,光纤和卫星传输的全双工协议,它使用HDLC进行包的装入。PPP协议既可以处理同步通信也可以处理异步通信,可以允许多个用户共享一个线路,又可发进行SLIP协议所没有的差错控制。

  RIP(Routing Infomation Protocol)路由信息协议

  RIP是最早的路由协议之一,而且现在仍然在广泛使用。它从类别上应该属于内部网关协议(IGP)类,它是距离向量路由式协议,这种协议在计算两个地方的距离时只计算经过的路由器的数目,如果到相同目标有两个不等速或带宽不同的路由器,但是经过的路由器的个数一样,RIP认为两者距离一样,而实际传送数据时,很明显一个快一个慢,这就是RIP协议的不足之处,而OSPF在它的基础上克服了RIP的缺点。

  SLIP(Serial Line Internet Protocol)串行线路Internet协议

  它是一个TCP/IP协议,它用于在两台计算机之间通信。通常计算机与服务器连接的线路是串行线路,而不是如T1的多路线路或并行线。您的服务器提供商可以向您提供SLIP连接,这样他的服务器就可以响应您的请求,并将请求发送到网络上,然后将网络返回的结果送至您的计算机。现已逐渐被功能更好的PPP点对点协议所取代。

  SMB protocol (Server Message Block protocol)服务器信息块协议

  它提供了运行在客户计算机上的程序请求网络上服务器服务的方法,它可以用在TCP/IP协议之上,也可以用上网络协议如IPX和NetBEUI之上。使用SMB协议时,应用程序可以访问远程计算机上的资源,包括打印机,命名管道等。因此,用户程序可以读,创建和更新在远程服务器上的文件,也可以和已经安装SMB协议的计算机通信。Microsoft Windows for Workgroups, Windows 95 和Windows NT都提供了SMB协议客户和服务器的支持。对于UNIX系统,共享软件Samba也提供了类似的服务。

  LMTP(Local Mail Transfer Protocol)本地邮件传输协议

  SMTP和SMTP服务扩展(ESMTP)提供了一种高效安全传送电子邮件的方法,而在实现SMTP时需要管理一个邮件传送队列,在有些时候这样做可能有麻烦,需要一种没有队列的邮件传送系统,而LMTP就是这样的一个系统,它使用ESMTP的语法,而它和ESMTP可不是一回事,而LMTP也不能用于TCP端口25。LMTP协议与SMTP和ESMTP协议很象,为了避免和SMTP和ESMTP服务混淆,LMTP使用LHLO命令开始一个LMTP会话,它的基本语法和HELO和EHLO命令相同。对于DATA命令来说,如果RCPT命令失败,DATA命令必须返回503,并失败。每个DATA命令碰到"."时,服务器必须对所有成功的RCPT命令返回应答,这和平常的SMTP系统不同,而且顺序必须和RCPT成功的顺序一致,即使对于同一个向前路径来说有许多RCPT命令,也必须返回多个成功应答。这就意味着,服务器返回的确认应答是指服务器把邮件地发送到接收者或另一个转发代理。

  SMTP(Simple Mail Transfer Protocol)简单邮件传送协议

  它是用来发送电子邮件的TCP/IP协议。它的内容由IETF的RFC 821定义。另外一个和SMTP相同功能的协议是X.400。SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。

Talk协议

  Talk协议能使远程计算机上的两个用户以实时方式进行通信。

  TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/Internet协议

  TCP/IP协议起源于美国国防高级研究计划局。提供可靠数据传输的协议称为传输控制协议TCP,好比货物装箱单,保证数据在传输过程中不会丢失;提供无连接数据报服务的协议称为网络协议IP,好比收发货人的地址和姓名,保证数据到达指定的地点。TCP/IP协议是互联网上广泛使用的一种协议,使用TCP/IP协议的因特网等网络提供的主要服务有:电子邮件、文件传送、远程登录、网络文件系统、电视会议系统和万维网。它是Interent的基础,它提供了在广域网内的路由功能,而且使Internet上的不同主机可以互联。从概念上,它可以映射到四层:网络接口层,这一层负责在线路上传输帧并从线路上接收帧;Internet层,这一层中包括了IP协议,IP协议生成Internet数据报,进行必要的路由算法,IP协议实际上可以分为四部分:ARP,ICMP,IGMP和IP;再上向就是传输层,这一层负责管理计算机间的会话,这一层包括两个协议TCP和UDP,由应用程序的要求不同可以使用不同的协议进行通信;最后一层是应用层,就是我们熟悉的FTP,DNS,TELNET等。熟悉TCP/IP是熟悉Internet的必由之路。

  TELNET Protocol虚拟终端协议

  TELNET协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,它主要的目标是允许接口终端设备的标准方法和面向终端的相互作用。是让用户在远程计算机登录,并使用远程计算机上对外开放的所有资源。

  Time Protocol时间协议

  该协议提供了一个独立于站点的,机器可读的日期和时间信息。时间服务返回的是以秒数,是从1900年1月1日午夜到现在的秒数。设计这个协议的一个重要目的在于,网络上的许多主机并没有时间的观念,在分布式的系统上,我们可以想一想,北京的时间和东京的时间如何分呢?主机的时间往往可以人为改变,而且因为机器时钟内的误差而变得不一致,因此需要使用时间服务器通过选举方式得到网络时间,让服务器有一个准确的时间观念。不要小看时间,这对于一些以时间为标准的分布运行的程序简单是太重要了。这个协议可以工作在TCP和UDP协议下。时间是由32位表示的,是自1900年1月1日0时到当前的秒数,我们可以计算一下,这个协议只能表示到2036年就不能用了,但是我们也知道计算机发展速度这么快,到时候可能就会有更好的协议代替这个协议。

  TFTP(Trivial File Transfer Protocol)小文件传输协议

  它是一个网络应用程序,它比FTP简单也比FTP功能少。它在不需要用户权限或目录可见的情况下使用,它使用UDP协议而不是TCP协议。

  UDP(User Datagram Protocol)用户数据报协议

  它是定义用来在互连网络环境中提供包交换的计算机通信的协议,此协议默认认为网路协议(IP)是其下层协议。UDP是TCP的另外一种方法,象TCP一样,UDP使用IP协议来获得数据单元(叫做数据报),不象TCP的是,它不提供包(数据报)的分组和组装服务。而且,它还不提供对包的排序,这意味着,程序程序必须自己确定信息是否完全地正确地到达目的地。如果网络程序要加快处理速度,那使用UPD就比TCP要好。UDP提供两种不由IP层提供的服务,它提供端口号来区别不同用户的请求,而且可以提供奇偶校验。在OSI模式中,UDP和TCP一样处于第四层,传输层。

  UUCP(UNIX-to-UNIX Copy Protocol)UNIX至UNIX拷贝协议

  它是一组用于在不同UNIX系统之间复制(传送)文件或传送用于其它UNIX系统执行命令的一组指令,是UNIX网络的基础。

  X.25协议

  它是CCITT标准的通讯协议,制定于1976年,用于定义同步传输的数据包。是国际上分组数据网(PDN)上使用的一种协议。它允许不同网络中的计算机通过一台工作在网络层的中间计算机进行相互通信。

  X.400协议

  它是一个电子邮件协议,它由ITU-TS制定,它可以发挥和SMTP相同的功能。X.400在欧洲和加拿大使用比较多,它实际上是一个标准集,每个标准的序号都在此400到499之间。X.400地址能够提供许多SMTP地址所不能够提供的功能,因此X.400的地址会比较长而且比较麻烦。X.400的确提供了比SMTP更多的功能,然而这些功能却很少能够用到。X.400的主要部分有以下几个:用户代理(UA),消息传送代理(MTA)和消息传输系统(MTS)。

  Z39.50协议

  它是一个标准的通信协议,它用于检索和获得在线数据库中的著书目录。Z39.50用于在互联网上检索图书馆的在线公共访问目录(Online Public Access Catalogues,OPAC),也可以用于把多个分离的OPAC连接起来,它是ANSI/NISO标准。

 

 

 

 

 

 

 

 

 

 

 

 

 

ARP协议

1 ARP协议概述

IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,AR P)就是用来确定这些映象的协议。

ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。

如果有一个不被信任的节点对本地网络具有写访问许可权,那么也会有某种风险。这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。ARP机制常常是自动起作用的。在特别安全的网络上, ARP映射可以用固件,并且具有自动抑制协议达到防止干扰的目的。


图1 以太网上的ARP报文格式

图1是一个用作IP到以太网地址转换的ARP报文的例子。在图中每一行为32位,也就是4个八位组表示,在以后的图中,我们也将遵循这一方式。

硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1。协议类型字段指明了发送方提供的高层协议类型,IP为0806(16进制)。硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用。操作字段用来表示这个报文的目的,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4。

当发出ARP请求时,发送方填好发送方首部和发送方IP地址,还要填写目标IP地址。当目标机器收到这个ARP广播包时,就会在响应报文中填上自己的48位主机地址。

2 ARP使用举例

我们先看一下linux下的arp命令(如果开始arp表中的内容为空的话,需要先对某台主机进行一个连接,例如ping一下目标主机来产生一个arp项):

d2server:/home/kerberos# arp

Address          HWtype  HWaddress         Flags Mask            Iface

211.161.17.254   ether   00:04:9A:AD:1C:0A      C                 eth0

Address:主机的IP地址

Hwtype:主机的硬件类型

Hwaddress:主机的硬件地址

Flags Mask:记录标志,"C"表示arp高速缓存中的条目,"M"表示静态的arp条目。

用"arp --a"命令可以显示主机地址与IP地址的对应表,也就是机器中所保存的arp缓存信息。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

可以看到在缓存中有一条211.161.17.254相对应的arp缓存条目。

d2server:/home/kerberos# telnet 211.161.17.21

Trying 211.161.17.21...

Connected to 211.161.17.21.

Escape character is '^]'.

^].

telnet>quit

connetion closed.

在执行上面一条telnet命令的同时,用tcpdump进行监听:

d2server:/home/kerberos# tcpdump -e dst host 211.161.17.21

tcpdump: listening on eth0

我们将会听到很多包,我们取与我们arp协议相关的2个包:

1  0.0         00:D0:F8:0A:FB:83      FF:FF:FF:FF:FF:FF  arp  60

                       who has 211.161.17.21 tell d2server

2  0.002344(0.0021)    00:E0:3C:43:0D:24      00:D0:F8:0A:FB:83  arp  60

                       arp reply 211.161.17.21 is at 00:E0:3C:43:0D:24

                      

在第1行中,源端主机(d2server)的硬件地址是00:D0:F8:0A:FB:83。目的端主机的硬件地址是FF:FF:FF:FF:FF:FF,这是一个以太网广播地址。电缆上的每个以太网接口都要接收这个数据帧并对它进行处理。

第1行中紧接着的一个输出字段是arp,表明帧类型字段的值是0x0806,说明此数据帧是一个ARP请求或回答。

在每行中,单词后面的值60指的是以太网数据帧的长度。由于ARP请求或回答的数据帧长都是42字节(28字节的ARP数据,14字节的以太网帧头),因此,每一帧都必须加入填充字符以达到以太网的最小长度要求:60字节。

第1行中的下一个输出字段arp who-has表示作为ARP请求的这个数据帧中,目的I P地址是211.161.17.21的地址,发送端的I P地址是d2server的地址。tcpdump打印出主机名对应的默认I P地址。

从第2行中可以看到,尽管ARP请求是广播的,但是ARP应答的目的地址却是211.161.17.21(00:E0:3C:43:0D:24)。ARP应答是直接送到请求端主机的,而是广播的。tcpdump打印出arp reply的字样,同时打印出响应者的主机ip和硬件地址。

在每一行中,行号后面的数字表示tcpdump收到分组的时间(以秒为单位)。除第1行外,每行在括号中还包含了与上一行的时间差异(以秒为单位)。

这个时候我们再看看机器中的arp缓存:

d2server:/home/kerberos# arp -a

(211.161.17.254) at  00:04:9A:AD:1C:0A [ether] on eth0

(211.161.17.21) at  00:E0:3C:43:0D:24 [ether] on eth0

arp高速缓存中已经增加了一条有关211.161.17.21的映射。

再看看其他的arp相关的命令:

d2server:/home/kerberos# arp -s 211.161.17.21 00:00:00:00:00:00

d2server:/home/kerberos# arp

Address          HWtype  HWaddress        Flags Mask       Iface

211.161.17.254     ether   00:04:9A:AD:1C:0A     C            eth0

211.161.17.21      ether   00:00:00:00:00:00      CM           eth0

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211.161.17.21) at 00:00:00:00:00:00 [ether] PERM on eth0

可以看到我们用arp -s选项设置了211.161.17.21对应的硬件地址为00:00:00:00:00:00,而且这条映射的标志字段为CM,也就是说我们手工设置的arp选项为静态arp选项,它保持不变没有超时,不像高速缓存中的条目要在一定的时间间隔后更新。

如果想让手工设置的arp选项有超时时间的话,可以加上temp选项

d2server:/home/kerberos# arp -s 211.161.17.21 00:00:00:00:00:00 temp

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211.161.17.21) at 00:00:00:00:00:00 [ether] on eth0

d2server:/home/kerberos# arp

Address        HWtype  HWaddress         Flags Mask      Iface

211.161.17.254   ether   00:04:9A:AD:1C:0A     C            eth0

211.161.17.21    ether   00:00:00:00:00:00       C            eth0

可以看到标志字段的静态arp标志"M"已经去掉了,我们手工加上的是一条动态条目。

请大家注意arp静态条目与动态条目的区别。

在不同的系统中,手工设置的arp静态条目是有区别的。在linux和win2000中,静态条目不会因为伪造的arp响应包而改变,而动态条目会改变。而在win98中,手工设置的静态条目会因为收到伪造的arp响应包而改变。

如果您想删除某个arp条目(包括静态条目),可以用下面的命令:

d2server:/home/kerberos# arp -d 211.161.17.21 

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211.161.17.21) at  on eth0

可以看到211.161.17.21的arp条目已经是不完整的了。

还有一些其他的命令,可以参考linux下的man文档:

d2server:/home/kerberos# man arp

3 ARP欺骗

我们先复习一下上面所讲的ARP协议的原理。在实现TCP/IP协议的网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义,但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的硬件mac地址来识别。也就是说,只有机器的硬件mac地址和该ip包中的硬件mac地址相同的机器才会应答这个ip包,因为在网络中,每一台主机都会有发送ip包的时候,所以,在每台主机的内存中,都有一个 arp--> 硬件mac 的转换表。通常是动态的转换表(该arp表可以手工添加静态条目)。也就是说,该对应表会被主机在一定的时间间隔后刷新。这个时间间隔就是ARP高速缓存的超时时间。

通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的硬件mac地址,如果没有找到,该主机就发送一个ARP广播包,于是,主机刷新自己的ARP缓存。然后发出该ip包。

了解这些常识后,现在就可以谈在以太网络中如何实现ARP欺骗了,可以看看这样一个例子。

3.1 同一网段的ARP欺骗


图2 同一网段的arp欺骗

如图2所示,三台主机

A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA
B: ip地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB:BB
C: ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC

一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料他知道这台主机A的防火墙只对主机C有信任关系(开放23端口(telnet))。而他必须要使用telnet来进入主机A,这个时候他应该如何处理呢?

我们这样考虑,入侵者必须让主机A相信主机B就是主机C,如果主机A和主机C之间的信任关系是建立在ip地址之上的。如果单单把主机B的ip地址改的和主机C的一样,那是不能工作的,至少不能可靠地工作。如果你告诉以太网卡设备驱动程序,自己IP是192.168.0.3,那么这只是一种纯粹的竞争关系,并不能达到目标。我们可以先研究C这台机器如果我们能让这台机器暂时当掉,竞争关系就可以解除,这个还是有可能实现的。在机器C当掉的同时,将机器B的ip地址改为192.168.0.3,这样就可以成功的通过23端口telnet到机器A上面,而成功的绕过防火墙的限制。

上面的这种想法在下面的情况下是没有作用的,如果主机A和主机C之间的信任关系是建立在硬件地址的基础上。这个时候还需要用ARP欺骗的手段让主机A把自己的ARP缓存中的关于192.168.0.3映射的硬件地址改为主机B的硬件地址。

我们可以人为的制造一个arp_reply的响应包,发送给想要欺骗的主机,这是可以实现的,因为协议并没有规定必须在接收到arp_echo后才可以发送响应包.这样的工具很多,我们也可以直接用snifferpro抓一个arp响应包,然后进行修改。

你可以人为地制造这个包。可以指定ARP包中的源IP、目标IP、源MAC地址、目标MAC地址。

这样你就可以通过虚假的ARP响应包来修改主机A上的动态ARP缓存达到欺骗的目的。

下面是具体的步骤:

  1. 他先研究192.0.0.3这台主机,发现这台主机的漏洞。
  2. 根据发现的漏洞使主机C当掉,暂时停止工作。
  3. 这段时间里,入侵者把自己的ip改成192.0.0.3
  4. 他用工具发一个源ip地址为192.168.0.3源MAC地址为BB:BB:BB:BB:BB:BB的包给主机A,要求主机A更新自己的arp转换表。
  5. 主机更新了arp表中关于主机C的ip-->mac对应关系。
  6. 防火墙失效了,入侵的ip变成合法的mac地址,可以telnet 了。

上面就是一个ARP的欺骗过程,这是在同网段发生的情况,但是,提醒注意的是,在B和C处于不同网段的时候,上面的方法是不起作用的。

3.2 不同网段的ARP欺骗


图3 不同网段之间的ARP欺骗

如图3所示A、C位于同一网段而主机B位于另一网段,三台机器的ip地址和硬件地址如下:

A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA:AA
B: ip地址 192.168.1.2 硬件地址 BB:BB:BB:BB:BB:BB
C: ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC:CC

在现在的情况下,位于192.168.1网段的主机B如何冒充主机C欺骗主机A呢?显然用上面的办法的话,即使欺骗成功,那么由主机B和主机A之间也无法建立telnet会话,因为路由器不会把主机A发给主机B的包向外转发,路由器会发现地址在192.168.0.这个网段之内。

现在就涉及到另外一种欺骗方式―ICMP重定向。把ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的。

什么是ICMP重定向呢?

ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。

我们可以利用ICMP重定向报文达到欺骗的目的。

下面是结合ARP欺骗和ICMP重定向进行攻击的步骤:

  1. 为了使自己发出的非法ip包能在网络上能够存活长久一点,开始修改ip包的生存时间ttl为下面的过程中可能带来的问题做准备。把ttl改成255. (ttl定义一个ip包如果在网络上到不了主机后,在网络上能存活的时间,改长一点在本例中有利于做充足的广播)
  2. 下载一个可以自由制作各种包的工具(例如hping2)
  3. 然后和上面一样,寻找主机C的漏洞按照这个漏洞当掉主机C。
  4. 在该网络的主机找不到原来的192.0.0.3后,将更新自己的ARP对应表。于是他发送一个原ip地址为192.168.0.3硬件地址为BB:BB:BB:BB:BB:BB的ARP响应包。
  5. 好了,现在每台主机都知道了,一个新的MAC地址对应192.0.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的ip包丢给路由。于是他还得构造一个ICMP的重定向广播。
  6. 自己定制一个ICMP重定向包告诉网络中的主机:"到192.0.0.3的路由最短路径不是局域网,而是路由,请主机重定向你们的路由路径,把所有到192.0.0.3的ip包丢给路由。"
  7. 主机A接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3的通讯都丢给路由器。
  8. 入侵者终于可以在路由外收到来自路由内的主机的ip包了,他可以开始telnet到主机的23口。

其实上面的想法只是一种理想话的情况,主机许可接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难。

TCP/IP协议实现中关于主机接收ICMP重定向报文主要有下面几条限制:

  1. 新路由必须是直达的
  2. 重定向包必须来自去往目标的当前路由
  3. 重定向包不能通知主机用自己做路由
  4. 被改变的路由必须是一条间接路由

由于有这些限制,所以ICMP欺骗实际上很难实现。但是我们也可以主动的根据上面的思维寻找一些其他的方法。更为重要的是我们知道了这些欺骗方法的危害性,我们就可以采取相应的防御办法。

3.3 ARP欺骗的防御

知道了ARP欺骗的方法和危害,我们给出一些初步的防御方法:

  1. 不要把你的网络安全信任关系建立在ip地址的基础上或硬件mac地址基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在ip+mac基础上。
  2. 设置静态的mac-->ip对应表,不要让主机刷新你设定好的转换表。
  3. 除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。在linux下可以用ifconfig -arp可以使网卡驱动程序停止使用ARP。
  4. 使用代理网关发送外出的通讯。
  5. 修改系统拒收ICMP重定向报文

在linux下可以通过在防火墙上拒绝ICMP重定向报文或者是修改内核选项重新编译内核来拒绝接收ICMP重定向报文。

在win2000下可以通过防火墙和IP策略拒绝接收ICMP报文。

4 代理ARP的应用

代理ARP有两大应用,一个是有利的就是我们在防火墙实现中常说的透明模式的实现,另一个是有害的就是通过它可以达到在交换环境中进行嗅探的目的.由此可见同样一种技术被应用于不同的目的,效果是不一样的.

我们先来看交换环境中局域网的嗅探.

通常在局域网环境中,我们都是通过交换环境的网关上网的。在交换环境中使用NetXray或者NAI Sniffer一类的嗅探工具除了抓到自己的包以外,是不能看到其他主机的网络通信的。

但是我们可以通过利用ARP欺骗可以实现Sniffer的目的。

ARP协议是将IP地址解析为MAC地址的协议,局域网中的通信都是基于MAC地址的。


图4 交换网络中的ARP欺骗

如图4所示,三台主机位于一个交换网络的环境中,其中A是网关:

A: ip地址 192.168.0.1 硬件地址 AA:AA:AA:AA:AA

B: ip地址 192.168.0.2 硬件地址 BB:BB:BB:BB:BB

C:ip地址 192.168.0.3 硬件地址 CC:CC:CC:CC:CC

在局域网中192.168.0.2和192.168.0.3都是通过网关192.168.0.1上网的,假定攻击者的系统为192.168.0.2,他希望听到192.168.0.3的通信,那么我们就可以利用ARP欺骗实现。

这种欺骗的中心原则就是arp代理的应用.主机A是局域网中的代理服务器,局域网中每个节点的向外的通信都要通过它.主机B想要听主机C的通信,它需要先使用ARP欺骗,让主机C认为它就是主机A,这个时候它发一个IP地址为192.168.0.1,物理地址为BB:BB:BB:BB:BB:BB的ARP响应包给主机C,这样主机C会把发往主机A的包发往主机B.同理,还要让网关A相信它就是主机C,向网关A发送一个IP地址为192.168.0.3,物理地址为BB:BB:BB:BB:BB:BB的包.

上面这一步的操作和前面的ARP欺骗的原理是一样的,但是还是有问题,过一段时间主机B会发现自己无法上网.所以下面还有一个步骤就是需要在主机B上转发从主机A到主机C的包,并且转发从主机C到主机A的包.现在我们可以看到其实主机B在主机A和主机C的通讯中起到了一个代理的作用,这就是为什么叫做ARP代理的原因.

具体实现要用到两个工具dsniff和fragrouter,dsniff用来实现ARP欺骗,fragroute用来进行包的转发.

首先利用dsniff中的arpspoof来实现ARP欺骗,dsniff软件可以在下面的网址下载:

http://naughty.monkey.org/~dugsong/dsniff

安装这个软件包之前先要下载安装libnet.

欺骗192.168.0.3,告诉这台机器网关192.168.0.1的MAC地址是192.168.0.2的MAC地址.

[root@sound dsniff-2.3]# ./arpspoof -i eth0 -t 192.168.0.3 192.168.0.1

欺骗192.168.0.1,告诉192.168.0.1主机192.168.0.3的MAC地址是192.168.0.2的MAC地址。

[root@sound dsniff-2.3]# ./arpspoof -i eth0 -t 192.168.0.1 192.168.0.3

现在我们已经完成了第一步的欺骗,这个欺骗是通过arpspoof来完成的,当然您也可以使用别的工具甚至自己发包来完成.现在我们可以看到在主机A和主机C的arp列表里面都完成了我们需要的工作.在后面的透明代理中我们将使用另外一种不同的理念.

下面我们先打开linux系统中的转发包的选项:

[root@sound /root]# echo "1" >/proc/sys/net/ipv4/ip_forward

下面我们可以下载大名鼎鼎的dugsong的另外一个工具fragroute,这个工具以前叫做fragrouter(仅有1字的差别)主要用于实现入侵检测系统处理分片的ip和tcp包功能的检测,本身自代包转发的功能.可以到下面的网站下载:

http://monkey.org/~dugsong/fragroute/

安装这个软件包之前先要下载安装libpcap和libevent.

当然我们也可以使用fragrouter来完成:

http://www.packetstormsecurity.org/groups/ w00w00/sectools/fragrouter/

[root@sound fragrouter-1.6]# ./fragrouter -B1

fragrouter: base-1: normal IP forwarding

现在就可以实现在交换局域网中嗅探的目标.当然上面这些只是一些原理性的介绍,在真正的使用中会遇到很多的问题,比如如何实现对网关A和主机C的欺骗,以及如何处理可能出现的广播风暴问题,这些可以在实践中学习.还有一个叫arpsniff的工具能够很方便的完成这一功能,很多网站都提供下载,界面比较友好,由于和上面的原理一样,只是工具使用上的不同并且添加了一些附加的功能,所以这里不在进行介绍.

代理ARP的另外一个应用就是防火墙的透明代理的实现.我们都知道早期的防火墙大都是基于路由模式,也就是防火墙要完成一个路由的作用.这种接入方式需要在局域网内的主机上设置防火墙的IP为代理,而且需要在外部路由器的路由表中加入一条指向防火墙的路由.这种方式的缺点在于不透明,需要进行过多的设置,并且破坏了原有的网络拓扑.所以现在几乎全部的防火墙都实现了一种透明接入的功能,用户的路由器和客户端不用做任何修改,用户甚至感觉不到透明接入方式防火墙的存在.这种透明接入的原理就是ARP代理.

我们现在看如何配置一台主机作为透明接入模式的防火墙(透明接入的防火墙不需要IP),


图5

如图5所示,一台防火墙连接内部网段和DMZ网段到外部路由.我们在这台用作防火墙的主机上使用linux操作系统,这样我们可以方便的使用iptables防火墙.假设三块网卡为eth0,eth1和eth2,eth0和路由器相连,eth1和内网相连.eth2和外网相连.假设DMZ区有2台服务器.

内网地址:192.168.1.0/24

DMZ地址:192.168.1.2---192.168.1.3

路由器的ip地址:192.168.1.1

eth0:AA:AA:AA:AA:AA:AA

eth1:BB:BB:BB:BB:BB:BB

eth2:CC:CC:CC:CC:CC:CC

和前面差不多,第一步需要实现ARP欺骗,这次我们有个简单的实现.我们把路由器的IP地址和防火墙的eth1和eth2的网卡物理地址绑定,将内网和DMZ网段的IP地址和eth0的网卡绑定,在linux系统上我们用arp命令实现:

arp -s 192.168.1.1 BB:BB:BB:BB:BB:BB

arp -s 192.168.1.1 CC:CC:CC:CC:CC:CC

arp -s 192.168.1.0/24 AA:AA:AA:AA:AA:AA

第二部我们需要在基于linux的防火墙上设置路由,把目标地址是外部路由的包转发到eth0,把目标地址为内网的包转发到eth1,把目标地址是DMZ网段服务器的包转发到eth2.在linux下面用route命令实现

route add 192.168.1.1 dev eth0

route add -net 192.168.1.0/24  dev eth1

route add 192.168.1.2  dev eth2

route add 192.168.1.3  dev eth3

(针对DMZ网段里面的每台服务器都要增加一条单独的路由) 现在我们就已经实现了一个简单的arp代理的透明接入,当然对应于防火墙的iptables部分要另外配置,iptables的配置不在本文范畴之内.

 

PPP(Point-to-Point Protocol点到点协议

一、介绍

  PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

  二、 PPP链路建立过程

  PPP协议中提供了一整套方案 来解决链路建立、维护、拆除、上层协议协商、认证等问题。PPP协议包含这样几个部分:链路控制协议LCP(Link Control Protocol);网络控制协议NCP(Network Control Protocol);认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。

  LCP负责创建,维护或终止一次物理连接。NCP是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。

  下面介绍PPP链路建立的过程:

 

  PPP链路状态机如图1所示。一个典型的链路建立过程分为三个阶段:创建阶段、认证阶段和网络协商阶段。

  阶段1:创建PPP链路

  LCP负责创建链路。在这个阶段,将对基本的通讯方式进行选择。链路两端设备通过LCP向对方发送配置信息报文(Configure Packets)。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。

  应当注意,在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。


  阶段2:用户验证

  在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。

  在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。

  最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)。认证方式介绍在第三部分中介绍。

  阶段3:调用网络层协议


  认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。

  这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。

  三、 认证方式

  1)口令验证协议(PAP)

  PAP是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。

  2)挑战-握手验证协议(CHAP)

  CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。

  CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击。

  四、PPP协议的应用

  PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。

  家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。 目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。

  利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。

  同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准。

  PPP协议的简单完整使它得到了广泛的应用,相信在未来的网络技术发展中,它还可以发挥更大的作用。

 

 

 

 

 

 

 

 

 

 

 

 

 

RIP协议

 

 

 

 

1.矢量距离算法...................................................................................................... 3

2RIP的原理........................................................................................................... 4

3RIP报文的格式.................................................................................................... 5

4RIP协议的运行.................................................................................................... 6

 

在目前的Internet网上,运行一种网关协议是不可能的,我们要将它分成很多的自治系统(Autonomous System-AS),在每个自治系统有它自己的路由技术。我们称自治系统内部的路由协议为内部网关协议(Interior gateway protocol-IGP)。RIP(Routing Information Protocol)就是内部网关协议的一种,它采用的是矢量距离(Vector-Distance)算法。 RIP系统的开发是XEROX Palo Alto 研究中心(PARC)所进行的研究和XEROX的PDU和XNC路由选择协议为基础的。但是RIP的广泛应用却得益于它加利福尼亚大学伯克利分校的许多局域网中的实现。

RIP只适用于小系统中,当系统变大后受到无限计算问题的困扰,且往往收敛的很慢。现已被OSPF所取代。

1.矢量距离算法

矢量距离算法(简称V-D算法)的思想是:网关周期性地向外广播路径刷新报文,主要内容是由若干(V,D)序偶组成的序偶表;(V,D)序偶中的V代表“向量”,标识网关可到达的信宿(网关或主机),D代表距离,指出该网关去往信宿V的距离;距离D按驿站的个数计。其他网关收到某网关的(V,D)报文后,据此按照最短路径原则对各自的路由表进行刷新。

具体的说,V-D算法如下所述:

首先,网关刚启动时,对其V-D路由表进行初始化,该初始化路由表包含所有去往与本网关直接相连的网络。由于去往直接相连的网络不经过中间驿站,所以初始V-D路由表中各路径的距离均为0。

然后各网关周期性地向外广播企V-D路由表内容。与某网关直接相连(位于同一物理网络)的网关收到该路由表报文后,据此对本地路由表进行刷新。刷新时,网关逐项检查来自相邻网关的V-D报文,遇到下述表目之一,须修改本地路由表:

(1) Gj列出的某表目Gi路由表总没有。则Gi路由表须增加相应表目,其“信宿”是Gj表目中的信宿,其“距离”为Gj表目中的距离加1,其“路径”为“Gj”(即下一驿站为Gj)。

(2) Gj去往某信宿的距离比Gi去往某信宿的距离减1还小。这种情况说明,Gi去往某信宿若经过Gj,距离会更短。则Gi修改本表目,其中“信宿”域不变,“距离”为Gj表目中的距离加1,“路径”为“Gj”。

(3) Gi去往某信宿的路径经过Gj,而Gj去往该信宿的路径发生变化。这里分两种情况:

A:Gj的V-D表不再包含去往某信宿的路径,则Gi中相应路径序删除。

B:Gj的V-D表中去往某信宿的路径距离发生变化,则Gi中相应表目“距离”须修改,以Gj中的“距离”加1取代原来的距离。

    V-D算法的路径刷新发生在相邻网关之间,所以V-D报文不一定以广播的方式发送出去,一种比较优化的方法是网关直接向相邻的网关发送V-D报文,不必采取广播的方式。

    V-D算法的优点是易于实现,但是它不适应路径剧烈变化的或大型的网间网环境,因为某网关的路径变化象波动一样从相邻网关传播出去,其过程是非常缓慢的。因此,V-D算法路径刷新过程中,可能出现路径不一致问题。V-D算法的另一个缺陷是它需要大量的信息交换:一方面,V-D报文就每一可能的信宿网络都包含一条表目,报文的大小相当于一个路由表(其表目的数与网间网网络数成正比),而且其中的许多表目都是与当前路径刷新无关的;另一方面,V-D算法要求所有网关都参加信息交换,要交换的信息量极大。

2RIP的原理

RIP协议是V-D算法在局域网上的直接实现,RIP将协议的参加者分为主动机和被动机两种。主动机主动地向外广播路径刷新报文,被动机被动地接受路径刷新报文。一般情况下,网关作主动机,主机作被动机。

RIP规定,网关每30秒向外广播一个V-D报文,报文信息来自本地路由表。RIP协议的V-D报文中,其距离以驿站计:与信宿网络直接相连的网关规定为一个驿站,相隔一个网关则为两个驿站……依次类推。一条路径的距离为该路径(从信源机到信宿机)上的网关数。为防止寻径回路的长期存在,RIP规定,长度为16的路径为无限长路径,即不存在路径。所以一条有限的路径长度不得超过15。正是这一规定限制了RIP的使用范围,使RIP局限于小型的局域网点中。

对于相同开销路径的处理是采用先入为主的原则。在具体的应用中,可能会出现这种情况,去往相同网络有若干条相同距离的路径。在这种情况下,无论哪个网关的路径广播报文先到,就采用谁的路径。直到该路径失败或被新的更短的路径来代替。

RIP协议对过时路径的处理是采用了两个定时器;超时计时器和垃圾收集计时器。所有机器对路由表中的每个项目对设置两个计时器。每增加一个新表,就相应的增加两个计时器。当新的路由被安装到路由表中时,超时计时器被初始化为0,并开始计数。每当收到包含路由的RIP消息,超时计时器就被重新设置为0。如果在180秒内没有接收到包含该路由的RIP消息,该路由的度量就被设置为16,而启动该路由的垃圾收集计时器。如果120秒过去了,也没有收到该路由的RIP消息,该路由就从路由表中删除。如果在垃圾收集计时器到120秒之前,收到了包含路由的消息,计时器被清0。而路由被安装到路由表中。

慢收敛的问题及其解决的方法。包括RIP在内的V-D算法路径刷新协议,都有一个严重的缺陷,即“慢收敛”(slow convergence)问题。又叫“计数到无穷”(count to infinity)。如果出现环路,直到路径长度达到16,也就是说要经过7番来回(至少30X7秒),路径回路才能被解除,这就是所谓的慢收敛问题。采用的方法有很多种,主要采用有分割范围(split horizon)法和带触发更新的毒性逆转(Posion Reverse with Triggered updates))法。分割范围法的原理是:当网关从某个网络接口发送RIP路径刷新报文时,其中不能包含从该接口获得的路径信息。毒性逆转法的原理是:某路径崩溃后,最早广播此路径的网关将原路径继续保存在若干刷新报文中,但是指明路径为无限长。为了加强毒性逆转的效果,最好同时使用触发更新技术:一旦检测到路径崩溃,立即广播路径刷新报文,而不必等待下一个广播周期。

3RIP报文的格式

对于RIP报文有两种版本的格式,Version 1和Version 2。两种报文稍有不同,如图1所示:

 

图1 RIP报文格式

命令字段的值的范围是从1到5,但只有1和2是正式的值。命令码1标识一个请求报文,命令码2标识一个相应报文。RIP是一个基于UDP协议的,所以受UDP报文的限制一个RIP的数据包不能超过512字节。两个版本都包含一个地址族,对于IP地址该字段的值为2,后面是一个IP地址和它的度量值(站点计数)。这些通告字段可重复25次。

路由选择域:与该报文相关的路由选择守护进程的标识符。在UNIX系统中,该字段是一个进程的标识符。一台机器通过使用路由选择域,就可以同时运行多个RIP。

路径标签:若干RIP支持外部网关协议(EGP),该字段包含一个自治系统号。

子网掩码:该字段与报文中的IP地址相关。

下一站的IP地址:如果该字段为0,则表明数据报应当发送到正在发送该RIP报文的机器,否则,该字段包含一个IP地址,指明应将数据报发往何处。

从报文中我们可以看出,RIP-1不能运行于包含有子网的自治系统中,因为它没有包含运行所必须的子网信息-子网掩码。RIP-2有子网掩码,因而它可以运行于包含有子网的自治系统中,这也是RIP-2对RIP-1有意义的改进。

4RIP协议的运行

    网关刚启动时,运行V-D算法,对V-D路由表进行初始化,为每一个和它直接相连的实体建一个表目,并设置目的IP地址,距离为1(这里RIP和V-D略有不同),下一站的IP为0,还要为这个表目设置两个定时器(超时计时器和垃圾收集计时器)。每隔30秒就向它相邻的实体广播路由表的内容。相邻的实体收到广播时,在对广播的内容进行细节上的处理之前,对广播的数据报进行检查。因为广播的内容可能引起路由表的更新,所以这种检查是细致的。首先检查报文是否来自端口520的UDP数据报,如果不是,则丢弃。否则看RIP报文的版本号:如果为0,这个报文就被忽略;如果为1,检查必须为0的字段,如果不为0,忽略该报文;如果大于1,RIP-1对必须为0的字段就不检查。然后对源IP地址进行检查,看它是否来自直接相连的邻居,如果不是来自直接邻居,则报文被忽略。如果上面的检查都是有效的,则对广播的内容进行逐项的处理。看它的度量值是否大于15,如果是则忽略该报文(实际上,如果来自相邻网关的广播,这是不可能的)。然后检查地址族的内容,如果不为2,则忽略该报文。然后更新自己的路由表,并为每个表目设置两个计时器,初始化其为0。就这样所有的网关都每隔30秒向外广播自己的路由表,相邻的网关和主机收到广播后来更新自己的路由表。直到每个实体的路由表都包含到所有实体的寻径信息。如果某条路由突然断了,或者是其度量大于15,与其直接相邻的网关采用分割范围或触发更新的方法向外广播该信息,其他的实体在两个计时器溢出的情况下将该路由从路由表中删除。如果某个网关发现了一条更好的路径,它也向外广播,与该路由相关的每个实体都要更新自己的路由表的内容。

为了更好地理解RIP协议的运行,下面以图2所示的简单的互连网为例来讨论图中各个路由器中的路由表是怎样建立起来的。

在一开始,所有路由器中的路由表只有路由器所接入的网络(共有两个网络)的情况。现在的路由表增加了一列,这就是从该路由表到目的网络上的路由器的“距离”。在图中“下一站路由器”项目中有符号“-”,表示直接交付。这是因为路由器和同一网络上的主机可直接通信而不需要再经过别的路由器进行转发。同理,到目的网络的距离也都是零,因为需要经过的路由器数为零。图中粗的空心箭头表示路由表的更新,细的箭头表示更新路由表要用到相邻路由表传送过来的信息。

接着,各路由器都向其相邻路由器广播RIP报文,这实际上就是广播路由表中的信息。

假定路由器R2先收到了路由器R1R3的路由信息,然后就更新自己的路由表。更新后的路由表再发送给路由器R1R3。路由器R1R3分别再进行更新。

RIP协议存在的一个问题是:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。以图2为例,设三个路由器都已经建立了各自的路由表,现在路由器R1和网1的连接线路与染短开。路由器R1发现后,将到网1的距离改为16,并将此信息发给路由器R2。由于路由器R3发给R2的信息是:“到网1经过R2距离为2”,于是R2将此项目更新为“到网1经过R3距离为3”,发给R3R3再发给R2信息:“到网1经过肉距离为4”。这样一直到距离增大到16时,R2R3才知道网1是不可达的。RIP协议的这一特点叫做:好消息传播得快,而坏消息传播得慢。像这种网络出故障的传播时间往往需要较长的时间,这是RIP的一个主要缺点。

使用RIP协议时路由表的建立过程

 

 

 

 

 

 

OSPF协议

 

1.概述.................................................................................................................... 3

2.SPF算法.............................................................................................................. 3

3OSPF协议原理.................................................................................................... 5

3.1  自治系统的分区....................................................................................... 5

3.2  区域间路由.............................................................................................. 6

3.3  Stub区和自治系统外路由........................................................................ 6

3.4  DR和BDR................................................................................................. 7

4.OSPF报文............................................................................................................. 7

4.1  OSPF协议报文......................................................................................... 7

4.2       OSPF包承载的内容............................................................................... 9

5.OSPF协议的运行................................................................................................ 10

5.1       Hello协议的运行............................................................................... 10

5.2 DR和BDR的产生...................................................................................... 10

5.3链路状态数据库的同步............................................................................. 11

5.4路由表的产生和查找................................................................................. 11

 

1.概述

OSPF协议是由Internet网络工程部(IETF)开发的一种内部网关协议(IGP),即网关和路由器都在一个自治系统内部。OSPF是一个链路状态协议或最短路径优先(SPF)协议。虽然该协议依赖于IP环境以外的一些技术,但该协议专用于IP,而且还包括子网编址的功能。该协议根据IP数据报中的目的IP地址来进行路由选择,一旦决定了如何为一个IP数据报选择路径,就将数据报发往所选择的路径中,不需要额外的包头,即不存在额外的封装。该方法与许多网络不同,因为他们使用某种类型的内部网络报头对UDP进行封装以控制子网中的路由选择协议。另外OSPF可以在很短的时间里使路由选择表收敛。OSPF还能够防止出现回路,这种能力对于网状网络或使用多个网桥连接的不同局域网是非常重要的。在运行OSPF的每一个路由器中都维护一个描述自治系统拓扑结构的统一的数据库,该数据库由每一个路由器的局部状态信息(该路由器可用的接口信息、邻居信息)、路由器相连的网络状态信息(该网络所连接的路由器)、外部状态信息(该自治系统的外部路由信息)等组成。每一个路由器在自治系统范围内扩散相应的状态信息。

所有的路由器并行运行同样的算法,根据该路由器的拓扑数据库构造出以它自己为根节点的最短路径树,该最短路径树的叶子节点是自治系统内部的其它路由器。当到达同一目的路由器存在多条相同代价的路由时,OSPF能够实现在多条路径上分配流量。

RFC2178中删除了OSPF的TOS功能,但是为了保证和以前版本的兼容性,在各个链路状态宣告中还保留了TOS项目。

2.SPF算法

与V-D算法相比较的一组算法叫作“链接-状态”(link-state)算法,又叫最短路径优先或SPF(Shortest Path First)算法。

按照SPF算法的要求,网关寻径表依赖于一张表示整个Internet网中网关与网络拓扑结构的图。在这张图中,节点表示网关,边表示连接网关的网络(link),我们称之为L-S图。在信息一致的情况下,所有网关的L-S图应该是完全相同的。各网关的寻径表是根据相同的L-S图计算出来的。L-S算法包括三个步骤:

(1)各个网关主动测试与所有相邻网关之间的状态。为此,网关周期性地向相邻网关发出Hello报文,询问相邻网关是否能够访问。假如相邻网关做出反应,说明链接为“开”(UP),否则为“关”(DOWN),链接-状态的取名即出于此。

(2)各网关周期性地广播其L-S信息。这里的“广播”是真正意义的广播,不象V-D算法那样只向相邻网关发送V-D报文,而是向所有参加SPF算法的网关发送L-S报文。

(3)网关收到L-S报文后,利用它刷新网络拓扑图,将相应链接改为“开”或“关”状态。假如L-S发生变化,网关立即利用最短路径算法,根据L-S图重新计算本地路径。

在实际应用中有好几种最短路径选择算法,大多数是以A算法(algorithm A)为基础。该算法已作为互连网络SPF协议的模型,并且多年来被用于优化网络设计和网络的拓扑结构。各节点用自己拥有的统一的描述自治系统拓扑结构的数据库,以自己为根,建立一个路径选择的寻径表。在图1中,节点A是源节点,节点J是目的节点。其具体的步骤如下:

(1)在图1中,网络中的每条路径有一个权值,该权值是根据某一标准(如考虑距离、时延、队列长度等)得出的;

(2)为每个节点标上一条已知路径从源端到该节点需要的最小代价。最初不知道任何路径,所以每个节点的标号为无穷大;

(3)为每个节点检测它周围有哪些相邻的节点,源节点是第一个被考虑的节点,并且变为工作节点;

(4)为工作节点的每个相邻的节点分配一个最小代价标号。如果发现一条从该节点到源节点的更短的路径,则修改标号。在OSPF中,当链路状态报文广播到所有其他节点时,会发生这种情况(即因发现更短的路径而修改标号);

(5)在给相邻节点分配了标号以后,检测网络中的其他节点,如果某个已分配了标号的节点拥有较小的标号值,则它的标号变为永久标号,该节点变为工作节点;

(6)如果某节点的标号与到它的某个相邻节点路径上的权值之和小于该相邻节点的标号,在改变该相邻节点的标号,因为发现了一条更短的路径;

(7)选择另一个工作节点,重复上述过程直到穷尽所有的可能。最后的每个节点的标号就给出了源节点和目的节点之间的一条端到端的代价最低的路径。

 

1  A算法的应用

经过了上面的计算可以形成图2所示的路由选择拓扑图(即最短距离树,又称最优树):

 

图2  路由器A的路由选择拓扑图

3OSPF协议原理 3.1  自治系统的分区

OSPF允许在一个自治系统里划分区域的做法,相邻的网络和它们相连的路由器组成一个区域(Area)。每一个区域有该区域自己拓扑数据库,该数据库对于外部的区域是不可见的,每个区域内部路由器的链路状态信息数据库实际上只包含着该区域内的链路状态信息,他们也不能详细地知道外部的链接情况,在同一个区域内的路由器拥有同样的拓扑数据库。和多个区域相连的路由器拥有多个区域的链路状态信息库。划分区域的方法减少了链路状态信息数据库的大小、并极大地减少了路由器间交换状态信息的数量。如图3所示。

 

 

 

   AS

 

  Area0

 

 

    Area2

 

 

Area1

 

 

Area3

 

    Area4

 R

R

R

R

R

R

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图3 把自治系统分成多个OSPF区域

       在多于一个区域的自治系统中,OSPF规定必须有一个骨干区(backbone)-area 0,骨干区是OSPF的中枢区域,它与其他区域通过区域边界路由器(ABR)相连。区域边界路由器通过骨干区进行区域路由信息的交换。为了达到一个区域的各个路由器保持相同的链路状态信息库,这就要求骨干区是相连的,但是并不要求它们是物理连接的。在实际的环境中,如果它们在物理上是断开的,这时可以通过建立虚链路(Virtual Link)的方法保证骨干区域的连续性。虚链将属于骨干区并且到一个非骨干区都有接口的两个ABR连接起来,虚链本身属于骨干区,OSPF将通过虚链连接的两个路由器看作是通过未编号的点对点链路(unnumbered point-to-point)连接。

3.2  区域间路由

当两个非骨干区域间路由IP包的时,必须通过骨干区。IP包经过的路径分为三个部分:源区域内路径(从源端到ABR)、骨干路径(源和目的区域间的骨干区路径)、目的端区域内路径(目的区域的ABR到目的路由器的路径)。从另一个观点来看,一个自治系统就象一个以骨干区作为Hub,各个非骨干区域连到Hub上的星型结构图。各个区域边界路由器在骨干区上进行路由信息的交换,发布本区域的路由信息,同时收到其他ABR发布的信息,传到本区域进行链路状态的更新以形成最新的路由表。

3.3  Stub区和自治系统外路由

在一个OSPF自治系统中有这样一种特殊的区域――存根区域(Stub区域),在这个区域中只有一个外部出口,该区域不允许外部的非OSPF的路由信息进入。到自治系统外的包只能依靠缺省路由。存根区域的边界路由器必须在路由概要里向区域宣告这个缺省路由,但是不能超过这个存根区域。缺省路由的使用可以减少链路状态信息库的大小。对于该自治系统外部路由信息,如BGP产生的路由信息,可以通过该自治系统的区域边界路由器(ASBR)透明地扩散到整个自治系统的各个区域中,使得该自治系统内部的每一台路由器都能够获得外部的路由信息。但是该信息不能扩散到存根区域。这样自治系统内的路由器可以通过ASBR路由包到自治系统外的目标。

3.4  DR和BDR

在自治系统内的每个广播和非广播多点访问(NBMA)网络里,都有一个指定路由器(DRDesignated Router)和一个备份指定路由器(BDRBackup Designated Router),它们是通过Hello协议选举产生的。DR的主要功能是:

(1)产生代表本网络的网络路由宣告,这个宣告列出了连到该网络有哪些路由器,其中包括DR自己;

(2)DR同本网络的所有其他的路由器建立一种星型的邻接关系,这种邻接关系是用来交换各个路由器的链路状态信息,从而同步链路状态信息库。DR在路由器的链路状态信息库的同步上起到核心的作用。

另一个比较重要的路由器是BDR,BDR也和该网络中的其它路由器建立邻接关系。因此,BDR的设立是为了保证当DR发生故障时尽快接替DR的工作,而不至于出现由于需重新选举DR和重新构筑拓扑数据库而产生大范围的数据库震荡。当DR存在的情况下,BDR不生成网络链路广播消息。

在DR、BDR的选举后,该网络内其它路由器向DR、BDR发送链路状态信息,并经DR转发到和DR建立邻接关系的其它路由器。当链路状态信息交换完毕时,DR和其它路由器的邻接关系进入了稳定态,区域范围内统一的拓扑(链路状态)数据库也就建立了,每个路由器以该数据库为基础,采用SPF算法计算出各个路由器的路由表,这样就可以进行路由转发了。

4.OSPF报文 4.1  OSPF协议报文

OSPF使用五种类型的路由协议包,在各个路由器间进行交换信息,如表1所示。每种协议包都包含24字节的OSPF协议包的首部,如图4所示。

Hello协议用于寻找和维护路由器所连网络上的邻居关系。通过周期性地发出Hello包,来确定和维护邻居路由器接口是否仍在起作用。Hello包被发送到网络上的每个活动的路由器接口。在广播和非广播的多点访问的网络上,DR和BDR的选举也是通过Hello包来完成的。在不同的物理网络上,Hello包的目的地址是不同的;在点到点和广播网络上,其目的地址是AllSPFRouter(224.0.0.5);在虚链路上是单播,也就是从虚链路的源端直接发送到链路的另一端;而在点到多点的网络上,分离的Hello包分别发送到相连的每一个邻居;在非广播的多点访问网络上,Hello包的发送要看各个路由器的配置信息。

1  OSPF路由协议包类型

包类型

目的

Hello协议包

发现和维护邻居

数据库描述       

汇总数据库内容

链路状态请求

数据库下载

链路状态更新

数据库上载

链路状态确认

扩散确认

                                                                                                                                                                                                                                       

       

图4  OSPF协议包的首部

       数据库描述包是类型往为2的OSPF包,在形成邻接过程中的路由器之间交换数据库描述包,且它们描述链路状态数据库。根据接口数和网络数,可能不只一个数据库描述包来传输整个链路状态数据库。在交换的过程中所涉及的路由器建立主从关系。主路由器发送包,而从路由器通过使用数据库描述(Database Description-DD)序列号认可接收到的包。接口MTU域指示通过该接口可发送的最大IP包长度。当通过虚链路发送包时,这个域设置为0。选项域包含3位,用于显示路由器的能力。I位是Init位,对数据库序列中的第一个包,设置为1。M位设置为1,表示在序列中还有更多的数据库描述包。MS位是主从位,在数据库描述包交换期间,1表示路由器是主路由器,而0表示路由器是从路由器。包的其余部分是一个或多个LSA,如图5所示。

图5   数据库描述包格式

       链路状态请求包是类型为3的OSPF包,它们的格式如图6所示。当两个路由器完成交换数据库描述包时,路由器可检测链路状态数据库是否过时。当这种情况发生时,路由器可请求新一些的数据库描述包。

                                           

图6 路由状态请求包格式

       链路状态更新包是类型为4的OSPF包,它们用于实现LSA的传播。链路状态更新包格式显示在图7中。每个链路状态更新包包含一个或多个LSA,而每个包通过使用链路状态确认包来认可。

 

图7 链路状态更新包的格式

链路状态确认包是类型位5的OSPF包,其格式中除了OSPF包首部外,包括LAS的首部。这些包发送到三个地址之一:多点传送地址AllDRouters,多点传送地址AllSPFRouters,或单点传送地址。

4.2 OSPF包承载的内容

l  路由器链路状态宣告

路由器为每个有活动OSPF接口的区域生成一个路由器LSA。包含在路由器LAS中的信息是路由器接口在该区域中的状态,而LSA在整个区域传播。进入一个区域的所有路由器接口必须在一个路由器LSA中说明。链路状态ID域是路由器的OSPF ID。VEB位用于确定路由器可能有的链路类型。V位显示路由器虚拟链路的端点。

链路ID标识路由器的接口所连接的对象。链路ID一般等于邻居路由器的链路状态ID。链路数据域的内容取决于链路类型。如果路由器与存根区域连接,那么,这个域将包含这个网络的IP地址掩码。对其他类型的链路,这个域包含分配给该接口的IP地址。服务类型域通常设置为0,最后的值是度量值,或链路的费用。

l  网络链路状态宣告

网络LSA是类型为2的LAS,而这样的LSA是由支持两个或多个路由器的每个广播和NBMA网络所生成的。网络LSA是由网络的DR所创建的。这个LSA描述了连接到网络的所有的路由器,包括DR自己。链路状态ID是DR到这个区域的接口的IP地址。

l  汇总链路状态宣告

类型3和类型4的LSA是汇总链路状态宣告。汇总LSA是有区域边界路由器生成的,而且它们说明区域的目标。3型汇总有IP地址目标,链路状态ID是IP的网络号。4型汇总LSA以一个自治系统边界路由器为其目标,链路状态ID是OSPF路由器ID。链路状态ID是两种类型LSA包之间的唯一区别。

l  外部自治系统链路状态宣告

类型5是AS-External LSA,它被用于说明自治系统外的网络。AS-External LSA用于说明到外部网络的路由。链路状态ID域包含IP网络号或0.0.0.0,如果它描述一个默认路由,此时的作为掩码也是0.0.0.0。

5.OSPF协议的运行 5.1 Hello协议的运行

Hello协议的作用是发现和维护邻居关系、选举DR和BDR。在广播型网络上每一个路由器周期性地广播Hello包(目的地址是AllSPFRouter),使得它能够被邻居发现。每一个路由器的每个接口都有一个相关的接口数据结构,当Hello包里的特定参数(如Area ID, Authentication, Network Mask, HelloInterval, RouterDeadInterval 和Options values)相匹配时,Hello包才能被接收。Hello包中包含着本路由器所希望选举的DR和该DR的优先级、BDR和BDR的优先级、还有本路由器通过交换Hello协议包所“看”到的其它路由器。从Hello包里得到的邻居被放在路由器的邻居列表里。当从接收到的Hello包里看到自己时,就建立了双向通信。建立了双向通信的路由器才有可能建立连接(adjacency)关系,能否建立连接关系,要看连接两个邻居的网络的类型。通过Hello协议包的交换,得知了希望成为DR和BDR的路由器以及他们的优先级,下一步的工作是选举DR和BDR。

 

5.2 DR和BDR的产生

在初始状态下,一个路由器的活动接口设置DR和BDR为0.0.0.0,这意味着没有DR和BDR被选举出来。同时设置Wait Timer,其值为RouterDeadInterval,其作用是如果在这段数时间里还没有收到有关DR和BDR的宣告,那么它就宣告自己为DR或BDR。经过Hello协议交换过程后,每一个路由器获得了希望成为DR和BDR的那些路由器的信息,按照下列步骤选举DR和BDR:

(1)在路由器同一个或多个路由器建立双向的通信以后,就检查每个邻居Hello包里的优先级、DR和BDR域。列出所有符合DR和BDR选举的路由器(他们的优先级要大于0,接口状态要大于双向通信),列出所有的DR,列出所有的BDR;

(2)从这些合格的路由器中建立一个没有宣称自己为DR的子集(因为宣称为DR的路由器不能选举成为BDR);

(3)如果在这个子集里有一个或多个邻居(包括它自己的接口)在BDR域宣称自己为BDR,则选举具有最高优先级的路由器,如果优先级相同,则选择具有最高Router ID的那个路由器为BDR;

(4)如果在这个子集里没有路由器宣称自己为BDR,则在它的邻居里选择具有最高优先级的路由器为BDR,如果优先级相同,则选择具有最大Router ID的路由器为BDR;

(5)在宣称自己为DR的路由器列表中,如果有一个或多个路由器宣称自己为DR,则选择具有最高优先级的路由器为DR,如果优先级相同,则选择具有最大Router ID的路由器为DR;

(6)如果没有路由器宣称为DR,则将最新选举的BDR作为DR;

(7)如果是第一选举某个路由器为DR/BDR或没有DR/BDR被选举,则要重复2到6步,然后是第8步。

(8)将选举出来的路由器的端口状态作相应的改变,DR的端口状态为DR,BDR的端口状态为BDR,否则的话为DR other。

 在多路访问网络中,DR和BDR与该网络内所有其它的路由器建立邻接关系,这些邻接关系也是该网络内全部的邻接关系。

由于DR和BDR的引入,简化了网络的逻辑拓扑结构,将一个网状网络转变成一个星型网络,使协议包的扩散,计算变的简单,并有效防止了邻接关系震荡的发生。

5.3链路状态数据库的同步

在OSPF中,保持区域范围内的所有路由器的链路状态数据库同步极为重要。通过建立并保持邻接关系,OSPF使具有邻接关系的路由器的数据库同步,进而保证了区域范围内所有路由器数据库同步。数据库同步过程从建立邻接关系开始,在完全邻接关系已建立时完成。当路由器的端口状态为ExStart时,路由器通过发一个空的数据库描述包来协商“主从”关系以及数据库描述包的序号,Router ID大的为主,反之为从。序号也以主路由器产生的初始序号为基准,以后的每一次数据库描述包的发送,序号都要加1。主路由器发送链路状态描述包(数据库描述包),从路由器接收链路状态描述包后来检查自己的链路状态数据库,如果发现链路状态数据库里没有改项,则进行添加该项,并将该项加入链路状态请求列表,准备向主路由器请求新的链路状态,并向主路由器发送确认包。主路由器收到链路状态请求包时,发出链路状态的更新包,进行链路状态的更新。从路由器收到链路状态更新包后发出确认包,进行确认,表示收到该更新包,否则主路由器就在重发定时器的启动下进行重复发送。每一个路由器向它的邻居发送数据库描述包来描述自己的数据库,每一个数据库描述包由一组链路状态广播组成,邻居路由器接收该数据库描述包,并返回确认消息。这两个路由器形成了一种“主从”关系,只有主路由器能够向从路由器发送数据库描述包,反之则不行。当所有的数据库请求包都已被主路由器处理后,主从路由器也就进入了邻接完成状态。当DR与整个区域内所有的路由器都完成邻接关系时,整个区域中所有路由器的数据库也就同步了。

5.4路由表的产生和查找

当链路状态数据库达到同步以后,各个路由器就利用同步的数据库以自己为根节点来并行地计算最优树,从而形成本地的路由表。

当收到IP包需要查询路由表时,按照以下规则完成路由查找:

(1)在路由表中选择相匹配的路由记录。相匹配的记录是指需转发IP包的目的地址“落在”该匹配路由记录的目的地址范围内(该匹配记录可能有多个)。如:如果有路由表项为172.16.64.0/18,172.16.64.0/24和172.16.64.0/27供目的地址172.16.64.205选择,则选择最后一项。因为它是最匹配的一个。也就是说要选择一个掩码最长的一个。缺省路由是最后要选择的,因为它的掩码最短。如果没有匹配的路由表项供选择,则有ICMP发送一个目标不可到达的控制报文,而且该IP包将被丢弃。

(2)如果有多个路径匹配,根据路由的类型来进行进一步的选择,它们的优先级依次为区域内的路径,区域间得额路径,E1型的外部路径,E2型的外部路径。

(3)如果有类型和费用都相等的多条路径,则OSPF将同时利用它们。

(4)最后利用所寻找的路径来进行IP包的转发。

 

       

 

 

 

 

 

 

 

Daytime协议

有一个有用的调试工具就是daytime服务。它的作用就是返回当前时间和日期,格式是字符串格式。

  • 基于TCPdaytime服务

daytime服务是基于TCP的应用,服务器在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间,在传送完后关闭连接。接收到的数据被忽略。

  • 基于UDPdayt ime服务

daytime服务也可以使用UDP协议,它的端口也是13,不过UDP是用数据报传送当前时间的。接收到的数据被忽略。

  • Daytime格式

对于daytime没有特定的格式,建议使用ASCII可打印字符,空格和回车换行符。daytime应该在一行上。下面是两种流行的格式:

Weekday, Month Day, Year Time-Zone
例子:Tuesday, February 22, 1982 17:37:43-PST

和用于SMTP中的格式:

dd mmm yy hh:mm:ss zzz
例子:02 FEB 82 07:59:01 PST

 

BGP

1. 介绍
  BGP是自治系统间的路由协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策(要点见RFC 1104[2])。特别地,BGP交换包含全部AS path的网络可达性信息,按照配置信息执行路由策略。
  
  随着近年来互联网的进步和增长,它也不得不面对一些严重的规模问题,包括:
  -B类网络地址空间的耗尽。该问题的主要原因之一,是缺少适于 中型组织的中等大小的网络;C类网络,最多拥有254个主机地址,实在太少,而B类网络允许最多65534个地址,却又太大无法充分使用。
  -互联网路由器中路由表的增长使目前的软件(和人们)无法有效管理。
  -32位IP地址空间的耗竭。
  
  很明显,前两个问题和最后一个问题可能分别在今后一两年内和三年内变得急迫。无类别域间路由(CIDR)试图解决这些问题,设计相应机制来降低路由表和对新IP网络分配需求的增长速度。它并没有解决更具长期性的第三个问题,而是努力让近期问题推迟使得互联网仍能有效运作,同时着手远期的解决方案。
  BGP-4对BGP-3做了扩展,支持路由信息的聚合及基于无类别域间路由体系(CIDR)[3]的路由减少。本备忘录论述了BGP-4在互联网中的应用。
  
  本文档的所有讨论基于如下假设:互联网是一些随意连接的自治系统的集合。也就是说,互联网可以建模成一张一般的网络图,图上节点是AS,边是每对AS间的连接。
  自治系统的经典定义是,一组路由器在统一管理之下,在AS内使用内部网关协议和统一度量来路由数据包,而通过外部网关协议将数据包路由到其他AS。该经典定义尚在发展,一些AS在其内部使用多种内部网关协议和度量。在此,强调一下自治系统在本文档中的含义,即使它采用多种IGP和度量,它的管理区别于其他 AS,其内部路由是一致的,当路由穿越它时,它在图上视作一个节点。
  每个AS由一个管理机构管理,至少在外部看来它代表着该系统的路由信息。
  
  2. BGP拓扑模型
  
  当我们说一个在两个AS之间的连接时,意味着两件事:
  物理连接:两个AS之间存在一条共享的数据链路子网,并且在该子网上,每个AS至少有一台自己的边界网关路由器。因此,每个AS的边界网关路由器可以转发数据包到其他AS的边界网关路由器,无需借助于AS内到AS间的路由。
  BGP连接:在各个AS的BGP发言人之间有一个BGP会话进程,通过会话沟通路由,经过声明的AS到达某目标网络。
  
  本文档中,我们对构成BGP连接的BGP发言人加以额外限制:他们必须是自己直接共享数据链路子网。因此,相邻AS间的BGP会话无需AS内或AS间的路由。超出本文范围的案例可能与该限制不符。
  因此,在每个连接中,每个AS拥有一个以上的BGP发言人和边界网关路由器,这些BGP发言人和边界网关路由器分布在共享数据链路子网上。注意到, BGP发言人不一定是边界网关路由器,反之亦然。一条连接上一个AS的BGP发言人声明的路径可以被同一个共享子网上其他AS的边界网关路由器使用,也就是非直接的邻居是允许的。
  一个AS内的流量,要么是源于该AS,要么是终于该AS(也就是说,IP数据包的源IP或目的IP在该AS内)。符合以上描述的流量称为"本地流量",否则称为"过渡流量"。BGP使用的主要目的是控制过渡流量。
  
  按照某AS如何处理过渡流量,AS可以分为以下几类:
  末端AS:只连接到一个其他AS。自然地,末端AS只运输本地流量。
  多宿主AS:连接到超过一个的其他AS,但不运输过渡流量。
  过渡AS:连接到超过一个的其他AS,可以运输本地和过渡流量。
  
  一个完整的AS path提供了有效和简捷的方式来避免路由回路、消除伴随距离向量算法的"计数到无穷"问题,因此,BGP没有对AS之间的连接拓扑加以任何限制。
  
  3. 互联网中的BGP
  

  3.1 拓扑学考虑
  
  互联网拓扑可以视作过渡AS、多宿主AS和末端AS的任意互连。为了尽可能减少对目前互联网结构的影响,末端和多宿主AS不一定要使用BGP。这些AS 可以运行其他的协议(比如,EGP)来与过渡AS交换网络可达性信息。使用BGP的过渡AS将对这些信息做标记,以表明其学习自BGP以外的方法。BGP 不一定运行于末端或多宿主AS,这就不会对源于或终于末端AS或多宿主AS的数据包的AS间路由质量产生负面影响。
  然而,仍然建议在末端和多宿主AS上使用BGP。在这些情况下,BGP相比其他目前使用的协议(比如EGP),可以提供更优的带宽和性能。另外,这将减少默认路由的使用,为多宿主AS的AS间路由提供更好选择。
  
  3.2 BGP的整体特性
  
  整体水平上,BGP用来在多个自治系统间传递路由信息。其信息流如下图示:
               +-----------+         +------------+
        BGP   |  BGP  |    BGP   |  BGP   | 
BGP
                -------------------+     +--------------------------+     
+----------
                |  IGP  |          | 
IGP    |
               +------------+        
    +-----------+
  

             <-AS A-->           <--AS B->
  这张图表说明,在AS间只用BGP传输信息,而在AS内BGP和IGP均可以传输信息。确保AS内BGP和IGP间路由信息的兼容性,是一个重大问题,最后将在附录A中详细讨论。

  
  3.3 BGP邻居关系
  
  互联网视作随意连接的AS的集合。通过BGP直接连接的路由器就是BGP发言人。BGP发言人可以在同一AS内,也可以在不同AS内。每个AS的BGP 发言人互相通信,遵照每个AS建立的策略,交换网络可达性信息。对某BGP发言人,如果与其他BGP发言人通信而且那个BGP发言人在不同的AS,则那个其他 BGP发言人称为外部对等体,而如果在相同的AS内,则称为内部对等体。
  在一个AS内可以有许多BGP发言人并被认为是需要的。通常,如果一个 AS与其他AS有多个连接,则需要多个BGP发言人。所有BGP发言人代表着相同AS,对外保持统一形象。这就要求他们之间保持一致的路由信息。这些路由器可以通过BGP或其他方法互相通信。在同一AS内的所有BGP发言人的策略约束必须一致。一些技术,如使用带标记的IGP(参见A.2.2),可以用来探测可能的矛盾。
  对于外部对等体,对等体分别属于不同的AS,但共享同一数据链路子网。这共同的子网用来在对等体之间运输BGP信息。如果BGP使用通过一个干预的AS,则将使AS path信息无效。自治系统号必须在BGP中使用,用来标明BGP发言人所在的自治系统。4. 路由聚合的需要
  
  当路由信息由各部分聚合时,一致的BGP-4实现需要对其声明。例如,一个在自治系统边界的BGP发言人必须能产生某目标IP集合的聚合路由(在BGP -4 术语中该目标IP集合称为网络层可达性信息,NLRI),在它基础上进行管理(包括路由器自身代表的地址),即使当这些地址不是同时全部可达的。
  
  当聚合的NLRI产生时,一致实现应能给予声明。
  当NLRI解聚合时,一致实现应能给予声明。
  当出现重叠路由时,一致实现应能支持如下选项:
  -安装聚合和详细的路由
  -只安装详细路由
  -安装聚合路由
  -均不安装
  
  一定的路由策略可能依赖于NLRI(比如,"研究"与"商业")。因此,一个运行路由聚合的BGP发言人,可能的情况下,应该能认知聚合NLRI时路由策略的潜在实现。
  
  5. BGP的策略生成
  
  BGP通过各种路由参数选择和约束,实现策略。策略并不直接编入协议。而是,策略通过BGP的配置信息来实现。
  
  BGP实现策略的途径有,影响从多条路径中的选择,控制路由信息的下步传递。策略由AS的管理者决定。
  
  路由策略与政治、安全或经济考虑有关。
  
  例如,如果一个AS不愿意将流量运输到其他AS,它可以制定策略来禁止。如下是一些能够改变BGP使用的路由策略的例子:
  1. 一个多宿主AS可以拒绝成为其他AS的过渡AS。(它只告知那些目标网络在自己AS内部的路由。)
  2. 一个多宿主AS可以指定成为几个相邻AS的过渡AS,也就是说,一部分而不是全部AS,可以把该多宿主AS作为过渡AS。(它只把它的路由信息告知被允许的AS。)
  3. 一个AS向外运输流量时,可以决定是否偏爱特定的AS。
  BGP应用可以控制许多性能相关的标准:
  1. 一个AS可以最少化过渡AS的数目。(AS path越短,越可能被采用。)
  2. 过渡AS的权重。如果一个AS决定,两个以上的AS path可以用来到达目标网络,那么,AS可以使用多种方法来决定采纳哪个候选AS path。一个AS的权重值由以下几个因素决定:径向距离,链路速度,容量,拥塞的趋势,和运行质量。这些性能值可以由BGP以外的方法决定。
  3. 优先考虑内部路由,而不是外部路由。
  
  为了一个AS的统一性,那些产自策略和/或正常路由选择过程的等值路径,必须以一致的方式解决。
  
  BGP的基础,是这样一个规则:一个AS只把自己使用的路由通知给相邻的AS。该规则反映了目前互联网常用的"一跳接一跳"的路由方式。
  
  6. BGP的路径选择
  
  BGP 发言人的一项主要任务,是评价诸条从自身出发到那些用网络前缀表达的目的地的路径,从中选出最优,应用合适的策略约束,然后将它通知给所有的BGP邻居。关键问题是如何评价和比较这些不同的路径。传统的距离向量协议(比如RIP)中,每条路径只有一个度量。因此,不同路径的比较简化为两个值的比较。AS间路由的复杂性,源自人们在如何评价外部路由的问题上缺少共同认可的度量。于是,每个AS拥有自己的一套对路径的评价指标。
  BGP发言人构建的路由数据库,由所有可用的路径和每条路径可达的目标集合(表达为网络前缀)组成。为了达到前面讨论的目的,考虑目标网络所对应的可用路径,是有用的。大多数情况下,我们期望找到唯一一条可用路径。但是,当不是这样时,所有可用的路径应当保存,当主要路径缺失时,保存能以最快的速度适应,(产生新的主要路径)。任何时候,只有主要路径才会被广播。
  路径选择过程可以形式化为,对所有可用路径及相对应的目标IP,定义完整的优先级。定义这种优先级的一种方法,是定义一个函数,将每条完整的AS path映射成一个非负整数,用来表示该路径的优先级。路径选择于是简化为,将该函数应用到所有可用路径,再选择最高的优先级。
  在真实的BGP实现中,为路径分配优先级的标准在配置信息中说明。
  
  为路径分配优先级的过程源于以下几个信息:
  1. 整条AS path显示的信息
  2. 由AS path和BGP以外信息(比如,配置信息中的路由策略约束)引申出来的混合信息。
  
  为路径分配优先级的可能的标准为:
  -AS数目。AS越少,该条路径越好。
  -策略考虑。BGP对基于策略路由的支持,源于对分布式路由信息的控制。一个BGP发言人可能知道几条策略约束(包括自身AS的内外),进行合适的路径选择。不遵从策略要求的路径不被考虑。
  -某些AS是否在路径中存在。依靠BGP以外的信息,一个AS可以知道某些AS的一些性能特点(比如,带宽,MTU,AS间径向距离),然后选择偏爱程度。
  -路径起源。由BGP学习而来的整条路径(也就是说,路径终点与路径的上一个AS在BGP内部)相比那些部分学习自EGP及其他方法的路径,是更优的。
  -AS path子集。通往同一目的地,一个较长AS path的子集将受到偏爱。在该较短AS path中存在的任何问题都也是较长AS path的问题。
  -链路动态。稳定的路径比不稳定的路径更受欢迎。注意,这个标准应被小心使用,避免出现路由抖动。一般来说,任何依赖于动态信息的标准都可能引发路由不稳定,所以应谨慎对待。

HTTP协议

众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP、Archie Gopher等是建立在TCP/IP协议之上的应用层协议,不同的协议对应着不同的应用。< BR>  WWW服务器使用的主要协议是HTTP协议,即超文体传输协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,因而HTTP协议允许用户在统一的界面下,采用不同的协议访问不同的服务,如FTP、Archie、SMTP、NNTP等。另外,HTTP协议还可用于名字服务器和分布式对象管理。

2.1 HTTP协议简介
  HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
  HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

2.2 HTTP协议的几个重要概念
  1.连接(Connection):一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间。
  2.消息(Message):HTTP通讯的基本单位,包括一个结构化的八元组序列并通过连接传输。

  3.请求(Request):一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号
  4.响应(Response):一个从服务器返回的信息包括HTTP协议的版本号、请求的状态(例如“成功”或“没找到”)和文档的MIME类型。
  5.资源(Resource):由URI标识的网络数据对象或服务。
  6.实体(Entity):数据资源或来自服务资源的回映的一种特殊表示方法,它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体的本身内容。
  7.客户机(Client):一个为发送请求目的而建立连接的应用程序。
  8.用户代理(User agent):初始化一个请求的客户机。它们是浏览器、编辑器或其它用户工具。
  9.服务器(Server):一个接受连接并对请求返回信息的应用程序。
  10.源服务器(Origin server):是一个给定资源可以在其上驻留或被创建的服务器。
  11.代理(Proxy):一个中间程序,它可以充当一个服务器,也可以充当一个客户机,为其它客户机建立请求。请求是通过可能的翻译在内部或经过传递到其它的服务器中。一个代理在发送请求信息之前,必须解释并且如果可能重写它。
  代理经常作为通过防火墙的客户机端的门户,代理还可以作为一个帮助应用来通过协议处理没有被用户代理完成的请求。
  12.网关(Gateway):一个作为其它服务器中间媒介的服务器。与代理不同的是,网关接受请求就好象对被请求的资源来说它就是源服务器;发出请求的客户机并没有意识到它在同网关打交道。
  网关经常作为通过防火墙的服务器端的门户,网关还可以作为一个协议翻译器以便存取那些存储在非HTTP系统中的资源。
  13.通道(Tunnel):是作为两个连接中继的中介程序。一旦激活,通道便被认为不属于HTTP通讯,尽管通道可能是被一个HTTP请求初始化的。当被中继的连接两端关闭时,通道便消失。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通讯时通道被经常使用。
  14.缓存(Cache):反应信息的局域存储。

2.3 HTTP协议的运作方式
  HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成(见图2-1)。
2-1
  当一个或多个中介出现在请求/响应链中时,情况就变得复杂一些。中介由三种:代理(Proxy)、网关(Gateway)和通道(Tunnel)。一个代理根据URI的绝对格式来接受请求,重写全部或部分消息,通过URI的标识把已格式化过的请求发送到服务器。网关是一个接收代理,作为一些其它服务器的上层,并且如果必须的话,可以把请求翻译给下层的服务器协议。一个通道作为不改变消息的两个连接之间的中继点。当通讯需要通过一个中介(例如:防火墙等)或者是中介不能识别消息的内容时,通道经常被使用。 图
2-2
  上面的图2-2表明了在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C)。一个通过整个链的请求或响应消息必须经过四个连接段。这个区别是重要的,因为一些HTTP通讯选择可能应用于最近的连接、没有通道的邻居,应用于链的终点或应用于沿链的所有连接。尽管图2-2是线性的,每个参与者都可能从事多重的、并发的通讯。例如,B可能从许多客户机接收请求而不通过A,并且/或者不通过C把请求送到A,在同时它还可能处理A的请求。

  任何针对不作为通道的汇聚可能为处理请求启用一个内部缓存。缓存的效果是请求/响应链被缩短,条件是沿链的参与者之一具有一个缓存的响应作用于那个请求。下图说明结果链,其条件是针对一个未被UA或A加缓存的请求,B有一个经过C来自O的一个前期响应的缓存拷贝。
2-3
  在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP 80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。

  以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过程。
  首先,简单介绍基于HTTP协议的客户/服务器模式的信息交换过程,如图2-4所示,它分四个过程,建立连接、发送请求信息、发送响应信息、关闭连接。
2-4
  在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。WWW服务器运行时,一直在TCP80端口(WWW的缺省端口)监听,等待连接的出现。

  下面,讨论HTTP协议下客户/服务器模式中信息交换的实现。  1.建立连接   连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
  2.发送请求
  打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。
  HTTP/1.0  请求消息的格式为:
  请求消息=请求行(通用信息|请求头|实体头) CRLF[实体内容]
  请求 行=方法 请求URL HTTP版本号 
CRLF
  方  法=GET|HEAD|POST|扩展方法

  U R  L=协议名称+宿主名+目录与文件名
  请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
  对象      GET的结果
  文件      文件的内容
  程序      该程序的执行结果
  数据库查询   查询结果
  HEAD——要求服务器查找某对象的元信息,而不是对象本身。
  POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
  一个请求的例子为:
  GET http://networking.zju.edu.cn/zju/index.htm HTTP/1.0
  头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答 。
  请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
  实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
  实体——请求或应答对象本身。
  3.发送响应
  服务器在处理完客户的请求之后,要向客户机发送响应消息。
  HTTP/1.0的响应消息格式如下:
  响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
  状 态 行=HTTP版本号 状态码 原因叙述
  状态码表示响应类型
  1××  保留
  2××  表示请求成功地接收
  3××  为完成请求客户需进一步细化请求
  4××  客户错误
  5××  服务器错误
  响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。

  4.关闭连接
  客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话

BGP(边界网关协议)

1. 介绍
  BGP是自治系统间的路由协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策(要点见RFC 1104[2])。特别地,BGP交换包含全部AS path的网络可达性信息,按照配置信息执行路由策略。
  
  随着近年来互联网的进步和增长,它也不得不面对一些严重的规模问题,包括:
  -B类网络地址空间的耗尽。该问题的主要原因之一,是缺少适于中型组织的中等大小的网络;C类网络,最多拥有254个主机地址,实在太少,而B类网络允许最多65534个地址,却又太大无法充分使用。
  -互联网路由器中路由表的增长使目前的软件(和人们)无法有效管理。
  -32IP地址空间的耗竭。
  
  很明显,前两个问题和最后一个问题可能分别在今后一两年内和三年内变得急迫。无类别域间路由(CIDR)试图解决这些问题,设计相应机制来降低路由表和对新IP网络分配需求的增长速度。它并没有解决更具长期性的第三个问题,而是努力让近期问题推迟使得互联网仍能有效运作,同时着手远期的解决方案。
  BGP-4BGP-3做了扩展,支持路由信息的聚合及基于无类别域间路由体系(CIDR[3]的路由减少。本备忘录论述了BGP-4在互联网中的应用。
  
  本文档的所有讨论基于如下假设:互联网是一些随意连接的自治系统的集合。也就是说,互联网可以建模成一张一般的网络图,图上节点是AS,边是每对AS间的连接。
  自治系统的经典定义是,一组路由器在统一管理之下,在AS内使用内部网关协议和统一度量来路由数据包,而通过外部网关协议将数据包路由到其他AS。该经典定义尚在发展,一些AS在其内部使用多种内部网关协议和度量。在此,强调一下自治系统在本文档中的含义,即使它采用多种IGP和度量,它的管理区别于其他 AS,其内部路由是一致的,当路由穿越它时,它在图上视作一个节点。
  每个AS由一个管理机构管理,至少在外部看来它代表着该系统的路由信息。
  
  2. BGP拓扑模型
  
  当我们说一个在两个AS之间的连接时,意味着两件事:
  物理连接:两个AS之间存在一条共享的数据链路子网,并且在该子网上,每个AS至少有一台自己的边界网关路由器。因此,每个AS的边界网关路由器可以转发数据包到其他AS的边界网关路由器,无需借助于AS内到AS间的路由。
  BGP连接:在各个ASBGP发言人之间有一个BGP会话进程,通过会话沟通路由,经过声明的AS到达某目标网络。
  
  本文档中,我们对构成BGP连接的BGP发言人加以额外限制:他们必须是自己直接共享数据链路子网。因此,相邻AS间的BGP会话无需AS内或AS间的路由。超出本文范围的案例可能与该限制不符。
  因此,在每个连接中,每个AS拥有一个以上的BGP发言人和边界网关路由器,这些BGP发言人和边界网关路由器分布在共享数据链路子网上。注意到, BGP发言人不一定是边界网关路由器,反之亦然。一条连接上一个ASBGP发言人声明的路径可以被同一个共享子网上其他AS的边界网关路由器使用,也就是非直接的邻居是允许的。
  一个AS内的流量,要么是源于该AS,要么是终于该AS(也就是说,IP数据包的源IP或目的IP在该AS内)。符合以上描述的流量称为"本地流量",否则称为"过渡流量"BGP使用的主要目的是控制过渡流量。
  
  按照某AS如何处理过渡流量,AS可以分为以下几类:
  末端AS:只连接到一个其他AS。自然地,末端AS只运输本地流量。
  多宿主AS:连接到超过一个的其他AS,但不运输过渡流量。
  过渡AS:连接到超过一个的其他AS,可以运输本地和过渡流量。
  
  一个完整的AS path提供了有效和简捷的方式来避免路由回路、消除伴随距离向量算法的"计数到无穷"问题,因此,BGP没有对AS之间的连接拓扑加以任何限制。
  
  3. 互联网中的BGP
  
  3.1 拓扑学考虑
  
  互联网拓扑可以视作过渡AS、多宿主AS和末端AS的任意互连。为了尽可能减少对目前互联网结构的影响,末端和多宿主AS不一定要使用BGP。这些AS 可以运行其他的协议(比如,EGP)来与过渡AS交换网络可达性信息。使用BGP的过渡AS将对这些信息做标记,以表明其学习自BGP以外的方法。BGP 不一定运行于末端或多宿主AS,这就不会对源于或终于末端AS或多宿主AS的数据包的AS间路由质量产生负面影响。
  然而,仍然建议在末端和多宿主AS上使用BGP。在这些情况下,BGP相比其他目前使用的协议(比如EGP),可以提供更优的带宽和性能。另外,这将减少默认路由的使用,为多宿主ASAS间路由提供更好选择。
  
  3.2 BGP的整体特性
  
  整体水平上,BGP用来在多个自治系统间传递路由信息。其信息流如下图示:
               +-----------+         +------------+
        BGP   |  BGP  |    BGP   |  BGP   |  BGP
                -------------------+     +--------------------------+     +----------
                |  IGP  |         |  IGP    |
               +------------+            +-----------+
  
             <-AS A-->           <--AS B->
  这张图表说明,在AS间只用BGP传输信息,而在ASBGPIGP均可以传输信息。确保ASBGPIGP间路由信息的兼容性,是一个重大问题,最后将在附录A中详细讨论。
  
  3.3 BGP邻居关系
  
  互联网视作随意连接的AS的集合。通过BGP直接连接的路由器就是BGP发言人。BGP发言人可以在同一AS内,也可以在不同AS内。每个ASBGP 发言人互相通信,遵照每个AS建立的策略,交换网络可达性信息。对某BGP发言人,如果与其他BGP发言人通信而且那个BGP发言人在不同的AS,则那个其他 BGP发言人称为外部对等体,而如果在相同的AS内,则称为内部对等体。
  在一个AS内可以有许多BGP发言人并被认为是需要的。通常,如果一个 AS与其他AS有多个连接,则需要多个BGP发言人。所有BGP发言人代表着相同AS,对外保持统一形象。这就要求他们之间保持一致的路由信息。这些路由器可以通过BGP或其他方法互相通信。在同一AS内的所有BGP发言人的策略约束必须一致。一些技术,如使用带标记的IGP(参见A.2.2),可以用来探测可能的矛盾。
  对于外部对等体,对等体分别属于不同的AS,但共享同一数据链路子网。这共同的子网用来在对等体之间运输BGP信息。如果BGP使用通过一个干预的AS,则将使AS path信息无效。自治系统号必须在BGP中使用,用来标明BGP发言人所在的自治系统。

4. 路由聚合的需要
  
  当路由信息由各部分聚合时,一致的BGP-4实现需要对其声明。例如,一个在自治系统边界的BGP发言人必须能产生某目标IP集合的聚合路由(在BGP -4 术语中该目标IP集合称为网络层可达性信息,NLRI),在它基础上进行管理(包括路由器自身代表的地址),即使当这些地址不是同时全部可达的。
  
  当聚合的NLRI产生时,一致实现应能给予声明。
  当NLRI解聚合时,一致实现应能给予声明。
  当出现重叠路由时,一致实现应能支持如下选项:
  -安装聚合和详细的路由
  -只安装详细路由
  -安装聚合路由
  -均不安装
  
  一定的路由策略可能依赖于NLRI(比如,"研究""商业")。因此,一个运行路由聚合的BGP发言人,可能的情况下,应该能认知聚合NLRI时路由策略的潜在实现。
  
  5. BGP的策略生成
  
  BGP通过各种路由参数选择和约束,实现策略。策略并不直接编入协议。而是,策略通过BGP的配置信息来实现。
  
  BGP实现策略的途径有,影响从多条路径中的选择,控制路由信息的下步传递。策略由AS的管理者决定。
  
  路由策略与政治、安全或经济考虑有关。
  
  例如,如果一个AS不愿意将流量运输到其他AS,它可以制定策略来禁止。如下是一些能够改变BGP使用的路由策略的例子:
  1. 一个多宿主AS可以拒绝成为其他AS的过渡AS。(它只告知那些目标网络在自己AS内部的路由。)
  2. 一个多宿主AS可以指定成为几个相邻AS的过渡AS,也就是说,一部分而不是全部AS,可以把该多宿主AS作为过渡AS。(它只把它的路由信息告知被允许的AS。)
  3. 一个AS向外运输流量时,可以决定是否偏爱特定的AS
  BGP应用可以控制许多性能相关的标准:
  1. 一个AS可以最少化过渡AS的数目。(AS path越短,越可能被采用。)
  2. 过渡AS的权重。如果一个AS决定,两个以上的AS path可以用来到达目标网络,那么,AS可以使用多种方法来决定采纳哪个候选AS path。一个AS的权重值由以下几个因素决定:径向距离,链路速度,容量,拥塞的趋势,和运行质量。这些性能值可以由BGP以外的方法决定。
  3. 优先考虑内部路由,而不是外部路由。
  
  为了一个AS的统一性,那些产自策略和/或正常路由选择过程的等值路径,必须以一致的方式解决。
  
  BGP的基础,是这样一个规则:一个AS只把自己使用的路由通知给相邻的AS。该规则反映了目前互联网常用的"一跳接一跳"的路由方式。
  
  6. BGP的路径选择
  
  BGP 发言人的一项主要任务,是评价诸条从自身出发到那些用网络前缀表达的目的地的路径,从中选出最优,应用合适的策略约束,然后将它通知给所有的BGP邻居。关键问题是如何评价和比较这些不同的路径。传统的距离向量协议(比如RIP)中,每条路径只有一个度量。因此,不同路径的比较简化为两个值的比较。AS间路由的复杂性,源自人们在如何评价外部路由的问题上缺少共同认可的度量。于是,每个AS拥有自己的一套对路径的评价指标。
  BGP发言人构建的路由数据库,由所有可用的路径和每条路径可达的目标集合(表达为网络前缀)组成。为了达到前面讨论的目的,考虑目标网络所对应的可用路径,是有用的。大多数情况下,我们期望找到唯一一条可用路径。但是,当不是这样时,所有可用的路径应当保存,当主要路径缺失时,保存能以最快的速度适应,(产生新的主要路径)。任何时候,只有主要路径才会被广播。
  路径选择过程可以形式化为,对所有可用路径及相对应的目标IP,定义完整的优先级。定义这种优先级的一种方法,是定义一个函数,将每条完整的AS path映射成一个非负整数,用来表示该路径的优先级。路径选择于是简化为,将该函数应用到所有可用路径,再选择最高的优先级。
  在真实的BGP实现中,为路径分配优先级的标准在配置信息中说明。
  
  为路径分配优先级的过程源于以下几个信息:
  1. 整条AS path显示的信息
  2. AS pathBGP以外信息(比如,配置信息中的路由策略约束)引申出来的混合信息。
  
  为路径分配优先级的可能的标准为:
  -AS数目。AS越少,该条路径越好。
  -策略考虑。BGP对基于策略路由的支持,源于对分布式路由信息的控制。一个BGP发言人可能知道几条策略约束(包括自身AS的内外),进行合适的路径选择。不遵从策略要求的路径不被考虑。
  -某些AS是否在路径中存在。依靠BGP以外的信息,一个AS可以知道某些AS的一些性能特点(比如,带宽,MTUAS间径向距离),然后选择偏爱程度。
  -路径起源。由BGP学习而来的整条路径(也就是说,路径终点与路径的上一个ASBGP内部)相比那些部分学习自EGP及其他方法的路径,是更优的。
  -AS path子集。通往同一目的地,一个较长AS path的子集将受到偏爱。在该较短AS path中存在的任何问题都也是较长AS path的问题。
  -链路动态。稳定的路径比不稳定的路径更受欢迎。注意,这个标准应被小心使用,避免出现路由抖动。一般来说,任何依赖于动态信息的标准都可能引发路由不稳定,所以应谨慎对待。

 7. 支持路由策略的必备集合
  
  BGP策略以配置信息的形式实现。该信息不直接编入协议。因此,BGP可以提供非常复杂的路由策略。但是,并不要求所有的BGP实现支持这些策略。
  我们不试图将路由策略标准化使其适用于每个BGP实现,强烈鼓励所有的实现支持如下的路由策略集:
  1. BGP实现应允许一个AS控制向相邻AS广播由BGP学习来的路由。实现还应支持对地址前缀大小的控制。实现还应支持对自治系统大小的控制,不管该自治系统是起源,还是邻居。如果某路由对某外部对等体按上述控制声明,则需注意该路由不能向那个对等体通告。特别地,本地系统必须明确向那个对等体通告,该路由现在不可用。
  2. BGP实现应允许一个AS对某条路径优先考虑(当存在多条可用路径时)。实现至少具备以下相同功能,允许管理者对来自邻居的路由设置优先级。优先级的大小应在02^(31)-1之间。
  3. BGP实现应允许一个AS忽略某些在AS_PATH属性中存在特定AS的路由。该功能的实现,可以使用[2]中说明的技术,设置这些AS"weight""infinity"。路由选择过程必须忽略那些"weight""infinity"的路由。
  
  8. 与其他外部路由协议的关系
  
  本部分建议的指导方针与[3]中陈述的指导方针一致。
  一个AS应通告它内部目标网络的最小聚合及与实际使用的地址空间的关系。这可以被非BGP-4AS的管理者用来决定从某条聚合路由可以解聚出多少路由。
  一个携带ATOMIC_AGGREGATE路径属性的路由,不应传递于BGP-3EGP2,除非这种传递不出现路由NLRI的解聚。
  
  8.1 EGP2交换信息
  
  本文档对于BGP-4EGP2间的路由信息交换,建议如下方针。
  为过渡顺利,一个BGP发言人EGP2BGP-4都可以参与。因此,一个BGP发言人接收IP可达性信息,可能产自EGP2,也可能产自BGP-4。由 EGP2产生的信息,将ORIGIN路径属性设为1后,可插入BGP-4。同样地,由BGP-4产生的信息也可以插入EGP2。但是,第二种情况,当从 BGP-4接收来的IP前缀代表连续的A/B/C类网络集合时,应清楚潜在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入时,要求BGP发言人将相应的网络插入EGP2。本地系统将提供控制EGP2BGP-4之间可达性信息交换的机制。特别地,当把来自BGP-4的可达性信息插入EGP2 时,一个一致实现要求支持所有如下选项:
  -插入默认的(0.0.0.0),不传递其他NLRI
  -允许受控的解聚,但只对特定路由;
  -允许传递非聚合的NLRI
  -允许只传递非聚合的NLRI
  在一个参与BGP-4BGP发言人和一个单纯的EGP2发言人之间以EGP2交换路由信息的情况,只可能发现在域(自治系统)边界。
  
  8.2 BGP-3交换信息
  
  本文档对于BGP-4BGP-3间的路由信息交换,建议如下方针。
  为过渡顺利,一个BGP发言人BGP-3BGP-4都可以参与。因此,一个BGP发言人接收IP可达性信息,可能产自BGP-3,也可能产自BGP-4
  一个BGP发言人可能按如下方式将来自BGP-4的信息插入到BGP-3
  如果一条BGP-4路由的AS_PATH属性带有AS_SET路径段,那么,BGP-3路由的AS_PATH属性应为将此AS_SET段视作 AS_SEQUENCE段,最后的AS_PATH为单纯的一个AS_SEQUENCE。这个过程损失了set/sequence信息,但不影响预防路由回路,但可能影响策略,如果策略是建立在AS_PATH属性的内容或顺序上的话。
  把源自BGP-4NLRI插入BGP-3,当从BGP-4接收来的IP前缀代表连续的A/B/C类网络集合时,应清楚潜在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入时,要求BGP发言人将相应的网络插入BGP-3。本地系统将提供控制BGP-3BGP-4之间可达性信息交换的机制。特别地,当把来自BGP-4的可达性信息插入BGP-3时,一个一致实现要求支持所有如下选项:
  -插入默认的(0.0.0.0),不传递其他NLRI
  -允许受控的解聚,但只对特定路由;
  -允许传递非聚合的NLRI
  -允许只传递非聚合的NLRI
  在一个参与BGP-4BGP发言人和一个单纯的BGP-3发言人之间以BGP-3交换路由信息的情况,只可能发现在自治系统边界。在一个单独的自治系统内部,所有BGP发言人的会话必须要么是BGP-3,要么是BGP-4,不能是混合体。
  
  9. 在虚拟交换线路上的运作
  
  BGP使用在虚拟交换子网(SVC)上,被要求产生尽可能少的流量。特别地,可能被要求消除由周期性KEEPALIVE消息所产生的流量。BGP包含了一个机制,在虚拟交换线路(SVC)服务运作时,避免SVCs始终开启,允许它终止周期性KEEPALIVE消息的发送。
  本部分论述了如何在没有周期性KEEPALIVE消息的条件下,使用智能的SVC管理,使SVC使用最少。所提议的方案也适用于"永久"线路,"永久"线路支持类似链路质量监测的特性,或者可以显示请求来决定链路连接的状态。
  
  9.1 建立BGP连接
  
  通过在OPEN消息中设定Hold Time0来实现
  
  9.2 线路管理器特性
  
  线路管理必须具备足够的功能来弥补周期性KEEPALIVE消息的缺失:
  -必须能够在失败发生的可预见的有限时间内,确定链路层的不可达性。
  -关于确定不可达性,应该:
  -开启一个配置死寂的计数器(与典型的保持计数器值相比)。
  -试图重建链路层连接。
  -如果死寂计数器终止,应该:
  -发送一个内部线路DEAD指示给TCP
  -如果连接重建,应该
  -取消死寂计数器
  -发送一个内部线路UP指示给TCP
  
  9.3 TCP特性
  
  TCP须做一点修改,来处理来自线路管理器的内部通告:
  -DEAD:清除发送队列,取消TCP连接。
  -UP:发送任何队列数据,或者允许向进程传递TCP调用
  
  9.4 混合特性
  
  一些应用可能无法保证BGP进程和线路管理器统一工作;也就是说,当一个停止或崩溃时,另一个仍独立存在。
  如果这是事实,在BGP进程和线路管理器之间周期性的双向握手就需要实现。如果BGP进程发现线路管理器死亡,它就关闭所有相关的TCP连接。如果线路管理器发现BGP进程死亡,它将关闭所有与BGP进程相关的连接,拒绝新连接。

 10. 结论
  BGP协议为域间路由提供高度的控制和柔韧性,执行策略约束,避免路由回路。在此说明的指导方针为BGP使用提供了一个起点,随着BGP增长,它将提供更多高级和可管理的路由方法。
  
  附录A. BGPIGP的关系
  
  本部分概述了BGPIGP交换路由信息的方法。这些方法此处不提议作为标准BGP使用的一部分。这些方法仅是信息补充。应用在引入IGP信息时,可能需要考虑这些方法。
  这是适用于一般IGP的概述信息。
  BGP与某特定IGP的关系不在此部分讨论。特定IGP的方法应在其他文档论述,在将来应成为标准化用法。
  
  概论
  
  根据定义,所有过渡AS必须能运输那些源于或终于该AS的流量。这要求在BGP和那个特定AS使用的内部网关协议(IGP)之间具有一定的联系和协调。一般来说,源于外部AS的流量将同时穿越内部网关(只支持IGP)和边界网关(支持IGPBGP)。所有内部网关都通过IGP从一个以上的边界网关那儿接收有关外部路由的信息。
  依靠在一个AS内传播BGP信息的机制,BGPIGP之间的一致性须得到特别关注,因为状态的改变可能以不同的速度在AS 内传播。可能出现时间窗,两个时刻分别为:在某边界网关(A)从相同AS内的另一台边界网关(B)获取新的BGP路由信息;ASIGP能够路由过渡流量到边界网关(B)。在这两个时刻之间,错误路由和"黑洞"均可能发生。
  为了尽可能减轻这个路由问题,在AS的所有内部网关准备好将目标为外部 IP 的流量发往正确出口边界网关(B)之前,边界网关(A)不应该向外部对等体广播那些通过边界网关(B)运往外部目标网络的路由。换句话说,内部路由须会聚一个合适的出口网关,然后才能广播通过该出口网关前往外部对等体的路由。
  
  A.2 实现稳定关系的方法
  
  下面的讨论概述了几个能实现在ASBGPIGP之间稳定关系的技术。
  
  A.2.1通过IGP传递BGP信息
  
  BGP 提供自己的机制在AS内传递BGP信息,同样,只要IGP支持全部路由信息的洪泛(提供分散BGP信息的机制)和一条通路的会聚(使得机制有效原子化),就可以用来传输BGP信息。如果一个IGP用来传递BGP信息,前述的异步时间将不复存在,因为AS内部的BGP信息传递与IGP同步,IGP的会聚或多或少与新路由信息的到来同步。注意,IGP只运输BGP信息,不对其解析或处理。
  
  A.2.2标记的内部网关协议
  
  当向外的路由在 AS内传递时,一定的IGP可以用它们的出口点给它们做标记。每个边界网关应使用同一的标记声明外部路由信息(通过BGP接收),不管这些路由信息是进入 IGP还是传递到其他的内部对等体(拥有相同AS号的对等体)。边界网关产生的标记必须唯一对应那个特定的边界网关——不同的边界网关必须使用不同的标记。
  在一个AS内的所有边界网关必须遵守如下两条规则:
  1. 如果边界网关A从内部对等体接收到信息声称某些目标网络不可达,则它必须向所有外部对等体传递该信息。
  2. 如果边界网关A从内部对等体接收到关于某些可达目标网络X的信息,则它必须拥有到XIGP路由,而且IGPBGP的路由信息都有对应标记,否则无法将这些信息传递到任何外部对等体。
  这些规则保证了除非IGP正确支持,否则不向外声明路由信息。它也可以部分避免"黑洞"
  在AS内标记BGPIGP的一种方法是使用出口边界网关的IP地址。这种情况下,BGPUPDATE消息的"gateway"域将用作标记。
  
  A.2.3封装
  
  封装为运输AS间过渡流量提供了最简单的机制(关于IGPBGP的联系)。用这种方法,过渡流量封装在一个地址为出口网关的IP数据包内。这种方法对IGP的唯一要求是能够支持同一AS内边界网关间的路由。
  前往某些外部目标网络X的出口网关A的地址,通过A向同一AS内其他边界网关发送的BGP OPEN消息中的BGP标识符进行声明。为了路由流量到目标XAS内的每个边界网关都封装流量到以网关A为地址的IP数据包。然后,网关A解封装,将原始数据包发送到外部AS的对应网关。
  因为封装不依靠IGP来运输外部路由信息,所以在BGPIGP之间无需同步。
  一些方法用来标识包含封装IP的数据包,如用IP协议类型码,必须在使用前定义。
  注意,如果一个封装后的数据包的长度非常接近MTU,这个数据包将被那个执行封装的网关分片。
  
  A.2.4遍布的BGP
  
  如果一个AS内的所有路由器都是BGP发言人,那么就没有必要联系BGPIGP。这种情况下,AS内的所有路由器拥有BGP路由的全部信息。IGP只用来在AS中路由,不再有BGP路由被导入成IGP
  如果路由器按此方式工作,它们必须能够完成对路由表的循环查找。第一次查找将使用一条BGP路由来建立出口路由器,第二次查找将决定前往出口路由器的IGP路径。
  这种情形下,IGP不携带任何外部信息,所有BGP发言人一旦获得路由的新信息,该AS内的路由器将很快会聚。因为不存在为IGP的会聚延迟,一个应用能广播这些路由,而没有延迟。
  
  A.2.5其他情况
  
  有些ASIGP,可能既无法传输BGP信息,也无法标记外部路由(比如,RIP)。另外,封装可能不可行或不被接受。这些情况下,以下两条规则须被遵守:
  (1). 如果边界网关A从内部对等体接收到信息声称某些目标网络不可达,则它必须向所有外部对等体传递该信息。
  (2). 如果边界网关A从内部对等体接收到关于某些可达目标网络X的信息,则它必须拥有到XIGP路由,而且有足够的时间使IGP路由会聚,否则无法将这些信息传递到任何外部对等体。
  以上规则只说明了传递BGP路由信息到其他AS的必要(但不充分)条件。与标记的IGP相比,这些规则不能保证,在传递路由到其他AS之前,到出口网关的内部路由存在。
  如果IGP会聚时间比某小值X还小,IGPBGP不同步造成的时间窗也将小于X,那么,路由不稳定是异常短暂的,这个问题就可以忽略。至于这个X的合理取值,尚待研究,但至少应小于1秒。
  如果IGP会聚时间无法忽略,就需要不同的方法。适合这种情形的机制和技术尚待深入研究。

HDLC面向比特的同步协议

一.特点与格式

  面向比特的协议中最有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO (International Standards Organization)的高级数据链路控制规程HDLC(High Level Data Link Control),美国国家标准协会(American National Standar ds Institute )的先进数据通信规程ADCCP ( Advanced Data Communications Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称"面向比特"的协议。


  二.帧信息的分段

  SDLC/HDLC的一帧信息包括以下几个场(Field),所有场都是从最低有效位开始传送。
  1. SDLC/HDLC标志字符

  SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。这个标志字符是01111110,称标志场(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形式传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索"01111110"来探知帧的开头和结束,以此建立帧同步。

  2.地址场和控制场

  在标志场之后,可以有一个地址场A(Address)和一个控制场C(Contro1)。地址场用来规定与之通信的次站的地址。控制场可规定若干个命令。SDLC规定A场和C场的宽度为8位。HDLC则允许A场可为任意长度,C场为8位或16位。接收方必须检查每个地址字节的第一位,如果为"0",则后边跟着另一个地址字节;若为"1",则该字节就是最后一个地址字节。同理,如果控制场第一个字节的第一位为"0",则还有第二个控制场字节,否则就只有一个字节。
  3.信息场

  跟在控制场之后的是信息场I(Information)。I场包含有要传送的数据,亦成为数据场。并不是每一帧都必须有信息场。即信息场可以为0,当它为0时,则这一帧主要是控制命令。

  4.帧校验场

  紧跟在信息场之后的是两字节的帧校验场,帧校验场称为FC(Frame Check)场, 校验序列FCS(Frame check Sequence)。SDLC/HDLC均采用16位循环冗余校验码CRC (Cyclic Redundancy Code),其生成多项式为CCITT多项式X^16+X^12+X^5+1。除了标志场和自动插入的"0"位外,所有的信息都参加CRC计算。 CRC的编码器在发送码组时为每一码组加入冗余的监督码位。接收时译码器可对在纠错范围内的错码进行纠正,对在校错范围内的错码进行校验,但不能纠正。超出校、纠错范围之外的多位错误将不可能被校验发现 。


  三.实际应用时的两个技术问题

   1."0"位插入/删除技术

   如上所述,SDLC/HDLC协议规定以01111110为标志字节,但在信息场中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了"0"位插入和删除技术。具体作法是发送端在发送所有信息(除标志字节外)时,只要遇到连续5个"1",就自动插入一个"0"当接收端在接收数据时(除标志字节)如果连续接收到5个"1",就自动将其后的一个"0"删除,以恢复信息的原有形式。这种"0"位的插入和删除过程是由硬件自动完成的,比上述面向字符的"数据透明"容易实现。
   2. SDLC/HDLC异常结束

   若在发送过程中出现错误,则SDLC/HDLC协议用异常结束(Abort)字符,或称失效序列使本帧作废。在HDLC规程中7个连续的"1"被作为失效字符,而在SDLC中失效字符是8个连续的"1"。当然在失效序列中不使用"0"位插入/删除技术。

   SDLC/HDLC协议规定,在一帧之内不允许出现数据间隔。在两帧信息之间,发送器可以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲(Idle)信号。

 

NetBios协议详解及网上邻居工作原理

Netbois(网络基本输入/输出系统)最初由IBM,Sytek作为API开发,使用户软件能使用局域网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios是接入网络服务的接口标准。
  Netbios原来是作为THE网络控制器为IBM局域网设计的,是通过特定硬件用来和网络操作系统连接的软件层。Netbios经扩展,允许程序使用Netbios接口来操作IBM令牌环结构。Netbios 已被公认为工业标准,通常参照Netbios-compatible LANs.
  它提供给网络程序一套方法,相互通讯及传输数据。基本上,Netbios允许程序和网络会话。它的目的是把程序和任何类型的硬件属性分开。它也使软件开发员可以免除以下负担:开发网络错误修复,低层信息寻址和路由。使用Netbios接口,可以为软件开发员做许多工作。

  Netbios使程序和局域网操作能力之间的接口标准化。有它们,可以将程序细化到为osi模型的哪一层所写,使程序能移植到其他网络上。在Netbios局域网环境下,计算机通过名字被系统知道。网络中每台计算机都有通过不同方法编的永久性名称。这些名称将在下面做进一步讨论。

  通过使用Netbios的数据报或广播方式,在Netbios局域网上的pc机建立会话彼此联络。会话允许更多的信息被传送,探测错误,和纠正。通信是在一对一的基础上的。数据报或广播方式允许一台计算机和多台其他的计算机同时通信,但信息大小受限。使用数据报或广播方式没有探测错误和纠正。然而,数据报通信可以不必建立一个会话。

  在这种环境下所有的通信以一种称为“网络控制块“的格式提交给NetBIOS。内存中这些块的分配依赖于用户程序。这些“网络控制块“分配到域中,分别为输入/输出保留。

在当今的环境中,NetBIOS是使用很普遍的协议。以太网,令牌环,IBM PC网都支持NetBIOS。在它原始版本中,它仅作为程序和网络适配器的接口。从那以后,传输类功能加入NetBIOS,使它功能日益增多。

  在NetBIOS里,面向连接(tcp)和无连接(udp)通信均支持。它支持广播和复播,支持三个分开的服务:命名,会话,数据报。


[1.0.2] NetBIOS 名称

  NetBIOS名称用来在网络上鉴别资源。程序用这些名称开始和结束会话。你能用多个程序配置一台单独的机器,每个程序都有独特的NetBIOS名称。每台支持应用的pc机也有用户定义或通过内部方法获得的NetBIOS站名。

  NetBIOS能包含至多16个阿尔法数字字母。在整个资源路由网络里,字母的组合必须独特。在一台使用NetBIOS的pc机在网络上能完全工作起来之前,pc必须先登记NetBIOS名称。

以下看仔细啦,一台机器开机啦~~他在干嘛??


  当客户端A活跃时,客户端A广播它的名称。当它成功广播自己,并没有其他人和它重名,客户端就登记成功。登记过程如下:

1.在登陆上,客户端A在所有地方广播它自己和它的NetBIOS信息6到10次(靠,这种办法Who想出来个,馊的。。。。),确保其他网络成员收到信息。(如果有机器没有收到,那该机的网上邻居里这个客户端A就隐身了)

2.如果有另一客户端B已用此名,另一客户端B发布它自己的广播,包括它正在使用的名字。请求登陆的客户端A停止所有登记的企图。

3.如无其他客户端反对登记,请求登陆的客户端A完成登记过程。如果有可用的名称服务器,那么名称服务器会在它的数据库里记上一笔,某机的名称是A,IP地址是XXX.XXX.XXX.XXX

4、当A机正常关机时,重新广播释放刚才注册的这个名字,同一网段上的计算机收到后把这个名字在网上邻居里就麻油了。(靠,晕倒死正常关机。。。。。不正常呢?别急呀)如果网上有Wins服务器的话,客户机非正常关机一定时间以后,Wins也会注销这个名字。如果麻油wins服务的话,您就对着网上邻居里的图标撞大运吧~~,当心噢,这时候查询名字肯定是广播~~,如果你网上有个几十台机器,广播个N篇,再等回答 


  问题真的解决了吗?要知道广播包是很容易出问题的,尤其在机器数量较多的网络里,这就是网上邻居常常找不到人的原因之一,并且广播不能穿过路由,所以不同子网的机器在网上邻居里是看不见地。(如果有wins服务器存在而且节点类型不是B,那还....稍好一点,不广播了。具体方式可参阅wins结点类型的相关资料)

  其实即使有些机器没有收到注册请求,也就是网上邻居里看不看见没什么大关系,只要A不恰好和B同名,如果有WINS服务那就更好了,你和他同名也没关系,WINS会更新纪录或拒绝A登记这个名字。当你试图和A机进行基于NetBios的通讯,比如传只文件什么的,那首先会查询NetBios名字,如果找到就开始通讯。

  在NetBIOS环境中有两类名称:独特的和集合的。独特的名称必须在网络中独特。集合的名称不必在网络中独特,所有同名过程属于同一集合。每个NetBIOS节点包含一张该节点当前使用名称的表。

NetBIOS命名允许16个字母用在NetBIOS名称中。而微软只允许15个字母用在NetBIOS名称中,第十六个为NetBIOS后缀。NetBIOS后缀用在Microsoft networking 软件中,区别安装的功能,登记的设备和服务。

[注意:smb 和nbt(在tcp/ip上的NetBIOS)紧密的工作在一起,且都使用137,138,139端口。137端口是NetBIOS名称UDP,138端口是NetBIOS数据报UDP,139端口是NetBIOS会话tcp]嘿嘿,知道点安全常识的这个端口号不会没听说过吧,要网上邻居还是要安全自已考虑清楚噢~~

以下是Microsoft WindowsNT目前使用的NetBIOS后缀表。后缀是16进制。

名称 数字 类型 用途
=========================================================================
=
00 U Workstation Service
01 U Messenger Service
<\\_MSBROWSE_> 01 G Master Browser
03 U Messenger Service
06 U RAS Server Service
1F U NetDDE Service
20 U File Server Service
21 U RAS Client Service
22 U Exchange Interchange
23 U Exchange Store
24 U Exchange Directory
30 U Modem Sharing Server Service
31 U Modem Sharing Client Service
43 U SMS Client Remote Control
44 U SMS Admin Remote Control Tool
45 U SMS Client Remote Chat
46 U SMS Client Remote Transfer
4C U DEC Pathworks TCPIP Service
52 U DEC Pathworks TCPIP Service
87 U Exchange MTA
6A U Exchange IMC
BE U Network Monitor Agent
BF U Network Monitor Apps
03 U Messenger Service
00 G Domain Name
1B U Domain Master Browser
1C G Domain Controllers
1D U Master Browser
1E G Browser Service Elections
1C G Internet Information Server
00 U Internet Information Server
[2B] U Lotus Notes Server
IRISMULTICAST [2F] G Lotus Notes
IRISNAMESERVER [33] G Lotus Notes
Forte_$ND800ZA [20] U DCA Irmalan Gateway Service

独特的(u):该名仅有一个IP地址分给它。在网络设备中,一个名称的多次出现看来会被登记,但后缀是唯一的,使整个名称唯一。

集合的(g):普通集合,一个名称可有多个IP地址。

多址的(M):名称是唯一的,但由于在同一计算机上有多个网络接口,这种配置应该被允许登记。地址的最大数目是25。

Internet集合(I):这是组名的特殊配置,用在操作WINDOSNT的域名。

域名(D):在NT4.0中新引进的。

为了快速浏览一台服务器上登记的NETBIOS名称和服务,用以下命令:
nbstat -a [ipaddress]
nbstat -a [host]

[1.0.3] NetBIOS 会话

  NetBIOS 会话服务提供给用户程序一种面向连接,可靠的,完全双重的信息服务。NetBIOS要求一个是客户端程序,一个是服务器端程序。NetBIOS会话的建立需要双方预定的合作。一个程序必须先发出listen命令,其他程序才可以发出call命令。listen命令参考在它的NetBIOS名称表中的名称(或windows服务器中的),也参考用于作为会话另一端的远端程序的名称。如果聆听者不在聆听,call命令将不会成功。如果call成功,各程序将接到会话id,以作为会话建立的确认。

send和receive命令操作传输数据。在会话最后,各程序将执行挂起命令。没有为会话服务的实际流控制,因为假定局域网足够快,能够传输需要的数据。


[1.0.4] NetBIOS 数据报

  数据报可以发送到特定的地点,或组中所有成员,或广播到整个局域网。与其它数据服务相比,NetBIOS数据报是无连接,非可靠的。Send_Datagram 命令需要调用者设定目的名。如果目的名是组名,组中每个成员都收到数据。Receive_Datagram 命令的调用者必须确定它接收数据的本地名。除了实际数据外,Receive_Datagram也返回发送者的名称。如果NetBIOS收到数据,但却没有Receive_Datagram 命令在等待,数据将被丢弃。

  Send_Broadcast_Datagram 命令发送信息给本地网上每个NetBIOS系统。当BetBIOS节点收到广播数据,发布Receive_Broadcast_Datagram 命令的每个进程都收到数据。如果当广播数据被收到时,没有这些命令在运行,数据将被丢弃。

  NetBIOS使应用程序能和另一个设备建立会话,使网络转发器和处理协议处理收到、发送到另一台机器的请求。NetBIOS实际上不操作数据。NetBIOS定义规定了用来到达这些服务的协议的网络接口,而非协议本身。历史上,NetBIOS曾与叫做NetBEUI的协议(网络扩展用户接口)捆绑。接口和协议的结合有时引起混淆,但它们是不同的。

  网络协议为定位、连接到网络上特定的服务提供至少一种方法。这通常由将节点和服务名转化为网络地址(名称解析)完成。在连接用TCP/IP建立前,NetBIOS服务名必须解析成IP地址。大多数NetBIOS的TCP/IP实现,用广播或LMHOSTS文件完成名称地址的解析。在Microsoft环境中,你最可能使用叫做WINS的NetBIOS
名称服务器。


[1.0.5] NetBEUI 解释

  NetBEUI是网络操作系统使用的NetBIOS协议的加强版本。它规范了在NetBIOS 中未标准化的传输帧,还加了额外的功能。传输层驱动器经常被Microsofts LAN Manager(微软局域网操作器)使用。NetBEUI执行OSI LLC2 协议。NetBEUI是原始的PC网络协议和IBM为LanManger(局域网操作器)服务器设计的接口。本协议稍后被微软采用作为它们的网络产品的标准。它规定了高层软件通过NetBIOS帧协议发送、接收信息的
方法。本协议运行在标准802.2数据链协议层上。


[1.0.6] NetBIOS 范围

  NetBIOS范围ID为建立在TCP/IP(叫做NBT)模块上的NetBIOS提供额外的命名服务。NetBIOS范围ID的主要目的是隔离单个网络上的NetBIOS通信和那些有相同NetBIOS范围ID的节点。NetBIOS范围ID是附加在NetBIOS名称上的字符串。两个主机上的NetBIOS范围ID必须匹配,否则两主机无法通信。NetBIOS范围ID允许计算机使用相同的计算机名,不同的范围ID。范围ID是NetBIOS名称的一部分,使名称唯一。

NETBIOS是不可路由的服务,如果要实现不同网段的主机名服务,需要设置WINS来解析。

 

 

剖析TCPUDP协议

什么是TCP和UDP 

TCP和UDP是TCP/IP协议中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议(包括:HTTP、SMTP、SNMP、FTP和Telnet)提供网络服务。TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。面向连接的协议在任何数据传输前就建立好了点到点的连接。ATM和帧中继是 面向连接的协议,但它们工作在数据链路层,而不是在传输层。普通的音频电话也是面向连接的。 


可靠的传输协议可避免数据传输错误。其实现方式是:在构造数据包时在其中设置校验码,到达目的地后再采用一定的算法重新计算校验码,通过比较二者,就可以找出被破坏了的数据。因为需要重发被破坏了的和已经丢失的数据,所以在需要重发数据时协议必须能够使目的地给出源头的一个确认信号。有些数据包不一定按照顺序到达,所以协议必须能够探测出乱序的包,暂存起来,然后把它们按正确的次序送到应用层中去。另外,协议还必须能够找出并丢弃重复发送的数据。一组定时器可以限制针对不同确认的等待时间,这样就可以开始重新发送或重新建立连接。 


数据流传输协议不支持位传输。TCP不能在一个包内以字节或位为单位构造数据,它只负责传输未经构造的8位字符串。 


非面向连接的传输协议在数据传输之前不建立连接,而是在每个中间节点对非面向连接的包和数据包进行路由。没有点到点的连接,非面向连接的协议,如UDP,是不可靠的连接。当一个UDP数据包在网络中移动时,发送过程并不知道它是否到达了目的地,除非应用层已经确认了它已到达的事实。非面向连接的协议也不能探测重复的和乱序的包。标准的专业术语用“不可靠”来描述UDP。在现代网络中,UDP并不易于导致传输失败,但是你也不能肯定地说它是可靠的。 


TCP工作流程 

现在让我们一起来看看TCP段的各个域,在IP包中它们紧跟在IP头部信息之后。第一个16位确认了源端口,第二个16位确认了目的端口。端口的划分使IP主机之间可用单个的IP地址实现不同类型的并发连接。在绝大多数现代操作系统中,采用32位IP地址和16位端口地址的组合来确认一个接口。源接口和目的接口的组合就定义了一个连接。有216或65536个可能的端口。最低的1024个端口是常用的,它们是系统为特定的应用层协议所保留的默认设置。如:默认状态下,HTTP使用端口80,而POP3使用端口110。其它的应用可以使用编号更高的端口。 


在接下来的两个域中,序列号和确认号是TCP实现可靠连接的关键。当建立一个TCP连接时,发送方主机发出一个随机的初始化序列号给初始化器,初始化器将其加1后送回确认域的起始器,这意味着下一个字节可以发送了。一旦数据开始流动,序列号和确认号将跟踪已发送了那些数据,那些数据已被确认。因为每个域都是32位,总共可以有232个值,所以每个域的范围是:0~4294967295,当超过上限时回到0。 


4位的偏移量代表TCP头部一共有多少个32位的信息。这个信息是必不可少的,因为有可选的头部区域,偏移量标识了头部的结束和数据的开始。 

TCP的设计者保留了接下来的6位,以防万一将来要对其进行扩展。实际上,自从RFC793(传输控制协议)1981年发布以来,还没人有恰当的理由使用这些位,在这一点上,Jon  Postel和他的同事一定是过分谨慎了。 


随后的6位每个都是一个标志。若UNG标志位的值为1,意味着远在头部紧急指针区域的数据是有效的;若ACK标志位的值为1,则意味着确认号区域中的数据是有效的。(注意:一个SYN包有一个有意义的序列号,但它的确认号是无意义的,因为它并不确认任何事件)PSH标志位使数据不必等待发送和等待接收。RST标志位将断开一个连接。SYN(同步)标志位意味着序列号是有效的,FIN(结束)标志位将指出发送方已经发完了数据。 


16位长的窗口区域表示了“滑动窗口”的大小,也就是告诉发送方它已经准备好接收多少个字的数据。TCP通过调整窗口的大小来控制数据的流量。一个值为0的窗口意味着通告发送方:如果没有进一步的通知,接收器已满,不能再接收更多的数据了。大的窗口可以确保在任何给定的时间传输多达65536个未经确认的字节,但是,当重发定时器超时且又没有得到接收确认时,窗口将减半,从而有效地降低传输速率。 


16位的校验码区域保证了数据的完整性,保护了TCP头部和IP头部的各个区域。发送方计算校验值并把它插入这个区域,接收方根据收到的包重新计算该值并比较二者,如果它们是匹配的,则认为数据是完整无损的。 


当设置紧急标志位时,紧急指针是一个16位的偏移量,它代表必须加快的最后一个字。选择区域可以容纳0或多个32位字,可扩展TCP的性能。大多数常用的选择区域支持大于65536字节的窗口,从而缩短了等待确认的时间,尤其是在高传输率时。 


TCP的传输机构有多个定时器。当一个包发送时,重发定时器开始计数;当收到确认信号后,重发定时器停止计数。如果超过设定时间段还没有收到确认信号,就重发该包。一个比较棘手的问题是如何设置该时间段。如果太长,当网络传输错误增加时将导致不必要的等待时间;如果太短,就会产生过多的重复包从而降低网络的反应时间。现代TCP协议根据实际情况对重发定时器进行动态设定。 


持续定时器对于避免死锁是必不可少的。如果网络收到了一个大小为0的窗口确认并且丢失了随后的重发数据的确认,持续定时器将超时并发送一个探针。探针的回应将指出窗口的大小(也许仍为0)。保持定时器在本端没有任何活动后,将检查在连接的另一端是否还有运行的进程。如果没有任何回应,该定时器将断开连接。 


当断开一个连接时,断开连接定时器将包的最大生命期加倍。该定时器在连接断开之前确保流量最大。 


不管重发过程执行得多么有效,很少的丢失包就能严重地降低TCP连接的流量。每个未收到的包或包的片段只会在重发定时器超时的时候才会丢失。在数据重发时,接收过程一直在递送这些重发的数据,这样就使总体的数据传输陷于停顿,直到丢失的数据被取代为止。这些重发过程导致基于TCP的连接有时处于不稳定状态。 


TCP与UDP的选择 

如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数和目的端口数也都支持一台主机上的多个应用。一个16位的UDP包包含了一个字节长的头部和数据的长度,校验码域使其可以进行整体校验。(许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。) 


很明显,当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。在数据传输时间很短,以至于此前的连接过程成为整个流量主体的情况下,UDP也是一个好的选择,如:DNS交换。把SNMP建立在UDP上的部分原因是设计者认为当发生网络阻塞时,UDP较低的开销使其有更好的机会去传送管理数据。TCP丰富的功能有时会导致不可预料的性能低下,但是我们相信在不远的将来,TCP可靠的点对点连接将会用于绝大多数的网络应用。

 

DHCP数据报文

 

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务器的IP地址等TCP/IP参数。了解DHCP工作过程可以帮助我们排除有关DHCP服务遇到的问题。DHCP 协议是基于UDP层之上的应用,本文结合抓报所得数据分析DHCP协议实现原理

一、先了解一下需要抓取的DHCP报文

客户发出的IP租用请求报文

  DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。该 广播包中的源IP地址为0.0.0.0,目标IP地址为255.255.255.255;包中还包含客户机的MAC地址和计算机名。

DHCP回应的IP租用提供报文

  任何接收到DHCPDISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。该广播包的源IP地址为DCHP服务器IP,目标IP地址为255.255.255.255;包中还包含提供的IP地址、子网掩码及租期等信息。

客户选择IP租用报文

  客户机从不止一台DHCP服务器接收到提供之后,会选择第一个收到的DHCPOFFER包,并向网络中广播一个 DHCPREQUEST消息包,表明自己已经接受了一个DHCP服务器提供的IP地址。该广播包中包含所接受的IP地址和服务器的IP地址。 所有其他的DHCP服务器撤消它们的提供以便将IP地址提供给下一次IP租用请求。

DHCP服务器发出IP租用确认报文

  被客户机选择的DHCP服务器在收到DHCPREQUEST广播后,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。

客户配置成功后发出的公告报文

  客户机在收到DHCPACK包,会使用该广播包中的信息来配置自己的TCP/IP,则租用过程完成,客户机可以在网络中通信。

至此一个客户获取IP的DHCP服务过程基本结束,不过客户获取的IP一般是用租期,到期前需要更新租期,这个过程是通过租用更新数据包来完成的。

客户IP租用更新报文

(1)在当前租期已过去50%时,DHCP客户机直接向为其提供IP地址的DHCP服务器发送DHCPREQUEST消息包。如果客户机接收到该服务器回应的DHCPACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。

(2)如果在租期过去50%时未能成功更新,则客户机将在当前租期过去87.5%时再次向为其提供IP地址的DHCP联系。如果联系不成功,则重新开始IP租用过程。


(3)如果DHCP客户机重新启动时,它将尝试更新上次关机时拥有的IP租用。如果更新未能成功,客户机将尝试联系现有IP租用中列出的缺省网关。如果联系成功且租用尚未到期,客户机则认为自己仍然位于与它获得现有IP租用时相同的子网上(没有被移走)继续使用现有IP地址。 如果未能与缺省网关联系成功,客户机则认为自己已经被移到不同的子网上,将会开始新一轮的IP租用过程。


  DHCP客户机在发出IP租用请求的DHCPDISCOVER广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为间隔,加上1~1000毫秒之间随机长度的时间)。四次之后,如果仍未能收到服务器的回应,则运行Windows 2000的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址。DHCP客户机仍然每隔5分钟重新广播一次,如果收到某个服务器的回应,则继续IP租用过程。

二、设置SNIFFER PRO抓取DHCP通讯报文

    本文使用的抓包工具软件是NAI公司推出的功能强大的协议分析软件---Sniffer Pro。Sniffer Pro 具有强大的网络分析功能和特征,是解决网络问题的好工具。Sniffer支持丰富的的协议,而且能够进行快速解码分析。Sniffer Pro 4.6可以运行在各种Windows平台上(其它类似软件如Netxray不能在Windows 2003和Windows XP上正常运行)。Sniffer软件比较大,运行时需要的计算机内存比较大,否则运行比较慢,这也是它与Netxray相比的一个缺点。

设置包过滤条件

网络中传输的数据包很多,这里只抓取跟DHCP有关的数据,设置如下:点击Capture菜单,选择define filter打开define filter-capture对话框,设置入图参数。

Address选项
Address: Hardware
Mode:Include
Station 1: 10E08C5FC28A(网卡的物理MAC地址,不同的网卡MAC是不同)
Station 2: any

Advanced选项

IP:ICMP
UDP:BOOTP/DNS(UDP)
Packer Size:ALL

其它用默认设置,给这个配置起个名字:BOOTP

现在可以抓包了

先弹出Capture Panel(监视抓包情况),点击Capture菜单中的START开始抓包。进入命令提示符,分别执行IPCONFIG/RELEASE 、IPCONFIG/RENEW命令,通过监视器可以看到已经以抓到数据包了,停止抓包并分析包,还是先保持包到磁盘以备分析。
图DHCP3 可以看到已经抓到5个报文

三、分析抓到的数据包

用户从DHCP获取IP过程如下:

1、 用户发出DHCPDISCOVER报文;

图DHCP4 用户发出DHCPDiscover广播报文

开始抓报文时首先执行的IPCONFIG/RELEASE命令的作用是用来释放IP,这条报文后面分析,在释放IP后执行的更新IP命令IPCONFIG/RENEW将发起一个DHCP过程,分析从这里开始。现在,客户机没有地址,它就会发出一个DHCPDiscover报文,该报文是广播报文,所有的具有DHCP Server功能的服务器都会收到该报文。
图DHCP5

在图中我们可以看到该报文在链路层中发的确实是广播报文。由于DHCP协议是初始化协议,更简单的说,就是让终端获取IP 地址的协议,既然终端连IP地址都没有,何以能够发出IP报文呢?

为了解决这个问题,DHCP报文的封装采取了如下措施:

1、首先链路层的封装必须是广播形式,即让在同一物理子网中的所有主机都能够收到这个报文。在Ethernet_II格式的网络中,就是目标MAC为全1。

2、由于终端没有IP地址,IP头中的原IP规定填为全0。

3、当终端发出DHCP请求报文,它并不知道DHCP SERVER的IP地址,因此IP头中的目标IP填为子网广播IP——全1,以保证DHCP SERVER的IP协议栈不丢弃这个报文。

4、上面的措施保证了DHCP SERVER能够收到终端的请求报文,但仅凭链路层和IP层信息,DHCP SERVER无法区分出DHCP报文,因此终端发出的DHCP请求报文的UDP层中的原端口为68,目标端口DstPort为67。即DHCP SERVER通过知名端口号67来判断一个报文是否是DHCP报文。
图DHCP6

DHCP协议的报文中主要数据格式详解
DHCP7

Boot record type为1时表示是Client的请求,为2时表示是Server的应答。

Hardware address typeClient 的网络硬件地址类型,1表示Client 的网络硬件是10MB的以太网类型
/Hardware address lengthClient 的网络硬件地址长度,6表示Client 的网络硬件地址长度是6bytes(即以太网类型的6bytes的MAC地址)。
HOPS跳数,表示当前的DHCP报文经过的DHCP RELAY(中级)的数目,每经过一个DHCP中继,此字段就会加1,此字段的作用是限制DHCP报文不要经过太多的DHCP RELAY,协议规定,当“hops”大于4(现在也有规定为16)时,这个DHCP报文就不能再进行处理,而是丢弃。

Transaction id事务ID,Client每次发送DHCP请求报文时选择的随机数,用来匹配server的响应报文是对哪个请求报文的响应。Client会丢弃“ID”不匹配的响应报文。

Elapsed boot time秒数,用来表示client开始DHCP请求后的时间流逝秒数
flags标志,在 BOOTP中此字段是保留不用的,在DHCP协议中也只使用了其左边的最高位。
Client self-assigned IPaddress客户机IP地址
Client IP address server分配给client的IP地址
Next Server to use in bootstrap服务器IP地址
Relay AgentDHCP中继代理IP地址
Client hardware address客户机硬件地址MAC
Host name 服务器的主机名

Boot file nameClient 的启动配置文件名

Vendor Information tag选项字段,此字段中包含了大量可选的终端初始配置信息和网络配置信息,对于BOOTP协议,此字段为64bytes,对于DHCP协议,此字段为64---312 bytes。其中最常用的选项列表如下:

Dhcp message typecode = 53, length = 1, value= 1-8,此字段表示DHCP报文类型
Router Ipcode = 3, length = IP地址长度, value=client的默认网关的 IP地址;
DNS Ipcode = 6, length = IP地址长度的倍数, value= client的DNS服务器的IP地址序列;
Wins Ipcode = 44, length = IP地址长度的倍数, value= client的WINS服务器的 IP地址序列;

Client idcode = 61, length = client的网络硬件地址的长度+2, value=“htype”+“hlen”+ client的网络硬件地址;

server idcode = 54, length = IP地址长度, value= DHCP SERVER的IP地址;


其中我们要注意Transaction ID=CF04CD61和DHCP Message Type一项中type=Discover,前一项表示会话ID,即DHCP Server发回的响应报文中该结构的数值要与发出去的DHCP Discover中的该结构数值一样,后一项说明DHCP报文类型为Discover类型报文。

2 DHCP SERVER回送DHCPOFFER报文
图DHCP8

从图中可以看出,DHCPOFFER报文是单播而不是广播,报文明确给出了目标MAC和IP,这一点不同与一般的技术文章介绍。其实,DHCP SERVER给终端的响应报文是根据DHCP报文中的内容决定是广播还是单播,一般都是广播形式。通讯源端口是67,目标端口为68,客户端通过端口号68来判断一个报文是否是DHCP SERVER的响应报文,Transaction ID=CF04CD61,表示这个报文是与图DHCP7中的DHCPDiscover报文相关的报文,因为二者标示一致。
从DHCP Server回应的DHCPOffer报文中我们还可以得到DHCP拟分配给客户端的初始配置信息和网络配置信息,其中

Client self-assigned IP address =0.0.0.0表示客户机还没有使用该地址
Client server-assigned IP address =10.177.124.73表示DHCP Server分配给该客户机的IP地址


Server IP ID=218.290.240它标示了客户机下一次发出DHCPRequest报文时,哪个DHCP Server会发出回应
DHCP Message Typee=DHCP Offer表示这是一个对DHCPDiscover的回应报文
Request IP address lease time =6000 表示租期是100分钟
Domain Name Server=218.29.0.251域名服务器地址
Gateway address=10.177.124.254网关地址
Subnet mask=255.255.255.0 表示这个地址的网段是一个标准的C类地址网段

详细的请参见图DHCP9

所有发送DHCP Offer信息包的服务器将保留它们提供的一个IP地址。在该地址不再保留之前,该地址不能分配给其他的客户。


用户发出DHCPREQUEST报文

DHCP10
客户以广播的方式发送DHCP Request信息包作为响应。注意其中的DHCP Message Type一项中type=Request表示这是一个请求报文。

客户利用DHCP Request询问服务器其它的配置选项,如:DNS或网关地址如图DHCP11

DHCP SERVER回送DHCPACK报文
图DHCP12

该信息包是以单播的方式发送的。当服务器接收到DHCP Request信息包时,它以一个DHCP Acknowledge信息作为响应,其内容同DHCPOFFER类似,并在“选项”字段中增加了IP地址使用租期选项。

宣告确认

CLIENT收到DHCPACK报文后(经过上面的处理后,有且只有一个DHCPACK报文),会检查DHCP SERVER分配给自己的IP地址是否能够使用,如在以太网类型的网络中,CLIENT会发出一个ARP请求来确定DHCP SERVER分配的IP地址是否已经被别人使用,如果可以使用,则CLIENT成功获得IP地址,并根据IP地址使用租期自动启动续延过程。

如图DHCP13

DHCP协议报文的种类

前面反复提到DHCP Message Type项,这里列出所有DHCP协议报文的种类。DHCP协议采用CLIENT-SERVER方式进行交互,其报文格式共有8种,具体含义如下:

1:DHCPDISCOVER(0x01),此为Client开始DHCP过程的第一个报文

2:DHCPOFFER(0x02),此为Server对DHCPDISCOVER报文的响应

3:DHCPREQUEST(0x03),此报文是Slient开始DHCP过程中对server的DHCPOFFER报文的回应,或者是client续延IP地址租期时发出的报文

4:DHCPDECLINE(0x04),当Client发现Server分配给它的IP地址无法使用,如IP地址冲突时,将发出此报文,通知Server禁止使用IP地址

5:DHCPACK(0x05),Server对Client的DHCPREQUEST报文的确认响应报文,Client收到此报文后,才真正获得了IP地址和相关的配置信息。

6:DHCPNAK(0x06),Server对Client的DHCPREQUEST报文的拒绝响应报文,Client收到此报文后,一般会重新开始新的DHCP过程。

7:DHCPRELEASE(0x07),Client主动释放server分配给它的IP地址的报文,当Server收到此报文后,就可以回收这个IP地址,能够分配给其他的Client。

8:DHCPINFORM(0x08),Client已经获得了IP地址,发送此报文,只是为了从DHCP SERVER处获取其他的一些网络配置信息,如route ip,DNS Ip等,这种报文的应用非常少见。

图DHCP14是一个运行IPCONFIG/RELEASE后释放IP的报文,从图中可以看出DHCP Message Type是7,他的作用是主动释放server分配给它的IP地址的报文,Server收到此报文后,就可以回收这个IP地址,能够分配给其他的Client。


上面提到的都是在已经开机的情况下获得的报文,如果计算机重新启动,是不是完全按照文章提到的四步得到IP参数。看下面的图DHCP15
其中包含关机前获得的IP=192.168.0.22,这是不同与前面提到的10.177.124.X段的IP。原来客户机保留了上一次获得的地址,客户机在重新启动时,如果租用期未超过50%,它就会认为它已经知道该与哪台DHCP服务器进行联系,于是就跳过前两步,并发送另一个DhcpRequest报文给同一个服务器。如果该IP地址仍然可用的话,该DHCP服务器将给这台客户机返回另一个确认消息。 同样,DHCP服务器上也会保留(在租用期内的)客户机的地址。如果你的DHCP服务器中的租用期设的足够长,你就会发现,重启一台客户机后,客户机总是得到同一个地址。这正是由于客户机、服务器能保存已分配地址所造成的。

如果一台客户机未从该DHCP服务器获取过地址,或者它获得的地址已过期,那么它将需要经过全部四个步骤才能得到一个IP地址。

 

 

 

 

 

内部网关协议和外部网关协议

网关-网关协议(GGP)

  核心网关为了正确和高效地路由报文需要知道Internet其他部分发生的情况,包括路由信息和子网特性。当一个网关处理重负载而使速度特别慢,并且这个网关是访问子网的惟一途径时,通常使用这种类型的信息,网络中的其他网关能剪裁交通流量以减轻网关的负载。

  GGP主要用于交换路由信息,不要混淆路由信息(包括地址、拓扑和路由延迟细节)和作出路由决定的算法。路由算法在网关内通 常是固定的且不被GGP改变。核心网关之间通过发送GGP信息,并等待应答来通信,之后如果收到含特定信息的应答就更新路由表。

  注意GGP的最新改进SPREAD已经用于Internet,但它还不如GGP普及。GGP被称为向量-距离协议。要想有效工作,网关必须含有互联网络上有关所有网关的完整信息。否则,计算到一个目的地的有效路由将是不可能的。因为这个原因,所有的核心网关维护一张Internet上所有核心网关的列表。这是一个相当小的表,网关能容易地对其进行处理。

  外部网关协议(EGP)

  外部网关协议用于在非核心的相邻网关之间传输信息。非核心网关包含互联网络上所有与其直接相邻的网关的路由信息及其所连机器信息,但是它们不包含Internet上其他网关的信息。对绝大多数EGP而言,只限制维护其服务的局域网或广域网信息。这样可以防止过多的路由信息在局域网或广域网之间传输。EGP强制在非核心网关之间交流路由信息。

  由于核心网关使用GGP,非核心网关使用EGP,而二者都应用在Internet上,所以必须有某些方法使二者彼此之间能够通信。Internet使任何自治(非核心)网关给其他系统发送“可达”信息,这些信息至少要送到一个核心网关。如果有一个更大的自治网络,常常认为有一个网关来处理这些可达信息。

  和GGP一样,EGP使用一个查询过程来让网关清楚它的相邻网关并不断地与其相邻者交换路由和状态信息。EGP是状态驱动的协议,意思是说它依赖于一个反映网关情况的状态表和一组当状态表项变化时必须执行的一组操作。

  内部网关协议(IGP)

  有几种内部网关协议可用,最流行的是RIP和HELLO,另一个协议称为开放式最短路径优先协议(OSPF),这些协议没有一个是占主导地位的,但是RIP可能是最常见的IGP协议。选择特定的IGP以网络体系结构为基础。

  RIP和HELLO协议都是计算到目的地的距离,它们的消息包括机器标识和到机器的距离。一般来讲,由于它们的路由表包含很多项,因此消息比较长。RIP和HELLO一直维护相邻网关之间的连接性以确保机器是活跃的。

  路由信息协议使用广播技术。意思是说网关每隔一定时间要把路由表广播给其他网关。这也是RIP的一个问题,因为这会增加网络流量,降低网络性能。

  HELLO协议与RIP的不同之处在于HELLO使用时间而不是距离作为路由因素。这要求网关对每条路由有合理的准确时间信息。由于这个原因,所以HELLO协议依赖于时钟同步消息。

  开放式最短路径优先协议是由Internet工程任务组开发的协议,希望它能成为居于主导地位的IGP。用“最短路径”来描述协议的路由过程不准确。更好一些的名字是“最优路径”, 这其中要考虑许多因素来决定到达目的地的最佳路由。

生成树协议介绍

学好生成树协议,你就可以尽可能避免因某台交换机的问题造成整个局域网崩溃。

生成树协议是由Sun微系统公司著名工程师拉迪亚•珀尔曼博士(Radia Perlman)发明的。网桥使用珀尔曼博士发明的这种方法能够达到2层路由的理想境界:冗余和无环路运行。你可以把生成树协议设想为一个各网桥设备记在心里的用于进行优化和容错发送数据的过程的树型结构。

我 们要介绍的这个问题在图1中进行了描述。



图 1.

如果这些交换机不采用生成树协议并且以这种方式连接,每一台交换机将无限地复制它们收到的第一个数据包,直到内存耗尽和系统崩溃为止。在2层,没有任何东西能够阻止这种环路的事情发生。在图1中,管理员必须要手工关闭这个红色连接线路才能让这个以太网网络运行。生成树协议在当前可用连接有效时关闭一个或者更多其它冗余连接,而在当前连接出现故障后,再启用这些被关闭的冗余连接。生成树协议决定使用哪一个连接完全取决于网络的拓扑结构。

生成树协议拓扑结构的思路是,网桥能够自动发现一个没有环路的拓扑结构的子网,也就是一个生成树。生成树协议还能够确定有足够的连接通向这个网络的每一个部分。它将建立整个局域网的生成树。当首次连接网桥或者发生拓扑结构变化时,网桥都将进行生成树拓扑的重新计算。

当一个网桥收到某种类型的“设置信息”(一种特殊类型的桥接协议数据单元,BPDU)时,网桥就开始从头实施生成树算法。这种算法从根网桥的选择开始的。根网桥(root bridge)是整个拓扑结构的核心,所有的数据实际上都要通过根网桥。顺便提示一下,有手工设置根网桥时要特别注意。对于思科设备来言其根网桥的选择过程暴露出一些问题,就是过分简单化。思科硬件通常使用最低的MAC地址,具备这些地址的设备通常是网络中最古老的设备,因而其交换速度常是最慢的,而从根网桥在网络中的位置看,它负荷却最重。生成树构建的下一步是让每一个网桥决定通向根桥的最短路径,这样,各网桥就可以知道如何到达这个“中心”。这一步会在每个局域网进行,它选择指定的网桥,或者与根桥最接近的网桥。指定的网桥将把数据从局域网发送到根桥。最后一步是每个网桥要选择一个根端口。所谓根端口也即“用来向根桥发送数据的端口”。注意,一个网桥上的每一个端口,甚至连接到终端系统(计算机)的端口,都将参加这个这个根端口选择,除非你将一个端口设置为“忽略”。

上面就是生成树算法的过程。但是,这还不能解释生成树在现实世界中实际上在做什么。我们说,这种计算是破坏性的。毫无疑问,它确实是如此。要进行这种计算,网桥必须停止所有的通信。网桥要经过一系列的测试和学习阶段,只有在拓扑结构建立起来之后才开始发送数据。网桥只有在拓扑机构改变的时候或者网桥得到一个BPDP包时才会进行,想起来这种情况应该很少,可事实上,这种计算发生的频度要比你想象的多。

生成树协议思路是,你允许有一个连接错误,因为你在一对网桥之间存在两条物理连接。生成树协议在一个端口需要使用之前将封锁那个端口。因此,我们应该可以拔掉冗余的连接,并且在不中断通信的情况下把它连接到其它的网桥。很可惜,它不是这样工作的。

当一个物理连接的网桥新网桥连线时,它将发送重新设置BPDU,其它连接的设备将遵照施行。当生成树协议开始计算的时候,所有的通信都要停止大约50秒。这些时间可以说是物有所值,因为你仅仅被限制在一个很短的停机时间内。如果交换机被挤暴,或者你缺少多余的路径,将会出现永久的停机。相比之下,停机50秒钟只是非常轻的损失。

另外,很多现代厂商已经实现了快速生成树协议,这是老的生成树协议的一个改进版本,更加注意了在重新计算拓扑时的开销,并且与老版本的协议兼容。在大多数情况下,它可以把以前多达50秒的计算时间缩短到不足3秒,从这点看,任何人都应该使用新的快速生成树协议。

希望上面的介绍已经足够清楚。我们知道,启用生成树功能可以让我们通过多个连接把两个网桥连接在一起,并且不产生环路。如果连接之中的一个网桥坏了,我们可以绕过这个网桥,使用另一个网桥。这个工作原理是虽然现用的交换机封锁其备用的连接,但是,它默默地监听BPDU更新并且仍然知道哪一个连接通向根桥。这就是说,如果你进行了适当的设置。还记得虚拟局域网中的trunk?如果其中一个物理连接碰巧是一条虚拟局域网trunkk线,会出现什么情况呢?如果我们只有一个运行的生成树实例,这个生成树可能会发现trunk中的一个网络不应该使用这个连接(turnk端口汇聚将多条物理连接汇聚为一个带宽更大的逻辑连接)。除了关闭整个连接之外,它没有其它的选择。

现在进入每一个虚拟局域网一个生成树协议(PVST/per-VLAN spanning trees)的话题。当启用这项功能的时候,一个网桥将为该网桥上的每一个虚拟局域网运行一个生成树实例。如果一个trunk连接包含虚拟局域网1、2和3,它可以决定虚拟局域网1和2不能使用那个路径,但是仍然允许虚拟局域网3使用这条路径。在复杂的网络中,还有许多虚拟局域网3只有一个出口的情况,这可能是因为管理员要限制虚拟局域网3访问的范围。如果我们不是用PVST,而且trunk端口被生成树封锁了,这个网桥上的虚拟局域网3将失去与其局域网的其它方面的连接。每一个人都应该使用PVST。

最后,你应该不会忘记,发送BPDU数据的任何端口都能够引起网络中断。这也包括运行ettercap软件和其它非法程序的计算机。一定要在所有的端口启用类似于思科的“BPDU-Guard”这样的技术来封锁BPDU数据包。这些BPDU数据包不仅能够引起生成树协议重新进行计算,而且一台计算机也可以参加投票并且赢得这个选择。你肯定不希望发现你的生成树根是某个人的计算机。当所有的通信都涌向你的时候,这种情况很容易完成中间人攻击。

还有一些没有提到的BPDU信息以及需要学习的有关生成树协议的其它细节。这些细节有一点复杂。但是,由于你已经了解了生成树协议的概况,这些细节应该很容易理解。如果你要花更多的时间学习这些细节,从长远来看,你会得到回报。

小结

•生成树协议提供一种控制环路的方法。采用这种方法,在连接发生问题的时候,你的以太网能够绕过出现故障的连接。

•生成树中的根桥是一个逻辑的中心,并且监视整个网络的通信。最好不要依赖设备的自动选择去挑选哪一个网桥会成为根桥。

•生成树协议重新计算是痛苦的:恰当地设置主机连接端口(这样就不会引起重新计算),推荐使用快速生成树协议。

 

 

 

 

 

 

802.11协议族简介总结整理

802.11a

高速WLAN协议,使用5G赫兹频段。
最高速率54Mbps,实际使用速率约为
22-26Mbps
与802.11b不兼容,是其最大的缺点。也许会因此而被802.11g淘汰。

802.11b

目前最流行的WLAN协议,使用2.4G赫兹频段。
最高速率11Mbps, 实际使用速率根据距离和信号强度可变

(150米内1-2Mbps,50米内可达到11Mbps)

802.11b的较低速率使得无线数据网的使用成本能够被大众接受(目前接入节点

的成本仅为10-30美元)。

另外,通过统一的认证机构认证所有厂商的产品,802.11b设备之间的兼容性得到了保证。兼容性促进了竞争和用户接受程度。

802.11e

基于WLAN的QoS协议,通过该协议802.11a,b,g能够进行VoIP。
也就是说,802.11e是通过无线数据网实现语音通话功能的协议。

该协议将是无线数据网与传统移动通信网络进行竞争的强有力武器。

802.11g

802.11g是802.11b在同一频段上的扩展。支持达到54Mbps的最高速率。
兼容802.11b。该标准已经战胜了802.11a成为下一步无线数据网的标准。

802.11h

802.11h是802.11a的扩展,目的是兼容其他5G赫兹频段的标准,如欧盟使用的HyperLAN2。

802.11i

802.11i是新的无线数据网安全协议,已经普及的WEP协议中的漏洞,将成为无线数据网络的一个安全隐患。802.11i提出了新的TKIP协议解决该安全问题。

IPsecIP层协议安全结构

IPsec 在 IP 层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。 IPsec 用来保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径。

  IPsec 能提供的安全服务集包括访问控制、无连接的完整性、数据源认证、拒绝重发包(部分序列完整性形式)、保密性和有限传输流保密性。因为这些服务均在 IP 层提供,所以任何高层协议均能使用它们,例如 TCP 、 UDP 、ICMP 、 BGP 等等。

  这些目标是通过使用两大传输安全协议,头部认证(AH) 和封装安全负载 (ESP),以及密钥管理程序和协议的使用来完成的。所需的 IPsec 协议集内容及其使用的方式是由用户、应用程序、和/或站点、组织对安全和系统的需求来决定。

  当正确的实现、使用这些机制时,它们不应该对不使用这些安全机制保护传输的用户、主机和其他英特网部分产生负面的影响。这些机制也被设计成算法独立的。这种模块性允许选择不同的算法集而不影响其他部分的实现。例如:如果需要,不同的用户通讯可以采用不同的算法集。

  定义一个标准的默认算法集可以使得全球因英特网更容易协同工作。这些算法辅以 IPsec 传输保护和密钥管理协议的使用为系统和应用开发者部署高质量的因特网层的加密的安全技术提供了途径。

协议结构 ― IPsec:IP 网络安全结构

  IPsec 结构包括众多协议和算法。这些协议之间的相互关系如下所示:

 

 

图 2 - 5 IPsec:IP 层协议安全结构

  有关每个协议的具体细节,请参考个别文件。

安全协议之:RADIUS

RADIUS是一种分布的,客户端/服务器系统,实现安全网络,反对未经验证的访问。在cisco实施中,RADIUS客户端运行在cisco路由
器上上,发送认证请求到中心RADIUS服务器,服务器上包含了所有用户认证和网络服务访问的信息。


RADIUS是一种完全开放的协议,分布源码格式,这样,任何安全系统和厂商都可以用。cisco支持在其AAA安全范例中支持RADIUS。RADIUS可以和在其 它AAA安全协议共用,如TACACS+,Kerberos,以及本地用户名查找。CISCO所有的平台都支持RADIUS,但是RADIUS支持的特性只能运行在cisco指定的平台上。RADIUS协议已经被广泛实施在各种各样的需要高级别安全且需要网络远程访问的网络环境。


在以下安全访问环境需要使用RADIUS:
+当多厂商访问服务器网络,都支持RADIUS。例如,几个不同厂家的访问服务器只使用基于RADIUS的安全数据库,在基于ip的网络有多个厂商的访问服务器,通过RADIUS服务器来验证拨号用户,进而定制使用kerberos安全系统。

+当某应用程序支持RADIUS协议守护网络安全环境,就像在一个使用smart card门禁控制系统的那样的访问环境。某个案例中,RADIUS
被用在Enigma安全卡来验证用户和准予网络资源使用权限。


+当网络已经使用了RADIUS。你可以添加具有RADIUS支持的cisco路由器到你的网络中,这个可以成为你想过渡到TACACS+服务器的
第一步。

+当网络中一个用户仅能访问一种服务。使用RADIUS,你可以控制用户访问单个主机,进行单个服务,如telnet,或者单个协议,如ppp。例如当一个用户登录进来,RADIUS授权这个用户只能以10.2.3.4这个地址运行ppp,而且还得和ACL相匹配。

+当网络需要资源记账。你可以使用RADIUS记账,独立于RADIUS认证和授权,RADIUS记账功能允许数据服务始与终,记录会话之中所使用的标志资源(如,时间,包,字节,等等)。ISP可能使用免费版本的基于RADIUS访问控制和记账软件来进行特定安全和金额统计。
+当网络希望支持预认证。在你的网络中使用RADIUS服务,你可以配置AAA预认证和设定预认证profiles。预认证服务的开启提供更
好的管理端口来使用它们已经存在的RADIUS解决方案,更优化的管理使用、共享资源,进而提供不懂服务级别的协定。

RADIUS不适合以下网络安全情形:
~多协议访问环境,Radius不支持以下协议:
*AppleTalk Remote Access (ARA)苹果远程访问。

*NetBIOS Frame Control Protocol (NBFCP)网络基本输出输入系统侦控制协议。
*NetWare Asynchronous Services Interface (NASI)网件异步服务接口。
*X.25 PAD connectionsX.25 PAD连接。
~路由器到路由器情形.Radius不提供双向认证.Radius能使用在要认证从一个路由器到非cisco路由器,当这个非cisco路由器需要认证
的时候.
~网络使用各种各样的服务的时候.Radius大体上约束一个用户使用一个服务模型.

Radius操作:
当一个用户试图登录并验证到一个使用了Radius的访问服务器,发生了以下步骤
:
1.这个用户被允许输入用户名和密码
.
2.用户名和加密的密码被发送到网络中的Radius服务器
.
a.ACCEPT--该用户通过了认证
.
b.REJECT--该用户没有被认证,被允许重新输入用户名和密码,或者访问被拒绝了
.
c.CHALLENGE--Radius服务器发出挑战.这个挑战收集这个用户附加信息
.
d.CHANGE PASSWORD--这个请求时RADIUS服务器发出的,告诉用户换一个新的密码
.
ACCEPT或者REJECT回应包括了用来执行或者网络认证的附加数据
,
你必须首先完成Radius认证才能使用Radius授权.带有ACCEPT或者REJECT附加数据的包有以下组成
:

+用户能访问的服务,包括telnet,rlogin,或者本地区域传输(lat)连接,以及ppp,SLIP,或者EXEC服务
.

+连接参数,包括主机或者ip地址,访问列表,和用户超时.

配置举例
aaa new-model //开启aaa
radius-server host 123.45.1.2 //
指定Radius服务器

radius-server key myRaDiUSpassWoRd //
定义访问服务器和Radius共享秘文
username root password ALongPassword //
用户名,密码.
aaa authentication ppp dialins group radius local //
定义了认证方式列表"dialins",这个东西指定了radius认证.然后
,
(如果radius服务器没有响应),本地username将会被用来验证
ppp.
aaa authorization network default group radius local//
用来给Radius用户绑定一个地址和其它网络参数

aaa accounting network default start-stop group radius//
用来跟踪ppp用法.
aaa authentication login admins local//
给登录认证定义了另一个方式列表
,"admins",
aaa authorization exec default local
line 1 16
 autoselect ppp
 autoselect during-login
 login authentication admins //
应用"admins"方式列表用来登录认证
.
 modem ri-is-cd
interface group-async 1
 encaps ppp
 ppp authentication pap dialins //
应用"dialins"方式列表到指定的地方.

IPv4协议(互联网协议)

互联网协议(Internet Protocol)是规范计算机网络中数据传送的一套协议。目前使用的是IPv4, IPv6在试验阶段。

IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年Jon Postel 在RFC791中定义了IP。

TCP/IP协议栈(按TCP/IP参 考模型划分)

应用层

FTP

SMTP

HTTP

...

 

传输层

TCP

UDP

 

网络层

IP ICMP

ARP

 

链路层

以太网

令牌环

FDDI

...

 
 


地址格式
IPv4使用32位地址,因此最多可能有4,294,967,296(=232)个地址。一般的书写法为4个用小数点分开的十进制数。也有人把4个字节的数字化成一个巨型整数,但这种标示法并不常见。另一方面,目前还并非很流行的IPv6使用的128位地址所采用的位址记数法,在IPv4也有人用,但使用范围更少。

过去IANAIP地址分为A,B,C,D 4类,把32位的地址分为两个部分:前面的部分代表网络地址,由IANA分配,后面部分代表局域网地址。如在C类网络中,前24位为网络地址,后8位为局域网地址,可提供254个设备地址(因为有两个地址不能为网络设备使用: 255为广播地址,0代表此网络本身) 。网络掩码(Netmask) 限制了网络的范围,1代表网络部分,0代表设备地址部分,例如C类地址常用的网络掩码为255.255.255.0。

一些特别的IP地址段:
127.x.x.x给本机地址使用。
224.x.x.x为多播地址段。
255.255.255.255为通用的广播地址。
10.x.x.x,172.16.x.x和192.168.x.x供本地网使用,这些网络连到互连网上需要对这些本地网地址进行转换。
但由于这种分类法会大量浪费网络上的可用空间,所以新的方法不再作这种区分,而是把用者需要用的位址空间,以2的乘幂方式来拨与。例如,某一网络只要13个ip位址,就会把一个 16位址的区段给他。假设批核了 61.135.136.128/16 的话,就表示从 61.135.136.129 到 61.135.136.142 的网址他都可以使用。

IP包长
IP包由首部(header)和实际的数据部分组成。数据部分一般用来传送其它的协议,如TCP, UDP,ICMP等。数据部分最长可为65515字节(Byte)(=2xx16 - 1 - 最短首部长度20字节) 。一般而言,低层(链路层) 的特性会限制能支持的IP包长。例如以太网(Ethernet)协议,有一个协议参数,即所谓的最大传输单元(Maximum Transfer Unit, MTU) ,为1518字节,以太网的帧首部使用18字节,剩给整个IP包(首部+数据部分)的只有1500字节。

还有一些底层网络只能支持更短的包长。这种情况下,IP协议提供一个分割(fragment)的可选功能。长的IP包会被分割成许多短的IP包,每一个包中携带一个标志(Fragmentid)。发送方(比如一个路由器) 将长IP包分割,一个一个发送,接送方(如另一个路由器)按照相应的IP地址和分割标志将这些短IP包再组装还原成原来的长IP包。

IP路由
Ipv4并不区分作为网络终端的主机(host) 和网络中的中间设备如路由器中间的差别。每台电脑可以即做主机又做路由器。路由器用来联结不同的网络。所有用路由器联系起来的这些网络的总和就是互联网。

IPv4技术即适用于局域网(LAN) 也适用于广域网。一个IP包从发送方出发,到接送方收到,往往要穿过通过路由器连接的许许多多不同的网络。每个路由器都拥有如何传递IP包的知识,这些知识记录在路由表中。路由表中记录了到不同网络的路径,在这儿每个网络都被看成一个目标网络。路由表中记录由路由协议管理,可能是静态的记录比如由网络管理员写入的,也有可能是由路由协议动态的获取的。有的路由协议可以直接在IP协议上运行。

常用的路由协议有

路由信息协议(Routing Information Protocol, RIP),
开放式最短路径优先协议,Open Shortest Path Fast, OSPF) ,
中介系统对中介系统协议(Intermediate System – Intermediate System, IS-IS) ,
边界网关协议(Border Gateway Protocol, BGP) .
在网络负荷很重或者出错的情况下,路由器可以将收到的IP包丢弃。在网络负荷重的时候,同样一个IP包有可能由路由器决定走了不同的路径。路由器对每一个IP包都是单独选择路由的。这也提高了IP通信的可靠性。但单是IP层上的包传输,并不能保证完全可靠。IP包可能会丢失; 可能会有重复的IP包被接受方收到; IP包可能会走不同的路径,不能保证先发的先到; 接受方收到的可能是被分割了的IP包。在IP之上再运行TCP协议则解决这些缺点提供了一个可靠的数据通路。

ICMP
互联网控制消息协议(Internet Control Messages Protocol,ICMP) 用于查错和控制(如),是IP协议不可能缺少的帮手。几乎任何的IP协议的实施(Implementation)都伴随一个ICMP协议的实施。ICMP协议实现在IP之上,即ICMP包是作为IP的数据部分来传送的。

ICMP的一个重要的应用是网络拥塞控制: 路由器丢弃一个IP包时,一般会用ICMP发一个消息给这个IP包的原发送者,原发送者可以相应的降低IP包的发送频率,以降低或避免IP包再被丢弃的可能性。

ICMP的另一个重要的应用在于,将传送ICMP消息的IP包禁止分割位(Don't Fragment-Bit)设置上,就可以利用ICMP的来测量一段网络的最大传输单元(MTU) 。

IPOE
Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。

一个用于IP包的以太网数据帧,在IP包首部前有一个14字节的以太网帧首部,在IP数据部分后添加了一个32位(4字节) 的CRC校验。

除了1518字节的最大传输单元(MTU) 限制外,以太网还有最小传输单元的限制: 总帧长不能小于64字节。如果IP包太短,比如IP数据部分短于26字节,那么后面会添0(Padding) ,这时IP首部中的'包长度'指示了真正的包长。

以太网使用48位的地址。每个以太网网卡都有一个独一无二的48位的硬件地址。所有的位均为1的地址是以太网广播地址。发送数据的以太网网卡必须知道数据接送方的以太网地址才能把数据发给它。

地址解析协议ARP(Address Resolution Protocol) 用于将IP地址转换成以太网地址。每台计算机上都有一个ARP列表,里面存储了以太网中不同的IP地址与以太网地址的对应关系。如果一台计算机发现某个目标IP地址没有对应的以太网地址,它会发一个ARP请求(Request) 到以太网中询问,拥有该IP地址的计算机就会发一个ARP应答(Reply)来通知它自己的以太网地址。

IP包首部格式
IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。 IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)

0

4

8

12

16

19

24

31

版本

首部长度

服务类型

长度

认证

标志

段偏移量

TTL

协议

校验和

源IP地址

目的IP地址

选项 ...


IP包头字段说明
版本:4位,指定IP协议的版本号。

包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。

服务类型:定义IP协议包的处理方法,它包含如下子字段

过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)
延迟字段:1位,取值:0(正常)、1(期特低的延迟)
流量字段:1位,取值:0(正常)、1(期特高的流量)
可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)
成本字段:1位,取值:0(正常)、1(期特最小成本)
未使用:1位
长度:IP包的总长

认证:

标志:是一个3位的控制字段,包含:

保留位:1位
不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)
更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)

段偏移量:当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。

TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。

协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。

校验和:16位,是IPv4数据报包头的校验和。

源IP地址:

目的IP地址:

高层协议
IP 是TCP/IP参考模型中网络层的核心协议。在IP之上有许多高层协议。重要的如传输层协议TCP和UDP,应用层的域名服务协议DNS等。

过去和未来
IPv4从出生到如今几乎没什么改变的生存了下来。1983年TCP/IP协议被ARPAnet采用,直至发展到后来的互联网。那时只有几百台计算机互相联网。到1989年联网计算机数量突破10万台,并且同年出现了1.5Mbit/s的骨干网。因为IANA把大片的地址空间分配给了一些公司和研究机构,90年代初就有人担心10年内IP地址空间就会不敷用,并由此导致了IPv6 的开发。

参考文献
[RFC 791] Internet Protocol.

 

 

 

 

IPv6(互联网协议)

IPv6是互联网协议的第六版;最初它在IETF's IPng选取过程中胜出时称为互联网下一代协议(IPng)。IPv6准备取代现有 标准,IPv4。IPv4只支持大概40亿(4 × 109)个网络地址,而IPv6支持3.4 × 1038个。这等价于在地球上每平方英寸有4.3 × 1020地址(6.7 × 1017地址/平方米)。预计在2025年以前IPv4都会被支持,以便给新协议的修正留下足够的时间。 促使Ipv6形成 的主要原因是网络空间的匮乏,尤其是在高速发展的亚洲国家例如印度和中国。参考IPv4 address exhaustion这篇文章了解更多这方面的内容。但随着NAT的引入这已经不是很大的问题。现在推动IPv6发展的主要动力是 新的用途,像移动性,服务质量,机密性的扩展等。 IPv6是被正式广泛使用的第二版互联网协议。(IPv5不是IPv4的继承,而是实验性的面向流的数据流协议,用来对声 音,图像等提供支持。) IPv6的计划是建立未来互联网扩充的基础。虽然IPv6十年前就已被IETF指定作为IPv4的下一代(在1994年),在世界范围 内使用IPv6部署的公众网与IPv4相比还非常的少。

IPv6 编址
从IPv4到IPv6最显著的变化就是网络地址的长度。RFC 2373 和RFC 2374定义的IPv6地址,就像下面章节所描述的,有128位长;IPv6地址的表达形式一般采用32个十六进制数。 IPv6中可能的地址有2128 ≈ 3.4×1038个.也可以想象为1632个因为32位地址每位可以取16个不同的值(参考组合数学)。在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。

IPv6地址表示
IPv6地址为128位长但通常写作8组每组四个十六进制数的形式。例如: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 是一个合法的IPv6地址。 如果四个数字都是零,可以被省略。例如: 2001:0db8:85a3:0000:1319:8a2e:0370:7344 等价于 2001:0db8:85a3::1319:8a2e:0370:7344 遵从这些规则,如果因为省略而出现了两个以上的分号的话,可以压缩为一个,但这种零压缩在地址中只能出现一次。因此: 2001:0DB8:0000:0000:0000:0000:1428:57ab 2001:0DB8:0000:0000:0000::1428:57ab 2001:0DB8:0:0:0:0:1428:57ab 2001:0DB8:0::0:1428:57ab 2001:0DB8::1428:57ab 都使合法的地址,并且他们是等价的。但 2001::25de::cade 是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组) 同时前导的零可以省略,因此: 2001:0DB8:02de::0e13 等价于 2001:DB8:2de::e13 如果这个地址实际上是IPv4的地址,后32位可以用10进制数表示;因此:

ffff:192.168.89.9 等价于 ::ffff:c0a8:5909, 但不等价于 ::192.168.89.9 和 ::c0a8:5909。
ffff:1.2.3.4格式叫做IPv4映射地址,是不建议使用的。而::1.2.3.4格式叫做IPv4一致地址。

IPv4 地址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34), 它可以被转化为0000:0000:0000:0000:0000:0000:874B:2B34或者::874B:2B34。同时,还可以使用混合符号(IPv4- compatible address),则地址可以为::135.75.43.52。

IPv6 封包
IPv6封包由两个主要部分组成:头部和负载。

包头是包的前40字节并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20位,QoS服务质量控制),负载长度(16位),下一个头部(用于向后兼容性),和跳段数限制(8位,生存时间)。后面是负载,至少1280字节长 ,或者在可变MTU(最大传输单元)大小环境中这个值为1500字节。负载在标准模式下最大可为65535字节,或者在扩展 包头的"jumbo payload"选项进行设置。 IPv6曾有两个有着细微差别的版本; 在RFC 1883中定义的原始版本(现在废弃)和RFC 2460中描述的现在提议 的标准版本。两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。其他的区别都是微不足道的。 分段(Fragmentation)只在IPv6的主机中被处理。在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类 似于IPv4的协议字段功能。

IPv6和域名系统
IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录)(类似的IPv4表示为A记录A records) ;反向解析 在ip6.arpa (原先ip6.int)下进行,在这里地址空间为半字节16进制数字格式。这种模式在RFC 3596给与 了定义。 AAAA模式是IPv6结构设计时的两种提议之一。另外一种正向解析为A6记录并且有一些其他的创新像二进制串标签和DNAME记 录等。RFC 2874和它的一些引用中定义了这种模式。 AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂: •A6记录允许一个IPv6地址在分散于多个记录中,或许在不同的区域;举例来说,这就在原则上允许网络的快速重编 号。 •使用域名系统记录委派地址被DNAME记录(类似于现有的CNAME,不过是重命名整棵树)所取代。 •一种新的叫做比特标签的类型被引入,主要用于反向解析。 2002年8月的RFC 3363中对AAAA模式给与了有效的标准化(在RFC 3364有着对于两种模式优缺点的更深入的讨论)。

IPv6部署与应用
2004年七月的ICANN声称[3]:(http://icann.org/announcements/announcement-20jul04.htm) 互联网的根域名服务器已经经过改进同时支持IPv6和IPv4。

缺点:

需要在整个互联网和它所连接到的设备上建立对IPv6的支持
从IPv4访问时的转换过程中,在网关路由器(IPv6<-->IPv4)还是需要一个IPv4地址和一些NAT(=共享的IP地址),增加了它的复杂性,还意味着IPv6许诺的巨大的空间地址不能够立刻被有效的使用。

遗留的结构问题,例如在对IPv6 multihoming支持上一致性的匮乏。

工作:

6bone
ICMPv6
IPv6 multihoming

转换机制
直到IPv6获得广泛的使用和路由下部构造的支持之前,还是需要一种机制来在IPv4网中使用IPv6。需要做的是:

在双协议栈节点间配置静态IPv6-in-IP信道。
6to4,一种自动的非对称的隧道机制。

这些隧道通过将IPv6包包装在IPv4包中,这些包头的协议字段值为41,因此叫做proto-41。类似的,ISATAP允许IPv6包在下层组织都是IPv4的网络中传输。它也使用协议号41。 当使用NAT(网络地址转换)设备的网络使用IPv6时,大多数并没有对proto-41进行正确的转发,可以使用Teredo协议在IPv4中基于UDP包装IPv6。还可以使用IPv6-to-IPv4和IPv6-to-IPv6代理,尽管它是在应用层的(例如HTTP)。

主要的IPv6公告
在2003年,日本经济新闻(在2003年被CNET亚洲机构引用)报告中说日本、中国和韩国声称已经决定要在网络技术中寻求领先,将部分参与IPv6的开发并在2005年开始全面采用采用IPv6。
ICANN在2004年7月20日发表声明,称DNS根服务器已经建立了对应日本(.jp)和韩国(.kr)的顶级域名服务器的AAAA记录,序列号为2004072000。对应法国的(.fr)IPv6记录会再晚一点时间加入。这就开放了IPv6的运作。

相关的IETF工作组
6bone (http://www.ietf.org/html.charters/OLD/6bone-charter.html) IPv6 Backbone
ipng (
http://www.ietf.org/html.charters/OLD/ipngwg-charter.html) IP Next Generation (concluded)
ipv6 (
http://www.ietf.org/html.charters/ipv6-charter.html) IP Version 6
ipv6mib (
http://www.ietf.org/html.charters/OLD/ipv6mib-charter.html) IPv6 MIB (concluded)
multi6 (
http://www.ietf.org/html.charters/multi6-charter.html) Site Multihoming in IPv6
v6ops (
http://www.ietf.org/html.charters/v6ops-charter.html) IPv6 Operations

相关读物
RFC 2460 - Internet Protocol, Version 6 - current version
RFC 1883 - Internet Protocol, Version 6 - old version

外部链接
IPv6 News & Links - HS247

TCP-传输控制协议

传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由IETF的RFC 793说明。在简化的计算机网络OSI模型中,它完成运输层所指定的功能。

在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。< /P>

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

TCP通路的建立和终结
TCP连接包括三个状态:连接建立、数据传送和连接终止。TCP用三路握手过程建立一个连接,用四路握手过程建立来拆除一个连接。在连接建立过程中,很多参数要被初始化,例如序号被初始化以保证按序传输和连接的强壮性。


连接建立(三路握手)
一对终端同时初始化一个它们之间的连接是可能的。但通常是由一端打开一个套接字(socket)然后监听来自另一方的连接,这就是通常所指的被动打开。被动打开的一端就是服务器端。而客户端通过向服务器端发送一个SYN来建立一个主动打开,作为三路握手的一部分。服务器端应当为一个合法的SYN回送一个SYN/ACK。最后,客户端再发送一个ACK。这样就完成了三路握手并进入了连接建立状态。


数据传输
在TCP的数据传送状态,很多重要的机制保证了TCP的可靠性和强壮性。它们包括:使用序号对收到的TCP报文段进行排序以及检测重复的数据;使用校验和来检测报文段的错误;使用确认和计时器来检测和纠正丢包或延时。

在TCP的连接建立状态,两个主机的TCP层间要交换初始序号 (ISN)。这些序号用于标识字节流中的数据,并且还是对应用层的数据字节进行记数的整数。通常在每个TCP报文段中都有一对序号和确认号。TCP报文发送者认为自己的字节编号为序号,而认为接收者的字节编号为确认号。TCP报文的接收者为了确保可靠性,在接收到一定数量的连续字节流后才发送确认。这是对TCP的一种扩展,通常称为选择确认(SACK)。选择确认使得TCP接收者可以对乱序到达的数据块进行确认。

通过使用序号和确认号,TCP层可以把收到的报文段中的字节按正确的顺序交付给应用层。序号是32位的无符号数,在它增大到232-1时便会回绕到0。对于ISN的选择是TCP中关键的一个操作,它可以确保强壮性和安全性。

TCP的16位的校验和的计算和检验过程如下:发送者将TCP报文段的头部和数据部分的反码和计算出来,再对其求反码,就得到了校验和,然后将结果装入报文中传输。(这里用反码和的原因是这种方法的循环进位使校验和可以在16位、32位、64位等情况下的计算结果在叠加后相同)接收者在收到报文后再按相同的算法计算一次校验和。这里使用的反码使得接收者不用再将校验和字段保存起来后清零,而可以直接将报文段连同校验和一起计算。如果计算结果是-0,那么就表示了报文的完整性和正确性。

注意:TCP校验和也包括了96位的伪头部,其中有源地址、目的地址、协议以及TCP的长度。这可以避免报文被错误地路由。

按现在的标准,TCP的校验和是一个比较脆弱的校验。具有高出错率的数据链路层需要额外的连接错误纠正和探测能力。如果TCP是在今天被设计,它很可能有一个32位的CRC校验来纠错,而不是使用校验和。但是通过在第二层使用通常的CRC或更完全一点的校验可以部分地弥补这种脆弱的校验。第二层是在TCP层和IP层之下的,比如PPP或以太网,它们使用了这些校验。但是这也并不意味着TCP的16位校验和是冗余的,对于因特网传输的观察表明在受CRC保护的各跳之间,软件和硬件的错误通常也会在报文中引入错误,而端到端的TCP校验能够捕捉到很多的这种错误。这就是应用中的端到端原则。

数据发送者之间用对接收数据的确认或不予确认来显式的表示TCP发送者和接收者之间的网络状态。再加上计时器,TCP发送者和接收者就可以改变数据的流动情况。这就是通常所指的流量控制,拥塞控制/或拥塞避免。TCP使用大量的机制来同时获得强壮性和高可靠性。这些机制包括:滑动窗口、慢启动算法、拥塞避免算法、快速重启和快速恢复算法等等。对于TCP的可靠的丢包处理、错误最小化、拥塞管理以及高速运行环境等机制的优化的研究和标准制定,正在进行之中。


连接终止
连接终止状态使用了四路握手过程,在这个过程中每个终端的连接都能独立地被终止。因此,一个典型的拆接过程需要每个终端都提供一对FIN和ACK。

TCP的端口
TCP使用了端口号的概念来标识发送方和接收方的应用层。对每个TCP连接的一端都有一个相关的16位的无符号端口号分配给它们。端口被分为三类:众所周知的、注册的和动态/私有的。众所周知的端口号是由因特网赋号管理局(IANA)来分配的,并且通常被用于系统一级或根进程。众所周知的应用程序作为服务器程序来运行,并被动地侦听经常使用这些端口的连接。例如:FTP、TELNET、SMTP、HTTP等。注册的端口号通常被用来作为终端用户连接服务器时短暂地使用的源端口号,但它们也可以用来标识已被第三方注册了的、被命名的服务。动态/私有的端口号在任何特定的TCP连接外不具有任何意义。可能的、被正式承认的端口号有65535个。

TCP的发展历程
TCP是一个复杂的但同时又是在发展之中的协议。尽管许多重要的改进被提出和实施,发表于1981年的RFC793中说明的TCP的许多基本操作还是未作多大改动。RFC1122:《因特网对主机的要求》阐明了许多TCP协议的实现要求。RFC2581:《TCP的拥塞控制》是一篇近年来关于TCP的很重要的RFC,描述了更新后的避免过度拥塞的算法。写于2001年的RFC3168描述了对明显拥塞的报告,这是一种拥塞避免的信号量机制。在21世纪早期,在所有因特网的数据包中,通常有大约95%的包使用了TCP协议。常见的使用TCP的应用层有HTTP/HTTPS(万维网协议),SMTP/POP3/IMAP(电子邮件协议)以及FTP(文件传输协议)。这些协议在今天被广泛地使用,这证明了它们的原作者的创造是卓越的。

最近,一个新协议已经被加州理工学院的科研人员开发出来,命名为FAST TCP(基于快速活动队列管理的规模可变的传输控制协议)。它使用排队延迟作为拥塞控制信号;但是因为端到端的延迟通常不仅仅包括排队延迟,所以FAST TCP (或更一般地,所有基于排队延迟的算法) 在实际互联网中的能否工作仍然是一个没有解决的问题。

对TCP的选用情况
TCP并不是对所有的应用都适合,一些新的带有一些内在的脆弱性的运输层协议也被设计出来。比如,实时应用并不需要甚至无法忍受TCP的可靠传输机制。在这种类型的应用中,通常允许一些丢包、出错或拥塞,而不是去校正它们。例如通常不使用TCP的应用有:实时流多媒体(如因特网广播)、实时多媒体播放器和游戏、IP电话(VoIP)等等。任何不是很需要可靠性或者是想将功能减到最少的应用可以避免使用TCP。在很多情况下,当只需要多路复用应用服务时,用户数据报协议(UDP)可以代替TCP为应用提供服务。

MDLC协议

auto">MDLC协议是优化设计用于SCADA系统的一种数据通信协议。该协议与网络通信介质无关,即SCADA系统可以工作于无线、有线、局部网等各种通信媒体上。为了在这些不同的媒体中都能获得可靠和高效的通信效果及提供网络管理功能,MDLC协议的设计基于国际标准化组织(ISO)的开放系统互联(OSI)七层模型。 MDLC协议有如下特点:

●      存储/转发功能。

●      远程数据或程序上装/下载及诊断。

●      提供数据通信网络管理功能,解决通信中冲突检测、拥塞现象及纠错重发问题。

●      支持通信信道状态检测,信道路由优化。

●      MDLC协议支持RTU数量达65,000个。在数据传输过程中,能根据传输质量的好坏实现变帧长传输。

●      CRC校验使得数据通信误码率<10-6

利用简单的通信协议实现测站与中心站站间的数据传输,是多数信息采集系统,特别是国产设备采用的方法。这种方法的特点是简单、实用。但由于不具有数据通信网络管理功能,故数据通信安全可靠性差。

采用MDLC通信协议实现的SCADA系统的数据通信安全可靠,数据传输有效性高,支持同一信道上的多点到点的并行传输。由于MDLC协议已经固化在所有的RTUCPU模板中,所以关于通信中的管理调度完全不需要用户开发设计。

水情信息采集传输系统除了可以在正常情况下实现数据采集传输外,其最主要的作用是要能够处理突发事件。在突发事件产生时,往往会在通信信道上发生碰撞和拥塞。此外现代无线信道容易受到外界的干扰,易产生误码,必需具有查错和纠错的能力。中继站是无线遥测系统的关键环节,中继站故障往往会使一部分测站数据无法上达,而在狂风暴雨条件下,由于天气的影响也会使中继站无法中继某些测站的数据,所以测站RTU自动检测信道状态和自动在存储转发范围内利用临近测站实现中继的功能是水情信息传输系统中必不可少的。而这一切通过简单的通信协议是很难完全实现的。而MDLC是目前世界上独有的可用于SCADA系统无线通信,且满足ISO/OSI七层模型(物理层、数据链路层、网络层、传输层、对话层、表示层和应用层)的广域网通信协议。它为MOSCAD数据通信系统提供了完全的数据通信能力,存储转发功能,冲突检测和纠错能力,远程检测、配置和诊断能力等。MDLC通信协议为实现水情数据无差错传输提供了可靠保证。

FTP协议的分析和扩展

FTP:File Transfer Protocol

  文件传输协议(FTP)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议 在主机间交换命令和消息。

  FTP 的主要功能如下:

  • 提供文件的共享(计算机程序 / 数据);
  • 支持间接使用远程计算机;
  • 使用户不因各类主机文件存储器系统的差异而受影响;
  • 可靠且有效的传输数据。

  FTP ,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。

  FTP 控制帧即指 TELNET 交换信息,包含 TELNET 命令和选项。然而,大多数 FTP 控制帧是简单的 ASCII 文本,可以分为 FTP 命令或 FTP 消息。 FTP 消息是对 FTP 命令的响应,它由带有解释文本的应答代码构成。

 

 

命令及描述

 

命令

描述

ABOR

中断数据连接程序

ACCT <account>

系统特权帐号

ALLO <bytes>

为服务器上的文件存储器分配字节

APPE <filename>

添加文件到服务器同名文件

CDUP <dir path>

改变服务器上的父目录

CWD <dir path>

改变服务器上的工作目录

DELE <filename>

删除服务器上的指定文件

HELP <command>

返回指定命令信息

LIST <name>

如果是文件名列出文件信息,如果是目录则列出文件列表

MODE <mode>

传输模式(S=流模式,B=块模式,C=压缩模式)

MKD <directory>

在服务器上建立指定目录

NLST <directory>

列出指定目录内容

NOOP

无动作,除了来自服务器上的承认

PASS <password>

系统登录密码

PASV

请求服务器等待数据连接

PORT <address>

IP 地址和两字节的端口 ID

PWD

显示当前工作目录

QUIT

从 FTP 服务器上退出登录

REIN

重新初始化登录状态连接

REST <offset>

由特定偏移量重启文件传递

RETR <filename>

从服务器上找回(复制)文件

RMD <directory>

在服务器上删除指定目录

RNFR <old path>

对旧路径重命名

RNTO <new path>

对新路径重命名

SITE <params>

由服务器提供的站点特殊参数

SMNT <pathname>

挂载指定文件结构

STAT <directory>

在当前程序或目录上返回信息

STOR <filename>

储存(复制)文件到服务器上

STOU <filename>

储存文件到服务器名称上

STRU <type>

数据结构(F=文件,R=记录,P=页面)

SYST

返回服务器使用的操作系统

TYPE <data type>

数据类型(A=ASCII,E=EBCDIC,I=binary)

USER <username>>

系统登录的用户名

 

标准 FTP 信息如下:

 

响应代码

解释说明

110

新文件指示器上的重启标记

120

服务器准备就绪的时间(分钟数)

125

打开数据连接,开始传输

150

打开连接

200

成功

202

命令没有执行

211

系统状态回复

212

目录状态回复

213

文件状态回复

214

帮助信息回复

215

系统类型回复

220

服务就绪

221

退出网络

225

打开数据连接

226

结束数据连接

227

进入被动模式(IP 地址、ID 端口)

230

登录因特网

250

文件行为完成

257

路径名建立

331

要求密码

332

要求帐号

350

文件行为暂停

421

服务关闭

425

无法打开数据连接

426

结束连接

450

文件不可用

451

遇到本地错误

452

磁盘空间不足

500

无效命令

501

错误参数

502

命令没有执行

503

错误指令序列

504

无效命令参数

530

未登录网络

532

存储文件需要帐号

550

文件不可用

551

不知道的页类型

552

超过存储分配

553

文件名不允许

FTP 由 IETF 在 RFC959 中,并由 RFC2228、RFC2640  和 RFC2773 重新更新

 

 

TFTP:简单文件传输协议

TFTP:Trivial File Transfer Protocol

  简单文件传输协议是一种用来传输文件的简单协议,运行在 UDP (用户数据报协议)上。 TFTP 的被设计为小而简单容易的运行,因此,它缺乏标准 FTP 协议的许多特征 。 TFTP 只能从远程服务器上读、写文件(邮件)或者读、写文件传送给远程服务器。它不能列出目录并且当前不提供用户认证。

  当前 TFTP 有 3 种传输模式: netASC11 模式即 8 位 ASC11 ;八位组模式(替代了以前版本的二进制模式),如原始八位字节;邮件模式,在这种模式中,传输给用户的不是文件而是字符。主机双方可以自己定义其它模式。

  在 TFTP 协议中,任何一个传输进程都以请求读写文件开始,同时建立一个连接。如果服务器同意请求,则连接成功,文件就以固定的 512 字节块的长度进行传送。每个数据包都包含一个数据块,在发送下一个包之前,数据块必须得到确认响应包的确认。少于 512 字节的数据包说明了传输的结束。如果包在网络中丢失,,接收端就会超时并重新发送其最后的包(可能是数据也可能是确认响应),这就导致丢失包的发送者重新发送丢失包。发送者需要保留一个包在手头用于重新发送,因为 LOCK 确认响应保证所有过去的包都已经收到。注意传输的双方都可以看作发送者和接收者。一方发送数据并接收确认响应,另一方发送确认响应并接受数据。

  TFTP 的当前版本为 v2 。

 

 

协议结构

 

  基本 TFTP 协议头结构:

 

16 bits

String

16 bits

String

16 bits

Opcode

Filename

0

Mode

0

 

  Opcode:操作代码或命令。以下为 TFTP 命令:

 

Opcode

Command

Description

1

Read Request

Request to read a file

2

Write Request

Request to write to a file

3

File Data

Transfer of file data

4

Data Acknowledge

Acknowledgement of file data

5

Error

Error indication

 

  Filename:传送的字段名称。

  Mode:数据模式。协议传输的文件数据格式。可以是 NetASCII,也可以是标准 ASCII,八位二进制数据或邮件标准 ASCII。

 

在 RFC1350 中定义

ADSL使用中常见协议

①、 1483B:就是指通常所提及的1483桥接协议,该功能是基于基本的桥接协议的基础上,其在网络的第一层(物理层)实现,在使用该方案时,MODEM只是充当桥接设备,不提供任何协议转换或地址过滤功能,一般当MODEM能与DSLAM同步后,设置好其中的VPI/VCI后,基本上就可以实现用户上网,简而言之此时MODEM仅仅充当HUB相同的功能,在该方案下也有几种联网方案,在该模式下可以实现专线上网(ISP给用户分配固定的I P地址以及子网掩码和默认网关,在不支持NAT功能的MODEM上地址信息必须配置在用户的PC上),同时也可以实现PPPoE拨号方式(MODEM使用1483B方式,在用户PC上安装第三方拨号软件);但现在很多地方还要使用专线方式下的1483B+NAT、1483B+DHCPclient功能(该功能是为了在专线方式时,MODEM的WAN口能动态获得IP地址,这样可以减少ISP的管理工作)。
     ②、 1483R:指1483路由模式,该功能是在桥接的基础上可以实现路由功能,在该模式时,可以在MODEM的广域网口设置公网IP地址,在MODEM的LAN口设置私有IP地址,这样可以轻松实现地址转换功能。
     ③、 1577:即IPOA,通过ATM网传输IP数据包,在该方式下用户必须拥有固定的IP地址和子网掩码以及其他一些网络参数,由于在该方式下无法提供用户名以及密码验证,无法满足网络使用过程中的网络管理以及安全等QoS服务,故该方式目前基本上不再广泛使用;
     ④、 2364:即PPPoA,该方式与上面的RFC1577基本相同,但其在用户与ISP建立基于ATM的物理连接后,通过PPP协议在链路层和网络层上建立会话,使用该协议方式时可以实现PAP、CHAP等安全验证功能,这样为ISP网络的安全管理提供了相应的支持。在该方式下,MODEM的地址是在通过PPP协议建立连接后由ISP的DHCP服务器自动分配。
     ⑤、 2516:即PPPoE,该方式是基于桥接方式的,当使用该方式时,当MODEM与DSLAM建立基本的物理连接后,由用户端(在MODEM上使用PPPoE方式时,用户端指MODEM)发起PPP请求,通过PAP(PAP:口令认证协议,是用户身份认证的一种形式,它通过用户名和用户口令来验证用户的合法性,由于用户的ID和口令在链路上以文本形式直接传输,因而安全性较差)或CHAP(CHAP:质询握手认证协议,也是用户认证的一种形式,它通过服务器发出认证质询,用户以应答的形式来验证用户的合法性,由于用户的ID和口令经过加密之后再在网络上传输,因此其安全性较好)两种验证方式通过ISP中的UAS验证,而建立网络连接。

网络安全协议之比较(SSH PKISETSSL

一、SSH介绍

什么是SSH?
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你的传给服务器 的数据,然后再冒充你把数据传给真正的服务器。 服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

SSH的英文全称是Secure
SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了, 而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。 SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。

最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。 OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

SSH的安全验证是如何工作的
从客户端来看,SSH提供两种级别的安全验证。

第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。 如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后, 先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。 客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。

第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。
二、SSL介绍(Secure socket Layer & Security Socket Layer)

  一个应用程序的安全需求在很大程度上依赖于将如何使用该应用程序和该应用程序将要保护什么。不过,用现有技术实现强大的、 一般用途的安全通常是可能的。认证就是一个很好的示例。

  当顾客想从 Web 站点购买某个产品时,顾客和 Web 站点都要进行认证。顾客通常是以提供名字和密码的方式来认证他自己。另一方面,Web 站点通过交换一块签名数据和一个有效的 X.509 证书(作为 SSL 握手的一部分)来认证它自己。 顾客的浏览器验证该证书并用所附的公用密钥验证签名数据。一旦双方都认证了,则交易就可以开始了。

  SSL 能用相同的机制处理服务器认证(就如在上面的示例中)和客户机认证。 Web 站点典型地对客户机认证不依赖 SSL — 要求用户提供密码是较容易的。而 SSL 客户机和服务器认证对于透明认证是完美的, 对等机 — 如 p2p 应用程序中的对等机之间一定会发生透明认证。

  安全套接字层(Secure Sockets Layer(SSL)),SSL 是一种安全协议,它为网络(例如因特网)的通信提供私密性。SSL 使应用程序在通信时不用担心被窃听和篡改。 SSL 实际上是共同工作的两个协议:“SSL 记录协议”(SSL Record Protocol)和“SSL 握手协议” (SSL Handshake Protocol)。“SSL 记录协议”是两个协议中较低级别的协议,它为较高级别的协议,例如 SSL 握手协议对数据的变长的记录进行加密和解密。SSL 握手协议处理应用程序凭证的交换和验证。

  当一个应用程序(客户机)想和另一个应用程序(服务器)通信时,客户机打开一个与服务器相连接的套接字连接。然后, 客户机和服务器对安全连接进行协商。作为协商的一部分,服务器向客户机作自我认证。客户机可以选择向服务器作或不作自我认证。一旦完成了认证并且建立了安全连接,则两个应用程序就可以安全地进行通信。按照惯例,我将把发起该通信的对等机看作客户机, 另一个对等机则看作服务器,不管连接之后它们充当什么角色。
名为 A 和 B 的两台对等机想安全地进行通信。在我们简单的 p2p 应用程序的环境中,对等机 A 想查询对等机 B 上的一个资源。 每个对等机都有包含其专用密钥的一个数据库(名为 keystore)和包含其公用密钥的证书。密码保护数据库的内容。该数据库还包含一个或多个来自被信任的对等机的自签名证书。 对等机 A 发起这项事务,每台对等机相互认证,两台对等机协商采用的密码及其长度并建立一个安全通道。完成这些操作之后,每个对等机都知道它正在跟谁交谈并且知道通道是安全的。 SSL (Secure socket Layer)安全套接层协议主要是使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性, 它不能保证信息的不可抵赖性,主要适用于点对点之间的信息传输,常用Web Server方式。

  安全套接层协议(SSL,Security Socket Layer)是网景(Netscape)公司提出的基于WEB应用的安全协议,它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。对于电子商务应用来说,使用SSL可保证信息的真实性、 完整性和保密性。但由于SSL不对应用层的消息进行数字签名,因此不能提供交易的不可否认性,这是SSL在电子商务中使用的最大不足。 有鉴于此,网景公司在从Communicator 4.04版开始的所有浏览器中引入了一种被称作“表单签名(Form Signing)”的功能, 在电子商务中,可利用这一功能来对包含购买者的订购信息和付款指令的表单进行数字签名,从而保证交易信息的不可否认性。综上所述,在电子商务中采用单一的SSL协议来保证交易的安全是不够的,但采用"SSL+表单签名"模式能够为电子商务提供较好的安全性保证。
 
三、PKI介绍

  为解决Internet的安全问题,世界各国对其进行了多年的研究,初步形成了一套完整的Internet安全解决方案, 即目前被广泛采用的PKI体系结构,PKI体系结构采用证书管理公钥,通过第三方的可信机构CA, 把用户的公钥和用户的其他标识信息(如名称、e-mail、身份证号等)捆绑在一起,在Internet网上验证用户的身份, PKI体系结构把公钥密码和对称密码结合起来,在Internet网上实现密钥的自动管理,保证网上数据的机密性、完整性。


  从广义上讲,所有提供公钥加密和数字签名服务的系统,都可叫做PKI系统,PKI的主要目的是通过自动管理密钥和证书, 可以为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的机密性、完整性、有效性,数据的机密性是指数据在传输过程中,不能被非授权者偷看, 数据的完整性是指数据在传输过程中不能被非法篡改,数据的有效性是指数据不能被否认。一个有效的PKI系统必须是安全的和透明的, 用户在获得加密和数字签名服务时,不需要详细地了解PKI是怎样管理证书和密钥的,一个典型、完整、有效的PKI应用系统至少应具有以下部分:

公钥密码证书管理。

黑名单的发布和管理。

密钥的备份和恢复。

自动更新密钥。

自动管理历史密钥。

支持交*认证。
  由于PKI体系结构是目前比较成熟、完善的Internet网络安全解决方案,国外的一些大的网络安全公司纷纷推出一系列的基于PKI的网络安全产品,如美国的Verisign, IBM , Entrust等安全产品供应商为用户提供了一系列的客户端和服务器端的安全产品,为电子商务的发展提供了安全保证。 为电子商务、政府办公网、EDI等提供了完整的网络安全解决方案。

 

  PKI是一种新的安全技术,它由公开密钥密码技术、数字证书、 证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通讯、网上交易是利用它来保证安全的。从某种意义上讲,PKI包含了安全认证系统, 即安全认证系统-CA/RA系统是PKI不可缺的组成部分。

  PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI框架管理密钥和证书可以建立一个安全的网络环境。 X.509格式的证书和证书废除列表(CRL); CA/RA操作协议; CA管理协议; CA政策制定。

四、SET协议介绍

  电子商务在提供机遇和便利的同时,也面临着一个最大的挑战,即交易的安全问题。在网上购物的环境中, 持卡人希望在交易中保密自己的帐户信息,使之不被人盗用;商家则希望客户的定单不可抵赖,并且,在交易过程中,交易各方都希望验明其他方的身份,以防止被欺骗。针对这种情况, 由美国Visa和MasterCard两大信用卡组织联合国际上多家科技机构, 共同制定了应用于Internet上的以银行卡为基础进行在线交易的安全标准, “这就是“安全电子交易”(Secure Electronic Transaction,简称SET)。它采用公钥密码体制和X.509数字证书标准, 主要应用于保障网上购物信息的安全性。

  由于SET 提供了消费者、商家和银行之间的认证,确保了交易数据的安全性、完整可靠性和交易的不可否认性,特别是保证不将消费者银行卡号暴露给商家等优点,因此它成为了目前公认的信用卡/借记卡的网上交易的国际安全标准。

  SET(Secure Electronic Transaction)安全电子交易协议是由美国Visa和MasterCard两大信用卡组织提出的应用于 Internet上的以信用卡为基础的电子支付系统协议。它采用公钥密码体制和X.509数字证书标准,主要应用于B to C模式中保障支付信息的安全性。SET协议本身比较复杂,设计比较严格,安全性高,它能保证信息传输的机密性、真实性、完整性和不可否认性。SET协议是PKI框架下的一个典型实现,同时也在不断升级和完善,如SET 2.0将支持借记卡电子交易。

SMTP协议原始命令码和工作原理

1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器.
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码
.
3.SMTP在TCP协议25号端口监听连接请求

4.连接和发送过程:

a.建立TCP连接
b.客户端发送HELO命令以标识发件人自己的身 份,然后客户端发送MAIL命令

服务器端正希望以OK作为响应,表明准备接收

c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行

服务器端则表示是否愿意为收件人接受邮件

d.协商结束,发送邮件,用命令DATA发送

e. 以.表示结束输入内容一起发送出去

f.结束此次发送,用QUIT命令退出。


5.另外两个命令:
VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。

EXPN---用于扩充邮件列表。

6.邮件路由过程:
SMTP服务器基于‘域名服务DNS中计划收件人的域名来路由电子邮件。SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。

若SMTP服务器mail.abc.com收到一封信要发到shuser@sh.abc.com:

a.Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME到shmail.abc.com,则再次请求shmail.abc.com的CNAME记录,直到没有为止.
b.假定被CNAME到shmail.abc.com,然后sendmail请求@abc.com域的DNS给出shmail.abc.com的MX记录,

shmail MX 5 shmail.abc.com
10 shmail2.abc.com
c. Sendmail最后请求DNS给出shmail.abc.com的A记录,即IP地址,若返回值为1.2.3
.4
d. Sendmail与1.2.3.4连接,传送这封给shuser@sh.abc.com的信到1.2.3.4这台服务器的SMTP后台程序

7.SMTP基本命令集:

命令 描述
------------------------------
HELO 向服务器标识用户身份

发送者能欺骗,说谎,但一般情况下服务器都能检测到。

MAIL 初始化邮件传输
mail from:
RCPT 标识单个的邮件接收人;常在MAIL命令后面

可有多个
rcpt t
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束。

VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令

EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用

HELP 查询服务器支持什么命令

NOOP 无操作,服务器应响应
OK
QUIT 结束会话

RSET 重置会话,当前传输被取消

--------------------------------

8. MAIL FROM命令中指定的地址是称作 envelope from地址,不需要和发送者自己的地址是一致的。
RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关。

9.为什么没有RCPT CC和
RCPT BCC:?
所有的接收者协商都通过RCPT TO命令来实现,如果是BCC,则协商发送后在对方接收时被删掉信封接收者

10.邮件被分为信封部分,信头部分和信体部分

envelope from, envelope to 与message from:, message t完全不相干。

evnelope是由服务器主机间SMTP后台提供的,而message from/to是由用户提供的。有无冒号也是区别。

11. 怎样由信封部分检查是否一封信是否是伪造的?
a. received行的关联性。

现在的SMTP邮件传输系统,在信封部分除了两端的内部主机处理的之个,考虑两个公司防火墙之间 的部分,若两台防火墙机器分别为A和B,但接收者检查信封received:行时发现经过了C.则是伪造的。

b. received:行中的主机和IP地址对是否对应如:

Receibed: from galangal.org (turmeric.com [104.128.23.115] by mail .bieberdorf.edu....
c. 被人手动添加在最后面的received行:

Received: from galangal.org ([104.128.23.115]) by mail .bieberdorf.edu (8.8.5)
Received: from lemongrass.org by galangal.org (8.7.3)
Received: from graprao.com by lemongrass.org (8.6.4)

常用的电信协议

ITU-T I.432.2 155.52Mbps UNI接口
ITU-T G.707 155.52Mbps NNI接口
ITU-T G.957 155.52Mbps光接口
ITU-T I.361 ATM层UNI/NNI接口
ITU-T I.365.5 SAR、CPCS子层
ITU-T Q.2110 SSCOP子层
ITU-T Q .2130/Q.2140 SSCF关于UNI/NNI子层
ITU-T Q.2931、Q.2971 UNI接口信令
ITU-T Q.704及Q.2761-2764 NNI接口信令
ITU-T G.703/704 E1接口及桢结构标准
   
CCITT建议:  
G.702 数字系列比特率
G.703 数字系列接口的物理/电气特性
G.704 用于一次群和二次群等级的同步帧结构
G.706 关于G.704建议中基本帧同步和循环冗余检验(CRC)过程
G.707 同步数字系列比特率
G.708 同步数字系列的网络节点接口
G.709 同步复用结构
I. 113 ISDN宽带方面的术语词汇
I.121 宽带ISDN概貌
I.150 BISDN的ATM功能特性
I.211 BISDN的业务概貌
I.311 BISDN的一般网络概貌
I.321 BISDN的协议参考模型及其应用
I.327 BISDN的网络功能体系
I.361 BISDN的ATM层规范
I.362 BISDN的ATM适配层(AAL)功能描述
I.363 BISDN的ATM适配层(AAL)规范
I.364 BISDN中对宽带无连接数据业务的支持
I.371 BISDN中的流量和拥塞控制
I.413 BISDN用户-网络接口
I.414 ISDN和BISDN用户接入的第1层建议概貌
I.430 一次群速率用户-网络接口的第1层规范
I.431 BISDN用户-网络接口物理层规范
I.441 ISDN用户-网络接口数据链路层规范
I.600 维护原理在ISDN用户接入和用户安装上的应用
I.610 BISDN接入的OAM原理
M.20 电信网的维护原理
M.30 电信管理网的原理
M.36 ISDN的维护原理

多协议标志交换(MPLS)基本原理

1.多协议标志交换(MPLS)技术的提出 Internet业务量的飞速增长以及宽带技术的不断出现,对Internet服务提供商(ISP)的网络带宽提出了严峻的挑战。这种挑战不仅是对高带宽的要求,也是对目前Internet所基于的传统路由交换模式的要求。

  要建立这样一种服务质量较好且具备扩展性支持的新一代路由系统,需要由各单个路由器来维持大容量的路由信息,并能建立一种路由信息的分层结构;在增强路由器对IP 分组包转发性能的同时,还需要增加对多目广播的路由支持,提供分层式的路由信息结构;此外,未来的路由体系还必需具有灵活的适应能力以满足将来可能出现的各种新型需求。

  从Internet的维护及应用角度考虑,如何对Internet实行合理而简便的流量控制(TrafficEngineering),实现基于IP业务的虚拟专网(VPN),保证IP级的服务质量(IP-levelQoS),也对目前基于传统网络拓扑及IP路由系统的ISP骨干网络提出了挑战。

  2.MPLS的技术原理

  2.1MPLS协议和功能

  (1)路由和交换概念

  在对MPLS技术进行详细描述前,首先回顾几个与交换技术相关的概念。

  路由协议(RIPOSPF)是一种机制,使网络中的每台设备都知道在将一个分组送向其目的地时,传送这个分组的下一跳级(Next-Hop)是哪里。路由器使用路由协议构建路由表,当它们接收到一个分组而必须进行转发判决时,路由器用分组中的目的地址IP地址作为索引(Index)查寻路由表,利用特定算法获得下一跳机器的地址。路由表的构造和它们在转发时的查寻基本上是两个独立的操作。

  交换概念通常用来描述从一个设备内的输入端口到输出端口的数据传递,这种传送一般是基于第二层的(ATMVPI/VCI)信息。

  控制部件为一个节点建造并维护一个路由转发表(ForwardingTable)。它与其它节点的控制部件共同协作,持续并正确地交换分布路由信息,同时在本地建立转发表。标准的路由协议(OSPFBGPRIP)用于在控制部件之间交换路由信息。

  转发部件执行分组转发功能。它使用转发表、分组所协携带的地址等信息及本地的一系列操作来进行转发判决。在传统路由器中,最长匹配算法将分组中的目的地地址与转发表中的条项进行对比,直到获得一个最优的匹配。更为重要的是,从源到目的地的沿路节点都要重复这一操作。在一个标志交换路由器中,(最佳匹配)标志交换算法使用分组的标志和基于标志的转发表来为分组获取一个新的标志及输出端口。

  路由转发表包含若干条项,提供信息给转发部件,执行其交换功能。转发表必须将每个分组与一个条项(传统条项为目的地址)相关联起来,为分组的下一步路由提供指引。

  转发同等类(FEC)定义了这样一组分组,从转发的行为来看,它们都具有相同的转发属性。一种FEC是一组单目广播分组,其目的地地址均与一个IP地址前缀相匹配。另一种FEC是分组的源及目的地地址都相同的一组分组。FEC可在不同的级别上进行定义。

  标志(label)相对较短,长度固定且无结构标识,可在转发进程中使用。标志通过一种绑定操作与一个FEC关联起来。标志正常情况下,对于一个单一数据链路来说仅具有本地意义,不具有全局意义。在ATM环境中相当于它们的VPI/VCI。由于ATM使用固定短区域进行交换,因此可以相信标志交换能成为一种IPoverATM应用的有效方案。在某种事件驱动下,标志与FEC进行绑定,从而具有一定意义,这种事件可分为以下两种类型:

  一种是数据驱动绑定,即在数据流开始产生时进行绑定。标志绑定仅在需要时建立,在转发表中只存在很少的几个条项。标志被分配给不同的IP数据流。在一个ATM网络环境中,它需要使用大量的虚电路资源,不易于扩展。

  另一种是拓扑驱动绑定,当在控制平面激活时来建立与数据流的产生无关。标志绑定可能与路由的更新或RSVP消息的接收有关。拓扑驱动绑定较数据驱动绑定更易于扩展,因此用于MPLS中。

  (2)标志交换转发部件

  标志与分组的绑定有若干种方式。对一些网络可以将标志嵌入到链路层的头端(ATMVCI/VPI,和帧中继的DLCI)。有时也可以将它嵌入至位于数据链路头端和数据链路协议数据单元(PDU)之间的小标志头端(如位于第二层头端与第三层数据负载之间),称为“Shim”

  这种标志信息能够在链路层进行承载,“Shim”结构可以用于EthernetIEEE802.3,或点对点(PPP)链路上,其中一个是为单目广播,另一个是为多目广播(Multicast)。每个标志为4字节。

  在MPLS骨干网络边缘,边界LSR对进来的无标志分组(正常情况下)按其IP头端进行归类划分(Classification)及转发判决,这样IP分组在边界LSR被打上相应的标志,并被传送至到达目的地地址的下一跳。

  在后续的交换过程中,由LSR所产生的固定长度的标志替代IP分组头端,大大简化了以后的节点处理操作。后续节点使用这个标志进行转发判决。一般情况下,标志的值在每个LSR中交换后改变,这就是标志转发。

  如果分组从MPLS的骨干网络中出来,出口边界LSR发现它们的转发方向是一个无标志的接口,就简单地移除分组中的标志。这种基于标志转发的最重要的优势在于对多种交换类型只需要唯一一种转发算法,可以用硬件来实现非常高的转发速度。

  (3)标志交换控制部件

  标志由标志交换路径(LSP)的上游LSR(Upstream LSR)节点来附加至分组中,下游LSR(Downstream LSR)收到标志分组后判决处理,这由标志交换的控制部件来完成。它使用标志转发表中的条项内容作为引导。

  标志交换控制部件除了基本的表的建立和维护外,还负责以一种连续的方式在LSR之间进行路由的分布及进行将这些信息生成为转发表的操作。标志交换控制部件包括所有的传统路由协议(如,OSPFBGPPIM等等)。这些路由协议为LSR提供了FEC与下一跳地址的映射。

  标志信息的分布(Distribution)

  标志交换转发表中的条项内容最少应能提供输出的端口信息和下一个新的标志,当然也可以包含更多的信息。例如,它可以为被交换的分组产生一种输出队列原则。输入分组必须在转发表中有唯一的条项与之对应。

  每一个分配的标志必须与转发表中的一个条项相关联起来。这种绑定可以在本地LSR执行或在远端LSR执行。目前MPLS版本使用下游绑定,这种情况下,本地关联的标志用作进入分组标志,而远端关联标志用作输出标志。另一种方式为上游绑定,与下游绑定相反,也是一种可行的方法。在MPLS技术中,转发表又称为标志转发信息库(LFIB)LFIB的每一个条目中包括输入标志,输出标志,输入接口和输出端口MAC地址,由输入标志对条项进行检索查找。另外LFIB既可以在一个标志交换路由器上也可以存在于一个接口上。

  (4)标志交换路由器(LSR)

  MPLS的设备按其在MPLS路由网络中所处的位置可分为边界标志交换路由器和中间标志交换路由器。边界LSR除对分组的标志进行符加或移除外,还负责对流量进行分类。标志的分配除了基于目的地地址外还有其它很多因素。边界LSR判定流量是否为一个长持续流,采取管理政策和访问控制,并在可能的情况下将普通业务流汇聚成较大的数据流。这些都是在IPMPLS的边界处所要具有的功能,因此边界LSR的能力将会是整个标志交换环境能否成功的关键环节。对于服务提供者而言,这也是一个管理和控制点。

  (5)MPLSATM协议关系

  MPLS为公共的转发算法,基于标志的交换技术,在与ATM技术的结合上,MPLS使用ATM的用户平面(user plane),以ATMVPI/VCI作为其标志;MPLS的控制功能部件,以网络层的动态路由协议(如:IS-ISOSPFBGPPIM)及标志分配协议(LDP)来替代ATM传统的控制平面,完成对整个MPLS网络的控制功能。

  MPLS的优势  基于MPLS的思想框架,MPLS的优势主要体现在以下几点:

  将传统的基于IP分组中头端信息进行IP的路由转发的机制淘汰下来在一种公共转发算法(标志交换)上提供了多种路由方案(如基于目的的显式路由等)ATM技术与IP技术灵活地结合起来,从控制平面看具有MPLS功能的ATM交换机则更像是一台路由器。

  使用MPLS使各种IP的业务应用成为可能,如:基于IPVPNIP级业务服务质量保证,骨干网络流量控制。

  MPLS技术总结

  MPLS交换主要目的是为下一代的多用户,多服务的Internet骨干网络提供一种路由交换的技术基础。它的主要特征为高性能,可灵活扩展,能最大可能地满足用户对服务质量的需求。Internet网络的飞速发展也为MPLS的发展带来了十分显著的推动作用。

  MPLS技术也为一些目前IP网络急待提供的应用服务如流量控制(traffic engineering)、虚拟专网(VPN),服务类别质量保证(COS)等提供了一套更为合理有效的解决方案。

  各网络厂商纷纷推出基于各自特点的MPLS的技术实现及设备,MPLS必然会在不久的几年内完成各种方面的标准制定,真正成为下一代Internet的路由技术主流。

POP3 邮局协议-版本3

1. 简介

对于在网络上的比较小的结点,支持消息传输系统(MTS)是不实际的。例如,一台工作站可能不具有充足的资源允许SMTP服务器和相当的本地邮件传送系统保持序驻留,并持续运行。同样的,将一台个人计算机长时间连接在IP类型网络上的费用也是可观的(结点缺少的资源被称为“联络性”)。

虽然如此,在这样的小结点上允许管理邮件是 十分有用的,并且这些结点经常支持一个用户代理来管理邮件。为解决这一问题,能够支持MTS的结点就为这些不能支持的结点提供了邮件存储功能。邮局协议-版本3就是使这样的工作站可以用一种比较实用的方法来访问存储于服务器上的储存邮件。通常,这意味着工作站可以从服务器上取得邮件,而服务器为它暂时保存邮件。

在下文中,客户主机指的是利用POP3服务的主机,而服务器主机指的是提供POP3服务的主机。

2. 简单说明

在此文档中不指明客户主机如何将邮件送入到传送系统中去。但这里有一个说明:当用户代理需要将信息送到传送系统时,它在接力主机上建立SMTP连接(这些接力主机可以是POP3主机,也可以不是)。

 

3. 基本操作

初始时,服务器通过侦听TCP端口110开始POP3服务。当客户主机需要使用服务时,它将与服务器主机建立TCP连接。当连接建立后,POP3发送确认消息。客户和POP3服务器相互(分别)交换命令和响应,这一过程一直要持续到连接终止。

POP3命令由一个命令和一些参数组成。所有命令以一个CRLF对结束。命令和参数由可打印的ASCII字符组成,它们之间由空格间隔。命令一般是三到四个字母,每个参数却可达40个字符长。

POP3响应由一个状态码和一个可能跟有附加信息的命令组成。所有响应也是由CRLF对结束。现在有两种状态码,“确定” ("+OK")和“失败” ("-ERR")。

对于特定命令的响应是由许多字符组成的。在这些情况中,下面一一表述:在发送第一行响应和一个CRLF之后,任何的附加信息行发送,他们也由CRLF对结束。当所有信息发送结束时,发送最后一行,包括一个结束字符(十进制码46,也就是“.”)和一个CRLF对。如果信息中的任何一行以结束字符开始,此行就是通过在那一行预先装入结束而进行字符填充的。因此,多行响应由五个CRLF.CRLF 结束。当检测多行响应时,客户检测以确认此行是否以结束字符开始。如果是的,而且其后的字符不是CRLF,此行的第一个字符(结束字符)将被抛弃;如果其后紧跟CRLF,从POP服务器来的响应终止,包括.CRLF 的行也不被认为是多行响应的一部分了。

在生命周期中,POP3会话有几个不同的状态。一旦TCP连接被打开,而且POP3服务器发送了确认信息,此过程就进入了“确认”状态。在此状态中,客户必须向POP3服务器确认自己是其的客户。一旦确认成功,服务器就获取与客户邮件相关的资源,此时这一过程进入了“操作”状态。在此状态中,客户提出服务,当客户发出QUIT命令时,此过程进入了“更新”状态。在此状态中,POP3服务器释放在“操作”状态中取得的资源,并发送消息,终止连接。

POP3服务器可以拥有一个自动退出登录的记时器。此记时器必须至少可以记录10分钟。这样从客户发送的消息才可能刷新此记时器。当记时器失效时,POP3会话并不进入“更新”状态,而是关闭TCP连接,而且不删除任何消息,不向客户发送任何响应。

 

4. “确认”状态

 

一时TCP连接由POP3客户打开,POP3服务器发送一个单行的确认。这个消息可以是由CRLF结束的任何字符。例如,它可以是:

S: +OK POP3 server ready

 

注意:这个消息是一个POP3应答。POP3服务器应该给出一个“确定”响应作为确认。

此时POP3会话就进入了“确认”状态。此时,客户必须向服务器证明它的身份。在文档中介绍两种可能的处理机制,一种是USER和PASS命令,另一种是在后面要介绍的APOP命令。

用USER和PASS命令进行确认过程,客户必须首先发送USER命令,如果POP3服务器以“确认”状态码响应,客户就可以发送PASS命令以完成确认,或者发送QUIT命令终止POP3会话。如果POP3服务器返回“失败”状态码,客户可以再发送确认命令,或者发送QUIT命令。

当客户发送了PASS命令后,服务器根据USER和PASS命令的附加信息决定是否允许访问相应的存储邮件。

一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防止在进入“更新”状态前对邮件的改变。如果成功获得了排它锁,服务器返回一个“确认”状态码。会话进入“操作状态”,同时没有任何邮件被标记为删除。如果邮件因为某种原因不能打开(例如,排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回“失败”状态码。在返回“失败”状态码后,服务器会关闭连接。如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送QUIT命令。

在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。第一个消息被指定为1,第二个消息被指定为2,以此类推,第N个消息被指定为N。在POP3命令和响应中,所以的消息号和长度以十进制表示。

下面是对上述三条命令的总结:

 

命令格式

参数

限制

响应

例子

USER name

指定邮箱的字符串,这对服务器至关重要

仅在USER和PASS命令失败后或在“确认”状态中使用

+OK:有效邮箱;

-ERR:无效邮箱

C: USER mrose

S: +OK mrose is a real hoopy frood

...

C: USER frated

S: -ERR sorry, no mailbox for frated here

PASS string

口令

仅在“确认”状态中USER命令成功后使用(因为此命令只有一个参数,因此空格不再作为分隔符,而作为口令的一部分)

+OK:邮件锁住并已经准备好;

-ERR无效口令或无法锁住邮件

C: USER mrose

S: +OK mrose is a real hoopy frood

C: PASS secret

S: +OK mrose's maildrop has 2 messages (320 octets)

...

C: USER mrose

S: +OK mrose is a real hoopy frood

C: PASS secret

S: -ERR maildrop already locked

QUIT

(无)

(无)

+OK

C: QUIT

S: +OK dewey POP3 server signing off

 

 

5. “操作”状态

 

一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时POP3会话进入“操作”状态。现在客户可以重复下面的POP3命令,对于每个命令服务器都会返回应答。最后,客户发送QUIT命令,会话进入“更新”状态。

下面是在“操作”状态中可用的命令:

命令

参数

限制

说明

响应

例子

STAT

(无)

仅在“操作”状态下可用。

服务器以包括邮件信息的响应做为“确认”。为简化语法分析,所有的服务器要求使用邮件列表的特定格式。“确认”响应由一个空格,以八进制表示的邮件数目,一个空格和邮件大小。这是最小实现,高级的实现还需要别的信息。

注意:被标记为删除的信件不在此列。

+OK: nn mm

C: STAT

S: +OK 2 320

LIST [msg]

信件数目(可选),如果出现,不包括标记为删除的信件。

仅在“操作”状态下可用。

如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“扫描表”。

如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的+OK后,对于每个信件,服务器均给出相应的响应。

为简化语法分析,所有服务器要求使用扫描表的特定格式。它包括空格,每个邮件的确切大小。这是最小实现,高级的实现还需要别的信息。

注意:被标记为删除的信件不在此列。

+OK:其后跟扫描表;

-ERR:无扫描。

C: LIST

S: +OK 2 messages (320 octets)

S: 1 120

S: 2 200

S: .

...

C: LIST 2

S: +OK 2 200

...

C: LIST 3

S: -ERR no such message, only 2 messages in maildrop

RETR msg

不包括标记为删除的信件数目。

仅在“操作”状态下可用。

如果服务器返回“确认”,给出的响应是多行的。在初始的+OK后,服务器发送与给定信息号对应的信息,对于多行响应,注意字节填充终止符。

+OK:消息在其后;

-ERR:其后无消息。

C: RETR 1

S: +OK 120 octets

S:

S: .

DELE msg

不包括标记为删除的信件数目。

仅在“操作”状态下可用。

服务器将此信件标记为删除,以后任何关于此信件的操作就会产生错误。服务器在会话进入“更新”状态前不会真正删除此信件。

+OK:信件被删除;

-ERR:无此信件。

C: DELE 1

S: +OK message 1 deleted

...

C: DELE 2

S: -ERR message 2 already deleted

NOOP

(无)

仅在“操作”状态下可用。

服务器仅返回“确认”。

+OK

C: NOOP

S: +OK

RSET

(无)

仅在“操作”状态下可用。

所有被标记为删除的信件复位,服务器返回“确认”。

+OK

C: RSET

S: +OK maildrop has 2 messages (320个字符)

 

 

6.“更新”状态

 

当客户在“操作”状态下发送QUIT命令后,会话进入“更新”状态。(注意:如果客户在“确认”状态下发送QUIT后,会话并不进入“更新”状态。)

如果会话因为QUIT命令以外的原因中断,会话并不进入“更新”状态,也不从服务器中删除任何信件。

命令

参数

限制

说明

响应

例子

QUIT

(无)

(无)

服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。最后TCP连接被中断。

+OK

C: QUIT

S: +OK dewey POP3 server signing off (清空标记邮件)

...

C: QUIT

S: +OK dewey POP3 server signing off

 

 

7.可选的POP3命令

以上讨论的命令是对POP3服务的最小实现。以下说明的可选命令允许客户更方便地处理信件,这是一个比较一般的POP3服务实现。

命令

参数

限制

说明

响应

例子

TOP msg n

一个是未被标记为删除的信件数,另一个是非负数(必须提供)

仅在“操作”状态下使用。

如果服务器返回“确认”,响应是多行的。在初始的+OK后,服务器发送信件头,一个空行将信件头和信件体分开,对于多行响应要注意字节填充终止符。

注意:如果客户要求的行数比信件体中的行数大,服务器会发送整个信件。

+OK:其后有信件头;

-ERR:其后无类似消息。

C: TOP 1 10

S: +OK

S: <服务器发送消息头,一个空行和信件的头10行>

S: .

...

C: TOP 100 3

S: -ERR no such message

UIDL [msg]

信件数(可选)。如果给出信件数,不包括被标记为删除的信件。

仅在“操作”状态下使用。

如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“独立-ID表”。

如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的+OK后,对于每个信件,服务器均给出相应的响应。此行叫做信件的“独立-ID表”。

为简化语法分析,所有服务器要求使用独立-ID表的特定格式。它包括空格和信件的独立-ID。

信件的独立-ID由0x21到0x7E字符组成,这个符号在给定的存储邮件中不会重复。

注意:信件不包括被标记为删除的信件。

+OK:其后是独立-ID表;

-ERR:其后无类似信件。

C: UIDL

S: +OK

S: 1 whqtswO00WBw418f9t5JxYwZ

S: 2 QhdPYR:00WBw1Ph7x7

S: .

...

C: UIDL 2

S: +OK 2 QhdPYR:00WBw1Ph7x7

...

C: UIDL 3

S: -ERR no such message, only 2 messages in maildrop

APOP name digest

指定邮箱的字串和MD5摘要串。

仅在POP3确认后的“确认”状态中使用。

通常,每个POP3会话均以USER/PASS互换开始。这导致了用户名和口令在网络上的显式传送,这不会造成什么危险。但是,许多客户经常连接到服务检查信件。通常间隔时间比较短,这就加大了泄密的可能性。

另一种提供“确认”过程的方法是使用APOP命令。

实现APOP命令的服务器包括一个标记确认的时间戳。例如:在UNIX上使用APOP命令的语法为:process-ID.clock@hostname,其中进程-ID是进程的十进制的数,时钟是系统时钟的十进制表示,主机名与POP3服务器名一致。

客户记录下此时间戳,然后以送APOP命令。name语法和USER命令一致。Digest是采用MD5算法产生的包括时间戳和共享密钥的字串。此密钥是客户和服务器共知的,应该注意保护此密钥,如果泄密,任何人都能够以用户身份进入服务器。

如果服务器接到APOP命令,它验证digest,如果正确,服务器返回“确认”,进入“操作”状态;否则,给出“失败”并停留在“确认”状态。

注意:共享密钥的长度增加,解读它的难度也相应增加,这个密钥应该是长字符串。

+OK:邮件锁住并准备好;

-ERR:拒绝请求。

S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>

C: APOP mrose c4c9334bac560ecc979e58001b3e22fb

S: +OK maildrop has 1 message (369 octets)

在此例子中,共享密钥 <1896.697170952@dbc.mtview.ca.us>tanstaaf由MD5算法生成,它产生了digest值, c4c9334bac560ecc979e58001b3e22fb

 

 

8. POP3命令总结

 

基础的POP3命令:

 

USER name 在“确认”状态有效

PASS string

QUIT

 

STAT 在“操作”状态有效

LIST [msg]

RETR msg

DELE msg

NOOP

RSET

 

QUIT 在“更新”状态有效

 

可选的POP3命令:

 

APOP name digest 在“确认”状态有效

 

TOP msg n 在“操作”状态有效

UIDL [msg]

 

POP3 响应:

 

+OK

-ERR

 

注意:除了STAT,LIST和UIDL的响应外,其它命令的响应均为"+OK"和 "-ERR"。响应后的所有文本将被客户略去。

 

9. POP3会话实例

S: <等待连接到TCP端口110>

C: <打开连接>

S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>

C: APOP mrose c4c9334bac560ecc979e58001b3e22fb

S: +OK mrose's maildrop has 2 messages (320 octets)

C: STAT

S: +OK 2 320

C: LIST

S: +OK 2 messages (320 octets)

S: 1 120

S: 2 200

S: .

C: RETR 1

S: +OK 120 octets

S: <服务器发送信件1>

S: .

C: DELE 1

S: +OK message 1 deleted

C: RETR 2

S: +OK 200 octets

S: <服务器发送信件2>

S: .

C: DELE 2

S: +OK message 2 deleted

C: QUIT

S: +OK dewey POP3 server signing off (maildrop empty)

C: <关闭连接>

S: <等待下一次连接>

 

10. 消息格式

 

在会话过程中的消息格式都假定与Internet文本消息格式标准一致。应该注意的是,由于各个服务器对于换行符的处理不同,因此计数不一定相同。通常,在“确认”状态中,服务器能够以八进制计算信件的大小。例如,如果在打开储存邮件时服务器内部认定换行符代表一个字符,一般服务器在计算它时作为两个字符计。注意,以终止符开始的消息行不被计数两次,因为客户将在接收到多行响应后删除所有字节填充。

 

11. 安全性考虑

可以推测,使用APOP命令可以提供会话期间的保护。相应的,同时实现PASS和APOP命令的服务器只允许用户以一种方式访问;也就是说要么使用USER/PASS组合,要么使用APOP命令,不能同时使用两个。

而且,注意随着共享密钥长度的增加,解读的难度也就上升了。服务器要提供用户名时不给出任何响应,不给出任何暗示此用户名是否正确。而口令却在网络上显式传送;使用RETR和TOP命令在网络上显式传送信件。

CIP 传输协议

摘要

本文主要说明用于传输CIP请求/响应,索引对象,实现它们在TCP,邮件和HTTP上传输的三个协议。相关的资料请在其它资料中查询。

1. 协议

本节说明用于传输CIP索引对象和维护网结构。本文主要定义定义消息格式,传输机制。CIP协议的 设计思想是一种块设计思想。它不依赖于许多于协议定义工具,或文本编码方式,而是利用现有的协议技术进行设计。这样可以使设计和实现简化。这也是利用现有的Internet技术实现应用层服务的方法。

2 MIME消息交换机制

CIP的消息交互是通过交换MIME消息进行的。消息在双向可靠传输的基础上进行。本文利用TCP,HTTP和邮件传输进行消息传输。CIP服务器开始连接,它称为发送CIP,而响应发送CIP的服务器称为接收CIP。

2.1 流传输

CIP在双向TCP连接上通过简单文本协议传输,它的操作可以在任何TCP端口上进行,因此配置信息也包括了主机名和端口号。发送CIP的动作由接收CIP的响应码加以确定。这些码的格式见下文。为了进行向后兼容Whois++服务器, CIPv3发送CIP必须首先确定支持新协议。通过发送下面非法的Whois++系统命令完成上述功能:"# CIP-Version: 3"。在现在的Whois++服务器上,如果实现了CIP版本1或2,就会导致500系列的响应,服务器中断连接,如果服务器实现了CIPv3,它会响应300。这个300中的3代表版本3,以后的版本也可以利用这种方法。下面是一个交换的例子:

注意:如果发送CIP能够确定服务器实现了CIPv3,它可以发送"# CIP-Version: 3"串,然后跟一个CIPv3请求,这个优化在已知的同构CIP网结构中是有用的,这样可以避免等待。

一旦发送CIP确定服务器支持CIPv3请求,它可以以MIME格式发送请求,每个请求以""结束。

Cip-Req = Req-Hdrs CRLF Req-Body

Req-Hdrs = *( Version-Hdr | Req-Cntnt-Hdr )

Req-Body = Body ; format of request body as in [CIP-MIME]

Body = Data CRLF "." CRLF

Data = ; data with CRLF "." CRLF replaced by CRLF ".." CRLF

Version-Hdr = "Mime-Version:" "1.0" CRLF

Req-Cntnt-Hdr = "Content-Type:" Req-Content CRLF

Req-Content = ; format is specified in [CIP-MIME]

Cip-Rsp = Rsp-Code CRLF [ Rsp-Hdrs CRLF Rsp-Body ] [ Indx-Cntnt-Hdr CRLF Index-Body ]

Rsp-Code = DIGIT DIGIT DIGIT Comment

Comment = ; any chars except CR and LF

Rsp-Hdrs = *( Version-Hdr | Rsp-Cntnt-Hdr )

Rsp-Cntnt-Hdr = "Content-Type:" Rsp-Content CRLF

Rsp-Content = ; format is specified in [CIP-MIME]

Rsp-Body = Body ; format of response body as in [CIP-MIME]

Indx-Cntnt-Hdr = "Content-Type:" Indx-Obj-Type CRLF

Indx-Obj-Type = ; any registered index object's MIME-type the format is specified in [RFC2045]

Index-Body = Body ; format defined in each index specifications

CRLF = CR LF ; Internet standard newline

CR = %x0D ; carriage return

LF = %x0A ; linefeed

DIGIT = %x30-39

消息以SMTP形式结束,数据以字节传输,除了看到1*["."],这种情况下要加一个句号。在数据传输结束时以"."表示。接收方要将结束标记略过。接收方的响应分为200,400和500系列。响应也以SMTP形式的消息界定。在返回响应后,接收CIP必须准备接收下一个请求,将状态返回到发送CIP刚刚确定版本时的状态。如果发送CIP不再发请求,则可以关闭连接。作为响应,接收CIP必须广放弃读入消息,并准备新的发送CIP连接。下面是一个例子,这里的行结束显式给出。中间的空间只为可读性而设置,注释在大括号内。

{ 发送CIP连接到接收CIP }

<<< % 220 Example CIP server ready

>>> # CIP-Version: 3

<<< % 300 CIPv3 OK!

>>> Mime-Version: 1.0

>>> Content-type: application/index.cmd.datachanged; type=

>>> x-tagged-index-1; dsi=1.2.752.17.5.10

>>>

>>> updatetype: incremental tagbased

>>> thisupdate: 855938804

>>> lastupdate: 855940000

>>> .

<<< % 200 Good MIME message received

>>> MIME-Version: 1.0

>>> Content-Type: application/index.obj.tagged;

>>> dsi=1.2.752.17.5.10;

>>> base-uri="ldap://ldap.umu.se/dc=umu,dc=se"

>>>

>>> version: x-tagged-index-1

>>> updatetype: incremental

>>> lastupdate: 855940000

>>> thisupdate: 855938804

>>> BEGIN IO-schema

>>> cn: TOKEN

>>> sn: FULL

>>> title: FULL

>>> END IO-Schema

>>> BEGIN Update Block

>>> BEGIN Old

>>> title: 3/testpilot

>>> END Old

>>> BEGIN New

>>> title: 3/chiefpilot

>>> END New

>>> END Update Block

>>> .

<<< % 200 Good MIME message received

{ 发送CIP关闭写套接字 }

<<< % 222 Connection closing in response to sender-CIP shutdown

{ 接收CIP关闭,重新设置状态并等待新的发送CIP连接 }

如果版本不对,则会出现下面的情况:

{ 发送CIP连接到接收CIP }

<<< % 220 Whois++ server ready

>>> # CIP-Version: 3

<<< % 500 Syntax error

{ 服务器关闭连接 }

发送CIP可以会尝试以版本1或2进行连接,而失败的结果会被缓冲以避免以后的失败。

2.1.1 传输特定的响应码

下面的响应码用于流传输:

Code

描述文本

发送CIP动作

200

MIME请求的接收和处理

无输出,继续会话

201

MIME请求的接收,处理与输出

请入以SMTP格式界定边界的响应

220

紧跟初始服务器标记信息

继续Whois++交互,或核对CIP版本

222

关闭连接

完成操作

300

接收请求的CIP版本

在特定的版本下继续操作

400

暂时不能处理请求

过一会儿再试。可以用于表示服务器现在没有资源接收索引

500

错误的MIME格式

以正确格式重试

501

未知或丢失请求

以正确的命令重试

502

请求没有需要的CIP属性

以正确的属性重试

520

因不明原因中断连接

通知本地管理员

530

请求需要合法的签名

对请求签名,如果可能重试,如果不能则向管理员报告问题

531

无效签名

报告管理员

532

无法检查签名

通知本地管理员,由他和远程的管理员协商处理问题

2.2 以邮件系统进行传输

除了TCP流以外,可以利用现有的邮件系统进行CIP操作。这样可以减少对叶子服务器的压力,在进行TCP连接时叶子服务器中包括一个数据库和一个检索程序。这样还可以有效地利用现有的网络技术。因为使用MIME消息,而MIME也可以用邮件进行传输,这样我们就可以利用与TCP完全不同的方法完成CIP传输。在使用邮件时基本请求和响应也是支持的。下面会说明一些特定的情况,在这些情况下,应该对邮件传输CIP对象另加考虑。通常,所有的邮件协议和邮件格式均可用于CIP邮件传输。

2.2.1 确定CIP版本

因为在MIME信息中未说明使用的CIP版本,所以要在信件头中包括这一消息。因此使用邮件传输时,必须包括CIP版本行,它的格式如下:

DIGIT = %x30-39

number = 1*DIGIT

cipversion = "CIP-Version:" number["." number]

2.2.2 返回路径

在双向流中进行CIP操作时,返回响应和错误是隐式的。使用邮件对于确定接收者就有困难。因为从信头有时不能确定谁发的信。CIP要求发送方必须接收一个返回地址,如果没有,CIP服务器将忽略这一请求,只会在日志里记一笔。接收方不能从信件的其它地方获得返回地址。如果响应不能返回给请求,发送方应该将地址包括在<>之内也放在返回地址中。我们不应该利用不能返回使错误信息不能返回,但有时这也是简化系统的一个好方法。

2.3 HTTP传输

HTTP也可用于传输CIP对象,操作可以使用POST方法进行,发送一个application/index.cmd,在HTTP应答中返回application/index.response或application/index.obj。URL是POST的目标,它也是CIP发送者和接收CIP之间配置参数的传输方法。下面是一个例子:

{ 客户打开连接发送POST }

>>> POST / HTTP/1.1

>>> Host: cip.some.corp

>>> Content-type: application/index.cmd.noop

>>> Date: Thu, 6 Jun 1997 18:16:03 GMT

>>> Content-Length: 2

>>> Connection: close

>>>

{ 服务器处理请求 }

<<< HTTP/1.1 204 No Content

{ 服务器关闭连接 }

利用HTTP时可以同时利用它的安全机制和其它属于HTTP的特点。CIP客户可以利用Accept-Charset和Accept-Language HTTP头来指定索引以特定的字符集返回。也可以使用Accept-Encoding来表示它可以处理压缩响应。也可以利用If-Modified-Since来防止在索引未改变的情况下再次传输再来的浪费。CIP服务器可以使用Retry-After要求客户过一会再进行请求。

3. 安全

索引信息有两层安全保护,一层是使用现有的安全MIME对象,另一层是利用现有的安全传输机制。我们上面已经说过了利用三种协议传输CIP对象,那这三个协议中的安全机制对安全传输CIP对象是有用的。

802.1x协议解析

802.1X协议是由(美)电气与电子工程师协会提出,刚刚完成标准化的一个符合IEEE 802协议集的局域网接入控制协议,其全称为基于端口的访问控制协议。它能够在利用IEEE 802局域网优势的基础上提供一种对连接到局域网的用户进行认证和授权的手段,达到了接受合法用户接入,保护网络安全的目的。 802.1x认证,又称EAPOE认证,主要用于宽带IP城域网。

一、802.1x认证技术的起源< /STRONG>
802.1x
协议起源于802.11协议,后者是标准的无线局域网协议,802.1x协议的主要目的是为了解决无线局域网用户的接入认证问题。

有线局域网通过固定线路连接组建,计算机终端通过网线接入固定位置物理端口,实现局域网接入,这些固定位置的物理端口构成有线局域网的封闭物理空间。但是,由于无线局域网的网络空间具有开放性和终端可移动性,因此很难通过网络物理空间来界定终端是否属于该网络,因此,如何通过端口认证来防止其他公司的计算机接入本公司无线网络就成为一项非常现实的问题,802.1x正是基于这一需求而出现的一种认证技术。也就是说,对于有线局域网,该项认证没有存在的意义。

由此可以看出,802.1x协议并不是为宽带IP城域网量身定做的认证技术,将其应用于宽带IP城域网,必然会有其局限性,下面将详细说明该认证技术的特点,并与PPPOE认证、VLAN+WEB认证进行比较,并分析其在宽带IP城域网中的应用。

二、802.1x认证技术的特点
802.1x协议仅仅关注端口的打开与关闭,对于合法用户(根据帐号和密码)接入时,该端口打开,而对于非法用户接入或没有用户接入时,则该端口处于关闭状态。认证的结果在于端口状态的改变,而不涉及通常认证技术必须考虑的IP地址协商和分配问题,是各种认证技术中最简化的实现方案。

802.1x认证技术的操作粒度为端口,合法用户接入端口之后,端口处于打开状态,因此其它用户(合法或非法)通过该端口时,不需认证即可接入网络。对于无线局域网接入而言,认证之后建立起来的信道(端口)被独占,不存在其它用户再次使用的问题,但是,如果802.1x认证技术用于宽带IP城域网的认证,就存在端口打开之后,其它用户(合法或非法)可自由接入和无法控制的问题。

接入认证通过之后,IP数据包在二层普通MAC帧上传送,认证后的数据流和没有认证的数据流完全一样,这是由于认证行为仅在用户接入的时刻进行,认证通过后不再进行合法性检查。
表1和表2分别罗列出802.1x协议与PPPOE、VLAN+WEB的性能比较。

表1:802.1x与PPPOE认证的技术比较


表2:802.1x与VLAN+WEB认证的技术比较


三、宽带IP城域网中的认证技术分析
宽带IP城域网建设越来越强调网络的可运营性和可管理性,具体包括:对用户的认证、计费,IP地址分配、全方位安全机制,对业务的支持能力和运营能力等方面。其中用户认证技术是可运营、可管理网络的关键。从严格意义上讲,认证功能包括:识别和鉴权,对用户的准确有效识别,对用户权限的下发、确认和控制,这些构成了用户计费和各种安全机制实施的前提以及多业务支持和发展的基础。因此,宽带IP城域网中认证技术的采用必须遵循网络的可运营、可管理要求。

实践证明,PPPOE认证技术、VLAN+WEB认证技术均可很好地支撑宽带网络的计费、安全、运营和管理要求。对于802.1x认证技术,根据其定位和特点,在宽带城域网中实现用户认证远远达不到可运营、可管理要求,加之应用又少,为了完备用户的认证、管理功能,还需要进行大量协议之外的工作,目前仅有少数几个二/三层交换机厂家在宽带IP城域网中推广此项方式,将802.1x技术附着在L2/L3产品上,使L2/L3产品具备BAS用户认证和管理功能。如上所述,这种认证方式仅仅能够基于端口的认证,而且不是全程认证,与其它BAS功能(计费、安全机制、多业务支持)难以融合,因而不能称为电信级认证解决方案。

在城域网建设初期,大家对可运营、可管理性的认识还不是很一致,802.1x认证技术可能会有一定的市场空间,随着宽带IP城域网建设的逐步成熟和对可管理的关注,基于端口开关状态的802.1x认证技术不会成为主流。

四、802.1x协议工作机制
以太网技术“连通和共享”的设计初衷使目前由以太网构成的网络系统面临着很多安全问题。IEEE 802.1X协议正是在基于这样的背景下被提出来的,成为解决局域网安全问题的一个有效手段。
在802.1X协议中,只有具备了以下三个元素才能够完成基于端口的访问控制的用户认证和授权。

  1. 客户端:一般安装在用户的工作站上,当用户有上网需求时,激活客户端程序,输入必要的用户名和口令,客户端程序将会送出连接请求。
  2. 认证系统:在以太网系统中指认证交换机,其主要作用是完成用户认证信息的上传、下达工作,并根据认证的结果打开或关闭端口。
  3. 认证服务器:通过检验客户端发送来的身份标识(用户名和口令)来判别用户是否有权使用网络系统提供的网络服务,并根据认证结果向交换机发出打开或保持端口关闭的状态。

在具有802.1X认证功能的网络系统中,当一个用户需要对网络资源进行访问之前必须先要完成以下的认证过程。

  1. 当用户有上网需求时打开802.1X客户端程序,输入已经申请、登记过的用户名和口令,发起连接请求。此时,客户端程序将发出请求认证的报文给交换机,开始启动一次认证过程。
  2. 交换机收到请求认证的数据帧后,将发出一个请求帧要求用户的客户端程序将输入的用户名送上来。
  3. 客户端程序响应交换机发出的请求,将用户名信息通过数据帧送给交换机。交换机将客户端送上来的数据帧经过封包处理后送给认证服务器进行处理。
  4. 认证服务器收到交换机转发上来的用户名信息后,将该信息与数据库中的用户名表相比对,找到该用户名对应的口令信息,用随机生成的一个加密字对它进行加密处理,同时也将此加密字传送给交换机,由交换机传给客户端程序。
  5. 客户端程序收到由交换机传来的加密字后,用该加密字对口令部分进行加密处理(此种加密算法通常是不可逆的),并通过交换机传给认证服务器。
  6. 认证服务器将送上来的加密后的口令信息和其自己经过加密运算后的口令信息进行对比,如果相同,则认为该用户为合法用户,反馈认证通过的消息,并向交换机发出打开端口的指令,允许用户的业务流通过端口访问网络。否则,反馈认证失败的消息,并保持交换机端口的关闭状态,只允许认证信息数据通过而不允许业务数据通过。

这里要提出的一个值得注意的地方是: 在客户端与认证服务器交换口令信息的时候,没有将口令以明文直接送到网络上进行传输,而是对口令信息进行了不可逆的加密算法处理,使在网络上传输的敏感信息有了更高的安全保障,杜绝了由于下级接入设备所具有的广播特性而导致敏感信息泄漏的问题。

在802.1X解决方案中,通常采用基于MAC地址的端口访问控制模式。采用此种模式将会带来降低用户建网成本、降低认证服务器性能要求的优点。对于此种访问控制方式,应当采用相应的手段来防止由于MAC、IP地址假冒所发生的网络安全问题。

  1. 对于假冒MAC地址的情况
    当认证交换机的一个物理端口下面再级连一台接入级交换机,而该台接入交换机上的甲用户已经通过认证并正常使用网络资源,则此时在认证交换机的该物理端口中就已将甲用户终端设备的MAC地址设定为允许发送业务数据。假如同一台接入交换机下的乙用户将自己的MAC地址修改得与甲用户的MAC地址相同,则即使乙用户没有经过认证过程也能够使用网络资源了,这样就给网络安全带来了漏洞。针对此种情况,港湾网络交换机在实现了802.1X认证、授权功能的交换机上通过MAC地址+IP地址的绑定功能来阻止假冒MAC地址的用户非法访问。

    对于动态分配IP地址的网络系统,由于非法用户无法预先获知其他用户将会分配到的IP地址,因此他即使知道某一用户的MAC地址也无法伪造IP地址,也就无法冒充合法用户访问网络资源。

    对于静态分配地址的方案,由于具有同一IP地址的两台终端设备必然会造成IP地址冲突,因此同时假冒MAC地址和IP地址的方法也是不可行的。

    当假冒者和合法用户分属于认证交换机两个不同的物理端口,则假冒者即使知道合法用户的MAC地址,而由于该MAC地址不在同一物理端口,因此,假冒者还是无法进入网络系统。
  2. 对于假冒IP地址的情况
    由于802.1X采用了基于二层的认证方式,因此,当采用动态地址分配方案时,只有用户认证通过后,才能够分配到IP网络地址。

    对于静态地址分配策略,如果假冒了IP地址,而没有能够通过认证,也不会与正在使用该地址的合法用户发生地址冲突。

    如果用户能够通过认证,但假冒了其他用户的IP地址,则通过在认证交换机上采用IP地址+MAC地址绑定的方式来控制用户的访问接入。这使得假冒用户无法进行正常的业务通信,从而达到了防止IP地址被篡改、假冒的目的。
  3. 对于用户口令失窃、扩散的处理

    在使用802.1X认证协议的系统中,用户口令失窃和口令扩散的情况非常多,对于这类情况,能够通过在认证服务器上限定同时接入具有同一用户名和口令认证信息的请求数量来达到控制用户接入,避免非法访问网络系统的目的。

五、总结
802.1x协议仅仅提供了一种用户接入认证的手段,并简单地通过控制接入端口的开/关状态来实现,这种简化适用于无线局域网的接入认证、点对点物理或逻辑端口的接入认证,而在可运营、可管理的宽带IP城域网中作为一种认证方式具有一定的局限性。

X.25 协议

X.25协议是CCITT(ITU)建议的一种协议,它定义终端和计算机到分组交换网络的连接。分组交换网络在一个网络上为数据分组选择到达目的地的路由。x.25是一种很好实现的分组交换服务,传统上它是用于将远程终端连接到主机系统的。这种服务为同时使用的用户提供任意点对任意点的连接。如图x1所示,来自一个网络的多个用户的信号,可以通过多路选择通过X.25接口而进入分组交换网络, 并且被分发到不同的远程地点。一种称为虚电路的通信信道在一条预定义的路径上连接端点站点通过网络。虽然X.25,吞吐率的主要部分是用于错误检查开销的,X.25接口不可支持高达64Kbps的线路,CCITT在1992年重新制定了这个标准,并将速率提高到2Mbps。

X.25的分组交换体系结构具有一些优点和缺陷。信息分组通过散列网络的路由是根据这个分组头中的目的地址信息进行选择的。用户可以与多个不同的地点进行连接,而不象面向电路的网络那样在任何两点之间仅仅存在一条专用线路。由于分组可以通过路由器的共享端口进行传输的,所以就存在一定的分发延迟。虽然许多网络能够通过选择回避拥挤区域的路由来支持过载的通信量,但是随着访问网络人数的增多,用户还是可以感觉到性能变慢了。和此相反,面向电路的网络在两个地点之间提供一个固定的带宽,它不能适应超过这个带宽的传输的要求。

X.25的开销比帧中继要高许多。例如,在X.25中,在一个分组的传输路径上的每个结点都必须完整地接收一个分组,并且在发送之前还必须完成错误检查。帧中继结点只是简单地查看分组头中的目的地址信息,并立即转发该分组,在一些情况下,甚至在它完整地接收一个分组之前就开始转发。帧中继不需要X.25中必须在每个中间结点中存在的用于处理管理、流控和错误检查的状态表。端点结点必须对丢失的帧进行检查,并请求重发。

X.25受到了低性能的影响,它不能适应许多实时LAN对LAN应用的要求。然而,X.25很容易建立,很容易理解,并且已被远程终端或计算机访问,以及传输量较低的许多情况所接收。X.25可能是电话系统网络不可靠的国家建立可靠网络链路的唯一途径。许多国家使用X.25服务。与此不同,在一些国家获得可靠的专用线路并不是不可能的。

在美国,大多数电讯公司和增值电信局(VAC)提供X.25服务,这些公司包括AT&T、US Sprint、compuserve、Ameritech、Pacific Be1l和其它公司。还可以通过在用户所在地安装X.25交换设备,并用租用线路将这些地点连接起来,来建立专用的X.25分组交换网络。

X.25是在开放式系统互联(OSI)协议模型之前提出的,所以一些用来解释x.25的专用术语是不同的。这种标准在三个层定义协议,它和OSI协议栈的底下三层是紧密相关的:

物理层 它称为X.21接口,定义从计算机/终端(数据终端设备,DTE)到X.25分组交换网络中的附件结点的物理/电气接口。RS-232-C通常用于X.21接口。

链路访问层 定义象帧序列那样的数据传输。使用的协议是平衡式链路访问规程(LAP-B),它是高级数据链路控制(HDLC)协议的一部分。LAP-B的设计是为了点对点连接。它为异步平衡模式会话提供帧结构、错误检查和流控机制。LAP-B为确信一个分组已经抵达网络的每个链路提供了一条途径。

分组层 定义通过分组交换网络的可靠虚电路。这样,X.25就提供了点对点数据发送,而不是一点对多点发送。

在X.25中,虚电路的概念是非常重要的。一条虚电路在穿越分组交换网络的两个地点之间建立一条临时性或永久性的“逻辑”通信信道。使用一条电路使用可以保证分组是按照顺序抵达的,这是因为它们都按照同一条路径进行传输。它为数据在网络上进行传输提供了可靠的方式。在X.25中有两种类型的虚电路:

临时性虚电路 将建立基于呼叫的虚电路,然后在数据传输会话结束时拆除。

永久虚电路 在两个端点结点之间保持一种固定连接。

X.25使用呼叫建立分组,从而在两个端点站点之间建立一条通信信道。一旦这个呼叫建立了,在这两个站点之间数据分组就可以传输信息了。注意,由于X.25是一种面向连接的服务,因而分组不需要源地址和目的地址。虚电路为传输分组通过网络到达目的地提供了一条通信路径。然而,对分组授予了一个号码,这个号码可以被连接源地和目的地的信道鉴别。

X.25网络易于安装和维护。它是根据发送的分组数据来收费的,在一些情况下,还会考虑连通的时间。牢记,其它一些服务更适合于高速局域网传输(例如帧中继)或专用连接。

相关条目:Carrier Services电信电讯公司服务;Connection-Oriented and Connectionless Protocol面向连接和无连接协议;Networks网络;Packet-Switching Networks分组交换网络;Virtual Circuit虚电路;Wide Area Networks 广域网。

WAP(Wireless Application Protocol)-无线应用协议

WAP(Wireless Application Protocol)就是"无线应用协议"之意。它是由一系列协议组成, 用来标准化无线通信设备,例如蜂窝电话,无线电收发机,也可用于Internet访问, 包括e-mail,WWW,Newsgroups和IRC(Internet Relay Chat)。 WAP的层次包括:

    Wireless A pplication Environment (WAE) Wireless Session Layer (WSL) Wireless Transport Layer Security (WTLS)   Wireless Transport Layer (WTP)

    WAP由Ericsson,Motorola,Nokia,Unwired Planet四家公司发起, 现在其会员以包括像Alcatel,AT&T,西门子,英国电信,法国电信,贝尔大西洋,贝尔南方等。 应该说WAP已是事实上的标准,大量的产品会在明年初问世。 最典型的如SmartPhone,想象一下,你可以用移动电话来收发E-Mail,查询信息,付账,实现PIM功能等,多么美妙!当然要提醒你, 不要忘了要想在移动电话和掌上设备的狭小LCD上看到漂亮的Web画面是不现实的, 所谓的上网功能是指收发文字email,查询信息都要靠特定的ISP来实现, 这就不是单靠移动电话厂商能办到的,所以在WAPForum中有不少电信公司。

    WAP 论坛  WAP 论坛是一个拥有90 多个成员的行业协会,它致力于开发用于数字移动电话 和其他无线终端设备的无线信息与电话服务在事实上的全球标准。 WAP 论坛的 主要目标是将无线行业价值链各个环节上的公司联合在一起以保证产品的互操作性 和无线市场的发展。WAP 论坛的成员拥有全球手机市场90 % 以上的份额, 并代表着超过1 亿订户的电信公司、领先基础设施提供商、软件开发商和 向无线行业提供解决方案的其他机构。有关详细信息, 请访问www.wapforum.org

 WAP 规范

    WAP 规范是一种无线应用程序的编程模型和语言, 它第一次定义了一个开放的标准结构和一套用来实现无线Internet 接入的协议。 WAP 规范的要素主要包括:WAP 编程模型、遵守XML标准的无线标记语言(WML)、 用于无线终端的微浏览器规范、轻量级协议栈、无线电话应用(WTA)框架。

    这个模型在很大程度上利用了现有的WWW 编程模型,应用开发人员可以从这种模型中得到许多好处, 包括可以继续使用自己熟悉的编程模型、能够利用现有的工具(如Web服务器、XML工具)等。

    另外,WAP 编程模型还针对无线环境的通信特点,对原有的WWW编程模型进行了优化和扩展。 WAP 规范优化和扩展了现有的Internet 标准。WAP 论坛针对无线网络环境的应用对TCP/IP、 HTTP 和XML 进行了优化,现在它已经将这些标准提交给了W3C 联合会作为下一代的HTML(HTML -NG) 和下一代的HTTP(HTTP-NG)。

    遵守XML 标准的无线标记语言(WML) WML 使得性能严重受限的手持设备能够提供强大的Internet 接入功能。WML和WMLScript 不要求用户使用常用的PC 机 键盘或鼠标进行输入, 而且它在设计时就 考虑到了手机的小屏幕显示问题。

    与HTML 文件不同的是,WML 将文件分割成一套容易定义的用户交互操作单元。 每个交互操作单元被称为一个卡,用户通过在一个或多个WML 文件产生的各个 卡之间来回导航来实现对Internet 的接入。 针对手机电话通信的特点,WML 提供了一套数量更小的标记标签集,这使它比HTML 更适合于在手持设备中使用。使用WAP 网关, 所有的WML 内容都可以通过HTTP 1.1 请求进行Internet 接入, 这样,传统的Web 服务器、 工具和技术都可以继续使用。

IEEE 802.11b标准简析

以往,无线局域网发展缓慢,推广应用困难,主要是由于传输速率低、成本高、产品系列有限,且很多产品不能相互兼容。如以前无线局域网的速率只有1~2Mb/s,而许多应用也是根据10Mb/s以太网速率设计的,限制了无线产品的应用种类。针对现在高速增长的数据业务和多媒体业务 ,无线局域网取得进展的关键就在于高速新标准的制定,以及基于该标准的10Mb/s甚至更高速率产品的出现。IEEE 802.11b从根本上改变了无线局域网的设计和应用现状,满足了人们在一定区域内实现不间断移动办公的需求,为我们创造了一个自由的空

一、802.11b标准简介

IEEE 802.11b无线局域网的带宽最高可达11Mbps,比两年前刚批准的IEEE 802.11标准快5倍,扩大了无线局域网的应用领域。另外,也可根据实际情况采用5.5Mbps、2 Mbps和1 Mbps带宽,实际的工作速度在5Mb/s左右,与普通的10Base-T规格有线局域网几乎是处于同一水平。作为公司内部的设施,可以基本满足使用要求。IEEE 802.11b使用的是开放的2.4GB频段,不需要申请就可使用。既可作为对有线网络的补充,也可独立组网,从而使网络用户摆脱网线的束缚,实现真正意义上的移动应用。

IEEE 802.11b无线局域网与我们熟悉的IEEE 802.3以太网的原理很类似,都是采用载波侦听的方式来控制网络中信息的传送。不同之处是以太网采用的是CSMA/CD(载波侦听/冲突检测)技术,网络上所有工作站都侦听网络中有无信息发送,当发现网络空闲时即发出自己的信息,如同抢答一样,只能有一台工作站抢到发言权,而其余工作站需要继续等待。如果一旦有两台以上的工作站同时发出信息,则网络中会发生冲突,冲突后这些冲突信息都会丢失,各工作站则将继续抢夺发言权。而802.11b无线局域网则引进了冲突避免技术,从而避免了网络中冲突的发生,可以大幅度提高网络效率。

IEEE 802.11b优点

功能

优点

速度

2.4ghz直接序列扩频无线电提供最大为11mbps的数据传输速率,无须直线传播

动态速率转换

当射频情况变差时,降低数据传输速率为5.5mbps、2mbps和1mbps

使用范围

802.11b支持以百米为单位的范围(在室外为300米;在办公环境中最长为100米)

可靠性

与以太网类似的连接协议和数据包确认提供可靠的数据传送和网络带宽的有效使用

互用性

与以前的标准不同的是,802.11b只允许一种标准的信号发送技术。weca将认证产品的互用性

电源管理

802.11b网络接口卡可转到休眠模式,访问点将信息缓冲到客户,延长了笔记本电脑的电池寿命

漫游支持

当用户在楼房或公司部门之间移动时,允许在访问点之间进行无缝连接

加载平衡

802.11b nic更改与之连接的访问点,以提高性能(例如,当前的访问点流量较拥挤,或发出低质量的信号时)

可伸缩性

最多三个访问点可以同时定位于有效使用范围中,以支持上百个用户

同时语音和数据支持

 

安全性

内置式鉴定和加密

 

二、802.11b的基本运作模式

802.11b运作模式基本分为两种:点对点模式和基本模式,如图1所示。点对点模式是指无线网卡和无线网卡之间的通信方式。只要PC插上无线网卡即可与另一具有无线网卡的PC连接,对于小型的无线网络来说,是一种方便的连接方式,最多可连接256台PC。而基本模式是指无线网络规模扩充或无线和有线网络并存时的通信方式,这是802.11b最常用的方式。此时,插上无线网卡的PC需要由接入点与另一台PC连接。接入点负责频段管理及漫游等指挥工作,一个接入点最多可连接1024台PC(无线网卡)。当无线网络节点扩增时,网络存取速度会随着范围扩大和节点的增加而变慢,此时添加接入点可以有效控制和管理频宽与频段。无线网络需要与有线网络互连,或无线网络节点需要连接和存取有线网的资源和服务器时,接入点可以作为无线网和有线网之间的桥梁。

三、802.11b的典型解决方案

802.11b无线局域网由于其便利性和可伸缩性,特别适用于小型办公环境和家庭网络。在室内环境中,针对不同的实际情况可以有不同的典型解决方案

对等解决方案

对等解决方案是一种最简单的应用方案,只要给每台电脑安装一片无线网卡,即可相互访问。如果需要与有线网络连接,可以为其中一台电脑再安装一片有线网卡,无线网中其余电脑即利用这台电脑作为网关,访问有线网络或共享打印机等设备。

但对等解决方案是一种点对点方案,网络中的电脑只能一对一互相传递信息,而不能同时进行多点访问。如果要实现像有线局域网的互通功能,则必须借助接入点。

单接入点解决方案

接入点相当于有线网络中的集线器。无线接入点可以连接周边的无线网络终端,形成星形网络结构,同时通过10Base-T端口与有线网络相连,使整个无线网的终端都能访问有线网络的资源,并可通过路由器访问Internet。

802.11b应用

功能

优点

不易接线的区域

在不易接线或接线费用较高的区域(如有历史意义的建筑物,有石棉的建筑物,以及教室)中提供网络服务

灵活的工作组

为经常进行网络配置更改的工作区降低了总拥有成本

网络化的会议室

用户可在从一个会议室移动到另一个会议室时进行网络连接,以获得最新的信息,并且可在决策时相互交流

特殊网络

现场顾问和小工作组的快速安装和兼容软件可提高工作效率

子公司网络

为远程或销售办公室提供易于安装、使用和维护的网络

部门范围的网络移动

漫游功能使企业可以建立易于使用的无线网络,可覆盖所有部门

 

 

一般地说,802.11b允许使用任何现有在有线网络上运行的应用程序或网络服务。

多接入点解决方案

当网络规模较大,超过了单个接入点的覆盖半径时,可以采用多个接入点分别与有线网络相连,从而形成以有线网络为主干的多接入点的无线网络,所有无线终端可以通过就近的接入点接入网络,访问整个网络的资源,从而突破无线网覆盖半径的限制。

无线中继解决方案

无线接入器还有另外一种用途,即充当有线网络的延伸。比如在工厂车间中,车间具有一个网络接口连接有线网,而车间中许多信息点由于距离很远使得网络布线成本很高,还有一些信息点由于周边环境比较恶劣,无法进行布线。由于这些信息点的分布范围超出了单个接入点的覆盖半径,我们可以采用两个接入点实现无线中继,以扩大无线网络的覆盖范围。

无线冗余解决方案

对于网络可靠性要求较高的应用环境,比如金融、证券等,接入点一旦失效,整个无线网络会瘫痪,将带来很大损失。因此,可以将两个接入点放置在同一位置,从而实现无线冗余备份的方案。

多蜂窝漫游工作方式

在一个大楼中或者在很大的平面里面部署无线网络时,可以布置多个接入点构成一套微蜂窝系统,这与移动电话的微蜂窝系统十分相似。微蜂窝系统允许一个用户在不同的接入点覆盖区域内任意漫游,随着位置的变换,信号会由一个接入点自动切换到另外一个接入点。整个漫游过程对用户是透明的,虽然提供连接服务的接入点发生了切换,但对用户的服务却不会被中断。

四、802.11b的应用前景

早期的802.11b无线局域网技术已经在纵向市场应用方面取得成功,例如生产、存货控制和零售点等方面,1999年已经取得了4亿美元的销售额。随着802.11b性能价格比实质性的提高,一个全新的横向市场应用将全面展开。企业将可以应用无线局域网作为他们有限局域网的延伸。这一应用将使他们全方位地与公司应用程序和网络外围设备取得连接,从而大大提高雇员在移动中的工作效率。无线局域网技术将首先应用于企业的会议厅和部门办公室,随着其使用的深入,最终将应用于公司的每一个角落。小企业和家庭用户也将使用无线局域网代替有线网络,从而获得无线局域网提供的在“无线”安装和维护方面带来的节约。

 

 

802.11n:解决带宽、漫游、移动问题

编者按:在无线局域网多种标准并存的今天,IEEE802.11无疑最有希望成为主流标准。1997年,802.11标准的制定是无线局域网发展的里程碑,它定义了单一的MAC层和多样的物理层,随后相继推出了802.11b、802.11a和802.11g的物理层标准。其中,802.11g标准采用OFDM技术,和802.11a一样数据传输速率可达54Mbps。另外,它工作在2.4GHz频段上,与802.11b标准兼容,提高了网络的适用性 ,降低了无线局域网升级成本。尽管802.11g在技术上有多种创新,但仍不能很好地解决移动和漫游的问题,也许真的只有期待—

  IEEE802.11n工作小组由高吞吐量研究小组发展而来,并计划将WLAN的传输速率从802.11a和802.11g的54Mbps增加至108Mbps以上,最高速率可达320Mbps,成为802.11b、802.11a、802.11g之后的另一个重要标准。和以往的802.11标准不同,802.11n协议为双频工作模式(包含2.4GHz和5.8GHz两个工作频段),保障了与以往的802.11a/b/g标准兼容。

  关键技术

  保证带宽、提高传输速率

  关键技术无疑决定着新标准的命运,如OFDM技术、MIMO(多入多出)技术、智能天线和软件无线电等,都开始应用到无线局域网中,用以提升WLAN性能。而802.11n计划采用MIMO与OFDM相结合,使传输速率成倍提高。另外,天线及传输技术,使得无线局域网的传输距离大大增加,可以达到几公里(并且能够保障100Mbps的传输速率)。

  OFDM技术

  OFDM技术是MCM(Multi-Carrier Modulation,多载波调制)的一种。其核心是将信道分成许多正交子信道,在每个子信道上进行窄带调制和传输,这样减少了子信道之间的相互干扰。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上的频率选择性衰落是平坦的,大大消除了符号间干扰,如图1所示。另外,由于在OFDM系统中各个子信道的载波相互正交,于是它们的频谱是相互重叠的,这样不但减小了子载波间的相互干扰,同时又提高了频谱利用率。

 



  还有,OFDM技术通过使用不同数量的子信道来实现上行和下行链路中不同的传输速率,很好地解决了无线数据业务的非对称性传输问题。同时,OFDM系统还在某种程度上抑制了由于窄带干扰带来的影响。

  尽管同单载波系统相比,OFDM还存在一些缺点,例如易受频率偏差的影响,存在较高的峰值平均功率比(PAR),但通过结合时空编码、分集、干扰(包括符号间干扰ISI和邻道干扰ICI)抑制以及智能天线技术,可以最大程度地提高物理层的可靠性。如再结合自适应调制、自适应编码以及动态子载波分配、动态比特分配算法等技术,可以使其性能进一步优化。

  MIMO技术

  多入多出(MIMO)技术是无线通信领域智能天线技术的重大突破。MIMO技术能在不增加带宽的情况下成倍地提高通信系统的容量和频谱利用率。

  在室内,电磁环境较为复杂,多径效应、频率选择性衰落和其他干扰源的存在使得实现无线信道的高速数据传输比有线信道困难,多径效应会引起衰落,因而被视为有害因素。然而研究结果表明,对于MIMO系统来说,多径效应可以作为一个有利因素加以利用。MIMO系统在发射端和接收端均采用多天线(或阵列天线)和多通道。MIMO的多入多出是针对多径无线信道来说的,如图2所示。传输信息流S(k)经过空时编码形成N个信息子流Ci(k),i=1,……,N。这N个子流由N个天线发射出去,经空间信道后由M个接收天线接收。多天线接收机利用先进的空时编码处理能够分开并解码这些数据子流,从而实现最佳的处理。

 



  特别是,这N个子流同时发送到信道,各发射信号占用同一频带,因而并未增加带宽。若各发射、接收天线间的通道响应独立,则MIMO系统可以创造多个并行空间信道。MIMO将多径无线信道与发射、接收视为一个整体进行优化,从而可实现高的通信容量和频谱利用率,这是一种近于最优的空域时域联合的分集和干扰对消处理。

  MIMO OFDM技术

  MIMO OFDM技术是通过在OFDM传输系统中采用阵列天线实现空间分集,提高了信号质量,是联合OFDM和MIMO而得到的一种新技术。它利用了时间、频率和空间三种分集技术,使无线系统对噪声、干扰、多径的容限大大增加,系统原理如图3所示。MIMO OFDM主要包括以下关键设计: 发送分集、空间复用、接收分集、干扰消除、软译码、信道估计、同步、自适应调制和编码等技术,其中的技术细节在此不再冗述。

 



  MAC层优化技术

  从网络逻辑结构上来看,802.11只定义了物理层及介质访问控制(MAC)子层。MAC层提供对共享无线介质的竞争使用和无竞争使用,具有无线介质访问、网络连接、数据验证和保密等功能。802.11n标准小组为了提升整个网络的吞吐量,对MAC层协议也进行了优化,改变数据帧结构,增加了净负载所占的比重,减少管理检错所占的字节数,大大提升了网络的吞吐量。

  智能天线技术

  智能天线是一个由多组独立天线组成的天线阵列系统,该阵列的输出与收发信机的多个输入相结合,可提供一个综合的时空信号。与单个天线不同的是,天线阵列系统能够动态地调整波束的方向,以使每个用户都获得最大的主瓣,并减小了旁瓣干扰。这样不仅改善了SINR(Signal-to-Interference and Noise Ratio,信号干扰和噪声比),还提高了系统的容量,扩大了小区的最大覆盖范围,减小了移动台的发射功率。智能天线的基本结构如图4所示。

 



  智能天线技术保障了能够以不低于108Mbps的传输速率进行通信,同时可以作为蜂窝移动通信的宽带接入部分,与无线广域网更紧密地结合。一方面,802.11n可以为用户提供高数据率的通信服务(比如视频点播VOD、在线观看HDTV);另一方面,无线广域网为用户提供了更好的移动性。

  软件无线电技术解决移动难题

  目前无线局域网多种标准并存,不同标准采用不同的工作频段、不同的调制方式,造成系统间难以互通,移动性差,而软件无线电是一种最有希望解决这些问题的技术。

  软件无线电是指研制出一个完全可编程的硬件平台,所有的应用都通过在该平台上的软件编程实现。换言之,不同系统的基站和移动终端都可以由建立在相同硬件基础上的不同软件实现。该技术将能保证各种移动台、各种移动通信设备之间的无缝集成,并大大降低了建设成本。

  基于软件无线电的移动通信具有以下特点:

  (1)在同一硬件平台上兼容不同的系统;

  (2)具有自动漫游能力,能在不同系统之间进行智能切换;

  (3)可以下载公用软件并进行自身的升级;

  (4)支持语音、数据、图像和传真等多种业务,并能根据业务流量,信道质量等情况,自动选择合适的传输信道;

  (5)自动选择通信模式,采用合适的通信协议和信号格式实现远端通信。

  软件无线电在802.11n中的应用,将根本改变其网络结构,实现无线局域网与无线广域网融合并能容纳各种标准、协议,提供更为开放的接口,最终大大增加网络的灵活性。

  作为一个新标准,与以前的802.11协议相比,IEEE802.11n无线局域网有两方面的优势。一是短期的优势,有较高的传输速率,数据传输速率达100Mbps以上,使无线局域网平滑地和有线网络结合,全面提升了网络吞吐量;二是长期的优势,今后无线局域网的产品可以使用双频方式,即在2.4GHz和5.8GHz两个频段,基于MIMO+OFDM调制技术,提高数据传输速率。同时,802.11n的传输距离更远,容易与无线广域网融合。(山东大学 韩旭东 摘自《计算机世界报》)

 

 

 

XKMS协议介绍及其工作原理

一直以来,公钥体系(PKI)对加强Web业务的安全性可谓功不可没,但从技术角度而言,PKI的部署过于麻烦,而且成本高昂,因此难以得到广泛的应用。对此,3W协会提出了一种改善后的新标准,即XML钥匙管理定义(XKMS)。XKMS不但继承了PKI的全部精华,而且丝毫没有减少安全性和可扩展性,同时大大降低了PKI的成本。为推动Web业务的平稳发展注入了新的力量。

与KDC相比( Kerberos钥匙发布中心),Kerberos使用共享机密的加密方法,所以很容易成为黑客攻击的对象,加之它包含了太多的敏感信息,因此很难推广使用。而PKI使用了一套公钥和私钥系统,避开了这些问题:私钥仅被某一个人持有;而公钥则可公开发送。所以,利用某个PKI安全消息,对于任何两个人之间的安全通信而言,类似KDC的在线业务显然就没必要了。此外,PKI具有层次钥匙体系和对通过层次的路径进行实时分析的功能。这些都使得无须事先安排的个人安全通信成为可能。

但PKI的部署也是非常繁琐的:它要求每个用户和应用都要验证他们与之通信的每个用户的身份,以确保对方的身份真实有效,而开发人员是很难开发出相应的系统来满足这些要求的。实际上,PKI将所有的信任决定统统抛给了用户,而这就要求复杂的程序库和配置信息。

XKMS的出现,使得某个客户端和应用服务器可以共享XKMS服务来彼此巩固,并处理他们之间的请求。XKMS将许多PKI协议和数据格式,如证书管理协议和简单证书注册协议等,替换成一个基于XML的协议。XKMS也可被用来实施客户对客户、应用服务器对客户、服务器对服务器等环境。在XKMS环境中,信任的决定是由一个公共的服务器完成的。XKMS用户仅需的配置工作就是服务器的URL地址和服务器将用来签名答复的证书,而使用不同的URL地址,可支持不同的信任模型。

XKMS协议提供了三种基本操作:定位查找,即还原某一个加密的钥匙,以和另一个人进行安全通信;确认,即确保某钥匙处于激活状态而没有被废除;登记,用来发布或重新发布,或废除钥匙。由于XKMS是建立在XML的数字签名和加密标准基础之上,因此有许多相似之处。例如,定位查找和确认的操作均要使用一个元素,这意味着某个消息接收者可以通过拾取元素来检查发送者的身份,查看服务器的响应,而服务器则仅以私钥做出响应。

由于XKMS开创了一种信任服务,通过向PKI提供XML接口使用户从繁琐的配置中解脱出来。现在有多家厂商都开始开发XKMS工具包和应用系统,更有许多XML Web服务标准,包括Security Assertions Markup Language和WS-Security等都使用数字签名来保护验证内容和消息数据。目前此标准正处于最后的阶段。



  工作原理

帧中继

帧中继(frame relay)是近几年兴起的一种新的公用数据交换网,于1992年起步,1994年开始获得迅速发展。帧中继是一种有效的数据传输技术,它可以在一对一或者一对多的应用中快速而低廉的传输数字信息。它可以使用于语音、数据通信,既可用于局域网(LAN)也可用于广域网(WAN)的通信。每个帧中继用户将得到一个接到帧中继节点的专线。帧中继网络对于端用户来说,它通过一条经常改变且对用户不可见的信道来处理和其他用户间的数 据传输。

主要特点:用户信息以帧为单位进行传送,网络在传送过程中对帧结构、传送差错等情况进行检查,对出错帧直接与以丢弃,同时,通过对帧中地址段DLCI的识别,实现用户信息的统计复用。

帧中继是一种包交换通信网络,一般用在开放系统互连参考模型中的数据链路层。永久虚电路PVC是用在物理网络交换式虚电路(SVCs)上构成端到端逻辑链接的,类似于在公共电话交换网中的电路交换,也是帧中继描述中的一部分,只是现在已经很少在实际中使用。另外,帧中继最初是为紧凑格式版的X.25协议而设计的。

数据链路连接标识符DLCI是用来标识各端点的一个具有局部意义的数值。多个PVC可以连接到同一个物理终端,PVC一般都指定承诺信息速率CIR和额外信息率EIR。

帧中继被设计为可以更有效的利用现有的物理资源,由于绝大多数的客户不可能百分之百的利用数据服务,因此允许可以给电信运营商的客户提供超过供应的数据服务。正由于电信运营商过多的预定了带宽,所以导致了帧中继在某些市场中获得了坏的名声。

电信公司一直在对外出售帧中继服务给那些在寻找比专线更低廉的客户,根据政府和电信公司的政策,它被用于各种不同的应用领域。

现在,帧中继已经被ATM和纯基于IP的产品(包括IP虚拟专用网)所替代。

      

帧中继是一种局域网互联的 WAN 协议,它工作在 OSI 参考模型的物理层和数据链路层。它为跨越多个交换机和路由器的用户设备间的信息传输提供了快速和有效的方法。

  帧中继是一种数据包交换技术,与 X.25 类似。它可以使终端站动态共享网络介质和可用带宽。帧中继采用以下两种数据包技术:1)可变长数据包;2)统计多元技术。它不能确保数据完整性,所以当出现网络拥塞现象时就会丢弃数据包。但在实际应用中,它仍然具有可靠的数据传输性能。

  帧中继帧通过“虚电路”传输到其目的地, 帧中继的虚电路是源点到目的点的逻辑链路,它提供终端设备之间的双向通信路径,并由数据链路连接标识符(DLCI)唯一标识。 帧中继采用 复用技术,将大量虚电路复用为单一物理电路以实现跨网络传输。这种能力可以降低连接终端的设备和网络的复杂性。虚电路能够通过任意数量的位于帧中继数据包转换网络上的中间交换机。

  帧中继网络提供的业务有两种:永久虚电路(PVC)和交换虚电路(SVC)。永久虚电路由网络管理器建立用来提供专用点对点连接;交换虚电路建立在呼叫到呼叫(call-by-call)的基础上,它采用与建立 ISDN 相同的信令。

  由于其高带宽和高可靠性,在局域网互连中,帧中继可以作为专线和 X.25 网络的一个有吸引力的替代方案。

协议结构
帧中继(基于 LAPF Q.922)帧结构如下所示:

1 byte

2 bytes

Variable

2 bytes

1 byte

Flags

Address

Data

FCS

Flags

 

  • Flags ― 划定帧的起始和结束。该字段值不变,并表示为十六进制数 7E 或二进制数 01111110。
  • Address ― 包含以下信息:

 

6

7

8

12

13

14

15

16 bit

DLCI

C/R

E

DLCI

FECN

BECN

DE

EA

 

    • DLCI ― 数据链路连接标识符字段表示帧地址并与PVC相对应。
    • C/R ― 指明帧是命令还是响应。
    • EA ― 扩展地址字段,表示帧中继头中附加的两个字节。
    • FECN ― 前向显式拥塞通知(参见下面的 ECN)。
    • BECN ― 后向显式拥塞通知(参见下面的 ECN)。
    • DE ― 丢弃指示。
  • Data ― 包括封装上层数据。可变长字段中的每帧包括一个用户数据,或者有效载荷字段长将变为 16,000 Octets。该字段通过帧中继网络用于传输高层协议数据包(PDU)。
  • Frame Check Sequence ― 确保传输数据的完整性。通过源设备计算该字段值,通过接收方校验该值以确保传输的完整性。

  帧中继帧结构遵循于 LMI 规范,它由以下各字段构成:

 

1 byte

2 bytes

1 byte

1 byte

1 byte

1 byte

Flags

LMI DLCI

I-Indicator

Protocol Dis

Call Ref

M-Type

Information Elements (Variable)

FCS

Flags

 

  • Flags ― 划定帧的起始和结束。
  • LMI DLCI ― 帧被识别为 LMI 帧,替代基本帧中继帧。LMI 协会规范中的特定 LMI DLCI 值为 DLCI = 1023。
  • Unnumbered Information Indicator ― 将 Poll/Final 位设置为0。
  • Protocol Discriminator ― 总包含一个代表 LMI 帧的值。
  • Call Reference ― 总包含0。当前该字段不作任何使用。
  • Message Type ― 将帧标签为以下其中一种信息类型:
    • Status-Inquiry Message - 允许用户设备查询网络状态。
    • Status Message ―响应 Status-Inquiry Messages信息。Status Messages 包括 Keepalive 和PVC Status Message 等信息。
  • Information Elements ― 包括个人信息元素(IE)的可变量。IE 由以下字段构成:
    • IE Identifier ― 唯一识别 IE。
    • IE Length ― 表示 IE 的长度。
    • Data ― 由一个或多个字节构成,其中包括封装上层数据。
  • Frame Check Sequence(FCS)

ATM(异步传输模式)

异步传输模式,又叫信元中继。ATM采用面向连接的交换方式,它以信元为单位。每个信元长53字节。其中报头占了5字节。ATM能够比较理想地实现各种QoS,既能够支持有连接的业务,又能支持无连接的业务。是宽带ISDN(B-ISDN)技术的典范。

  异步传输模式(ATM)在 ATM 参考模式下由一个协议集组成,用来建立一个在固定 53 字节的数据包(信元)流上传输所有通信流量的机制。固定大小的包可以确保快速且 容易地实现交换和多路复用。 ATM 是一种面向连接的技术,也就是说,两个网络系统要建立相互间的通信,需要通知中间介质服务需求和流量参数。

  ATM 参考模式分为三层:ATM 适配层(AAL)、ATM 层和物理层。 AAL 连接更高层协议到 ATM 层,其主要负责上层与 ATM 层交换 ATM 信元。当从上层收到信息后, AAL 将数据分割成 ATM 信元;当从 ATM 层收到信息后, AAL 必须重新组合数据形成一个上层能够辨识的格式,上述过程即称之为分段与重组(SAR)。不同的 AAL 用于支持在 ATM 网络上使用的不同的流量或服务类型。

  ATM 层主要负责将信元从 AAL 转发给物理层便于传输和将信元从物理层转发给 AAL 便于其在终端系统的使用。 ATM 层能够决定进来的信元应该被转发至哪里;重新设置相应的连接标识符并且转发信元给下一个链接、缓冲信元以及处理各种流量管理功能,如信元丢失优先权标记、拥塞标注和通用流控制访问。此外 ATM 层还负责监控传输率和服从服务约定(流量策略)。

  ATM 的物理层定义了位定时及其它特征,将数据编码并解码为适当的电波或光波形式,用于在特定物理媒体上传输和接收。此外它还提供了帧适配功能,包括信元描绘、信头错误校验(HEC)的生成和处理、性能监控以及不同传输格式的负载率匹配。物理层通常使用的介质有 SONET 、DS3 、光纤、双绞线等。

协议结构

ATM 信元格式:

HEADER

GFC or VPI

VPI

VPI

VCI

VCI

VCI/td>

PT(3 Bit)

CLP

HEC

IE

Cell Payload(48 Bytes)

 

  • Header ― (5字节)通用流控制 VPI/VCI 和其它控制头。
  • IE — (48字节)信元有效载荷。

  物理层规范说明 ― 专用 UNI:

 

帧格式

比特率/线路速率

媒体

Cell Stream

25.6 Mbps/32 Mbaud

UTP-3

STS-1

51.84 Mbps

UTP-3

FDDI

100 Mbps/125 Mbaud

Multimode Fiber

STS-3c STM-1

155.52 Mbps

UTP-5

STS-3c STM-1

155.52 Mbps

Single-Mode Fiber, Multimode Fiber, Coax pair

Cell Stream

155.52 Mbps/ 194.4Mbaud

Multimode Fiber, STP

STS-3c STM-1

155.52 Mbps

UTP-3

STS-12, STM-4

 622.08 Mbps

SMF, MMF

 

    物理层规范说明 ― 公用UNI:

 

帧格式

比特率/线路速率

媒体

DS1

1.544 Mbps

Twisted pair

DS3

44.736 Mbps

Coax pair

STS-3c, STM-1

155.520 Mbps

Single-mode Fiber

E1

2.048 Mbps

Twisted pair, Coax pair

E3

34.368 Mbps

Coax Pair

J2

6.312 Mbps

Coax Pair

N × T1

N × 1.544 Mbps

Twisted Pair

 

SDH(同步数字体系)

SDH是同步数字体系(Synchronous Digital Hierarchy)的缩写,根据ITU-T的建议定义,它为不同速度的数字信号的传输提供相应等级的信息结构,包括复用方法和映射方法,以及相关的同步方法组成的一个技术体制。

早期,美国贝尔通信研究所提出SONET体制,也是一种分等级的数字信号传输体制。后来,国际电话电报委员会(CCITT)于1988年接受了这个创新的概念,并更名为同步数字体系(S DH)。现时SDH是除了美加以外世界各地的标准,主要应用光纤作为传输介质,同时也可以用微波作为介质。同步数字体系在20世纪90年代之前几乎完全应用于PSTN 公用电话网传输语音电信业务。20世纪90年代的国际互联网飞速发展导致数据通信对数据传输的要求越来越高。目前通过扩展不同的协议来增强SDH的面向多业务的应用的技术成为研究的热点。

SDH网络节点接口
SDH网络节点接口定义了统一的标准的用于网络设备互连的光接口,主要包括数据成帧规则,速率和编码,以及复用方法和运维管理信息。速率等级简称为STM-N,N为级别(N=1,4,16,64,256),例如基本的第一级STM-1规定为155 520Kbit/s。其他等级的速率以4倍的方式递增,STM-4约为622Mbit/s,STM-16约为2.5Gbit/s,STM-64速率约为10Gbit/s。特别的STM-256(40G)的速率目前商用的很少,主要受光电器件的物理极限的限制。 信息高速公路近来已成为人们的热门话题。到21世纪,人们借助与信息高速公路,可以在家中完成各种日常活动。而构成信息高速公路的最基本单元——公路——就将由SHD设备构成。

——SDH(SynchronosDigitalHierarchy)是一种新的数字传输体制。它将称为电信传输体制的一次革命。

——我们可将信息高速公路同目前交通上用的高速公路做一个类比:公路将是SDH传输系统(主要采用光纤作为传输媒介,还可采用微波及卫星来传输SDH)信号,立交桥将是大型ATM交换机SDH系列中的上下话量复用器(ADM)就是一些小的立交桥或叉路口,而在“SDH高速公路”上跑的“车”,就将是各种电信业务(语音、图像、数据等)

  SDH技术同传统的PDH技术相比,有下面几个明显的优点:

  1、统一的比特率:——在PDH中,世界上存在着欧洲、北美及日本三种体系的速率等级。而SDH中实现了统一的比特率。此外还规定了统一的光接口标准,因此为不同厂家设备间互联提供了可能。

  2、极强的网管能力:在SDH帧结构中规定了丰富的网管字节,可提供满足各种要求的能力。

  3、自愈保护环:在SDH设备还可组成带有自愈保护能力的环网形式,这样可有效地防止传输媒介被切断,通信业务全部终止的情况。

  4、SDH技术中采用的字节复接技术: ——若把SDH技术与PDH技术的主要区别用铁路运输类比一下的话,PDH技术如同散装列车,各种货物(业务)堆在车厢内,若想把某一包特定货物(某一项传输业务)在某一站取下,即需把车上的所有货物先全部卸下,找到你所需要的货物,然后再把剩下的货物及该站新装货物一一堆到车上,运走。因此,PDH技术在凡是需上下电路的地方都需要配备大量各次群的复接设备。而SDH技术就好比集装箱列车,各种货物(业务)贴上标签(各种开销:Overhead)后装入集装箱。然后小箱子装入大箱子,一级套一级,这样通过各级标签,就可以在高速行驶的列车上准确地将某一包货物取下,而不需将整个列车“翻箱倒柜”(通过标签可准确地知道某一包货物在第几车厢及第几级箱子内),因此,只有在SDH中,才可以实现简单地上下电路。

  因此,可以肯定地说,即将实现的信息高速公路将基本上由SDH设备构成,只有同高速公路(SDH)相连的支路、叉路将仍保留部分PDH设备。

——据统计目前世界上共有17家电讯厂商掌握SDH技术。随着中国邮电工业总公司及所属四家工厂与邮电部第五研究所合作研制的ATM-1/STM-4级别的SDH设备的推出,该公司成为了世界上第18家能够提供SDH设备的企业。

令牌环

令牌环是定义在IEEE 802.5标准中的一种局域网接入方式。

令牌环网络的基本原理是利用令牌来避免网络中的冲突,与使用冲突检测算法CSMA/CD的以太网相比,提高网络的数据传送率。一个4M的令牌环网络和一个10M的以太网数据传送率相当,一个16M的令牌环网络的数据传送率接近一个100M的以太网。

令牌环也暗示了除了使用令牌外,这还是一个环形的网络拓扑。令牌环是一个OSI 7层模型中的第 二层(数据链路层)协议。除了4Mbps,16Mbps外,IEEE 802.5也定义了100Mbps和1Gbps的数据率,不过后两者极少被用到。

令牌环网络是上世纪80年代中期由IBM开发出,很长一段时间是IBM的网络标准,被所有IBM生产的计算机支持。令牌环网络在实际应用中确确实实是“环”形网络,只不过由于使用所谓多站接入单元的设备,可以实现星形的布线。这样一个设备具有一定智能,会将不用的端口环接起来,使令牌能畅通。IEEE 802.5标准是主要基于IBM的令牌环网络的,但是也有一些细微的差别。

无线局域网

无线局域网(Wireless LAN) 为IEEE定义的一个无线网络通信的工业标准(IEEE802.11)。

无线局域网第一个版本发表于1997年,其中定义了介质访问接入控制层(MAC层)和物理层。物理层定义了工作在2.4GHz的ISM频段上的两种无线调频方式和一种红外传输的方式,总数据传输速率设计为2Mbit/s。两个设备之间的通信可以自由直接(ad hoc)的方式进行,也可以在基站(B ase Station, BS)或者访问点(Access Point,AP)的协调下进行。

1999年加上了两个补充版本: 802.11a定义了一个在5GHz ISM频段上的数据传输速率可达54Mbit/s的物理层,802.11b定义了一个在2.4GHz的ISM频段上但数据传输速率高达11Mbit/s的物理层。 2.4GHz的ISM频段为世界上绝大多数国家通用,因此802.11b得到了最为广泛的应用。苹果公司把自己开发的802.11标准起名叫AirPort。1999年工业界成立了Wi-Fi联盟,致力解决符合802.11标准的产品的生产和设备兼容性问题。 802.11标准和补充。

  • 802.11 1997年,原始标准(2Mbit/s 工作在2.4GHz)
  • 802.11a1999年,物理层补充(54Mbit/s工作在5GHz)
  • 802.11b1999年,物理层补充(11Mbit/s工作在2.4GHz)
  • 802.11c,符合802.1D的媒体接入控制层(MAC) 桥接(MAC Layer Bridging)
  • 802.11d,根据各国无线电规定做的调整。
  • 802.11e ,对服务等级(Quality of Service, QS) 的支持。
  • 802.11f,基站的互连性(Interoperability)
  • 802.11g,物理层补充(54Mbit/s工作在2.4GHz)
  • 802.11h,无线覆盖半径的调整,室内(indoor) 和室外(outdoor) 信道(5GHz频段)
  • 802.11i,安全和鉴权(Authentification)方面的补充。

除了上面的IEEE标准,另外有一个被称为IEEE802.11b+的技术,通过PBCC技术(Packet Binary Convolutional Code) 在IEEE802.11b(2.4GHz频段) 基础上提供22Mbit/s的数据传输速率。但这事实上并不是一个IEEE的公开标准,而是一项产权私有的技术(产权属于美国德州仪器,Texas Instruments)。

技术简述

网络成员和结构

  • 站点(Station) ,网络最基本的组成部分。
  • 基本服务单元(Basic Service Set, BSS) 。网络最基本的服务单元。最简单的服务单元可以只由两个站点组成。站点可以动态的联结(associate)到基本服务单元中。
  • 分配系统(Distribution System, DS) 。分配系统用于连接不同的基本服务单元。分配系统使用的媒介(Medium) 逻辑上和基本服务单元使用的媒介是截然分开的,尽管它们物理上可能会是同一个媒介,例如同一个无线频段。
  • 接入点(Acess Point, AP) 。接入点即有普通站点的身份,又有接入到分配系统的功能。
  • 扩展服务单元(Extended Service Set, ESS) 。由分配系统和基本服务单元组合而成。这种组合是逻辑上,并非物理上的--不同的基本服务单元物有可能在地理位置相去甚远。分配系统也可以使用各种各样的技术。
  • 关口(Portal) ,也是一个逻辑成分。用于将无线局域网和有线局域网或其它网络联系起来。

这儿有3种媒介,站点使用的无线的媒介,分配系统使用的媒介,以及和无线局域网集成一起的其它局域网使用的媒介。物理上它们可能互相重迭。IEEE802.11只负责在站点使用的无线的媒介上的寻址(Addressing)。分配系统和其它局域网的寻址不属无线局域网的范围。

IEEE802.11没有具体定义分配系统,只是定义了分配系统应该提供的服务(Service) 。整个无线局域网定义了9种服务,

  • 5种服务属于分配系统的任务,分别为,联接(Association), 结束联接(Diassociation), 分配(Distribution), 集成(Integration), 再联接(Reassociation)
  • 4种服务属于站点的任务,分别为,鉴权(Authentication), 结束鉴权(Deauthentication), 隐私(Privacy), MAC数据传输(MSDU delivery)

posted on 2013-07-09 15:59  小彭屋  阅读(2491)  评论(0编辑  收藏  举报