在网络的各层中存在着许多协议,它是定义通过网络进行通信的规则,接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息,以这种规则规定双方完成信息在计算机之间的传送过程。下面就对网络协议规范作个概述。
ARP(AddressResolutionProtocol)地址解析协议
它是用于映射计算
机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。
SNMP(SimpleNetworkManagementP)网络管理协议
它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。
AppleShareprotocol(AppleShare协议)
它是Apple机上的通信协议,它允许计算机从服务器上请求服务或者和服务器交换文件。AppleShare可以在TCP/IP协议或其它网络协议如IPX、AppleTalk上进行工作。使用它时,用户可以访问文件,应用程序,打印机和其它远程服务器上的资源。它可以和配置了AppleShare协议的任何服务器进行通信,Macintosh、MacOS、WindowsNT和NovellNetware都支持AppleShare协议。
AppleTalk协议
它是Macintosh计算机使用的主要网络协议。WindowsNT服务器有专门为Macintosh服务,也能支持该协议。其允许Macintosh的用户共享存储在WindowsNT文件夹的Mac-格式的文件,也可以使用和WindowsNT连接的打印机。WindowsNT共享文件夹以传统的Mac文件夹形式出现在Mac用户面前。Mac文件名按需要被转换为FAT(8.3)格式和NTFS文件标准。支持MAc文件格式的DOS和Windows客户端能与Mac用户共享这些文件。
BGP4(BorderGatewayProtocolVertion4)边界网关协议-版本4
它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理员能够在已知的路由策略上配置路由加权,可以更方便地使用无级内部域名路由(CIDR),它是一种在网络中可以容纳更多地址的机制,它比外部网关协议(EGP)更新。BGP4经常用于网关主机之间,主机中的路由表包括了已知路由的列表,可达的地址和路由加权,这样就可以在路由中选择最好的通路了。BGP在局域网中通信时使用内部BGP(IBGP),因为IBGP不能很好工作。
BOOTP协议
它是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,现在我们通常使用DHCP协议进行这一工作。
CMIP(CommonManagementInformationProtocol)通用管理信息协议
Connection-orientedProtocol/ConnectionlessProtocol面向连接的协议/无连接协议
DHCP(DynamicHostConfigurationProtocol)动态主机配置协议
它是在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能。这两个协议可以通过一些机制互操作。DHCP协议在安装TCP/IP协议和使用TCP/IP协议进行通迅时,必须配置IP地址、子网掩码、缺省网关三个参数,这三个参数可以手动配置,也可以使用DHCP自动配置。
DiscardProtocol抛弃协议
它的作用就是接收到什么抛弃什么,它对调试网络状态的一定的用处。基于TCP的抛弃服务,如果服务器实现了抛弃协议,服务器就会在TCP端口9检测抛弃协议请求,在建立连接后并检测到请求后,就直接把接收到的数据直接抛弃,直到用户中断连接。而基于UDP协议的抛弃服务和基于TCP差不多,检测的端口是UDP端口9,功能也一样。
EchoProtocol协议
这个协议主要用于调试和检测中。这个协议的作用也十分简单,接收到什么原封发回就是了。它可以基于TCP协议,服务器就在TCP端口7检测有无消息,如果有发送来的消息直接返回就是了。如果使用UDP协议的基本过程和TCP一样,检测的端口也是7。
FTP(FileTransferProtocol)文件传输协议
HDLC(High-LevelDataLinkControl)高层数据链路协议
HTTP1.1(HypertextTransferProtocolVertion1.1)超文本传输协议-版本1.1
它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。
HTTPS(SecureHypertextTransferProtocol)安全超文本传输协议
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
ICMP(InternetControlMessageProtocol)Internet控制信息协议
它是一个在主机和网关之间消息控制和差错报告协议。ICMP使用IP数据报,但消息由TCP/IP软件处理,对于应用程序使用者是不可见的。在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,赡养或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。
IMAP4(InternetMailAccessProtocolVersion4)Internet邮件访问协议-版本4
NNTP(NetworkNewsTransferProtocol)网络新闻传输协议
NNTP同POP3协议一样,也存在某些局限性。
IOTP(InternetOpenTradingProtocol)Internet开放贸易协议
IPv6(InternetProtocolVersion6)Internet协议-版本6
IPX/SPX(InternetworkPacketExchange/SequentialPacketExchange)互连网包交换/顺序包交换
它是由Novell提出的用于客户/服务器相连的网络协议。使用IPX/SPX协议能运行通常需要NetBEUI支持的程序,通过IPX/SPX协议可以跨过路由器访问其他网络。
MIME(Multi-PurposeInternetMailExtensions)多功能Internet邮件扩展
MIME是扩展SMTP协议,是1991年NathanBorenstein向IETF提出。在传输字符数据的同时,允许用户传送另外的文件类型,如声音,图像和应用程序,并将其压缩在MIME附件中。因此,新的文件类型也被作为新的被支持的IP文件类型。
NetBEUI(NetBIOSEnhancedUserInterface)网络基本输入输出系统扩展用户接口
NetBEUI协议是IBM于1985年提出。NetBEUI主要为20到200个工作站的小型局域网设计的,用于NetBEUI、LanMan网、WindowsForWorkgroups及WindowsNT网。NetBEUI是一个紧凑、快速的协议,但由于NetBEUI没有路由能力,即不能从一个局域网经路由器到另一个局域网,已不能适应较大的网络。如果需要路由到其他局域网,则必须安装TCP/IP或IPX/SPX协议。
OSPF(OpenShortestPathFirst)开放最短路优先
OSPF是用于大型自主网络中替代路由信息协议的协议标准。象RIP一样,OSPF也是由IETF设计用作内部网关协议族中的一个标准。在使用OSPF时网络拓朴结构的变化可以立即在路由器上反映出来。不象RIP,OSPF不是全部当前结点保存的路由表,而是通过最短路优先算法计算得到最短路,这样可以降低网络通信量。如果您熟悉最短路优先算法就会知道,它是一种只关心网络拓朴结构的算法,而不关心其它情况,如优先权的问题,对于这一点,OSPF改变了算法使它根据不同的情况给某些通路以优先权。
POP3(PostOfficeProtocolVersion3)邮局协议-版本3
PPP(PointtoPointProtocol)点对点协议
RIP(RoutingInfomationProtocol)路由信息协议
RIP是最早的路由协议之一,而且现在仍然在广泛使用。它从类别上应该属于内部网关协议(IGP)类,它是距离向量路由式协议,这种协议在计算两个地方的距离时只计算经过的路由器的数目,如果到相同目标有两个不等速或带宽不同的路由器,但是经过的路由器的个数一样,RIP认为两者距离一样,而实际传送数据时,很明显一个快一个慢,这就是RIP协议的不足之处,而OSPF在它的基础上克服了RIP的缺点。
SLIP(SerialLineInternetProtocol)串行线路Internet协议
它是一个TCP/IP协议,它用于在两台计算机之间通信。通常计算机与服务器连接的线路是串行线路,而不是如T1的多路线路或并行线。您的服务器提供商可以向您提供SLIP连接,这样他的服务器就可以响应您的请求,并将请求发送到网络上,然后将网络返回的结果送至您的计算机。现已逐渐被功能更好的PPP点对点协议所取代。
SMBprotocol(ServerMessageBlockprotocol)服务器信息块协议
它提供了运行在客户计算机上的程序请求网络上服务器服务的方法,它可以用在TCP/IP协议之上,也可以用上网络协议如IPX和NetBEUI之上。使用SMB协议时,应用程序可以访问远程计算机上的资源,包括打印机,命名管道等。因此,用户程序可以读,创建和更新在远程服务器上的文件,也可以和已经安装SMB协议的计算机通信。MicrosoftWindowsforWorkgroups,Windows95和WindowsNT都提供了SMB协议客户和服务器的支持。对于UNIX系统,共享软件Samba也提供了类似的服务。
LMTP(LocalMailTransferProtocol)本地邮件传输协议
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(SimpleMailTransferProtocol)简单邮件传送协议
它是用来发送电子邮件的TCP/IP协议。它的内容由IETF的RFC821定义。另外一个和SMTP相同功能的协议是X.400。SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。
Talk协议
Talk协议能使远程计算机上的两个用户以实时方式进行通信。
TCP/IP(TransmissionControlProtocol/InternetProtocol)传输控制协议/Internet协议
TELNETProtocol虚拟终端协议
TFTP(TrivialFileTransferProtocol)小文件传输协议
它是一个网络应用程序,它比FTP简单也比FTP功能少。它在不需要用户权限或目录可见的情况下使用,它使用UDP协议而不是TCP协议。
UDP(UserDatagramProtocol)用户数据报协议
它是定义用来在互连网络环境中提供包交换的计算机通信的协议,此协议默认认为网路协议(IP)是其下层协议。UDP是TCP的另外一种方法,象TCP一样,UDP使用IP协议来获得数据单元(叫做数据报),不象TCP的是,它不提供包(数据报)的分组和组装服务。而且,它还不提供对包的排序,这意味着,程序程序必须自己确定信息是否完全地正确地到达目的地。如果网络程序要加快处理速度,那使用UPD就比TCP要好。UDP提供两种不由IP层提供的服务,它提供端口号来区别不同用户的请求,而且可以提供奇偶校验。在OSI模式中,UDP和TCP一样处于第四层,传输层。
UUCP(UNIX-to-UNIXCopyProtocol)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用于在互联网上检索图书馆的在线公共访问目录(OnlinePublicAccessCatalogues,OPAC),也可以用于把多个分离的OPAC连接起来,它是ANSI/NISO标准。
ARP协议
1ARP协议概述
IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(AddressResolutionProtocol,ARP)就是用来确定这些映象的协议。
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位主机地址。
2ARP使用举例
我们先看一下linux下的arp命令(如果开始arp表中的内容为空的话,需要先对某台主机进行一个连接,例如ping一下目标主机来产生一个arp项):
d2server:/home/kerberos#arp
AddressHWtypeHWaddressFlagsMaskIface
211.161.17.254ether00:04:9A:AD:1C:0ACeth0
Address:主机的IP地址
Hwtype:主机的硬件类型
Hwaddress:主机的硬件地址
FlagsMask:记录标志,"C"表示arp高速缓存中的条目,"M"表示静态的arp条目。
d2server:/home/kerberos#arp-a
(211.161.17.254)at00:04:9A:AD:1C:0A[ether]oneth0
可以看到在缓存中有一条211.161.17.254相对应的arp缓存条目。
d2server:/home/kerberos#telnet211.161.17.21
Trying211.161.17.21...
Connectedto211.161.17.21.
Escapecharacteris'^]'.
^].
telnet>quit
connetionclosed.
在执行上面一条telnet命令的同时,用tcpdump进行监听:
d2server:/home/kerberos#tcpdump-edsthost211.161.17.21
tcpdump:listeningoneth0
10.000:D0:F8:0A:FB:83FF:FF:FF:FF:FF:FFarp60
whohas211.161.17.21telld2server
20.002344(0.0021)00:E0:3C:43:0D:2400:D0:F8:0A:FB:83arp60
arpreply211.161.17.21isat00: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行中的下一个输出字段arpwho-has表示作为ARP请求的这个数据帧中,目的IP地址是211.161.17.21的地址,发送端的IP地址是d2server的地址。tcpdump打印出主机名对应的默认IP地址。
从第2行中可以看到,尽管ARP请求是广播的,但是ARP应答的目的地址却是211.161.17.21(00:E0:3C:43:0D:24)。ARP应答是直接送到请求端主机的,而是广播的。tcpdump打印出arpreply的字样,同时打印出响应者的主机ip和硬件地址。
这个时候我们再看看机器中的arp缓存:
(211.161.17.21)at00:E0:3C:43:0D:24[ether]oneth0
arp高速缓存中已经增加了一条有关211.161.17.21的映射。
d2server:/home/kerberos#arp-s211.161.17.2100:00:00:00:00:00
211.161.17.21ether00:00:00:00:00:00CMeth0
(211.161.17.21)at00:00:00:00:00:00[ether]PERMoneth0
d2server:/home/kerberos#arp-s211.161.17.2100:00:00:00:00:00temp
(211.161.17.21)at00:00:00:00:00:00[ether]oneth0
211.161.17.21ether00:00:00:00:00:00Ceth0
可以看到标志字段的静态arp标志"M"已经去掉了,我们手工加上的是一条动态条目。
请大家注意arp静态条目与动态条目的区别。
在不同的系统中,手工设置的arp静态条目是有区别的。在linux和win2000中,静态条目不会因为伪造的arp响应包而改变,而动态条目会改变。而在win98中,手工设置的静态条目会因为收到伪造的arp响应包而改变。
如果您想删除某个arp条目(包括静态条目),可以用下面的命令:
d2server:/home/kerberos#arp-d211.161.17.21
(211.161.17.21)atoneth0
可以看到211.161.17.21的arp条目已经是不完整的了。
还有一些其他的命令,可以参考linux下的man文档:
d2server:/home/kerberos#manarp
3ARP欺骗
通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的硬件mac地址,如果没有找到,该主机就发送一个ARP广播包,于是,主机刷新自己的ARP缓存。然后发出该ip包。
了解这些常识后,现在就可以谈在以太网络中如何实现ARP欺骗了,可以看看这样一个例子。
3.1同一网段的ARP欺骗
图2同一网段的arp欺骗
如图2所示,三台主机
A:ip地址192.168.0.1硬件地址AA:AA:AA:AA:AA:AAB:ip地址192.168.0.2硬件地址BB:BB:BB:BB:BB:BBC: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缓存达到欺骗的目的。
下面是具体的步骤:
上面就是一个ARP的欺骗过程,这是在同网段发生的情况,但是,提醒注意的是,在B和C处于不同网段的时候,上面的方法是不起作用的。
3.2不同网段的ARP欺骗
图3不同网段之间的ARP欺骗
如图3所示A、C位于同一网段而主机B位于另一网段,三台机器的ip地址和硬件地址如下:
A:ip地址192.168.0.1硬件地址AA:AA:AA:AA:AA:AAB:ip地址192.168.1.2硬件地址BB:BB:BB:BB:BB:BBC: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重定向进行攻击的步骤:
其实上面的想法只是一种理想话的情况,主机许可接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难。
TCP/IP协议实现中关于主机接收ICMP重定向报文主要有下面几条限制:
由于有这些限制,所以ICMP欺骗实际上很难实现。但是我们也可以主动的根据上面的思维寻找一些其他的方法。更为重要的是我们知道了这些欺骗方法的危害性,我们就可以采取相应的防御办法。
3.3ARP欺骗的防御
知道了ARP欺骗的方法和危害,我们给出一些初步的防御方法:
在linux下可以通过在防火墙上拒绝ICMP重定向报文或者是修改内核选项重新编译内核来拒绝接收ICMP重定向报文。
在win2000下可以通过防火墙和IP策略拒绝接收ICMP报文。
4代理ARP的应用
代理ARP有两大应用,一个是有利的就是我们在防火墙实现中常说的透明模式的实现,另一个是有害的就是通过它可以达到在交换环境中进行嗅探的目的.由此可见同样一种技术被应用于不同的目的,效果是不一样的.
我们先来看交换环境中局域网的嗅探.
通常在局域网环境中,我们都是通过交换环境的网关上网的。在交换环境中使用NetXray或者NAISniffer一类的嗅探工具除了抓到自己的包以外,是不能看到其他主机的网络通信的。
但是我们可以通过利用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的包.
具体实现要用到两个工具dsniff和fragrouter,dsniff用来实现ARP欺骗,fragroute用来进行包的转发.
首先利用dsniff中的arpspoof来实现ARP欺骗,dsniff软件可以在下面的网址下载:
安装这个软件包之前先要下载安装libnet.
欺骗192.168.0.3,告诉这台机器网关192.168.0.1的MAC地址是192.168.0.2的MAC地址.
[root@sounddsniff-2.3]#./arpspoof-ieth0-t192.168.0.3192.168.0.1
欺骗192.168.0.1,告诉192.168.0.1主机192.168.0.3的MAC地址是192.168.0.2的MAC地址。
[root@sounddsniff-2.3]#./arpspoof-ieth0-t192.168.0.1192.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包功能的检测,本身自代包转发的功能.可以到下面的网站下载:
安装这个软件包之前先要下载安装libpcap和libevent.
当然我们也可以使用fragrouter来完成:
[root@soundfragrouter-1.6]#./fragrouter-B1
fragrouter:base-1:normalIPforwarding
现在就可以实现在交换局域网中嗅探的目标.当然上面这些只是一些原理性的介绍,在真正的使用中会遇到很多的问题,比如如何实现对网关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-s192.168.1.1BB:BB:BB:BB:BB:BB
arp-s192.168.1.1CC:CC:CC:CC:CC:CC
arp-s192.168.1.0/24AA:AA:AA:AA:AA:AA
第二部我们需要在基于linux的防火墙上设置路由,把目标地址是外部路由的包转发到eth0,把目标地址为内网的包转发到eth1,把目标地址是DMZ网段服务器的包转发到eth2.在linux下面用route命令实现
routeadd192.168.1.1deveth0
routeadd-net192.168.1.0/24deveth1
routeadd192.168.1.2deveth2
routeadd192.168.1.3deveth3
(针对DMZ网段里面的每台服务器都要增加一条单独的路由)现在我们就已经实现了一个简单的arp代理的透明接入,当然对应于防火墙的iptables部分要另外配置,iptables的配置不在本文范畴之内.
PPP(Point-to-PointProtocol点到点协议
一、介绍
PPP(Point-to-PointProtocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
二、PPP链路建立过程
PPP协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。PPP协议包含这样几个部分:链路控制协议LCP(LinkControlProtocol);网络控制协议NCP(NetworkControlProtocol);认证协议,最常用的包括口令验证协议PAP(PasswordAuthenticationProtocol)和挑战握手验证协议CHAP(Challenge-HandshakeAuthenticationProtocol)。
LCP负责创建,维护或终止一次物理连接。NCP是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。
下面介绍PPP链路建立的过程:
PPP链路状态机如图1所示。一个典型的链路建立过程分为三个阶段:创建阶段、认证阶段和网络协商阶段。
阶段1:创建PPP链路
LCP负责创建链路。在这个阶段,将对基本的通讯方式进行选择。链路两端设备通过LCP向对方发送配置信息报文(ConfigurePackets)。一旦一个配置成功信息包(Configure-Ackpacket)被发送且被接收,就完成了交换,进入了LCP开启状态。
应当注意,在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。
阶段2:用户验证
在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。
最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)。认证方式介绍在第三部分中介绍。
阶段3:调用网络层协议
认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。
这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。
三、认证方式
1)口令验证协议(PAP)
PAP是一种简单的明文验证方式。NAS(网络接入服务器,NetworkAccessServer)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
2)挑战-握手验证协议(CHAP)
CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrarychallengestring)。远程客户必须使用MD5单向哈希算法(one-wayhashingalgorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replayattack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remoteclientimpersonation)进行攻击。
四、PPP协议的应用
PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。
家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,AsymmetricalDigitalSubscriberLoop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPPoverEthernet),PPPoA(PPPoverATM)。
利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。
同样,在ATM(异步传输模式,AsynchronousTransferMode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准。
PPP协议的简单完整使它得到了广泛的应用,相信在未来的网络技术发展中,它还可以发挥更大的作用。
RIP协议
目录
1.矢量距离算法......................................................................................................3
2.RIP的原理...........................................................................................................4
3.RIP报文的格式....................................................................................................5
4.RIP协议的运行....................................................................................................6
在目前的Internet网上,运行一种网关协议是不可能的,我们要将它分成很多的自治系统(AutonomousSystem-AS),在每个自治系统有它自己的路由技术。我们称自治系统内部的路由协议为内部网关协议(Interiorgatewayprotocol-IGP)。RIP(RoutingInformationProtocol)就是内部网关协议的一种,它采用的是矢量距离(Vector-Distance)算法。RIP系统的开发是XEROXPaloAlto研究中心(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算法要求所有网关都参加信息交换,要交换的信息量极大。
2.RIP的原理
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算法路径刷新协议,都有一个严重的缺陷,即“慢收敛”(slowconvergence)问题。又叫“计数到无穷”(counttoinfinity)。如果出现环路,直到路径长度达到16,也就是说要经过7番来回(至少30X7秒),路径回路才能被解除,这就是所谓的慢收敛问题。采用的方法有很多种,主要采用有分割范围(splithorizon)法和带触发更新的毒性逆转(PosionReversewithTriggeredupdates))法。分割范围法的原理是:当网关从某个网络接口发送RIP路径刷新报文时,其中不能包含从该接口获得的路径信息。毒性逆转法的原理是:某路径崩溃后,最早广播此路径的网关将原路径继续保存在若干刷新报文中,但是指明路径为无限长。为了加强毒性逆转的效果,最好同时使用触发更新技术:一旦检测到路径崩溃,立即广播路径刷新报文,而不必等待下一个广播周期。
3.RIP报文的格式
对于RIP报文有两种版本的格式,Version1和Version2。两种报文稍有不同,如图1所示:
图1RIP报文格式
命令字段的值的范围是从1到5,但只有1和2是正式的值。命令码1标识一个请求报文,命令码2标识一个相应报文。RIP是一个基于UDP协议的,所以受UDP报文的限制一个RIP的数据包不能超过512字节。两个版本都包含一个地址族,对于IP地址该字段的值为2,后面是一个IP地址和它的度量值(站点计数)。这些通告字段可重复25次。
路径标签:若干RIP支持外部网关协议(EGP),该字段包含一个自治系统号。
下一站的IP地址:如果该字段为0,则表明数据报应当发送到正在发送该RIP报文的机器,否则,该字段包含一个IP地址,指明应将数据报发往何处。
从报文中我们可以看出,RIP-1不能运行于包含有子网的自治系统中,因为它没有包含运行所必须的子网信息-子网掩码。RIP-2有子网掩码,因而它可以运行于包含有子网的自治系统中,这也是RIP-2对RIP-1有意义的改进。
4.RIP协议的运行
为了更好地理解RIP协议的运行,下面以图2所示的简单的互连网为例来讨论图中各个路由器中的路由表是怎样建立起来的。
在一开始,所有路由器中的路由表只有路由器所接入的网络(共有两个网络)的情况。现在的路由表增加了一列,这就是从该路由表到目的网络上的路由器的“距离”。在图中“下一站路由器”项目中有符号“-”,表示直接交付。这是因为路由器和同一网络上的主机可直接通信而不需要再经过别的路由器进行转发。同理,到目的网络的距离也都是零,因为需要经过的路由器数为零。图中粗的空心箭头表示路由表的更新,细的箭头表示更新路由表要用到相邻路由表传送过来的信息。
接着,各路由器都向其相邻路由器广播RIP报文,这实际上就是广播路由表中的信息。
假定路由器R2先收到了路由器R1和R3的路由信息,然后就更新自己的路由表。更新后的路由表再发送给路由器R1和R3。路由器R1和R3分别再进行更新。
图2使用RIP协议时路由表的建立过程
OSPF协议
1.概述....................................................................................................................3
2.SPF算法..............................................................................................................3
3.OSPF协议原理....................................................................................................5
3.1自治系统的分区.......................................................................................5
3.2区域间路由..............................................................................................6
3.3Stub区和自治系统外路由........................................................................6
3.4DR和BDR.................................................................................................7
4.OSPF报文.............................................................................................................7
4.1OSPF协议报文.........................................................................................7
4.2OSPF包承载的内容...............................................................................9
5.OSPF协议的运行................................................................................................10
5.1Hello协议的运行...............................................................................10
5.2DR和BDR的产生......................................................................................10
5.3链路状态数据库的同步.............................................................................11
5.4路由表的产生和查找.................................................................................11
1.概述
所有的路由器并行运行同样的算法,根据该路由器的拓扑数据库构造出以它自己为根节点的最短路径树,该最短路径树的叶子节点是自治系统内部的其它路由器。当到达同一目的路由器存在多条相同代价的路由时,OSPF能够实现在多条路径上分配流量。
RFC2178中删除了OSPF的TOS功能,但是为了保证和以前版本的兼容性,在各个链路状态宣告中还保留了TOS项目。
2.SPF算法
与V-D算法相比较的一组算法叫作“链接-状态”(link-state)算法,又叫最短路径优先或SPF(ShortestPathFirst)算法。
按照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算法(algorithmA)为基础。该算法已作为互连网络SPF协议的模型,并且多年来被用于优化网络设计和网络的拓扑结构。各节点用自己拥有的统一的描述自治系统拓扑结构的数据库,以自己为根,建立一个路径选择的寻径表。在图1中,节点A是源节点,节点J是目的节点。其具体的步骤如下:
(1)在图1中,网络中的每条路径有一个权值,该权值是根据某一标准(如考虑距离、时延、队列长度等)得出的;
(2)为每个节点标上一条已知路径从源端到该节点需要的最小代价。最初不知道任何路径,所以每个节点的标号为无穷大;
(3)为每个节点检测它周围有哪些相邻的节点,源节点是第一个被考虑的节点,并且变为工作节点;
(4)为工作节点的每个相邻的节点分配一个最小代价标号。如果发现一条从该节点到源节点的更短的路径,则修改标号。在OSPF中,当链路状态报文广播到所有其他节点时,会发生这种情况(即因发现更短的路径而修改标号);
(5)在给相邻节点分配了标号以后,检测网络中的其他节点,如果某个已分配了标号的节点拥有较小的标号值,则它的标号变为永久标号,该节点变为工作节点;
(6)如果某节点的标号与到它的某个相邻节点路径上的权值之和小于该相邻节点的标号,在改变该相邻节点的标号,因为发现了一条更短的路径;
(7)选择另一个工作节点,重复上述过程直到穷尽所有的可能。最后的每个节点的标号就给出了源节点和目的节点之间的一条端到端的代价最低的路径。
图1A算法的应用
经过了上面的计算可以形成图2所示的路由选择拓扑图(即最短距离树,又称最优树):
图2路由器A的路由选择拓扑图
3.OSPF协议原理3.1自治系统的分区
OSPF允许在一个自治系统里划分区域的做法,相邻的网络和它们相连的路由器组成一个区域(Area)。每一个区域有该区域自己拓扑数据库,该数据库对于外部的区域是不可见的,每个区域内部路由器的链路状态信息数据库实际上只包含着该区域内的链路状态信息,他们也不能详细地知道外部的链接情况,在同一个区域内的路由器拥有同样的拓扑数据库。和多个区域相连的路由器拥有多个区域的链路状态信息库。划分区域的方法减少了链路状态信息数据库的大小、并极大地减少了路由器间交换状态信息的数量。如图3所示。
Area0
Area2
Area1
Area3
Area4
R
图3把自治系统分成多个OSPF区域
在多于一个区域的自治系统中,OSPF规定必须有一个骨干区(backbone)-area0,骨干区是OSPF的中枢区域,它与其他区域通过区域边界路由器(ABR)相连。区域边界路由器通过骨干区进行区域路由信息的交换。为了达到一个区域的各个路由器保持相同的链路状态信息库,这就要求骨干区是相连的,但是并不要求它们是物理连接的。在实际的环境中,如果它们在物理上是断开的,这时可以通过建立虚链路(VirtualLink)的方法保证骨干区域的连续性。虚链将属于骨干区并且到一个非骨干区都有接口的两个ABR连接起来,虚链本身属于骨干区,OSPF将通过虚链连接的两个路由器看作是通过未编号的点对点链路(unnumberedpoint-to-point)连接。
3.2区域间路由
当两个非骨干区域间路由IP包的时,必须通过骨干区。IP包经过的路径分为三个部分:源区域内路径(从源端到ABR)、骨干路径(源和目的区域间的骨干区路径)、目的端区域内路径(目的区域的ABR到目的路由器的路径)。从另一个观点来看,一个自治系统就象一个以骨干区作为Hub,各个非骨干区域连到Hub上的星型结构图。各个区域边界路由器在骨干区上进行路由信息的交换,发布本区域的路由信息,同时收到其他ABR发布的信息,传到本区域进行链路状态的更新以形成最新的路由表。
3.3Stub区和自治系统外路由
在一个OSPF自治系统中有这样一种特殊的区域――存根区域(Stub区域),在这个区域中只有一个外部出口,该区域不允许外部的非OSPF的路由信息进入。到自治系统外的包只能依靠缺省路由。存根区域的边界路由器必须在路由概要里向区域宣告这个缺省路由,但是不能超过这个存根区域。缺省路由的使用可以减少链路状态信息库的大小。对于该自治系统外部路由信息,如BGP产生的路由信息,可以通过该自治系统的区域边界路由器(ASBR)透明地扩散到整个自治系统的各个区域中,使得该自治系统内部的每一台路由器都能够获得外部的路由信息。但是该信息不能扩散到存根区域。这样自治系统内的路由器可以通过ASBR路由包到自治系统外的目标。
3.4DR和BDR
在自治系统内的每个广播和非广播多点访问(NBMA)网络里,都有一个指定路由器(DR-DesignatedRouter)和一个备份指定路由器(BDR-BackupDesignatedRouter),它们是通过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.1OSPF协议报文
OSPF使用五种类型的路由协议包,在各个路由器间进行交换信息,如表1所示。每种协议包都包含24字节的OSPF协议包的首部,如图4所示。
Hello协议用于寻找和维护路由器所连网络上的邻居关系。通过周期性地发出Hello包,来确定和维护邻居路由器接口是否仍在起作用。Hello包被发送到网络上的每个活动的路由器接口。在广播和非广播的多点访问的网络上,DR和BDR的选举也是通过Hello包来完成的。在不同的物理网络上,Hello包的目的地址是不同的;在点到点和广播网络上,其目的地址是AllSPFRouter(224.0.0.5);在虚链路上是单播,也就是从虚链路的源端直接发送到链路的另一端;而在点到多点的网络上,分离的Hello包分别发送到相连的每一个邻居;在非广播的多点访问网络上,Hello包的发送要看各个路由器的配置信息。
表1OSPF路由协议包类型
包类型
目的
Hello协议包
发现和维护邻居
数据库描述
汇总数据库内容
链路状态请求
数据库下载
链路状态更新
数据库上载
链路状态确认
扩散确认
图4OSPF协议包的首部
数据库描述包是类型往为2的OSPF包,在形成邻接过程中的路由器之间交换数据库描述包,且它们描述链路状态数据库。根据接口数和网络数,可能不只一个数据库描述包来传输整个链路状态数据库。在交换的过程中所涉及的路由器建立主从关系。主路由器发送包,而从路由器通过使用数据库描述(DatabaseDescription-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.2OSPF包承载的内容
l路由器链路状态宣告
路由器为每个有活动OSPF接口的区域生成一个路由器LSA。包含在路由器LAS中的信息是路由器接口在该区域中的状态,而LSA在整个区域传播。进入一个区域的所有路由器接口必须在一个路由器LSA中说明。链路状态ID域是路由器的OSPFID。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-ExternalLSA,它被用于说明自治系统外的网络。AS-ExternalLSA用于说明到外部网络的路由。链路状态ID域包含IP网络号或0.0.0.0,如果它描述一个默认路由,此时的作为掩码也是0.0.0.0。
5.OSPF协议的运行5.1Hello协议的运行
5.2DR和BDR的产生
(1)在路由器同一个或多个路由器建立双向的通信以后,就检查每个邻居Hello包里的优先级、DR和BDR域。列出所有符合DR和BDR选举的路由器(他们的优先级要大于0,接口状态要大于双向通信),列出所有的DR,列出所有的BDR;
(2)从这些合格的路由器中建立一个没有宣称自己为DR的子集(因为宣称为DR的路由器不能选举成为BDR);
(3)如果在这个子集里有一个或多个邻居(包括它自己的接口)在BDR域宣称自己为BDR,则选举具有最高优先级的路由器,如果优先级相同,则选择具有最高RouterID的那个路由器为BDR;
(4)如果在这个子集里没有路由器宣称自己为BDR,则在它的邻居里选择具有最高优先级的路由器为BDR,如果优先级相同,则选择具有最大RouterID的路由器为BDR;
(5)在宣称自己为DR的路由器列表中,如果有一个或多个路由器宣称自己为DR,则选择具有最高优先级的路由器为DR,如果优先级相同,则选择具有最大RouterID的路由器为DR;
(6)如果没有路由器宣称为DR,则将最新选举的BDR作为DR;
(7)如果是第一选举某个路由器为DR/BDR或没有DR/BDR被选举,则要重复2到6步,然后是第8步。
(8)将选举出来的路由器的端口状态作相应的改变,DR的端口状态为DR,BDR的端口状态为BDR,否则的话为DRother。
在多路访问网络中,DR和BDR与该网络内所有其它的路由器建立邻接关系,这些邻接关系也是该网络内全部的邻接关系。
由于DR和BDR的引入,简化了网络的逻辑拓扑结构,将一个网状网络转变成一个星型网络,使协议包的扩散,计算变的简单,并有效防止了邻接关系震荡的发生。
5.3链路状态数据库的同步
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没有特定的格式,建议使用ASCII可打印字符,空格和回车换行符。daytime应该在一行上。下面是两种流行的格式:
Weekday,MonthDay,YearTime-Zone例子:Tuesday,February22,198217:37:43-PST
和用于SMTP中的格式:
ddmmmyyhh:mm:sszzz例子:02FEB8207:59:01PST
BGP
BGP(边界网关协议)
HDLC面向比特的同步协议
NetBios协议详解及网上邻居工作原理
Netbois(网络基本输入/输出系统)最初由IBM,Sytek作为API开发,使用户软件能使用局域网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios是接入网络服务的接口标准。Netbios原来是作为THE网络控制器为IBM局域网设计的,是通过特定硬件用来和网络操作系统连接的软件层。Netbios经扩展,允许程序使用Netbios接口来操作IBM令牌环结构。Netbios已被公认为工业标准,通常参照Netbios-compatibleLANs.它提供给网络程序一套方法,相互通讯及传输数据。基本上,Netbios允许程序和网络会话。它的目的是把程序和任何类型的硬件属性分开。它也使软件开发员可以免除以下负担:开发网络错误修复,低层信息寻址和路由。使用Netbios接口,可以为软件开发员做许多工作。
Netbios使程序和局域网操作能力之间的接口标准化。有它们,可以将程序细化到为osi模型的哪一层所写,使程序能移植到其他网络上。在Netbios局域网环境下,计算机通过名字被系统知道。网络中每台计算机都有通过不同方法编的永久性名称。这些名称将在下面做进一步讨论。
通过使用Netbios的数据报或广播方式,在Netbios局域网上的pc机建立会话彼此联络。会话允许更多的信息被传送,探测错误,和纠正。通信是在一对一的基础上的。数据报或广播方式允许一台计算机和多台其他的计算机同时通信,但信息大小受限。使用数据报或广播方式没有探测错误和纠正。然而,数据报通信可以不必建立一个会话。
在这种环境下所有的通信以一种称为“网络控制块“的格式提交给NetBIOS。内存中这些块的分配依赖于用户程序。这些“网络控制块“分配到域中,分别为输入/输出保留。
在当今的环境中,NetBIOS是使用很普遍的协议。以太网,令牌环,IBMPC网都支持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
其实即使有些机器没有收到注册请求,也就是网上邻居里看不看见没什么大关系,只要A不恰好和B同名,如果有WINS服务那就更好了,你和他同名也没关系,WINS会更新纪录或拒绝A登记这个名字。当你试图和A机进行基于NetBios的通讯,比如传只文件什么的,那首先会查询NetBios名字,如果找到就开始通讯。
在NetBIOS环境中有两类名称:独特的和集合的。独特的名称必须在网络中独特。集合的名称不必在网络中独特,所有同名过程属于同一集合。每个NetBIOS节点包含一张该节点当前使用名称的表。
NetBIOS命名允许16个字母用在NetBIOS名称中。而微软只允许15个字母用在NetBIOS名称中,第十六个为NetBIOS后缀。NetBIOS后缀用在Microsoftnetworking软件中,区别安装的功能,登记的设备和服务。
[注意:smb和nbt(在tcp/ip上的NetBIOS)紧密的工作在一起,且都使用137,138,139端口。137端口是NetBIOS名称UDP,138端口是NetBIOS数据报UDP,139端口是NetBIOS会话tcp]嘿嘿,知道点安全常识的这个端口号不会没听说过吧,要网上邻居还是要安全自已考虑清楚噢~~
以下是MicrosoftWindowsNT目前使用的NetBIOS后缀表。后缀是16进制。
名称数字类型用途==========================================================================00UWorkstationService01UMessengerService<\\_MSBROWSE_>01GMasterBrowser03UMessengerService06URASServerService1FUNetDDEService20UFileServerService21URASClientService22UExchangeInterchange23UExchangeStore24UExchangeDirectory30UModemSharingServerService31UModemSharingClientService43USMSClientRemoteControl44USMSAdminRemoteControlTool45USMSClientRemoteChat46USMSClientRemoteTransfer4CUDECPathworksTCPIPService52UDECPathworksTCPIPService87UExchangeMTA6AUExchangeIMCBEUNetworkMonitorAgentBFUNetworkMonitorApps03UMessengerService00GDomainName1BUDomainMasterBrowser1CGDomainControllers1DUMasterBrowser1EGBrowserServiceElections1CGInternetInformationServer00UInternetInformationServer[2B]ULotusNotesServerIRISMULTICAST[2F]GLotusNotesIRISNAMESERVER[33]GLotusNotesForte_$ND800ZA[20]UDCAIrmalanGatewayService
独特的(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中未标准化的传输帧,还加了额外的功能。传输层驱动器经常被MicrosoftsLANManager(微软局域网操作器)使用。NetBEUI执行OSILLC2协议。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来解析。
剖析TCP和UDP协议
什么是TCP和UDP
数据流传输协议不支持位传输。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年发布以来,还没人有恰当的理由使用这些位,在这一点上,JonPostel和他的同事一定是过分谨慎了。
随后的6位每个都是一个标志。若UNG标志位的值为1,意味着远在头部紧急指针区域的数据是有效的;若ACK标志位的值为1,则意味着确认号区域中的数据是有效的。(注意:一个SYN包有一个有意义的序列号,但它的确认号是无意义的,因为它并不确认任何事件)PSH标志位使数据不必等待发送和等待接收。RST标志位将断开一个连接。SYN(同步)标志位意味着序列号是有效的,FIN(结束)标志位将指出发送方已经发完了数据。
16位的校验码区域保证了数据的完整性,保护了TCP头部和IP头部的各个区域。发送方计算校验值并把它插入这个区域,接收方根据收到的包重新计算该值并比较二者,如果它们是匹配的,则认为数据是完整无损的。
持续定时器对于避免死锁是必不可少的。如果网络收到了一个大小为0的窗口确认并且丢失了随后的重发数据的确认,持续定时器将超时并发送一个探针。探针的回应将指出窗口的大小(也许仍为0)。保持定时器在本端没有任何活动后,将检查在连接的另一端是否还有运行的进程。如果没有任何回应,该定时器将断开连接。
当断开一个连接时,断开连接定时器将包的最大生命期加倍。该定时器在连接断开之前确保流量最大。
不管重发过程执行得多么有效,很少的丢失包就能严重地降低TCP连接的流量。每个未收到的包或包的片段只会在重发定时器超时的时候才会丢失。在数据重发时,接收过程一直在递送这些重发的数据,这样就使总体的数据传输陷于停顿,直到丢失的数据被取代为止。这些重发过程导致基于TCP的连接有时处于不稳定状态。
TCP与UDP的选择
如果比较UDP包和TCP包的结构,很明显UDP包不具备TCP包复杂的可靠性与控制机制。与TCP协议相同,UDP的源端口数和目的端口数也都支持一台主机上的多个应用。一个16位的UDP包包含了一个字节长的头部和数据的长度,校验码域使其可以进行整体校验。(许多应用只支持UDP,如:多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。)
DHCP数据报文
DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)是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租用过程。
二、设置SNIFFERPRO抓取DHCP通讯报文
本文使用的抓包工具软件是NAI公司推出的功能强大的协议分析软件---SnifferPro。SnifferPro具有强大的网络分析功能和特征,是解决网络问题的好工具。Sniffer支持丰富的的协议,而且能够进行快速解码分析。SnifferPro4.6可以运行在各种Windows平台上(其它类似软件如Netxray不能在Windows2003和WindowsXP上正常运行)。Sniffer软件比较大,运行时需要的计算机内存比较大,否则运行比较慢,这也是它与Netxray相比的一个缺点。
设置包过滤条件网络中传输的数据包很多,这里只抓取跟DHCP有关的数据,设置如下:点击Capture菜单,选择definefilter打开definefilter-capture对话框,设置入图参数。
Address选项Address:HardwareMode:IncludeStation1:10E08C5FC28A(网卡的物理MAC地址,不同的网卡MAC是不同)Station2:any
Advanced选项
IP:ICMPUDP:BOOTP/DNS(UDP)PackerSize:ALL
其它用默认设置,给这个配置起个名字:BOOTP
现在可以抓包了
先弹出CapturePanel(监视抓包情况),点击Capture菜单中的START开始抓包。进入命令提示符,分别执行IPCONFIG/RELEASE、IPCONFIG/RENEW命令,通过监视器可以看到已经以抓到数据包了,停止抓包并分析包,还是先保持包到磁盘以备分析。图DHCP3可以看到已经抓到5个报文
三、分析抓到的数据包
用户从DHCP获取IP过程如下:
1、用户发出DHCPDISCOVER报文;
图DHCP4用户发出DHCPDiscover广播报文
开始抓报文时首先执行的IPCONFIG/RELEASE命令的作用是用来释放IP,这条报文后面分析,在释放IP后执行的更新IP命令IPCONFIG/RENEW将发起一个DHCP过程,分析从这里开始。现在,客户机没有地址,它就会发出一个DHCPDiscover报文,该报文是广播报文,所有的具有DHCPServer功能的服务器都会收到该报文。图DHCP5
在图中我们可以看到该报文在链路层中发的确实是广播报文。由于DHCP协议是初始化协议,更简单的说,就是让终端获取IP地址的协议,既然终端连IP地址都没有,何以能够发出IP报文呢?
为了解决这个问题,DHCP报文的封装采取了如下措施:
1、首先链路层的封装必须是广播形式,即让在同一物理子网中的所有主机都能够收到这个报文。在Ethernet_II格式的网络中,就是目标MAC为全1。2、由于终端没有IP地址,IP头中的原IP规定填为全0。3、当终端发出DHCP请求报文,它并不知道DHCPSERVER的IP地址,因此IP头中的目标IP填为子网广播IP——全1,以保证DHCPSERVER的IP协议栈不丢弃这个报文。4、上面的措施保证了DHCPSERVER能够收到终端的请求报文,但仅凭链路层和IP层信息,DHCPSERVER无法区分出DHCP报文,因此终端发出的DHCP请求报文的UDP层中的原端口为68,目标端口DstPort为67。即DHCPSERVER通过知名端口号67来判断一个报文是否是DHCP报文。图DHCP6
DHCP协议的报文中主要数据格式详解图DHCP7Bootrecordtype为1时表示是Client的请求,为2时表示是Server的应答。HardwareaddresstypeClient的网络硬件地址类型,1表示Client的网络硬件是10MB的以太网类型/HardwareaddresslengthClient的网络硬件地址长度,6表示Client的网络硬件地址长度是6bytes(即以太网类型的6bytes的MAC地址)。HOPS跳数,表示当前的DHCP报文经过的DHCPRELAY(中级)的数目,每经过一个DHCP中继,此字段就会加1,此字段的作用是限制DHCP报文不要经过太多的DHCPRELAY,协议规定,当“hops”大于4(现在也有规定为16)时,这个DHCP报文就不能再进行处理,而是丢弃。Transactionid事务ID,Client每次发送DHCP请求报文时选择的随机数,用来匹配server的响应报文是对哪个请求报文的响应。Client会丢弃“ID”不匹配的响应报文。
VendorInformationtag选项字段,此字段中包含了大量可选的终端初始配置信息和网络配置信息,对于BOOTP协议,此字段为64bytes,对于DHCP协议,此字段为64---312bytes。其中最常用的选项列表如下:
Dhcpmessagetypecode=53,length=1,value=1-8,此字段表示DHCP报文类型RouterIpcode=3,length=IP地址长度,value=client的默认网关的IP地址;DNSIpcode=6,length=IP地址长度的倍数,value=client的DNS服务器的IP地址序列;WinsIpcode=44,length=IP地址长度的倍数,value=client的WINS服务器的IP地址序列;Clientidcode=61,length=client的网络硬件地址的长度+2,value=“htype”+“hlen”+client的网络硬件地址;serveridcode=54,length=IP地址长度,value=DHCPSERVER的IP地址;
其中我们要注意TransactionID=CF04CD61和DHCPMessageType一项中type=Discover,前一项表示会话ID,即DHCPServer发回的响应报文中该结构的数值要与发出去的DHCPDiscover中的该结构数值一样,后一项说明DHCP报文类型为Discover类型报文。
2DHCPSERVER回送DHCPOFFER报文图DHCP8
Clientself-assignedIPaddress=0.0.0.0表示客户机还没有使用该地址Clientserver-assignedIPaddress=10.177.124.73表示DHCPServer分配给该客户机的IP地址
ServerIPID=218.290.240它标示了客户机下一次发出DHCPRequest报文时,哪个DHCPServer会发出回应DHCPMessageTypee=DHCPOffer表示这是一个对DHCPDiscover的回应报文RequestIPaddressleasetime=6000表示租期是100分钟DomainNameServer=218.29.0.251域名服务器地址Gatewayaddress=10.177.124.254网关地址Subnetmask=255.255.255.0表示这个地址的网段是一个标准的C类地址网段
详细的请参见图DHCP9
所有发送DHCPOffer信息包的服务器将保留它们提供的一个IP地址。在该地址不再保留之前,该地址不能分配给其他的客户。
用户发出DHCPREQUEST报文
图DHCP10客户以广播的方式发送DHCPRequest信息包作为响应。注意其中的DHCPMessageType一项中type=Request表示这是一个请求报文。客户利用DHCPRequest询问服务器其它的配置选项,如:DNS或网关地址如图DHCP11
DHCPSERVER回送DHCPACK报文图DHCP12
该信息包是以单播的方式发送的。当服务器接收到DHCPRequest信息包时,它以一个DHCPAcknowledge信息作为响应,其内容同DHCPOFFER类似,并在“选项”字段中增加了IP地址使用租期选项。
宣告确认
CLIENT收到DHCPACK报文后(经过上面的处理后,有且只有一个DHCPACK报文),会检查DHCPSERVER分配给自己的IP地址是否能够使用,如在以太网类型的网络中,CLIENT会发出一个ARP请求来确定DHCPSERVER分配的IP地址是否已经被别人使用,如果可以使用,则CLIENT成功获得IP地址,并根据IP地址使用租期自动启动续延过程。
如图DHCP13
DHCP协议报文的种类
前面反复提到DHCPMessageType项,这里列出所有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地址
6:DHCPNAK(0x06),Server对Client的DHCPREQUEST报文的拒绝响应报文,Client收到此报文后,一般会重新开始新的DHCP过程。
7:DHCPRELEASE(0x07),Client主动释放server分配给它的IP地址的报文,当Server收到此报文后,就可以回收这个IP地址,能够分配给其他的Client。
8:DHCPINFORM(0x08),Client已经获得了IP地址,发送此报文,只是为了从DHCPSERVER处获取其他的一些网络配置信息,如routeip,DNSIp等,这种报文的应用非常少见。
图DHCP14是一个运行IPCONFIG/RELEASE后释放IP的报文,从图中可以看出DHCPMessageType是7,他的作用是主动释放server分配给它的IP地址的报文,Server收到此报文后,就可以回收这个IP地址,能够分配给其他的Client。
如果一台客户机未从该DHCP服务器获取过地址,或者它获得的地址已过期,那么它将需要经过全部四个步骤才能得到一个IP地址。
内部网关协议和外部网关协议
生成树协议介绍
学好生成树协议,你就可以尽可能避免因某台交换机的问题造成整个局域网崩溃。
生成树协议是由Sun微系统公司著名工程师拉迪亚珀尔曼博士(RadiaPerlman)发明的。网桥使用珀尔曼博士发明的这种方法能够达到2层路由的理想境界:冗余和无环路运行。你可以把生成树协议设想为一个各网桥设备记在心里的用于进行优化和容错发送数据的过程的树型结构。
我们要介绍的这个问题在图1中进行了描述。
图1.
如果这些交换机不采用生成树协议并且以这种方式连接,每一台交换机将无限地复制它们收到的第一个数据包,直到内存耗尽和系统崩溃为止。在2层,没有任何东西能够阻止这种环路的事情发生。在图1中,管理员必须要手工关闭这个红色连接线路才能让这个以太网网络运行。生成树协议在当前可用连接有效时关闭一个或者更多其它冗余连接,而在当前连接出现故障后,再启用这些被关闭的冗余连接。生成树协议决定使用哪一个连接完全取决于网络的拓扑结构。
生成树协议拓扑结构的思路是,网桥能够自动发现一个没有环路的拓扑结构的子网,也就是一个生成树。生成树协议还能够确定有足够的连接通向这个网络的每一个部分。它将建立整个局域网的生成树。当首次连接网桥或者发生拓扑结构变化时,网桥都将进行生成树拓扑的重新计算。
当一个网桥收到某种类型的“设置信息”(一种特殊类型的桥接协议数据单元,BPDU)时,网桥就开始从头实施生成树算法。这种算法从根网桥的选择开始的。根网桥(rootbridge)是整个拓扑结构的核心,所有的数据实际上都要通过根网桥。顺便提示一下,有手工设置根网桥时要特别注意。对于思科设备来言其根网桥的选择过程暴露出一些问题,就是过分简单化。思科硬件通常使用最低的MAC地址,具备这些地址的设备通常是网络中最古老的设备,因而其交换速度常是最慢的,而从根网桥在网络中的位置看,它负荷却最重。生成树构建的下一步是让每一个网桥决定通向根桥的最短路径,这样,各网桥就可以知道如何到达这个“中心”。这一步会在每个局域网进行,它选择指定的网桥,或者与根桥最接近的网桥。指定的网桥将把数据从局域网发送到根桥。最后一步是每个网桥要选择一个根端口。所谓根端口也即“用来向根桥发送数据的端口”。注意,一个网桥上的每一个端口,甚至连接到终端系统(计算机)的端口,都将参加这个这个根端口选择,除非你将一个端口设置为“忽略”。
上面就是生成树算法的过程。但是,这还不能解释生成树在现实世界中实际上在做什么。我们说,这种计算是破坏性的。毫无疑问,它确实是如此。要进行这种计算,网桥必须停止所有的通信。网桥要经过一系列的测试和学习阶段,只有在拓扑结构建立起来之后才开始发送数据。网桥只有在拓扑机构改变的时候或者网桥得到一个BPDP包时才会进行,想起来这种情况应该很少,可事实上,这种计算发生的频度要比你想象的多。
生成树协议思路是,你允许有一个连接错误,因为你在一对网桥之间存在两条物理连接。生成树协议在一个端口需要使用之前将封锁那个端口。因此,我们应该可以拔掉冗余的连接,并且在不中断通信的情况下把它连接到其它的网桥。很可惜,它不是这样工作的。
希望上面的介绍已经足够清楚。我们知道,启用生成树功能可以让我们通过多个连接把两个网桥连接在一起,并且不产生环路。如果连接之中的一个网桥坏了,我们可以绕过这个网桥,使用另一个网桥。这个工作原理是虽然现用的交换机封锁其备用的连接,但是,它默默地监听BPDU更新并且仍然知道哪一个连接通向根桥。这就是说,如果你进行了适当的设置。还记得虚拟局域网中的trunk如果其中一个物理连接碰巧是一条虚拟局域网trunkk线,会出现什么情况呢如果我们只有一个运行的生成树实例,这个生成树可能会发现trunk中的一个网络不应该使用这个连接(turnk端口汇聚将多条物理连接汇聚为一个带宽更大的逻辑连接)。除了关闭整个连接之外,它没有其它的选择。
现在进入每一个虚拟局域网一个生成树协议(PVST/per-VLANspanningtrees)的话题。当启用这项功能的时候,一个网桥将为该网桥上的每一个虚拟局域网运行一个生成树实例。如果一个trunk连接包含虚拟局域网1、2和3,它可以决定虚拟局域网1和2不能使用那个路径,但是仍然允许虚拟局域网3使用这条路径。在复杂的网络中,还有许多虚拟局域网3只有一个出口的情况,这可能是因为管理员要限制虚拟局域网3访问的范围。如果我们不是用PVST,而且trunk端口被生成树封锁了,这个网桥上的虚拟局域网3将失去与其局域网的其它方面的连接。每一个人都应该使用PVST。
最后,你应该不会忘记,发送BPDU数据的任何端口都能够引起网络中断。这也包括运行ettercap软件和其它非法程序的计算机。一定要在所有的端口启用类似于思科的“BPDU-Guard”这样的技术来封锁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协议解决该安全问题。
IPsec:IP层协议安全结构
IPsec在IP层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。IPsec用来保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径。
IPsec能提供的安全服务集包括访问控制、无连接的完整性、数据源认证、拒绝重发包(部分序列完整性形式)、保密性和有限传输流保密性。因为这些服务均在IP层提供,所以任何高层协议均能使用它们,例如TCP、UDP、ICMP、BGP等等。
这些目标是通过使用两大传输安全协议,头部认证(AH)和封装安全负载(ESP),以及密钥管理程序和协议的使用来完成的。所需的IPsec协议集内容及其使用的方式是由用户、应用程序、和/或站点、组织对安全和系统的需求来决定。
当正确的实现、使用这些机制时,它们不应该对不使用这些安全机制保护传输的用户、主机和其他英特网部分产生负面的影响。这些机制也被设计成算法独立的。这种模块性允许选择不同的算法集而不影响其他部分的实现。例如:如果需要,不同的用户通讯可以采用不同的算法集。
定义一个标准的默认算法集可以使得全球因英特网更容易协同工作。这些算法辅以IPsec传输保护和密钥管理协议的使用为系统和应用开发者部署高质量的因特网层的加密的安全技术提供了途径。
协议结构―IPsec:IP网络安全结构
IPsec结构包括众多协议和算法。这些协议之间的相互关系如下所示:
图2-5IPsec:IP层协议安全结构
有关每个协议的具体细节,请参考个别文件。
安全协议之:RADIUS
RADIUS是一种分布的,客户端/服务器系统,实现安全网络,反对未经验证的访问。在cisco实施中,RADIUS客户端运行在cisco路由器上上,发送认证请求到中心RADIUS服务器,服务器上包含了所有用户认证和网络服务访问的信息。
RADIUS是一种完全开放的协议,分布源码格式,这样,任何安全系统和厂商都可以用。cisco支持在其AAA安全范例中支持RADIUS。RADIUS可以和在其它AAA安全协议共用,如TACACS+,Kerberos,以及本地用户名查找。CISCO所有的平台都支持RADIUS,但是RADIUS支持的特性只能运行在cisco指定的平台上。RADIUS协议已经被广泛实施在各种各样的需要高级别安全且需要网络远程访问的网络环境。
RADIUS不适合以下网络安全情形:~多协议访问环境,Radius不支持以下协议:*AppleTalkRemoteAccess(ARA)苹果远程访问。*NetBIOSFrameControlProtocol(NBFCP)网络基本输出输入系统侦控制协议。*NetWareAsynchronousServicesInterface(NASI)网件异步服务接口。*X.25PADconnectionsX.25PAD连接。~路由器到路由器情形.Radius不提供双向认证.Radius能使用在要认证从一个路由器到非cisco路由器,当这个非cisco路由器需要认证的时候.~网络使用各种各样的服务的时候.Radius大体上约束一个用户使用一个服务模型.
IPv4协议(互联网协议)
互联网协议(InternetProtocol)是规范计算机网络中数据传送的一套协议。目前使用的是IPv4,IPv6在试验阶段。IPv4,是互联网协议(InternetProtocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年JonPostel在RFC791中定义了IP。TCP/IP协议栈(按TCP/IP参考模型划分)
应用层
FTP
SMTP
HTTP
...
传输层
TCP
UDP
网络层
IPICMP
ARP
链路层
以太网
令牌环
FDDI
地址格式IPv4使用32位地址,因此最多可能有4,294,967,296(=232)个地址。一般的书写法为4个用小数点分开的十进制数。也有人把4个字节的数字化成一个巨型整数,但这种标示法并不常见。另一方面,目前还并非很流行的IPv6使用的128位地址所采用的位址记数法,在IPv4也有人用,但使用范围更少。
过去IANAIP地址分为A,B,C,D4类,把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)协议,有一个协议参数,即所谓的最大传输单元(MaximumTransferUnit,MTU),为1518字节,以太网的帧首部使用18字节,剩给整个IP包(首部+数据部分)的只有1500字节。
还有一些底层网络只能支持更短的包长。这种情况下,IP协议提供一个分割(fragment)的可选功能。长的IP包会被分割成许多短的IP包,每一个包中携带一个标志(Fragmentid)。发送方(比如一个路由器)将长IP包分割,一个一个发送,接送方(如另一个路由器)按照相应的IP地址和分割标志将这些短IP包再组装还原成原来的长IP包。
IP路由Ipv4并不区分作为网络终端的主机(host)和网络中的中间设备如路由器中间的差别。每台电脑可以即做主机又做路由器。路由器用来联结不同的网络。所有用路由器联系起来的这些网络的总和就是互联网。
IPv4技术即适用于局域网(LAN)也适用于广域网。一个IP包从发送方出发,到接送方收到,往往要穿过通过路由器连接的许许多多不同的网络。每个路由器都拥有如何传递IP包的知识,这些知识记录在路由表中。路由表中记录了到不同网络的路径,在这儿每个网络都被看成一个目标网络。路由表中记录由路由协议管理,可能是静态的记录比如由网络管理员写入的,也有可能是由路由协议动态的获取的。有的路由协议可以直接在IP协议上运行。
常用的路由协议有
路由信息协议(RoutingInformationProtocol,RIP),开放式最短路径优先协议,OpenShortestPathFast,OSPF),中介系统对中介系统协议(IntermediateSystem–IntermediateSystem,IS-IS),边界网关协议(BorderGatewayProtocol,BGP).在网络负荷很重或者出错的情况下,路由器可以将收到的IP包丢弃。在网络负荷重的时候,同样一个IP包有可能由路由器决定走了不同的路径。路由器对每一个IP包都是单独选择路由的。这也提高了IP通信的可靠性。但单是IP层上的包传输,并不能保证完全可靠。IP包可能会丢失;可能会有重复的IP包被接受方收到;IP包可能会走不同的路径,不能保证先发的先到;接受方收到的可能是被分割了的IP包。在IP之上再运行TCP协议则解决这些缺点提供了一个可靠的数据通路。
ICMP互联网控制消息协议(InternetControlMessagesProtocol,ICMP)用于查错和控制(如),是IP协议不可能缺少的帮手。几乎任何的IP协议的实施(Implementation)都伴随一个ICMP协议的实施。ICMP协议实现在IP之上,即ICMP包是作为IP的数据部分来传送的。
ICMP的一个重要的应用是网络拥塞控制:路由器丢弃一个IP包时,一般会用ICMP发一个消息给这个IP包的原发送者,原发送者可以相应的降低IP包的发送频率,以降低或避免IP包再被丢弃的可能性。
ICMP的另一个重要的应用在于,将传送ICMP消息的IP包禁止分割位(Don'tFragment-Bit)设置上,就可以利用ICMP的来测量一段网络的最大传输单元(MTU)。
IPOEIpv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议),卫星链路等等。局域网中最常用的是以太网。
一个用于IP包的以太网数据帧,在IP包首部前有一个14字节的以太网帧首部,在IP数据部分后添加了一个32位(4字节)的CRC校验。
除了1518字节的最大传输单元(MTU)限制外,以太网还有最小传输单元的限制:总帧长不能小于64字节。如果IP包太短,比如IP数据部分短于26字节,那么后面会添0(Padding),这时IP首部中的'包长度'指示了真正的包长。
以太网使用48位的地址。每个以太网网卡都有一个独一无二的48位的硬件地址。所有的位均为1的地址是以太网广播地址。发送数据的以太网网卡必须知道数据接送方的以太网地址才能把数据发给它。
地址解析协议ARP(AddressResolutionProtocol)用于将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,Morefragments)进行连接,帮助目的主机将分段的包组合。
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的开发。参考文献[RFC791]InternetProtocol.
IPv6(互联网协议)
IPv6编址从IPv4到IPv6最显著的变化就是网络地址的长度。RFC2373和RFC2374定义的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:57ab2001:0DB8:0000:0000:0000::1428:57ab2001:0DB8:0:0:0:0:1428:57ab2001:0DB8:0::0:1428:57ab2001: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-compatibleaddress),则地址可以为::135.75.43.52。
IPv6封包IPv6封包由两个主要部分组成:头部和负载。
IPv6和域名系统IPv6地址在域名系统中为执行正向解析表示为AAAA记录(所谓4A记录)(类似的IPv4表示为A记录Arecords);反向解析在ip6.arpa(原先ip6.int)下进行,在这里地址空间为半字节16进制数字格式。这种模式在RFC3596给与了定义。AAAA模式是IPv6结构设计时的两种提议之一。另外一种正向解析为A6记录并且有一些其他的创新像二进制串标签和DNAME记录等。RFC2874和它的一些引用中定义了这种模式。AAAA模式只是IPv6域名系统的简单概括,A6模式使域名系统中检查更全面,也因此更复杂:A6记录允许一个IPv6地址在分散于多个记录中,或许在不同的区域;举例来说,这就在原则上允许网络的快速重编号。使用域名系统记录委派地址被DNAME记录(类似于现有的CNAME,不过是重命名整棵树)所取代。一种新的叫做比特标签的类型被引入,主要用于反向解析。2002年8月的RFC3363中对AAAA模式给与了有效的标准化(在RFC3364有着对于两种模式优缺点的更深入的讨论)。
缺点:
需要在整个互联网和它所连接到的设备上建立对IPv6的支持从IPv4访问时的转换过程中,在网关路由器(IPv6<-->IPv4)还是需要一个IPv4地址和一些NAT(=共享的IP地址),增加了它的复杂性,还意味着IPv6许诺的巨大的空间地址不能够立刻被有效的使用。遗留的结构问题,例如在对IPv6multihoming支持上一致性的匮乏。工作:
6boneICMPv6IPv6multihoming
转换机制直到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)。
外部链接IPv6News&Links-HS247
TCP-传输控制协议
传输控制协议(TransmissionControlProtocol,TCP)是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由IETF的RFC793说明。在简化的计算机网络OSI模型中,它完成运输层所指定的功能。
在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
应用层向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的可靠的丢包处理、错误最小化、拥塞管理以及高速运行环境等机制的优化的研究和标准制定,正在进行之中。
MDLC协议
auto">MDLC协议是优化设计用于SCADA系统的一种数据通信协议。该协议与网络通信介质无关,即SCADA系统可以工作于无线、有线、局部网等各种通信媒体上。为了在这些不同的媒体中都能获得可靠和高效的通信效果及提供网络管理功能,MDLC协议的设计基于国际标准化组织(ISO)的开放系统互联(OSI)七层模型。MDLC协议有如下特点:
●存储/转发功能。
●远程数据或程序上装/下载及诊断。
●提供数据通信网络管理功能,解决通信中冲突检测、拥塞现象及纠错重发问题。
●支持通信信道状态检测,信道路由优化。
●MDLC协议支持RTU数量达65,000个。在数据传输过程中,能根据传输质量的好坏实现变帧长传输。
●CRC校验使得数据通信误码率<10-6。
利用简单的通信协议实现测站与中心站站间的数据传输,是多数信息采集系统,特别是国产设备采用的方法。这种方法的特点是简单、实用。但由于不具有数据通信网络管理功能,故数据通信安全可靠性差。
采用MDLC通信协议实现的SCADA系统的数据通信安全可靠,数据传输有效性高,支持同一信道上的多点到点的并行传输。由于MDLC协议已经固化在所有的RTU的CPU模板中,所以关于通信中的管理调度完全不需要用户开发设计。
水情信息采集传输系统除了可以在正常情况下实现数据采集传输外,其最主要的作用是要能够处理突发事件。在突发事件产生时,往往会在通信信道上发生碰撞和拥塞。此外现代无线信道容易受到外界的干扰,易产生误码,必需具有查错和纠错的能力。中继站是无线遥测系统的关键环节,中继站故障往往会使一部分测站数据无法上达,而在狂风暴雨条件下,由于天气的影响也会使中继站无法中继某些测站的数据,所以测站RTU自动检测信道状态和自动在存储转发范围内利用临近测站实现中继的功能是水情信息传输系统中必不可少的。而这一切通过简单的通信协议是很难完全实现的。而MDLC是目前世界上独有的可用于SCADA系统无线通信,且满足ISO/OSI七层模型(物理层、数据链路层、网络层、传输层、对话层、表示层和应用层)的广域网通信协议。它为MOSCAD数据通信系统提供了完全的数据通信能力,存储转发功能,冲突检测和纠错能力,远程检测、配置和诊断能力等。MDLC通信协议为实现水情数据无差错传输提供了可靠保证。
FTP协议的分析和扩展
FTP:FileTransferProtocol
文件传输协议(FTP)使得主机间可以共享文件。FTP使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的TCP连接用于数据传输。控制连接使用类似TELNET协议在主机间交换命令和消息。
FTP的主要功能如下:
FTP,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。
FTP控制帧即指TELNET交换信息,包含TELNET命令和选项。然而,大多数FTP控制帧是简单的ASCII文本,可以分为FTP命令或FTP消息。FTP消息是对FTP命令的响应,它由带有解释文本的应答代码构成。
命令及描述
命令
描述
ABOR
中断数据连接程序
ACCT
系统特权帐号
ALLO
为服务器上的文件存储器分配字节
APPE
添加文件到服务器同名文件
CDUP
改变服务器上的父目录
CWD
改变服务器上的工作目录
DELE
删除服务器上的指定文件
HELP
返回指定命令信息
LIST
如果是文件名列出文件信息,如果是目录则列出文件列表
MODE
传输模式(S=流模式,B=块模式,C=压缩模式)
MKD
在服务器上建立指定目录
NLST
列出指定目录内容
NOOP
无动作,除了来自服务器上的承认
PASS
PASV
请求服务器等待数据连接
PORT
IP地址和两字节的端口ID
PWD
显示当前工作目录
QUIT
REIN
REST
由特定偏移量重启文件传递
RETR
从服务器上找回(复制)文件
RMD
在服务器上删除指定目录
RNFR
对旧路径重命名
RNTO
对新路径重命名
SITE
由服务器提供的站点特殊参数
SMNT
挂载指定文件结构
STAT
在当前程序或目录上返回信息
STOR
储存(复制)文件到服务器上
STOU
储存文件到服务器名称上
STRU
数据结构(F=文件,R=记录,P=页面)
SYST
返回服务器使用的操作系统
TYPE
数据类型(A=ASCII,E=EBCDIC,I=binary)
USER
标准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:TrivialFileTransferProtocol
简单文件传输协议是一种用来传输文件的简单协议,运行在UDP(用户数据报协议)上。TFTP的被设计为小而简单容易的运行,因此,它缺乏标准FTP协议的许多特征。TFTP只能从远程服务器上读、写文件(邮件)或者读、写文件传送给远程服务器。它不能列出目录并且当前不提供用户认证。
当前TFTP有3种传输模式:netASC11模式即8位ASC11;八位组模式(替代了以前版本的二进制模式),如原始八位字节;邮件模式,在这种模式中,传输给用户的不是文件而是字符。主机双方可以自己定义其它模式。
在TFTP协议中,任何一个传输进程都以请求读写文件开始,同时建立一个连接。如果服务器同意请求,则连接成功,文件就以固定的512字节块的长度进行传送。每个数据包都包含一个数据块,在发送下一个包之前,数据块必须得到确认响应包的确认。少于512字节的数据包说明了传输的结束。如果包在网络中丢失,,接收端就会超时并重新发送其最后的包(可能是数据也可能是确认响应),这就导致丢失包的发送者重新发送丢失包。发送者需要保留一个包在手头用于重新发送,因为LOCK确认响应保证所有过去的包都已经收到。注意传输的双方都可以看作发送者和接收者。一方发送数据并接收确认响应,另一方发送确认响应并接受数据。
TFTP的当前版本为v2。
协议结构
基本TFTP协议头结构:
16bits
String
Opcode
Filename
Mode
Opcode:操作代码或命令。以下为TFTP命令:
Command
Description
1
ReadRequest
Requesttoreadafile
2
WriteRequest
Requesttowritetoafile
3
FileData
Transferoffiledata
DataAcknowledge
Acknowledgementoffiledata
5
Error
Errorindication
Filename:传送的字段名称。
Mode:数据模式。协议传输的文件数据格式。可以是NetASCII,也可以是标准ASCII,八位二进制数据或邮件标准ASCII。
在RFC1350中定义
ADSL使用中常见协议
网络安全协议之比较(SSH、PKI、SET、SSL)
一、SSH介绍
什么是SSH?传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
SSH的英文全称是SecureSHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH2.x的客户程序是不能连接到SSH1.x的服务程序上去的。OpenSSH2.x同时支持SSH1.x和2.x。
SSH的安全验证是如何工作的从客户端来看,SSH提供两种级别的安全验证。
第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
一个应用程序的安全需求在很大程度上依赖于将如何使用该应用程序和该应用程序将要保护什么。不过,用现有技术实现强大的、一般用途的安全通常是可能的。认证就是一个很好的示例。
当顾客想从Web站点购买某个产品时,顾客和Web站点都要进行认证。顾客通常是以提供名字和密码的方式来认证他自己。另一方面,Web站点通过交换一块签名数据和一个有效的X.509证书(作为SSL握手的一部分)来认证它自己。顾客的浏览器验证该证书并用所附的公用密钥验证签名数据。一旦双方都认证了,则交易就可以开始了。
SSL能用相同的机制处理服务器认证(就如在上面的示例中)和客户机认证。Web站点典型地对客户机认证不依赖SSL—要求用户提供密码是较容易的。而SSL客户机和服务器认证对于透明认证是完美的,对等机—如p2p应用程序中的对等机之间一定会发生透明认证。
安全套接字层(SecureSocketsLayer(SSL)),SSL是一种安全协议,它为网络(例如因特网)的通信提供私密性。SSL使应用程序在通信时不用担心被窃听和篡改。SSL实际上是共同工作的两个协议:“SSL记录协议”(SSLRecordProtocol)和“SSL握手协议”(SSLHandshakeProtocol)。“SSL记录协议”是两个协议中较低级别的协议,它为较高级别的协议,例如SSL握手协议对数据的变长的记录进行加密和解密。SSL握手协议处理应用程序凭证的交换和验证。
安全套接层协议(SSL,SecuritySocketLayer)是网景(Netscape)公司提出的基于WEB应用的安全协议,它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。对于电子商务应用来说,使用SSL可保证信息的真实性、完整性和保密性。但由于SSL不对应用层的消息进行数字签名,因此不能提供交易的不可否认性,这是SSL在电子商务中使用的最大不足。有鉴于此,网景公司在从Communicator4.04版开始的所有浏览器中引入了一种被称作“表单签名(FormSigning)”的功能,在电子商务中,可利用这一功能来对包含购买者的订购信息和付款指令的表单进行数字签名,从而保证交易信息的不可否认性。综上所述,在电子商务中采用单一的SSL协议来保证交易的安全是不够的,但采用"SSL+表单签名"模式能够为电子商务提供较好的安全性保证。三、PKI介绍
为解决Internet的安全问题,世界各国对其进行了多年的研究,初步形成了一套完整的Internet安全解决方案,即目前被广泛采用的PKI体系结构,PKI体系结构采用证书管理公钥,通过第三方的可信机构CA,把用户的公钥和用户的其他标识信息(如名称、e-mail、身份证号等)捆绑在一起,在Internet网上验证用户的身份,PKI体系结构把公钥密码和对称密码结合起来,在Internet网上实现密钥的自动管理,保证网上数据的机密性、完整性。
公钥密码证书管理。
黑名单的发布和管理。
密钥的备份和恢复。
自动更新密钥。
自动管理历史密钥。
支持交*认证。由于PKI体系结构是目前比较成熟、完善的Internet网络安全解决方案,国外的一些大的网络安全公司纷纷推出一系列的基于PKI的网络安全产品,如美国的Verisign,IBM,Entrust等安全产品供应商为用户提供了一系列的客户端和服务器端的安全产品,为电子商务的发展提供了安全保证。为电子商务、政府办公网、EDI等提供了完整的网络安全解决方案。
PKI是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通讯、网上交易是利用它来保证安全的。从某种意义上讲,PKI包含了安全认证系统,即安全认证系统-CA/RA系统是PKI不可缺的组成部分。
PKI(PublicKeyInfrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI框架管理密钥和证书可以建立一个安全的网络环境。X.509格式的证书和证书废除列表(CRL);CA/RA操作协议;CA管理协议;CA政策制定。
四、SET协议介绍
电子商务在提供机遇和便利的同时,也面临着一个最大的挑战,即交易的安全问题。在网上购物的环境中,持卡人希望在交易中保密自己的帐户信息,使之不被人盗用;商家则希望客户的定单不可抵赖,并且,在交易过程中,交易各方都希望验明其他方的身份,以防止被欺骗。针对这种情况,由美国Visa和MasterCard两大信用卡组织联合国际上多家科技机构,共同制定了应用于Internet上的以银行卡为基础进行在线交易的安全标准,“这就是“安全电子交易”(SecureElectronicTransaction,简称SET)。它采用公钥密码体制和X.509数字证书标准,主要应用于保障网上购物信息的安全性。
由于SET提供了消费者、商家和银行之间的认证,确保了交易数据的安全性、完整可靠性和交易的不可否认性,特别是保证不将消费者银行卡号暴露给商家等优点,因此它成为了目前公认的信用卡/借记卡的网上交易的国际安全标准。
SET(SecureElectronicTransaction)安全电子交易协议是由美国Visa和MasterCard两大信用卡组织提出的应用于Internet上的以信用卡为基础的电子支付系统协议。它采用公钥密码体制和X.509数字证书标准,主要应用于BtoC模式中保障支付信息的安全性。SET协议本身比较复杂,设计比较严格,安全性高,它能保证信息传输的机密性、真实性、完整性和不可否认性。SET协议是PKI框架下的一个典型实现,同时也在不断升级和完善,如SET2.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命令退出。
若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记录,shmailMX5shmail.abc.com10shmail2.abc.comc.Sendmail最后请求DNS给出shmail.abc.com的A记录,即IP地址,若返回值为1.2.3.4d.Sendmail与1.2.3.4连接,传送这封给shuser@sh.abc.com的信到1.2.3.4这台服务器的SMTP后台程序
7.SMTP基本命令集:
命令描述------------------------------HELO向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器都能检测到。
8.MAILFROM命令中指定的地址是称作envelopefrom地址,不需要和发送者自己的地址是一致的。RCPTTO与之等同,指明的接收者地址称为envelopeto地址,而与实际的to:行是什么无关。9.为什么没有RCPTCC和RCPTBCC:所有的接收者协商都通过RCPTTO命令来实现,如果是BCC,则协商发送后在对方接收时被删掉信封接收者10.邮件被分为信封部分,信头部分和信体部分envelopefrom,envelopeto与messagefrom:,messaget完全不相干。evnelope是由服务器主机间SMTP后台提供的,而messagefrom/to是由用户提供的。有无冒号也是区别。
11.怎样由信封部分检查是否一封信是否是伪造的?a.received行的关联性。现在的SMTP邮件传输系统,在信封部分除了两端的内部主机处理的之个,考虑两个公司防火墙之间的部分,若两台防火墙机器分别为A和B,但接收者检查信封received:行时发现经过了C.则是伪造的。b.received:行中的主机和IP地址对是否对应如:Receibed:fromgalangal.org(turmeric.com[104.128.23.115]bymail.bieberdorf.edu....c.被人手动添加在最后面的received行:Received:fromgalangal.org([104.128.23.115])bymail.bieberdorf.edu(8.8.5)Received:fromlemongrass.orgbygalangal.org(8.7.3)Received:fromgraprao.combylemongrass.org(8.6.4)
常用的电信协议
多协议标志交换(MPLS)基本原理
POP3邮局协议-版本3
1.简介
虽然如此,在这样的小结点上允许管理邮件是十分有用的,并且这些结点经常支持一个用户代理来管理邮件。为解决这一问题,能够支持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的行也不被认为是多行响应的一部分了。
4.“确认”状态
一时TCP连接由POP3客户打开,POP3服务器发送一个单行的确认。这个消息可以是由CRLF结束的任何字符。例如,它可以是:
S:+OKPOP3serverready
注意:这个消息是一个POP3应答。POP3服务器应该给出一个“确定”响应作为确认。
此时POP3会话就进入了“确认”状态。此时,客户必须向服务器证明它的身份。在文档中介绍两种可能的处理机制,一种是USER和PASS命令,另一种是在后面要介绍的APOP命令。
用USER和PASS命令进行确认过程,客户必须首先发送USER命令,如果POP3服务器以“确认”状态码响应,客户就可以发送PASS命令以完成确认,或者发送QUIT命令终止POP3会话。如果POP3服务器返回“失败”状态码,客户可以再发送确认命令,或者发送QUIT命令。
当客户发送了PASS命令后,服务器根据USER和PASS命令的附加信息决定是否允许访问相应的存储邮件。
一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防止在进入“更新”状态前对邮件的改变。如果成功获得了排它锁,服务器返回一个“确认”状态码。会话进入“操作状态”,同时没有任何邮件被标记为删除。如果邮件因为某种原因不能打开(例如,排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回“失败”状态码。在返回“失败”状态码后,服务器会关闭连接。如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送QUIT命令。
在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。第一个消息被指定为1,第二个消息被指定为2,以此类推,第N个消息被指定为N。在POP3命令和响应中,所以的消息号和长度以十进制表示。
下面是对上述三条命令的总结:
命令格式
参数
限制
响应
例子
USERname
仅在USER和PASS命令失败后或在“确认”状态中使用
C:USERmrose
S:+OKmroseisarealhoopyfrood
C:USERfrated
S:-ERRsorry,nomailboxforfratedhere
PASSstring
口令
仅在“确认”状态中USER命令成功后使用(因为此命令只有一个参数,因此空格不再作为分隔符,而作为口令的一部分)
+OK:邮件锁住并已经准备好;
-ERR无效口令或无法锁住邮件
C:PASSsecret
S:+OKmrose'smaildrophas2messages(320octets)
S:-ERRmaildropalreadylocked
(无)
+OK
C:QUIT
S:+OKdeweyPOP3serversigningoff
5.“操作”状态
一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时POP3会话进入“操作”状态。现在客户可以重复下面的POP3命令,对于每个命令服务器都会返回应答。最后,客户发送QUIT命令,会话进入“更新”状态。
下面是在“操作”状态中可用的命令:
说明
STAT
仅在“操作”状态下可用。
服务器以包括邮件信息的响应做为“确认”。为简化语法分析,所有的服务器要求使用邮件列表的特定格式。“确认”响应由一个空格,以八进制表示的邮件数目,一个空格和邮件大小。这是最小实现,高级的实现还需要别的信息。
注意:被标记为删除的信件不在此列。
+OK:nnmm
C:STAT
S:+OK2320
LIST[msg]
信件数目(可选),如果出现,不包括标记为删除的信件。
如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“扫描表”。
如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的+OK后,对于每个信件,服务器均给出相应的响应。
为简化语法分析,所有服务器要求使用扫描表的特定格式。它包括空格,每个邮件的确切大小。这是最小实现,高级的实现还需要别的信息。
+OK:其后跟扫描表;
-ERR:无扫描。
C:LIST
S:+OK2messages(320octets)
S:1120
S:2200
S:.
C:LIST2
S:+OK2200
C:LIST3
S:-ERRnosuchmessage,only2messagesinmaildrop
RETRmsg
不包括标记为删除的信件数目。
如果服务器返回“确认”,给出的响应是多行的。在初始的+OK后,服务器发送与给定信息号对应的信息,对于多行响应,注意字节填充终止符。
+OK:消息在其后;
-ERR:其后无消息。
C:RETR1
S:+OK120octets
S:
DELEmsg
服务器将此信件标记为删除,以后任何关于此信件的操作就会产生错误。服务器在会话进入“更新”状态前不会真正删除此信件。
+OK:信件被删除;
-ERR:无此信件。
C:DELE1
S:+OKmessage1deleted
C:DELE2
S:-ERRmessage2alreadydeleted
服务器仅返回“确认”。
C:NOOP
S:+OK
RSET
所有被标记为删除的信件复位,服务器返回“确认”。
C:RSET
S:+OKmaildrophas2messages(320个字符)
6.“更新”状态
当客户在“操作”状态下发送QUIT命令后,会话进入“更新”状态。(注意:如果客户在“确认”状态下发送QUIT后,会话并不进入“更新”状态。)
如果会话因为QUIT命令以外的原因中断,会话并不进入“更新”状态,也不从服务器中删除任何信件。
服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。最后TCP连接被中断。
S:+OKdeweyPOP3serversigningoff(清空标记邮件)
7.可选的POP3命令
以上讨论的命令是对POP3服务的最小实现。以下说明的可选命令允许客户更方便地处理信件,这是一个比较一般的POP3服务实现。
TOPmsgn
一个是未被标记为删除的信件数,另一个是非负数(必须提供)
仅在“操作”状态下使用。
如果服务器返回“确认”,响应是多行的。在初始的+OK后,服务器发送信件头,一个空行将信件头和信件体分开,对于多行响应要注意字节填充终止符。
注意:如果客户要求的行数比信件体中的行数大,服务器会发送整个信件。
+OK:其后有信件头;
-ERR:其后无类似消息。
C:TOP110
S:<服务器发送消息头,一个空行和信件的头10行>
C:TOP1003
S:-ERRnosuchmessage
UIDL[msg]
信件数(可选)。如果给出信件数,不包括被标记为删除的信件。
如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“独立-ID表”。
如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的+OK后,对于每个信件,服务器均给出相应的响应。此行叫做信件的“独立-ID表”。
为简化语法分析,所有服务器要求使用独立-ID表的特定格式。它包括空格和信件的独立-ID。
信件的独立-ID由0x21到0x7E字符组成,这个符号在给定的存储邮件中不会重复。
注意:信件不包括被标记为删除的信件。
+OK:其后是独立-ID表;
-ERR:其后无类似信件。
C:UIDL
S:1whqtswO00WBw418f9t5JxYwZ
S:2QhdPYR:00WBw1Ph7x7
C:UIDL2
S:+OK2QhdPYR:00WBw1Ph7x7
C:UIDL3
APOPnamedigest
仅在POP3确认后的“确认”状态中使用。
另一种提供“确认”过程的方法是使用APOP命令。
如果服务器接到APOP命令,它验证digest,如果正确,服务器返回“确认”,进入“操作”状态;否则,给出“失败”并停留在“确认”状态。
注意:共享密钥的长度增加,解读它的难度也相应增加,这个密钥应该是长字符串。
+OK:邮件锁住并准备好;
-ERR:拒绝请求。
S:+OKPOP3serverready<1896.697170952@dbc.mtview.ca.us>
C:APOPmrosec4c9334bac560ecc979e58001b3e22fb
S:+OKmaildrophas1message(369octets)
在此例子中,共享密钥<1896.697170952@dbc.mtview.ca.us>tanstaaf由MD5算法生成,它产生了digest值,c4c9334bac560ecc979e58001b3e22fb
8.POP3命令总结
基础的POP3命令:
USERname在“确认”状态有效
STAT在“操作”状态有效
QUIT在“更新”状态有效
可选的POP3命令:
APOPnamedigest在“确认”状态有效
TOPmsgn在“操作”状态有效
POP3响应:
-ERR
注意:除了STAT,LIST和UIDL的响应外,其它命令的响应均为"+OK"和"-ERR"。响应后的所有文本将被客户略去。
9.POP3会话实例
S:<等待连接到TCP端口110>
C:<打开连接>
S:<服务器发送信件1>
C:RETR2
S:+OK200octets
S:<服务器发送信件2>
S:+OKmessage2deleted
S:+OKdeweyPOP3serversigningoff(maildropempty)
C:<关闭连接>
S:<等待下一次连接>
10.消息格式
在会话过程中的消息格式都假定与Internet文本消息格式标准一致。应该注意的是,由于各个服务器对于换行符的处理不同,因此计数不一定相同。通常,在“确认”状态中,服务器能够以八进制计算信件的大小。例如,如果在打开储存邮件时服务器内部认定换行符代表一个字符,一般服务器在计算它时作为两个字符计。注意,以终止符开始的消息行不被计数两次,因为客户将在接收到多行响应后删除所有字节填充。
11.安全性考虑
可以推测,使用APOP命令可以提供会话期间的保护。相应的,同时实现PASS和APOP命令的服务器只允许用户以一种方式访问;也就是说要么使用USER/PASS组合,要么使用APOP命令,不能同时使用两个。
而且,注意随着共享密钥长度的增加,解读的难度也就上升了。服务器要提供用户名时不给出任何响应,不给出任何暗示此用户名是否正确。而口令却在网络上显式传送;使用RETR和TOP命令在网络上显式传送信件。
CIP传输协议
摘要
1.协议
本节说明用于传输CIP索引对象和维护网结构。本文主要定义定义消息格式,传输机制。CIP协议的设计思想是一种块设计思想。它不依赖于许多于协议定义工具,或文本编码方式,而是利用现有的协议技术进行设计。这样可以使设计和实现简化。这也是利用现有的Internet技术实现应用层服务的方法。
2MIME消息交换机制
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-HdrsCRLFReq-Body
Req-Hdrs=*(Version-Hdr|Req-Cntnt-Hdr)
Req-Body=Body;formatofrequestbodyasin[CIP-MIME]
Body=DataCRLF"."CRLF
Data=;datawithCRLF"."CRLFreplacedbyCRLF".."CRLF
Version-Hdr="Mime-Version:""1.0"CRLF
Req-Cntnt-Hdr="Content-Type:"Req-ContentCRLF
Req-Content=;formatisspecifiedin[CIP-MIME]
Cip-Rsp=Rsp-CodeCRLF[Rsp-HdrsCRLFRsp-Body][Indx-Cntnt-HdrCRLFIndex-Body]
Rsp-Code=DIGITDIGITDIGITComment
Comment=;anycharsexceptCRandLF
Rsp-Hdrs=*(Version-Hdr|Rsp-Cntnt-Hdr)
Rsp-Cntnt-Hdr="Content-Type:"Rsp-ContentCRLF
Rsp-Content=;formatisspecifiedin[CIP-MIME]
Rsp-Body=Body;formatofresponsebodyasin[CIP-MIME]
Indx-Cntnt-Hdr="Content-Type:"Indx-Obj-TypeCRLF
Indx-Obj-Type=;anyregisteredindexobject'sMIME-typetheformatisspecifiedin[RFC2045]
Index-Body=Body;formatdefinedineachindexspecifications
CRLF=CRLF;Internetstandardnewline
CR=%x0D;carriagereturn
LF=%x0A;linefeed
DIGIT=%x30-39
消息以SMTP形式结束,数据以字节传输,除了看到1*["."],这种情况下要加一个句号。在数据传输结束时以"."表示。接收方要将结束标记略过。接收方的响应分为200,400和500系列。响应也以SMTP形式的消息界定。在返回响应后,接收CIP必须准备接收下一个请求,将状态返回到发送CIP刚刚确定版本时的状态。如果发送CIP不再发请求,则可以关闭连接。作为响应,接收CIP必须广放弃读入消息,并准备新的发送CIP连接。下面是一个例子,这里的行结束显式给出。中间的空间只为可读性而设置,注释在大括号内。
{发送CIP连接到接收CIP}
<<<%220ExampleCIPserverready
>>>#CIP-Version:3
<<<%300CIPv3OK!
>>>Mime-Version:1.0
>>>Content-type:application/index.cmd.datachanged;type=
>>>x-tagged-index-1;dsi=1.2.752.17.5.10
>>>
>>>updatetype:incrementaltagbased
>>>thisupdate:855938804
>>>lastupdate:855940000
>>>.
<<<%200GoodMIMEmessagereceived
>>>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
>>>BEGINIO-schema
>>>cn:TOKEN
>>>sn:FULL
>>>title:FULL
>>>ENDIO-Schema
>>>BEGINUpdateBlock
>>>BEGINOld
>>>title:3/testpilot
>>>ENDOld
>>>BEGINNew
>>>title:3/chiefpilot
>>>ENDNew
>>>ENDUpdateBlock
{发送CIP关闭写套接字}
<<<%222Connectionclosinginresponsetosender-CIPshutdown
{接收CIP关闭,重新设置状态并等待新的发送CIP连接}
如果版本不对,则会出现下面的情况:
<<<%220Whois++serverready
<<<%500Syntaxerror
{服务器关闭连接}
发送CIP可以会尝试以版本1或2进行连接,而失败的结果会被缓冲以避免以后的失败。
2.1.1传输特定的响应码
下面的响应码用于流传输:
Code
描述文本
发送CIP动作
MIME请求的接收和处理
无输出,继续会话
201
MIME请求的接收,处理与输出
请入以SMTP格式界定边界的响应
紧跟初始服务器标记信息
继续Whois++交互,或核对CIP版本
222
关闭连接
完成操作
300
接收请求的CIP版本
在特定的版本下继续操作
400
暂时不能处理请求
过一会儿再试。可以用于表示服务器现在没有资源接收索引
错误的MIME格式
以正确格式重试
未知或丢失请求
以正确的命令重试
请求没有需要的CIP属性
以正确的属性重试
520
因不明原因中断连接
通知本地管理员
请求需要合法的签名
对请求签名,如果可能重试,如果不能则向管理员报告问题
531
无效签名
报告管理员
无法检查签名
通知本地管理员,由他和远程的管理员协商处理问题
2.2以邮件系统进行传输
除了TCP流以外,可以利用现有的邮件系统进行CIP操作。这样可以减少对叶子服务器的压力,在进行TCP连接时叶子服务器中包括一个数据库和一个检索程序。这样还可以有效地利用现有的网络技术。因为使用MIME消息,而MIME也可以用邮件进行传输,这样我们就可以利用与TCP完全不同的方法完成CIP传输。在使用邮件时基本请求和响应也是支持的。下面会说明一些特定的情况,在这些情况下,应该对邮件传输CIP对象另加考虑。通常,所有的邮件协议和邮件格式均可用于CIP邮件传输。
2.2.1确定CIP版本
因为在MIME信息中未说明使用的CIP版本,所以要在信件头中包括这一消息。因此使用邮件传输时,必须包括CIP版本行,它的格式如下:
number=1*DIGIT
cipversion="CIP-Version:"number["."number]
2.2.2返回路径
在双向流中进行CIP操作时,返回响应和错误是隐式的。使用邮件对于确定接收者就有困难。因为从信头有时不能确定谁发的信。CIP要求发送方必须接收一个返回地址,如果没有,CIP服务器将忽略这一请求,只会在日志里记一笔。接收方不能从信件的其它地方获得返回地址。如果响应不能返回给请求,发送方应该将地址包括在<>之内也放在返回地址中。我们不应该利用不能返回使错误信息不能返回,但有时这也是简化系统的一个好方法。
2.3HTTP传输
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,6Jun199718:16:03GMT
>>>Content-Length:2
>>>Connection:close
{服务器处理请求}
<< 利用HTTP时可以同时利用它的安全机制和其它属于HTTP的特点。CIP客户可以利用Accept-Charset和Accept-LanguageHTTP头来指定索引以特定的字符集返回。也可以使用Accept-Encoding来表示它可以处理压缩响应。也可以利用If-Modified-Since来防止在索引未改变的情况下再次传输再来的浪费。CIP服务器可以使用Retry-After要求客户过一会再进行请求。 3.安全 索引信息有两层安全保护,一层是使用现有的安全MIME对象,另一层是利用现有的安全传输机制。我们上面已经说过了利用三种协议传输CIP对象,那这三个协议中的安全机制对安全传输CIP对象是有用的。 802.1x协议解析 一、802.1x认证技术的起源802.1x协议起源于802.11协议,后者是标准的无线局域网协议,802.1x协议的主要目的是为了解决无线局域网用户的接入认证问题。 有线局域网通过固定线路连接组建,计算机终端通过网线接入固定位置物理端口,实现局域网接入,这些固定位置的物理端口构成有线局域网的封闭物理空间。但是,由于无线局域网的网络空间具有开放性和终端可移动性,因此很难通过网络物理空间来界定终端是否属于该网络,因此,如何通过端口认证来防止其他公司的计算机接入本公司无线网络就成为一项非常现实的问题,802.1x正是基于这一需求而出现的一种认证技术。也就是说,对于有线局域网,该项认证没有存在的意义。 由此可以看出,802.1x协议并不是为宽带IP城域网量身定做的认证技术,将其应用于宽带IP城域网,必然会有其局限性,下面将详细说明该认证技术的特点,并与PPPOE认证、VLAN+WEB认证进行比较,并分析其在宽带IP城域网中的应用。 在具有802.1X认证功能的网络系统中,当一个用户需要对网络资源进行访问之前必须先要完成以下的认证过程。 这里要提出的一个值得注意的地方是:在客户端与认证服务器交换口令信息的时候,没有将口令以明文直接送到网络上进行传输,而是对口令信息进行了不可逆的加密算法处理,使在网络上传输的敏感信息有了更高的安全保障,杜绝了由于下级接入设备所具有的广播特性而导致敏感信息泄漏的问题。 在802.1X解决方案中,通常采用基于MAC地址的端口访问控制模式。采用此种模式将会带来降低用户建网成本、降低认证服务器性能要求的优点。对于此种访问控制方式,应当采用相应的手段来防止由于MAC、IP地址假冒所发生的网络安全问题。 五、总结802.1x协议仅仅提供了一种用户接入认证的手段,并简单地通过控制接入端口的开/关状态来实现,这种简化适用于无线局域网的接入认证、点对点物理或逻辑端口的接入认证,而在可运营、可管理的宽带IP城域网中作为一种认证方式具有一定的局限性。 X.25协议 WAP(WirelessApplicationProtocol)-无线应用协议 WirelessApplicationEnvironment(WAE)WirelessSessionLayer(WSL)WirelessTransportLayerSecurity(WTLS)WirelessTransportLayer(WTP) WAP规范 这个模型在很大程度上利用了现有的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机键盘或鼠标进行输入,而且它在设计时就考虑到了手机的小屏幕显示问题。 IEEE802.11b标准简析 以往,无线局域网发展缓慢,推广应用困难,主要是由于传输速率低、成本高、产品系列有限,且很多产品不能相互兼容。如以前无线局域网的速率只有1~2Mb/s,而许多应用也是根据10Mb/s以太网速率设计的,限制了无线产品的应用种类。针对现在高速增长的数据业务和多媒体业务,无线局域网取得进展的关键就在于高速新标准的制定,以及基于该标准的10Mb/s甚至更高速率产品的出现。IEEE802.11b从根本上改变了无线局域网的设计和应用现状,满足了人们在一定区域内实现不间断移动办公的需求,为我们创造了一个自由的空 一、802.11b标准简介 IEEE802.11b无线局域网的带宽最高可达11Mbps,比两年前刚批准的IEEE802.11标准快5倍,扩大了无线局域网的应用领域。另外,也可根据实际情况采用5.5Mbps、2Mbps和1Mbps带宽,实际的工作速度在5Mb/s左右,与普通的10Base-T规格有线局域网几乎是处于同一水平。作为公司内部的设施,可以基本满足使用要求。IEEE802.11b使用的是开放的2.4GB频段,不需要申请就可使用。既可作为对有线网络的补充,也可独立组网,从而使网络用户摆脱网线的束缚,实现真正意义上的移动应用。 IEEE802.11b无线局域网与我们熟悉的IEEE802.3以太网的原理很类似,都是采用载波侦听的方式来控制网络中信息的传送。不同之处是以太网采用的是CSMA/CD(载波侦听/冲突检测)技术,网络上所有工作站都侦听网络中有无信息发送,当发现网络空闲时即发出自己的信息,如同抢答一样,只能有一台工作站抢到发言权,而其余工作站需要继续等待。如果一旦有两台以上的工作站同时发出信息,则网络中会发生冲突,冲突后这些冲突信息都会丢失,各工作站则将继续抢夺发言权。而802.11b无线局域网则引进了冲突避免技术,从而避免了网络中冲突的发生,可以大幅度提高网络效率。 IEEE802.11b优点 功能 优点 速度 2.4ghz直接序列扩频无线电提供最大为11mbps的数据传输速率,无须直线传播 动态速率转换 当射频情况变差时,降低数据传输速率为5.5mbps、2mbps和1mbps 使用范围 802.11b支持以百米为单位的范围(在室外为300米;在办公环境中最长为100米) 可靠性 与以太网类似的连接协议和数据包确认提供可靠的数据传送和网络带宽的有效使用 互用性 与以前的标准不同的是,802.11b只允许一种标准的信号发送技术。weca将认证产品的互用性 电源管理 802.11b网络接口卡可转到休眠模式,访问点将信息缓冲到客户,延长了笔记本电脑的电池寿命 漫游支持 当用户在楼房或公司部门之间移动时,允许在访问点之间进行无缝连接 加载平衡 802.11bnic更改与之连接的访问点,以提高性能(例如,当前的访问点流量较拥挤,或发出低质量的信号时) 可伸缩性 最多三个访问点可以同时定位于有效使用范围中,以支持上百个用户 同时语音和数据支持 安全性 内置式鉴定和加密 二、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:解决带宽、漫游、移动问题 MAC层优化技术从网络逻辑结构上来看,802.11只定义了物理层及介质访问控制(MAC)子层。MAC层提供对共享无线介质的竞争使用和无竞争使用,具有无线介质访问、网络连接、数据验证和保密等功能。802.11n标准小组为了提升整个网络的吞吐量,对MAC层协议也进行了优化,改变数据帧结构,增加了净负载所占的比重,减少管理检错所占的字节数,大大提升了网络的吞吐量。智能天线技术智能天线是一个由多组独立天线组成的天线阵列系统,该阵列的输出与收发信机的多个输入相结合,可提供一个综合的时空信号。与单个天线不同的是,天线阵列系统能够动态地调整波束的方向,以使每个用户都获得最大的主瓣,并减小了旁瓣干扰。这样不仅改善了SINR(Signal-to-InterferenceandNoiseRatio,信号干扰和噪声比),还提高了系统的容量,扩大了小区的最大覆盖范围,减小了移动台的发射功率。智能天线的基本结构如图4所示。 XKMS协议介绍及其工作原理 工作原理 帧中继 帧中继(framerelay)是近几年兴起的一种新的公用数据交换网,于1992年起步,1994年开始获得迅速发展。帧中继是一种有效的数据传输技术,它可以在一对一或者一对多的应用中快速而低廉的传输数字信息。它可以使用于语音、数据通信,既可用于局域网(LAN)也可用于广域网(WAN)的通信。每个帧中继用户将得到一个接到帧中继节点的专线。帧中继网络对于端用户来说,它通过一条经常改变且对用户不可见的信道来处理和其他用户间的数据传输。 主要特点:用户信息以帧为单位进行传送,网络在传送过程中对帧结构、传送差错等情况进行检查,对出错帧直接与以丢弃,同时,通过对帧中地址段DLCI的识别,实现用户信息的统计复用。 数据链路连接标识符DLCI是用来标识各端点的一个具有局部意义的数值。多个PVC可以连接到同一个物理终端,PVC一般都指定承诺信息速率CIR和额外信息率EIR。 帧中继被设计为可以更有效的利用现有的物理资源,由于绝大多数的客户不可能百分之百的利用数据服务,因此允许可以给电信运营商的客户提供超过供应的数据服务。正由于电信运营商过多的预定了带宽,所以导致了帧中继在某些市场中获得了坏的名声。 电信公司一直在对外出售帧中继服务给那些在寻找比专线更低廉的客户,根据政府和电信公司的政策,它被用于各种不同的应用领域。 现在,帧中继已经被ATM和纯基于IP的产品(包括IP虚拟专用网)所替代。 帧中继是一种局域网互联的WAN协议,它工作在OSI参考模型的物理层和数据链路层。它为跨越多个交换机和路由器的用户设备间的信息传输提供了快速和有效的方法。 帧中继是一种数据包交换技术,与X.25类似。它可以使终端站动态共享网络介质和可用带宽。帧中继采用以下两种数据包技术:1)可变长数据包;2)统计多元技术。它不能确保数据完整性,所以当出现网络拥塞现象时就会丢弃数据包。但在实际应用中,它仍然具有可靠的数据传输性能。 帧中继帧通过“虚电路”传输到其目的地,帧中继的虚电路是源点到目的点的逻辑链路,它提供终端设备之间的双向通信路径,并由数据链路连接标识符(DLCI)唯一标识。帧中继采用复用技术,将大量虚电路复用为单一物理电路以实现跨网络传输。这种能力可以降低连接终端的设备和网络的复杂性。虚电路能够通过任意数量的位于帧中继数据包转换网络上的中间交换机。 帧中继网络提供的业务有两种:永久虚电路(PVC)和交换虚电路(SVC)。永久虚电路由网络管理器建立用来提供专用点对点连接;交换虚电路建立在呼叫到呼叫(call-by-call)的基础上,它采用与建立ISDN相同的信令。 由于其高带宽和高可靠性,在局域网互连中,帧中继可以作为专线和X.25网络的一个有吸引力的替代方案。协议结构帧中继(基于LAPFQ.922)帧结构如下所示: 1byte 2bytes Variable Flags Address Data FCS 6 7 13 14 15 16bit DLCI C/R E FECN BECN DE EA 帧中继帧结构遵循于LMI规范,它由以下各字段构成: LMIDLCI I-Indicator ProtocolDis CallRef M-Type InformationElements(Variable) 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 GFCorVPI VPI VCI VCI/td> PT(3Bit) CLP HEC IE CellPayload(48Bytes) 物理层规范说明―专用UNI: 帧格式 比特率/线路速率 媒体 CellStream 25.6Mbps/32Mbaud UTP-3 STS-1 51.84Mbps 100Mbps/125Mbaud MultimodeFiber STS-3cSTM-1 155.52Mbps UTP-5 Single-ModeFiber,MultimodeFiber,Coaxpair 155.52Mbps/194.4Mbaud MultimodeFiber,STP STS-12,STM-4 622.08Mbps SMF,MMF 物理层规范说明―公用UNI: DS1 1.544Mbps Twistedpair DS3 44.736Mbps Coaxpair STS-3c,STM-1 155.520Mbps Single-modeFiber E1 2.048Mbps Twistedpair,Coaxpair E3 34.368Mbps CoaxPair J2 6.312Mbps N×T1 N×1.544Mbps TwistedPair SDH(同步数字体系) ——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设备的企业。 令牌环是定义在IEEE802.5标准中的一种局域网接入方式。 令牌环网络的基本原理是利用令牌来避免网络中的冲突,与使用冲突检测算法CSMA/CD的以太网相比,提高网络的数据传送率。一个4M的令牌环网络和一个10M的以太网数据传送率相当,一个16M的令牌环网络的数据传送率接近一个100M的以太网。 令牌环也暗示了除了使用令牌外,这还是一个环形的网络拓扑。令牌环是一个OSI7层模型中的第二层(数据链路层)协议。除了4Mbps,16Mbps外,IEEE802.5也定义了100Mbps和1Gbps的数据率,不过后两者极少被用到。 无线局域网 无线局域网(WirelessLAN)为IEEE定义的一个无线网络通信的工业标准(IEEE802.11)。 无线局域网第一个版本发表于1997年,其中定义了介质访问接入控制层(MAC层)和物理层。物理层定义了工作在2.4GHz的ISM频段上的两种无线调频方式和一种红外传输的方式,总数据传输速率设计为2Mbit/s。两个设备之间的通信可以自由直接(adhoc)的方式进行,也可以在基站(BaseStation,BS)或者访问点(AccessPoint,AP)的协调下进行。 1999年加上了两个补充版本:802.11a定义了一个在5GHzISM频段上的数据传输速率可达54Mbit/s的物理层,802.11b定义了一个在2.4GHz的ISM频段上但数据传输速率高达11Mbit/s的物理层。2.4GHz的ISM频段为世界上绝大多数国家通用,因此802.11b得到了最为广泛的应用。苹果公司把自己开发的802.11标准起名叫AirPort。1999年工业界成立了Wi-Fi联盟,致力解决符合802.11标准的产品的生产和设备兼容性问题。802.11标准和补充。 除了上面的IEEE标准,另外有一个被称为IEEE802.11b+的技术,通过PBCC技术(PacketBinaryConvolutionalCode)在IEEE802.11b(2.4GHz频段)基础上提供22Mbit/s的数据传输速率。但这事实上并不是一个IEEE的公开标准,而是一项产权私有的技术(产权属于美国德州仪器,TexasInstruments)。 技术简述 网络成员和结构 这儿有3种媒介,站点使用的无线的媒介,分配系统使用的媒介,以及和无线局域网集成一起的其它局域网使用的媒介。物理上它们可能互相重迭。IEEE802.11只负责在站点使用的无线的媒介上的寻址(Addressing)。分配系统和其它局域网的寻址不属无线局域网的范围。 IEEE802.11没有具体定义分配系统,只是定义了分配系统应该提供的服务(Service)。整个无线局域网定义了9种服务,