标题：DLSW
DLSw概述
DLSw的工作原理如图1所示：
  图1 DLSw工作原理示意图
(1) 运行DLSw的路由器将本地SNA设备的LLC2（Logical Link Control，type 2，第二类逻辑链路控制）格式的帧转换成可封装在TCP报文中的SSP（Switch-to-Switch Protocol，交换机到交换机协议）帧；
(2) SSP帧通过TCP通道跨越广域网送达远端路由器；
(3) 远端路由器将SSP帧再转换成相应的LLC2帧，发送给对端SNA设备。
因此，DLSw使得本地的SNA终端设备以为远端的SNA设备和自己处于同一个网络上。但DLSw与透明网桥不同，它不是将原来的LLC2协议帧直接透传到对端，而是将原来的LLC2协议帧转换成SSP协议帧来完成将原有数据在TCP报文中的封装。它具有本地应答机制，因此，可以减少不必要的数据传输（例如确认帧和保持活跃帧），并且解决了数据链路控制超时的问题。
利用DLSw技术，还可以实现SDLC（Synchronous Data Link Control，同步数据链路控制）链路协议的跨TCP/IP传输。先将SDLC格式的报文转换成LLC2格式的报文，再通过DLSw和远端互联。这样，DLSw还支持LAN与SDLC之间不同介质的互联。
DLSw目前有两种版本：DLSw1.0和DLSw2.0。基于RFC 1795实现的DLSw为DLSw1.0版本；为了提高产品可维护性，减少网络开销，系统基于RFC 2166实现了DLSw2.0版本。DLSw2.0中增加了支持以组播及单播方式发送UDP探询报文的功能。当通信对端也是DLSw2.0时，二者可以使用UDP报文探询可达信息，仅在有数据传输需求时才建立TCP连接。
DLSw1.0与DLSw2.0
1. DLSw1.0存在的问题●TCP连接的问题
DLSw1.0在配置本地对等体和远端对等体以后，无论当时本地及远端对等体是否有建立连接的需求，本地对等体都会立即尝试与远端对等体建立TCP连接（先建立两条TCP连接，完成性能交换以后，断掉一条TCP连接）；且所有报文（包括探询报文、建立电路请求报文、数据报文）都使用TCP连接传输，这在一定程度上造成了网络资源的浪费。
●广播报文泛滥
尽管DLSw1.0实现了本地应答机制，但在DLSw的可达信息列表尚未有可达路径信息或可达路径信息过少的时候，探询报文将通过已经建立好的TCP连接大量涌向广域网。
●可维护性较差
链路中断时，DLSw1.0使用两种报文通知对端，但不能告诉对端是什么原因导致的链路中断，所以一旦DLSw出现链路异常中断，很难明确是由哪一种情况引起的。2. DLSw2.0增加的功能针对以上问题，DLSw2.0做了相应的改进，并兼容DLSw1.0。
为了方便介绍现将DLSw2.0组网中的各部分定义如下：
  图2 DLSw2.0组网示意图
如图2所示，源终端是指发起通信的终端，目标终端是指接受通信的终端，源DLSw路由器是指与源终端连接的使能了DLSw的路由器，目标DLSw路由器是指与目标终端连接的使能了DLSw的路由器。下文中提到源DLSw2.0路由器，则是指使能了DLSw功能，且其版本为DLSw2.0的路由器。
●使用UDP报文探询对等体地址
为了避免建立不必要的TCP连接，DLSw2.0一般不使用TCP连接发送探询报文，而改用UDP报文发送（除非此时TCP连接已经存在）。当使用UDP报文探询可达信息时，有两种报文发送方式――组播和单播（分别用于不同的情况）。以UDP方式进行探询报文的发送和接收，一定程度上减少了建立TCP连接的数量，避免了网络资源的浪费。
●按照需求建立单条TCP通道
在源DLSw2.0路由器和目标DLSw2.0路由器之间使用UDP报文探询到可达信息以后，当源终端和目标终端有建立链路的需求时，源DLSw2.0路由器和目标DLSw2.0路由器之间才建立TCP连接。DLSw2.0路由器之间建立TCP通道的过程简化为两个阶段：首先建立一条TCP连接；然后两个设备进行性能交换，如果能力协商不成功，源路由器会向对端发送拒绝报文，之前建立的TCP连接也会被断开。
在DLSw2.0中，有建立链路需求的时候才建立一条TCP连接，这种方式减少了建立、维护TCP连接的开销，提高了系统资源的利用率。
●增强可维护性
DLSw2.0定义了五种电路中断原因：探测到未知错误、DLSw从终端接收到DISC帧、终端检测到DLC错误、电路标准协议错误和系统初始化。这五种电路中断原因，将被报文携带知会给对端。
DLSw+介绍
这一章描述DLSw+以及设计和配置DLSw+网络.标准的DLSW关键特性和在DLSw+中增强特性.
这一章建议所有读者能仔细阅读.介绍DLSw+设计向导DLSw+设计向导描述了DLSw+并且提供配置实例帮助你快速配置简单的DLSW网络.它还包括一些增强特性，诉我们何时使用，如何使用.它提供了一些参数帮助你更好的协调网络，层次设计，调试和迁移指导.DLSw+定义数据链路层转换加(Data link switching Plus --- DLSw+)是一种把SNA和NetBIOS数据在广域网或校园网中传输的方法.终端系统可通过令牌环网(Token Ring),以太网(Ethernet),同步数据链路控制(SDLC)协议或光纤接口(FDDI)连接到网上.DLSw+能转换不同介质间数据，本地终止数据链接，保持应答，keepalive和关闭广域网的轮询(polling)信息.数据链路层终止在本地还剔除了由于网络阻塞或重新寻找路由引起的控制超时.最后，DLSw+还提供了动态寻找SNA或NetBIOS资源机制和高数算法来尽量减少广播传输.
在文档中，DLSw+路由器可看作peer routers,peers和partners.两个DLSw+路由器之间连接称作peer connection.一个DLSw circuit 包含初始终端系统与初始路由器之间数据链路控制连接，两个路由器之间连接(通常是TCP连接),目的终端系统与目的路由器之间数据链路控制连接.一个单一的peer connection连接可以支持多个circuits.
DLSw+支持SNA PUs之间或NetBIOS客户与服务器间建立circuits.SNA PU连接支持PU2.0/2.1到PU 4,PU1到PU 4(SDLC),PU 4到PU 4(Token Ring),和PU 2.1到PU 2.1.DLSw标准DLSw标准目前是版本 1,定义在RFC 1795中，它描述了IBM原创的实现DLSw的6611标准.
DLSw标准描述了路由器间建立对等连接(peer connection),定位资源，传送数据，流量控制和纠错的转换协议(Switch-to-switch Protocol --- SSP).RFC 1495规定终止对等路由器间的数据链路连接，换句话说，数据链路连接是本地应答的.
通过数据链路连接的本地应答，数据链路交换标准终止了链路层应答和keepalive信息在广域网中传输.另外，由于数据链路连接是本地应答的，链路层的超时不会发生.DLSw路由器就是把多重的数据链路控制的传输放在相应的TCP管道上并通过IP网可靠的传送出去.
两个终端系统通过DLSw建立连接，首先要实现：
建立对等连接(Establish peer connection )
性能交换(Exchange capabilities )
建立链路(Establish circuit)
建立对等连接(Establish peer connection )
在两个路由器间交换SNA或NetBIOS传输之前，首先它们之间要建立TCP连接.标准允许不需要的TCP连接是未激活的.(Cisco路由器当其对等路由器是其它厂家的时，额外的TCP连接是drop的.)标准也允许额外的TCP连接以实现不同等级的优先级.
性能交换(Exchange capabilities )
TCP连接建立之后，路由器交换它们的性能.性能包括DLSw版本号，初始接收窗口大小，SAPs值和支持TCP会话个数等等.同时还传输MAC地址表和NetBIOS名字表.我们也可以配置MAC地址表和NetBIOS名字表以避免广播.性能交换之后，DLSw partner准备建立SNA链路.
建立链路(Establish circuit)
一组终端系统建立链路包括寻找目的资源(基于MAC地址或NetBIOS名)和设置终端系统的数据链路连接.SNA和NetBIOS控制是不同的.在局域网中SNA设备发送一个带着目的MAC地址的探测帧(一个TEST帧和/或交换标识XID帧)寻找其它SNA设备.当一个DLSw路由器接收到探测帧后，它发送一个canureach帧给每一个它能到达的合伙路由器.如果其中一个DLSw partner能到达指定的MAC地址，它就应答icanreach帧.
在这里，DLSw partner由三种连接一个circuit:每个路由器和本地SNA指定系统间数据链路连接和DLSw partner之间TCP连接.这个链路用源和目的链路号(circuit ID)唯一标识，每一个链路号又由源和目的MAC地址，源和目的链路服务访问点(LSAPs)和一个数据链路控制号来定义.一旦链路建立起来，信息帧就可以传输了.DLSw+特点DLSw+是Cisco实现的数据链路交换.它比标准增加许多新功能.包括下面几点： 
扩展性---构建IBM网络减少广播传输量一个方法，增强网络可扩展性. 
实用性---快速地动态地查找相关路径和可选择地通过多个激活的peers,ports作负载平衡. 
传输灵活性---高性能的传输避免了超时引起的网络中断. 
操作模式---动态检测对等路由器的性能，按它们的性能检测.
DLSw+改进特性
有意义的因素是限制局域网探测帧在广域网中传输数量.有几种DLSw+优化来减少探测帧数量.对等组的概念对等组设计成可限制网状结构的网络广播复制.当网络需要任何一点均互相连接(如APPN和NETBIOS环境),RSRB或标准的DLSw就需要每一组路由器间均建立peer连接，这样会浪费许多带宽和路由器的CPU.一个比较好的方法是把路由器分成组，指定其中一个作中心路由器复制广播.这个性能DLSw+支持.
图一：网状结构到分组结构
  DLSw+中，在一个对等组里，一个或几个路由器指定作边缘路由器(border peer),组中路由器不是一对一的互连而是与border peer建立对等连接，当DLSw+路由器收到测试帧时只发送一个探测帧给组中的border peer路由器.border peer路由器检测不在本组中会再发给其它border peer路由器.探测帧防火墙可以用一些过滤和防火墙技术来减少广域网中探测帧的传输.
探测帧防火墙是只允许一个探测帧发送给广域网，当一个探测帧带着MAC地址发送出去等待应答时，后来的带相同MAC地址的探测帧不能发送出去.一旦有应答回来，所有这些后来的帧都得到本地应答.DLSw+增强的实用性DLSw+提供了基本网络需要： 
容错---首选的建立一条链路后，当它不能运行时重新连接到其它相关的路径上. 
负载平衡---通过多个DLSw+ peers分布建立链路. 
默认的，DLSw+路由器是使用容错模式的.在这种方式下，当DLSw+ peer接收到远端test帧，它检测它的缓存.若缓存中有这一项就直接应答test帧而不需在网络上发送canureach帧.如果缓存中没有该项，路由器发送canureach帧给它的peers.
当你的系统有两条路径到达目的地，你可以配置成负载平衡.DLSw+传输灵活性DLSw+路由器间传输连接不只限于标准DLSw的TCP方式.DLSw+路由器间Cisco支持不同的传输协议： 
TCP/IP-传输SNA和NetBIOS需要本地应答，防止超时或用标准DLSw时. 
FST/IP-为任意结构通过广域网和有足够带宽给SNA和NetBIOS传输.它不支持本地应答. 
Direct-点对点HDLC或帧中继打包直接传输DLSw+.它也不支持本地应答，不可重新路由. 
DLSw Lite-在点对点或帧中继中作LLC2打包，它的本地应答和可靠的传输是非常重要的.但它不可重新路由.DLSw Lite使用RFC 1490定义的LLC2打包方式.
增强特性
这一章叙述了DLSw+的增强特性，它们提供好处和简短说明何时并且如何使用它.增强特性是可选择的，你可按照网络需要进行配置.背景明白负载平衡，首先要明白DLSw+对等连接是怎样建立的.当一个路由器开启后，第一件事就是与定义的远程peer建立对等连接(除非作了"passive"定义).路由器然后交换性能信息.在性能信息中包括 "icanreach"或"icannotreach"语句.在交换完性能信息后，DLSW+ peer空闲着直到终端系统发送探测帧(SNA Test或XID帧).探测帧传送给每个活的peer.很可能终端系统是通过多个remote peer被找到的.冗余和负载平衡如果在中心有多台DLSw+路由器，可以考虑用负载平衡或冗余.这一节中，我们主要介绍中心多台DLSw+路由器之间或一台路由器上多个端口怎样实现平衡传输的.
如果DLSw+收到多个对探测帧的肯定应答，它把几个peer存放在缓存里.如果定义了负载平衡"dlsw duplicate-path-bias",新的链路就从另外的一条路径建立，循环建立.
如果没有指定负载平衡，peer选择缓存表里第一条路径建立它所有的链路，除非这条路径无效了.缓存表里第一条路径可能是： 
接收到第一个肯定应答的Peer. 
低cost的Peer. 
Cost可以定义在本地或远程peer上.指定在本地peer上，它会作为性能信息的一部分与远程peer交换信息.下面是一个cost实例.
Possible configuration and the resulting cache entries that would be created if all the channel gateways illustrated have the same MAC address
  图中，中心端有两个DLSw+路由器作gateway和三个令牌环卡访问主机应用.所有三个令牌环卡指定相同的MAC地址.使用重复地址是源路由桥(source-route bridging---SRB)中一种技术，能够提供负载平衡和冗余，使得在下端看来这三条路径是在同一设备上.
这个例子中，Peer A有两个远程Peer B和Peer C. Peer B定义本地Peer cost值是4,Peer C是2.这个cost信息在交换性能信息时交换给Peer A.
当图中左端的SNA终端系统发送探测帧后，Peer A发送探测帧给Peer B和Peer C.Peer B和Peer C再发送给它们的局域网，Peer B收到一个应答后发给Peer A,Peer C收到两个应答后发给Peer A.
Peer A再把应答信息传给SNA PU,然后用Peer C建立链路.选择Peer C是因为它的cost较低.下一个PU要求建立链路时，直接选择Peer C.
在Peer C上，第一条链路使用Port 1,下一条将用Port 2.这是因为Peer C上作了"dlsw duplicate-path-bias"负载平衡的定义，每一个SNA PU使用round robin方式建立链路.
下一个例子定义了remote peer,Peer A总与Peer B连接，Peer D总与Peer C连接.
  备份Peers使用备份Peers,访问主路由器必须是TCP或FST.在图中，East路由器都用路由器A作主路由器，West路由器都用路由器C作主路由器.Primary Peer或Backup Peer均需在remote peer中定义.若路由器A发生故障，所有SNA会话将中断，重新通过路由器B建立.当路由器A恢复后，所有新的会话将通过路由器A建立，但已经建立的会话继续通过路由器B直到设定linger时间到达.若忽略掉linger设置将使路由器B上会话一直保持到会话终止.Local SwitchingLocal Switching(在Cisco IOS 11.1及以上版本上支持)允许一台路由器在SDLC,Token Ring之间提供介质转换.这是一种很有用技术简化了SNA设计，增强可用性.Local Switching可用用Cisco路由器提供的CIP卡本地直连到SDLC设备上.下图是一个Local Switching实例.
Local switching configuration in a mixed PU 2.0,PU 2.1 environment. 
  
用show和debug命令
这一章介绍监控DLSw+和解决网络出现问题的show和debug命令.DLSw+设计提供许多信息帮助你解决网络出现问题而最少的使用额外的网络监控设备.DLSw+的show命令DLSw+提供了几个show命令显示DLSw+路由器的一些相关信息，如链路，对等路由器，可到达MAC地址等等.包括下面几个选项：
show dlsw [capabilities | circuits | fastcache | local-circuit | peers | reachability]
Show DLSw Capabilities
交换Peer之间性能信息，包括peer group号和peer cost值等等.
show dlsw capabilities [interface interface | ip-address ip-address | local ] 
Show DLSw Circuits
显示路由器当前建立的链路状态.
show dlsw circuits [detail] [[0-255] | mac-address mac-address | sap-value sap-value]
Show DLSw Peers
路由器所连接的对等Peers状态.
show dlsw peer [interface interface | ip-address ip-address ]
Show DLSw Reachability
"show dlsw reachability "命令是SNA源和目的地址放在路由器的列表.只有找到了源和目的MAC地址，才能建立链路.
show dlsw reachability [mac-address [mac-address] | netbios-names [netbios-names ]]其它有用的show命令Show Interface 
Show IP Route 
Show Source Bridge 
Show Bridge 
Show LLC 
Show TCP 
DLSw+的debug命令
Debug命令提供了更加详实的信息帮助你解决连网时碰到问题，尤其是在用show命令看到不正常状态时.
debug dlsw [core | local-circuit | peers | reachability]
Peer Debugging
当用show dlsw peer查看peer状态不是CONNECT时，用debug命令提供更多信息.
debug dlsw peer [interface interface | ip-address ip-address ]
Reachability Debugging
链路circuit建立不起来，大多数是因为reachability表中没有找到相应的MAC地址，debug reachability是一个很有用的命令帮助你解决问题.
debug dlsw reachability [error | verbose] [netbios | sna ]debug命令debug source-bridge 
debug sdlc 
debug clsi