安全通信协议

第八章安全通信协议

目前网络面临着各种威胁,其中包括保密数据的泄露、数据完整性的破坏、身份伪装和拒绝服务等。

保密数据的泄露。罪犯在公网上窃听保密性数据。这可能是目前互相通信之间的最大障碍。没有加密,发送的每个信息都可能被一个未被授权的组织窃听。由于早期协议对安全考虑的匮乏,用户名或口令这些用户验证信息均以明码的形式在网络上传输。窃听者可以很容易地得到他人的帐户信息。

数据完整性的破坏。即使数据不是保密的,也应该确保它的完整性。也许你不在乎别人看见你的交易过程,但你肯定在意交易是否被篡改。

身份伪装。一个聪明的入侵者可能会伪造你的有效身份,存取只限于你本人可存取的保密信息。目前许多安全系统依赖于IP地址来唯一地识别用户。不幸的是,这种系统很容易被IP欺骗并导致侵入。

拒绝服务。一旦联网之后,必须确保系统随时可以工作。在过去数年内,攻击者已在TCP/IP协议簇及其具体实现中发现若干弱点,使得他们可以造成某些计算机系统崩溃。

8.1 IP安全协议IPSec

IPSec用来加密和认证IP包,从而防止任何人在网路上看到这些数据包的内容或者对其进行修改。IPSec是保护内部网络,专用网络,防止外部攻击的关键防线。它可以在参与IPSec的设备(对等体)如路由器、防火墙、VPN客户端、VPN集中器和其它符合IPSec标准的产品之间提供一种安全服务。IPSec 对于IPv4 是可选的,但对于IPv6 是强制性的。

8.1.1 IPSec体系结构

IPSec是一套协议包,而不是一个单独的协议RFC文号。

IPSec 协议族中三个主要的协议:

IP认证包头AH(IP Authentication Header):AH协议为IP包提供信息源验证和完整性保证。

IP封装安全负载ESP (IP Encapsulating Security Payload)ESP协议提供加密保证。

Internet密钥交换IKE (The Internet Key Exchange):IKE提供双方交流时的共享安全信息。

IPSec提供的安全性服务:

1)访问控制:通过调用安全协议来控制密钥的安全交换,用户身份认证也用于访问控制。

2)无连接的完整性:使用IPSec,可以在不参照其他数据包的情况下,对任一单独的IP包进行完整性校验。

3)数据源身份认证:通过数字签名的方法对IP包内的数据来源进行标识。

4)抗重发攻击:重发攻击是指攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,使系统的可用性受到损害。为此IPSec提供了包计数器机制,以便抵御抗重发攻击。

5)保密性:确保数据只能为预期的接收者使用或读,而不能为其他任何实体使用或读出。保密机制是通过使用加密算法来实现的。

8.1.2 IPSec模式

IPSec对IP包可以执行的操作分别是:只加密,只认证,既加密也认证。

IPSec有两种工作模式:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。

1.传输模式(Transport Mode) : IPSec协议头插入到原IP头部和传输层头部之间,只对IP包的有效负载进行加密或认证。

2.隧道模式:IPSec会先利用AH或ESP对IP包进行认证或者加密,然后在IP包外面再包上一个新IP头。

8.1.3 IPSec的安全策略

1.安全关联SA

传输模式SA:传输模式SA只能用于两个主机之间的IP通信隧道模式SA:隧道模式SA既可以用于两个主机之间的IP通信也可用于两个安全网关之间或一个主机与一个安全网关之间的IP通信。

SA是安全策略通常用一个三元组唯一的表示:< SPI,IP目的地址,安全协议标识符>

1)SPI:安全参数索引(Security Parameters Index),说明用SA的IP头类型,它可以包含认证算法、加密算法、用于认证加密的密钥以及密钥的生存期;

2)IP目的地址:指定输出处理的目的IP地址,或输入处理的源IP地址;

3)安全协议标识符:指明使用的协议是AH还是ESP或者两者同时使用。

2. 安全关联数据库SAD

SAD存放着和安全实体相关的所有SA,每个SA由三元组索引。一个SAD条目包含下列域:

1)序列号计数器:32位整数,用于生成AH或ESP头中的序列号;

2)序列号溢出标志:标识是否对序列号计数器的溢出进行审核;

3)抗重发窗口:使用一个32位计数器和位图确定一个输入的AH或ESP数据包是否是重发包;

4)IPSec协议操作模式:传输或隧道;

5)AH的认证算法和所需密钥;

6)ESP的认证算法和所需密钥;

7)ESP加密算法,密钥,初始向量(IV)和IV模式;

8)路径最大传输单元;

9)进出标志;

10)SA 生存期状态。

3. 安全策略数据库SPD

SPD决定了对数据包提供的安全服务,所有IPSec 实施方案的策略都保存在该数据库中。

IP包的处理过程中,系统要查阅SPD,每一个数据包,都有三种可能的选择:丢弃、绕过IPSec 或应用IPSec:

1)丢弃:根本不允许数据包离开主机穿过安全网关;

2)绕过:允许数据包通过,在传输中不使用IPSec进行保护;

3)应用:在传输中需要IPSec保护数据包,对于这样的传输SPD必须规定提供的安全服务、所使用的协议和算法等等。

8.1.4 IPSec认证与加密

IPSec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改;加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被窃听。

AH定义了认证的应用方法,提供数据源认证和完整性保证;ESP定义了加密和可选认证的应用方法,提供可靠性保证。IKE的作用是协助进行安全管理,它在IPSec 进行处理过程中对身份进行鉴别,同时进行安全策略的协商和处理会话密钥的交换工作。

1IP认证包头AH

AH协议提供无连接的完整性、数据源认证和抗重发保护服务,但不提供保密性服务。它能保护通信免受篡改,但不能防止窃听,适用于传输非机密数据。AH在每一个数据包上添加一个身份验证包头。该包头位于IP包头和传输层协议包头之间,如图8.5所示。

AH包头字段内容包括:

1)下一个包头(Next Header,8位):标识紧跟AH头后面使用IP协议号的包头;

2)载荷长度(Payload Len,8位):AH包头长度;

3)保留(Reserved,16位):为将来的应用保留,(目前为0);

4)安全参数索引(SPI,32位):与目的IP 地址一同标识SA;

5)序列号(Sequence Number Field,32位):从1开始的32位单增序列号,不允许重复,唯

一地标识每一个发送的数据包,为SA提供反重发保护。

6)认证数据(Authentication Data,长度可变):包含完整性检查和。

2. IP封装安全负载ESP

ESP为IP包提供完整性检查、认证和加密。它使用HMAC-MD5或HMAC-SHA-1算法对IP 进行认证。为了保证各种IPSec之间实现互操作性,目前ESP必须提供对56位DES算法的支持。ESP 可以单独使用,也可以和AH结合使用。

ESP包头字段内容包括:

1)安全参数索引SPI(Security Parameters Index):同AH;

2)序列号(Sequence Number):同AH;

3)填充域(Padding):0-255个字节。用来保证加密数据部分满足块加密的长度要求,若数据

长度不足,则填充;

4)填充域长度(Padding Length):接收端根据该字段长度去除数据中的填充位;

5)下一个包头(Next Header):同AH;

6)认证数据(Authentication Data):包含完整性检查和。完整性检查部分包括ESP包头、传

输层协议、数据和ESP包尾,但不包括IP包头,因此ESP不能保证IP包头不被篡改。

ESP加密部分包括传输层协议、数据和ESP包尾。

8.1.5 IPSec密钥管理

IPSec支持手工设置密钥和自动协商两种方式管理密钥。手工设置密钥方式是管理员使用自己的密钥手工设置每个系统。这种方法在小型网络环境和有限的安全需要时可以工作得很好。自动协商方式则能满足其它所有的应用需求。使用自动协商方式,通讯双方在建立SA时可以动态地协商本次会话所需的加密密钥和其它各种安全参数,无须用户的介入。当采用自动协商密钥时就需要使用IKE。

IKE 是一个混合型协议,用来管理IPSec所用加密密钥的产生及处理。

IKE提供的好处如下:

?允许管理员不必在两个对等体中手工指定所有IPSec SA参数;

?可以安全地建立用于对等体之间的会话密钥;

?允许为IPSec SA指定一个生存期;

?允许加密密钥在IPSec 会话过程中改变;

?允许IPSec 提供防重发攻击服务;

?允许为一个可以管理的、可以扩展的IPSec 实施采用CA支持;

1 IKE的组成

IKE 由三个不同的协议组成:

Internet安全关联和密钥管理协议ISAKMP (Internet Security Association and Key Management Protocol):提供了一个通用的SA属性格式框架和一些可由不同密钥交换协议使用的协商、修改、删除SA的方法。

OAKLEY:提供在两个IPSec对等体间达成加密密钥的机制。

SKEME (Secure Key Exchange MEchanism protocol):提供为认证目的使用公钥加密认证的2.IKE的主要功能

●对使用的协议、加密算法和密钥进行协商;

●交换公共密钥;

●在交换后对密钥进行管理。

3.IKE建立SA

(1)IKE阶段1

IKE阶段1的基本目的是认证IPSec 对等体,在对等体间协商创建一个安全通道IKE SA,并对该通道进行认证为双方进一步IKE通信提供机密性、数据完整性以及数据认证服务。

执行过程如下:

●在对等体之间协商一个相匹配的IKE SA策略以保护IKE 交换。该IKE SA指定协

商的IKE参数,并且是双向的,其中包括:所使用的认证方法、加密和散列算法、加密算法使用的共享密钥、IKE SA的生存期等;

●执行一个被认证的Diffie-Hellman,其最终结果是拥有了一个将被IPSec加密算法

使用的相匹配的共享密钥;

●认证和保护IPSec对等体的身份;

●建立起一个安全通道,以便协商IKE阶段2的参数。

(2)IKE阶段2

IKE阶段2的基本目的是使用已建立的IKE SA建立IPsec SA。执行过程如下:

?策略协商,双方交换保护需求,例如使用何种IPSec协议(AH或ESP),使用何种hash算法(MD5或SHA),是否需要加密,若是,选择何种加密算(3DES或DES),

在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信;

?会话密钥“材料”刷新或交换;

?周期性的重新协商IKE SA参数,以确保安全性;

?执行一次额外的Diffie-Hellman交换(任选)。

4.IPSec的工作过程

IPSec涉及到许多技术和加密算法,它的操作过程被分为5个主要的步骤:

?IPSec启动过程——由配置在 IPSec对等体中的 IPSec安全策略指定要被加密的数据流启动

IKE过程;

?IKE阶段1——IKE认证IPSec对等体,并协商SA,创建安全通道IKE SA;

?IKE阶段2——利用已建立的IKE SA,在对等体中建立相匹配的IPSec SA;

?数据传送——数据根据存储在SA数据库中的IPSec参数和密钥在IPSec对等体间传送;

?IPSec隧道终止——通过删除或超时机制结束IPSec SA。

8.1.6 IPSec应用实例

8.1.7 IPSec的局限性

1) IPSec仅用来验证主机,而不能对用户进行身份验证。如果不能保证使用IPSec 设备的人是授权用户,IPSec将没有意义。

2) IPSec不能防止黑客截取加密的数据包,读取非解密的数据包来分析网络的信息,例如源和目的网关地址、数据包大小等。

3) 如果运行IPSec 兼容软件的计算机已经被入侵,那么来自该计算机的任何通信都是不可信任的,尽管通信使用了IPSec 。

8.2 安全协议SSL

基于HTTP协议传输的信息是不加密的,这就使得在网上传输口令字之类的敏感信息受到很大的威胁。安全套接层SSL(Security Socket Layer) 是一种在两台机器之间提供安全通道的协议。它具有保护传输数据以及识别通信机器的功能。它能处理服务器和客户机之间的相互认证,得到标准浏览器Netscape和IE的支持,已经成为网络用来鉴别网站和网页浏览者的身份,以及在浏览器使用者和网页服务器之间进行加密通讯的全球化标准。

8.2.1 SSL概述

1. SSl的历史

SSL最初是由网景(Netscape)公司开发,使用公钥加密被传输的数据,用来在Web客户端和服务器之间增加HTTP协议的安全性。TETF将SSL作了标准化,并将其称为TLS(Transport Layer Security),表示传输层的安全性,所以SSL的用途不仅仅局限于HTTP。

2. SSL提供的服务

SSL主要提供三方面的服务:

1) 用户和服务器的合法性认证:认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。

3. SSL的局限性

尽管SSL有很好的安全性,但也有它的不足:

1)不适合复杂环境。一般来讲,在通信模型简单的情况下SSL可以工作的很好。环境越复杂,使用SSL提供安全就越困难。

2)仅限于TCP协议。由于SSL要求有TCP通道,所以对于使用UDP协议的DNS类型的应用场合是不适合的。HTTP FTPSMTPSSLTCP层IP层图8.13 SSL在TCP/IP模型中的位置3)通信各方只有两个。由于SSL的连接本质上是一对一的,所以在通信方只有两个的情况下它会工作的很好。在多对多的环境中,它的表现欠佳。

8.2.2 SSL的体系结构

以TCP/IP模型来看,SSL是定位在TCP层之上的应用协议,如图8.13所示。任何TCP/IP层以上的网络协议都被SSL所支持,因此HTTP、FTP、SMTP等皆是SSL的保护范围。

使用SSL安全机制时,客户端首先与服务器建立连接,服务器把它的数字证书与公钥一并发送给客户端,客户端随机生成会话密钥,使用从服务器得到的公钥对会话密钥进行加密,并将会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私钥才能解密,这样,客户端和服务器端就建立了一个唯一的安全通道。建立了SSL安全通道后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,输入https:// ,而不是http://。

SSL采用两层协议体系,如图8.14所示。该协议包含两个部分:SSL 握手协议(SSL Handshake protocol)和SSL 记录协议(SSL Record protocol)。前者负责通信前的参数协商,后者定义SSL的内部数据格式。其中SSL 握手协议由三个子协议构成,它们是改变密码规范协议(Change cipher spec protocol)、报警协议(Alert protocol)和握手协议(Handshake protocol)。

1 SSL握手协议

SSL握手协议是SSL的前置步骤。客户端与服务器先进行沟通、协调与SSL通信有关的参数设置。

握手有三个目的:

1)客户端与服务器对保护数据的算法达成一致;

2)对算法使用的加密密钥达成一致;

3)确定是否对客户端进行认证。

下面对握手步骤作进一步的说明:

1)Client Hello:首先由客户端计算机向Web服务器说“Hello”,并同时将客户端计算机所能支持的安全模块告诉对方,以便沟通。信息内容包括:SSL协议版本、本次联机的识别码以及加密模块等。

2)Server Hello:服务器接收到客户端信息后,立即送出以下信息给客户端:

?服务器的数字证书,以便客户端检查服务器的身份;

?如果服务器要求双方相互认证,则送出“认证请求”信息。要求客户端也提供识别身份的数字证书;

?服务器用来加密的公钥。

3) 客户端对服务器的数字证书进行验证,并抽取服务器的公用密钥,再产生一个叫做pre-master-secret的随机密码串,并使用服务器公钥对其加密,然后将加密后的信息发送给服务器。如果服务器请求,客户端的数字证书也将被发送给服务器。

4)客户端将所有握手消息的消息鉴别码MAC(Message Authentication Code ) ,发送给服务器。

5)服务器将所有握手消息的MAC发送给客户端。到这个阶段为止,通信双方都已经达成了共识,并准备传送真正的信息内容。

2. SSL记录协议

在SSL中,数据传输使用SSL记录协议来实现。记录协议将数据流分割成一系列片断,并对每个片断单独进行保护,然后加以传输。在接收方,对每条记录单独进行解密和验证。这种方案使得数据一经准备好就可以从连接的一端传送到另一端,接收到就可以立即进行处理。

8.3.1 SSH概述

SSH,安全Shell(Secure Shell)是一种通用的、功能强大的,基于软件的网络安全解决方案,它可以在大多数操作系统上运行,通过安全认证和加密技术,为不安全的网络应用增加安全性。SSH可以支持安全远程登录、安全远程命令执行、安全文件传输、访问控制、TCP\IP端口转发等。SSH不是一个命令解释器,也没有提供通配符扩展、命令历史纪录等功能,而是创建了一个通道在远程计算机上运行shell,其风格类似于Unix的rsh命令。所不同的是rsh是一个不安全的提供远程登录的程序,而SSH却在本地计算机和远程计算机之间使用了端到端的加密技术。

8.3.1 SSH概述

1.SSH的历史

1995年初芬兰赫尔辛基大学(Helsinki University of Technology)的校园网受到密码窃听的攻击,研究人员Tatu Ylonen为此开发了SSH1以便自己使用。他于1995年12月成立了SSH 通信安全公司SCS(SSH Communications Security, Inc.)对SSH1进行维护,并使其商业化。

1996年SCS对SSH代码进行了重写,推出了与SSH1不兼容的版本SSH2。IETF也成立了一个SECSH(Secure Shell Working Group)工作组,以对SSH-2协议进行标准化,并于1997年2月提交了第一份SSH-2协议的Internet 草案。

1998年SCS发布了基于SSH-2协议的软件产品SSH2,尽管SSH2比SSH1的安全性好,但是SSH2并没有取代SSH1,因为SSH1是免费的,而SSH2是一个商业产品。

现在SSH1已经不再开发,只进行错误修正。而SSH2和OpenSSH仍然继续在开发,与此同时还有许多其它的SSH产品

2. SSH可以防止的攻击

?窃听:网络窃听者读取网络信息。SSH的加密防止了窃听的危害。即使窃听者截获了SSH

会话的内容,也不能将其解密。

?名字服务和IP伪装:攻击者搞乱名字服务或者盗用IP地址来冒充一台机器,此时与网络有

关的程序就可能被强制连接到错误的机器上。SSH通过加密验证服务器主机的身份避免了攻

击者搞乱名字服务以及IP欺骗。SSH客户端会根据和密钥关联的本地服务器名列表和地址

列表对服务器主机密钥进行验证。如果所提供的主机密钥不能和该列表中的任意一项匹配,SSH就会报警。

?连接劫持:攻击者使TCP连接偏离正确的终点。SSH的完整性检测负责确定会话在

传输过程中是否被修改。如果曾经被修改,就立即关闭该连接,而不会使用任何被修改过的数据。

?中间人攻击:中间人冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户

把数据传给真正的服务器。SSH使用服务器主机认证以及限制使用容易受到攻击的认证方法(如密码认证)来防止中间人攻击。

?插入攻击:攻击者在客户端和服务器的连接中插入加密数据,最终解密成攻击者希望

的数据。使用3DES算法可以防止这种攻击,SSH-1的完整性检查机制是非常脆弱的,而SSH-2和OpenSSH都进行了专门设计,来检测并防止这种攻击。

3. SSH不能防止的攻击

?密码崩溃:如果你的密码被窃取,SSH将无能为力。

?IP和TCP攻击:SSH是在TCP之上运行的,因此它也容易受到针对TCP和IP缺陷

发起的攻击。SSH的隐私性、完整性和认证可以确保将拒绝服务的攻击危害限制在一定的范围之内。

?流量分析:攻击者通过监视网络通信的数据量、源和目的地址以及通信的时间,能够

确定他何时将采取拒绝服务攻击,而SSH不能解决这种攻击。

8.3.2 SSH的体系结构

SSH软件包由两部分组成,一部分是服务端软件包,另一部分是客户端软件包。服务端是sshd 进程,在后台运行并响应来自客户端的连接请求。一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。本地客户端发送一个连接请求到远程服务端,服务端检查申请的包和IP地址再发送密钥给客户端,然后客户端再将密钥发回给服务端,自此连接建立。

8.4 虚拟专用网VPN

随着Internet和电子商务的蓬勃发展,各企业开始允许其合作伙伴也能够访问本企业的局域网,从而大大简化了信息交流的途径,增加了信息交换的速度。这些合作和联系是动态的,并依靠网络来维持和加强。于是大家发现,基于Internet的商务活动面临非善意的信息威胁和安全隐患。另外一些企业随着自身的发展壮大与跨国化,分支机构不仅越来越多,而且相互间的网络基础设施互不兼容也

更为普遍。所以,这些企业的信息技术部门在连接分支机构方面也遇到日益棘手的问题。用户的需求也就促成了虚拟专用网络VPN(Virtual Private Network)技术的诞生。

8.4.1 VPN的基本概念

VPN是两个专用网络通过公用网络相互连接传输私有信息的一种方法。虚拟是因为两个专用网络的连接沒有传统网络所需的物理的端到端的链路,而是架构在以Internet为基础的公网之上的逻辑网络。专用是指在VPN上通信的数据是被加密的,与使用专用网一样安全。如

1VPN的功能

1)通过隧道或者虚电路实现网络互联;

2)支持用戶对网络的管理,其中包括安全管理、设备管理、配置管理、访问控制列表管理、QoS管理等;

3)允许管理员对网络进行监控和故障诊断。

2. VPN的优点

1) 省钱:用VPN组网,可以不租用电信专线线路,节省了电话费的开支;

2) 选择灵活、速度快:用戶可以选择多种Internet连接技术,而且对于带宽可以按需定制;

3) 安全性好:VPN的认证机制可以更好地保证用户数据的私密性和完整性;

4) 实现投资的保护:VPN技术的应用可以建立在用戶现有防火牆的基础上,用戶正在使用的应用程序也不受影响。

3. VPN的缺点

1)相对专线而言,VPN不可靠。带宽和时延不稳定。对于实时性很强的应用,比如网络间断10分钟,企业信息系统就会瘫痪的网络不适合使用VPN;

2)相对专线而言,VPN不安全性。由于Internet上鱼龙混杂,它的安全性不如物理专用网;

3)用VPN组网以后,企业内部网范围扩大了,会出现比较多的管理问题。

4. VPN的适用范围

(1) 有三种情况很适合采用VPN:

1)位置众多,特别是单个用户和远程办公室站点较多;

2)用户或者站点分布范围广,彼此之间的距离远,遍世界各地;

3)带宽和时延要求不是很高。

站点数量越多,站点之间的距离越远,VPN解决方案越有可能成功。

(2) 有三种情况不适合采用VPN:

1)不管价格多少,网络性能都被放在第一位的情况;

2)采用不常见的协议、不能在IP隧道中传送应用的情况;

3)大多数应用是语音或视频类的实时通信。

8.4.2 VPN使用的隧道协议

为了在公网中传输私有数据,VPN使用隧道技术达到此目的。隧道技术类似于点对点连接技术,它在公网建立一条数据通道即隧道,让数据包通过这条隧道传输。为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。隧道协议分别以OSI参考模型的第二层或第三层隧道协议为基础。

需要注意的是,无论采用何种隧道技术,一旦进行加密或验证,都会对系统的性能造成影响。密码算法需要消耗大量的处理器时间,而且大多数密码算法还有一个建立准备过程,所以在选择安全性时必须选择高性能的设备。

1. 点对点隧道协议PPTP

1996年,Microsoft和Ascend等公司在PPP的基础上开发了点对点隧道协议PPTP(Point to Point Tunnel Protocol)。PPTP支持多种网络协议,可把IP、IPX、AppleTalk或NetBEUI的数据包封装在PPP包中,然后再将整个包封装在PPTP隧道协议包中。

PPTP的加密方法采用Microsoft点对点加密算法MPPE(Microsoft Point-to-Point Encryption)。可以选用相对较弱的40位密钥或强度较大的128位密钥。

2. 第2层转发协议L2F

第二层转发协议L2F(Layer 2 Forwarding)是Cisco公司于1996年制定的,于1998年5月提交给IETF。L2F主要用于路由器和拨号访问服务器,它可以在A TM、帧中继、IP网上建立多协议的VPN通信方式。L2F需要ISP支持,并且要求两端传输设备都支持L2F,而对客户端无特殊要求。

3. 第2层隧道协议L2TP

第二层隧道协议L2TP(Layer2 Tunneling Protocol)是Cisco、Ascend、Microsoft 和RedBack 公司的专家们在修改了十几个版本后,于1999年8月公布的标准,标号为RFC2661。L2TP可以使用IPSec机制进行身份验证和数据加密。通常将L2TP和IPSec结合起来使用。L2TP作为隧道协议,提供隧道的建立或封装,以及第二层验证;IPSec对L2TP隧道进行加密,提供对会话的安全保证。

L2TP与PPTP的比较

L2TP结合了L2F和PPTP 的优点。隧道的建立有两种方式:用户初始化隧道和网络接入服务NAS (Network Access Server)初始化隧道。前者一般指“主动”隧道,后者指“强制”隧道。“主动”隧道是用户为某种特定请求建立的,而“强制”隧道则是在没有任何来自用户的动作以及选择的情况下系统自动建立的。

L2TP作为“强制”隧道模型是让拨号用户与网络中的另一点建立连接的重要机制。而PPTP则是“主动”隧道模型,它允许终端系统进行配置,与任意位置的PPTP服务器建立一条点到点的隧道,在协商和隧道建立过程中没有中间媒介NAS的参与,在这里NAS的作用只是提供网络服务。

L2TP比PPTP提供的安全性高,因为在这种环境中接入服务器能够确定用户是从哪里来的。L2TP 用于比较集中的、固定的VPN用户,而PPTP适合移动用户。在VPN的实现中采用L2TP还是PPTP,取决于要把控制权放在NAS还是用户手中。

4. 通用路由协议封装GRE

通用路由协议封装GRE(generic routing encapsulation)是由Net-smiths和Cisco公司于1994年提交给IETF的,标号为RFC1701和RFC1702 。GRE是一种基于IP的隧道技术,规定了怎样用一种网络层协议去封装另一种网络层协议的方法。它可被用来在基于IP的骨干网上传输IP、IPX、AppleTalk等多种协议的数据流量。同时,GRE还可被用来在Internet网络上通过隧道传输广播和组播信息,如RIP、OSPF、IGRP、EIGRP等路由更新信息。

GRE只提供了数据包的封装,没有加密功能来防止网络侦听和攻击。通常将GRE和IPSec结合起来使用。GRE作为隧道协议,而IPSec提供用户数据的加密,从而提供更好的安全性。

GRE作为VPN机制的缺点是管理费用高。由于GRE需要手工配置,所以配置和维护隧道所需的费用和隧道的数量是直接相关的,每次隧道的终点改变,隧道都要重新被配置。尽管隧道也可以自动配置,但如果不能考虑相关路由信息,就容易形成回路,回路一旦形成,会极大地恶化路由的效率。

5 IP安全协议IPSec

IPSec把多种安全技术集合到一起,可以建立一个安全、可靠的隧道,同时还有一整套保证用户数据安全的措施,利用它建立起来的隧道更具有安全性和可靠性。IPSec还可以和L2TP、GRE等其他隧道协议一同使用,给用户提供更大的灵活性和可靠性。此外,IPSec可以运行于网络的任意一部分,它可以运行在路由器和防火墙之间、路由器和路由器之间、PC机和服务器之间、PC机和拨号访问设备之间。IPSec经过IETF数年的完善,现在已经成为主流VPN选择的必备协议。

6. 多协议标记交换MPLS

多协议标记交换MPLS(Multi protocol Label Switching)由Cisco、Force10 Networks和Juniper Networks等公司于2001年1月提交给IETF,其标号分别为RFC3031和RFC3032 。MPLS技术是与IPSec互补的VPN标准。IETFIPSec工作组(属于Security Area部分)的工作主要涉及网络层的保护,所以该组设计了加密安全机制以便灵活地支持认证、完整性、访问控制和系统加密;而IETFMPLS工作组(属于Routing Area部分)则从另一方面着手开发了支持高层资源预留、QoS和主机行为定义的机制。

当IP数据包进入网络核心时,边界路由器给它分配一个标记。自此,MPLS设备就会自始至终查看这些标记信息,将这些有标记的包交换至其目的地。由于路由处理减少,网络的等待时间也就随之缩短,而可伸缩性却有所增加。MPLS数据包的服务质量类型可以由MPLS边界路由器根据IP包的各种参数来确定,这些参数可以是IP的源地址、目的地址、端口号、TOS值等。同时,通过对特

殊路由的管理,还能有效地解决网络的负载均衡和拥塞问题。当网络出现拥塞时,MPLS可实时建立新的转发路由来分散流量以缓解网络拥塞。

8.4.3 VPN采用的技术

实现VPN的技术基础是隧道技术、数据加密和身份验证。隧道技术使得各种内部数据包可以通过公网进行传输;数据加密用于加密隐蔽传输信息(见第2章);身份验证用来鉴别用户的身份(见第3章);数据认证用来防止数据被篡改,同时QoS技术对VPN的实现也至关重要。

1隧道技术

在VPN中,原始数据包在A地进行封装,到达B地后将封装去掉还原成原始数据包,这样就形成了一条由A到B的通信隧道。隧道技术包含数据包的封装、传输和拆封在内的全过程。在这里隧道代替了实实在在的专用线路。对于不同的信息来源,可以分别给它们开出不同的隧道。

隧道就好比是在广域网云海中拉出的一根串行通信电缆,如图8.21所示。于是,兼容性问题、不同的服务质量要求、以及其它的麻烦都迎刃而解。

在隧道技术中入口地址用的是普通主机网络的地址空间,而在隧道中流动的数据包用的是VPN 的地址空间,这就要求隧道的终点必须配置成VPN与普通主机网络之间的交界点。这种方法的好处是能够使VPN的路由信息从普通主机网络的路由信息中隔离出来,多个VPN可以重复利用同一个地址空间而不会有冲突。隧道也能封装数量众多的协议族。用同一种格式可以支持多种协议同时又保留协议的功能。IP路由过滤的主机网络不能提供这种服务,而只有隧道技术才能把VPN私有协议从主机网络中隔离开来。

2. 数据加密

数据加密技术是实现网络安全的最有效的技术之一,已经成为所有数据通信安全的基石。在多数情况下,数据加密是保证信息机密性的唯一方法。一个加密网络,不但可以防止非授权用户的搭线窃听和入网,而且也是对付恶意软件的有效方法,这使得它能以较小的代价提供很强的安全保护。

3. 身份认证

身份认证用于保证系统中的数据只能被有权限的“人”访问,未经授权的“人”无法访问数据。如果没有有效的身份认证手段,访问者的身份就很容易被伪造,使得任何安全防范体系都形同虚设。

4. 数据认证

数据认证用来防止数据被篡改。比如数据发送端使用MD5算法计算数据包特征,并将特征码附在数据包后面。当数据包到达目的,被还原以后,目的主机也要使用MD5算法进行计算,并要与发送端计算的该字段值比较,看看是否匹配。通过这种方法可以证明数据在传输过程中是否被篡改。

6. 网络访问控制技术

网络访问控制技术对出入Internet的数据包进行过滤,是传统防火墙的功能。由于防火墙和VPN

均处于Internet出口处,在网络中的位置基本相同,而其功能具有很强的互补性,因此一个完整的VPN 产品应同时提供完善的网络访问控制功能,这可以在系统的性能、安全性以及统一管理上带来一系列的好处。

8.4.4 VPN的实施

1 三种实现方法

与防火墙一样,VPN也可以分为软件VPN、硬件VPN和专用VPN之分:

1)软件VPN:通常要比硬件VPN系统便宜,它们对于快速增长的网络提供了更好的扩展性。这类产品能够让移动用户、远程用户从任何位置拨号访问企业网的私有数据。

2)硬件VPN:已被配置使用IPSec或者其它协议的路由器,或者VPN器件。VPN器件是被专门设计安装在VPN边界上,为了将多个VPN连接起来。VPN器件可以允许大量用户或者多个网络之间建立连接,但它们却不提供文件和打印等其它服务。使用硬件VPN可以连接到更多的隧道和用户。

3)专用VPN:提供全系列的网关硬件、客户端软件、以及专门的管理软件。硬件网关放置在网络的出口,可以实现LAN-to-LAN的VPN组网。客户端软件一般是为单机客户和移动用户使用,如果客户端软件能够支持网关功能(相当于软网关),还可以作为硬件网关的备份。

2. 三种解决方案

按照隧道是如何建立和终止来划分,VPN有三种解决方案:远程访问虚拟网(Access VPN)、企业内部虚拟网(Intranet VPN)和企业扩展虚拟网(Extranet VPN),它们分别与传统的远程访问网络、Intranet和Extranet相对应。

1)Access VPN:如果企业的内部人员移动或有远程办公需要,或者商家要提供B2C的安全访问服务,就可以考虑使用Access VPN。Access VPN能使用户随时、随地以其所需的方式访问企业资源。Access VPN包括模拟、拨号、ISDN、xDSL、移动等技术。一般通过L2TP和PPTP来加以解决。

2)Intranet VPN:越来越多的企业需要在全国乃至世界范围内建立各种办事机构、分公司、研究所等。利用VPN特性可以在Internet上组建世界范围内的Intranet VPN。该网络拥有与专用网络的相同政策,包括安全、QoS、可管理性和可靠性。在该模式中,最常见的隧道协议有IPSec,MSLP 和L2TP。

3)Extranet VPN:利用VPN技术将客户、供应商、合作伙伴或兴趣群体连接到企业内部网。该网络拥有与专用网络的相同政策,包括安全、QoS、可管理性和可靠性。在该模式中,最常见的隧道协议有IPSec,MSLP和L2TP

3. 三种连接方式

1)站点到站点:site-to-site VPN,将两个或者更多的网络连接起来。

2)客户机到站点:client-to-site VPN,将远程拨号用户与网络连接起来。

3)混合连接:将site-to-site与client-to-site结合,许多大公司既使用site-to-site VPN将公司总部和分支机构连接,也使用client-to-site VPN提供到总部的拨号接入。

4. 三种配置方式

1)mesh 配置:每个参与者(网络、路由器或计算机)相互之间均保持一个SA。图8.22是由4个局域网组成的VPN,它们均能够相互建立VPN通信。

2)hub-and-spoke配置:中央VPN路由器包含了VPN中的所有SA。任何新加入的局域网或者主机只需要连接到中央VPN路由器即可,而不必连接到VPN中的每台主机。在图8.23,中央VPN路由器位于公司总部,所有数据流都要经过总部。

3)混合配置:在一个VPN网络中,既采用mesh也采用hub-and-spoke,它结合了mesh 配置的速度和hub-and-spoke配置的扩展性。mesh 配置用于连接重要的分支机构到公司总部,而不重要的部门,比如远程的海外分部则连接到总部的spoke端。

5. VPN的执行

VPN使分布在不同地方的专用网络在不可信任的公共网络上安全通信,它的执行如下;

1)VPN设备根据网管设置的规则,确定是否需要对数据包进行加密或直接通过;

2)对需要加密的数据,VPN设备对整个数据包进行加密并附上数字签名;

3)VPN设备给数据包加上新的包头,其中包括目的地VPN设备需要的安全信息和一些初始化参数;

4)VPN设备对加密后的数据包以及源IP地址、目的VPN设备IP地址进行重新封裝,重新封裝后的数据包通过隧道在网上传输;

5)当数据包到达目的VPN设备時被拆封,并被检查。如果数字签名准确无误,就对它进行解密。

6)VPN设备根据数据包的原始目的IP地址,将该数据包转发给目的主机。

单片机串口通信协议程序

#include #include #define R55 101 #define RAA 202 #define RLEN 203 #define RDATA 104 #define RCH 105 //#define unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue; void isr_UART(void) interrupt 4 using 1 { unsigned char ch; unsigned char i; unsigned char temp; if (RI==1) { ch=SBUF; switch(gRecState) { case R55: // wait 0x55 if (ch==0x55) gRecState=RAA; break;

case RAA: if (ch==0xaa) gRecState=RLEN; else if (ch==0x55) gRecState=RAA; else gRecState=R55; break; case RLEN: gRecLen=ch; gRecCount=0; gRecState=RDATA; break; case RDATA: RecBuf[gRecCount]=ch; gRecCount++; if (gRecCount>=gRecLen) { gRecState=RCH; } break; case RCH: temp=0; for(i=0;i

铁路信号系统安全相关通信标准与安全协议研究

铁路视点 Railway Topics 铁路信号系统 安全相关通信标准与安全协议研究 杨霓霏:中国铁道科学研究院通信信号研究所,硕士研究生,北京,100081段 武:中国铁道科学研究院通信信号研究所,研究员,北京,100081卢佩玲:中国铁道科学研究院通信信号研究所,研究员,北京,100081 代化的铁路信号及控制系统一般由多个安全相关 子系统构成,负责子系统之间安全数据交换的通 信系统是安全相关系统的一个重要组成部分。欧洲电工标准化委员会(CENELEC)核准的EN 50159标准是专门针对铁路信号系统中安全相关通信而设立的,此标准为构建安全相关通信系统提出了功能和技术方面的基本要求和设计指导。目前,我国列车控制系统应用的部分欧洲设备或系统方案涉及到EN 50159标准建立的安全通信系统及接口协议。 摘 要:欧洲电工标准化委员会(CENELEC)核准的EN 50159标准是专门针对铁路信号系统中安全相关通信而设立的,该标准从功能和技术层面提出传输系统可能遇到的威胁及安全要求和措施。为防御各种风险,要求安全通信系统应具有保护报文真实性、保护报文完整性、保护报文时间性和保护报文顺序性等4项防御功能。 关键词:铁路信号系统;安全相关通信;安全协议;标准 1 EN 50159标准概述 EN 50159标准提出在安全相关设备中的数据通信必须建立安全相关通信功能,安全功能包括安全过程(safety procedure)及安全码(safety code)两方面内容。从结构上讲就是在应用层与通信系统之间,建立安全相关通信层,简称安全层。需要传输的用户数据首先经过安全层的处理,生成安全层数据报文之后再发往传输系统;从传输系统收到的信息也先经过安全层过滤才被采用。无论传输系统采用何种结构以及协议栈,从逻辑角度安全相关数据在安全层由安全过程和安全码的保护进行通信。物理上安全层的数据经过传输系统传送,所以传输系统特性直接影响安全通信功能。为此, EN 50159标准分为两个部分:EN 50159—1标准[1]针对封闭传输系统提出构建安全通信的基本要求,强调应用标准的先决条件、基本功能需求和安全完整性需求。EN 50159—2标准[2]针对开放传输系统提出基本安全需求, 分析开放传输系统的各项风险及对应的安全措施。封闭传输系统指特征及属性清晰、固定的传输系统,建立安全相关通信功能可以考虑封闭传输系统的属性;而开放传输系统充满不确定性,安全通信功能的建立必须考虑所有可能发生的问题。 现

实验八 IIC通信协议

实验八I2C通信协议 一、实验目的: 1、培养学生阅读资料的能力; 2、加深学生对I2C总线通信协议的理解; 3、加强学生对模块化编程的理解; 二、实验环境: 1、硬件环境:PC机一台、单片机实验板一块、母头串口交叉线、USB电源线; 2、软件环境:keil uVision2集成开发环境; STC-ISP下载上位机软件; 三、实验原理: 要学会I2C通信协议的编程,关键是要看懂并掌握其时序图,理解对I2C通信协议相关子程序的实验编写。I2C通信协议的总线时序图如下所示: I2C总线时序图 I2C相关子程序的详细介绍 1、起始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 2、结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 起始信号和结束信号的时序图如下所示: 起始信号和结束信号的时序图 起始信号的流程如下:

1、SCL和SDA拉高,保持时间约为0.6us-4us; 2、拉低SDA,保持时间为约为0.6us-4us; 3、拉低时钟线 结束信号的流程如下: 1、SCL置高电平,SDA置低电平,保持时间约为0.6us-4us 2、SDA拉高,保持时间约为1.2-4us; 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。 若未收到应答信号,由判断为受控单元出现故障。应答信号的时序图如下所示: 应答时序图 发送时的应答信号 ;**********应答信号********** ACK: SETB SDA ;数据线置高 SETB SCL ;时钟线置高 ACALL DELAY JB SDA,$ ;等待数据线变低 ACALL DELAY CLR SCL ;时钟线置低 RET 注意:这里如果数据线一直为高将进入死循环,所以一般我们都会在这做一个容错的处理。具体的程序如下: ACK: MOV R4,#00H SETB SDA SETB SCL LOP0: JNB SDA,LOP DJNZ R4,LOP0 ;循环255次 LOP: ACALL DEL CLR SCL RET 接收时的应答信号

51串口通信协议(新型篇)

51串口通信协议(新型篇) C51编程:这是网友牛毅编的一个C51串口通讯程序! //PC读MCU指令结构:(中断方式,ASCII码表示) //帧:帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志 //值: 'n' 'y'| 'r' | 0x01 | x | x | x |0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //公司名称:*** //模块名:protocol.c //创建者:牛毅 //修改者: //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其他说明:只提供对A T89c51具体硬件的可靠访问接口 //版本:1.0 //信息:QQ 75011221 ///////////////////////////////////////////////////////////////////// #include #include //预定义 //帧 #define F_ST1 0x6e //帧头标志n #define F_ST2 0x79 //帧头标志y #define F_R 0x72 //帧类型读r #define F_W 0x77 //帧类型写w #define F_D 0x64 //帧类型数据帧d #define F_B 0x62 //帧类型写回应帧b #define F_C 0x63 //帧类型重发命令帧c #define F_Q 0x71 //帧类型放弃帧q #define F_ADDR 0x31 //器件地址0-9 #define F_END 0x7a //帧尾标志z #define F_SPACE 0x30 //空标志0 #define F_ERR1 0x31 //错误标志1,flagerr 1 #define F_ERR2 0x32 //错误标志2 2 //常数 #define S_MAXBUF 16 //接收/发送数据的最大缓存量 #define FIELD_MAXBUF 48 //最小场缓存,可以大于48字节,因为协议是以20字节为

3-3RSSP-I 铁路安全通信协议要点

铁路信号安全协议-Ⅰ Railway Signal Safety Protocol - I (报批稿) 中华人民共和国铁道部发布

TB/T 2465—×××× 前言 本规范为首次发布,应用于铁路信号安全通信的I类协议规范。 本规范由北京全路通信信号研究设计院提出并归口。 本规范由北京全路通信信号研究设计院负责起草。 本规范主要起草人:岳朝鹏、叶峰、郭军强

铁路信号安全协议-I 1范围 本规范规定了铁路信号安全设备之间进行安全相关信息交互的安全层功能结构和协议。本安全层规范应与以本规范扩展定义的其它接口规范,共同构成完整的应用规范。 本规范适用于封闭式传输系统,以实现铁路信号安全设备间的安全数据通信。 2规范性引用文件 下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方,研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。 EN-50159-1:2001 Railway applications –Communication, signalling and Processing systems –Part 1: Safety-related communication in closed transmission systems 铁道应用:封 闭式传输系统中安全通信要求 EN-50159-2:2001 Railway applications –Communication, signalling and Processing systems –Part 2: Safety-related communication in open transmission systems 铁道应用:开放 式传输系统中安全通信要求 EN-50128:2001 Railway applications –Communications, signalling and processing systems –Software for railway control and protection systems 铁道应用: 铁路控制和防护系 统软件 EN-50129:2003 Railway applications –Communication, signalling and processing systems –Safety related electronic systems for signalling铁道应用:安全相关电子系统 3术语和定义 下列术语和定义适用于本标准。 3.1 危险源 Hazard 可导致事故的条件。 3.2 风险 Risk 特定危险事件发生的频率、概率以及产生的后果。 3.3 失败 Failure 系统故障或错误的后果。 3.4 错误 Error 与预期设计的偏差,系统非预期输出或失败。 3.5 故障 Fault 可导致系统错误的异常条件。故障可由随机和系统产生。 4缩写 下列术语和定义适用于本标准。 4.1 RSSP Railway Signal Safety Protocol

简单的I2C协议理解 i2c程序(调试通过)

简单的I2C协议理解 一. 技术性能: 工作速率有100K和400K两种; 支持多机通讯; 支持多主控模块,但同一时刻只允许有一个主控; 由数据线SDA和时钟SCL构成的串行总线; 每个电路和模块都有唯一的地址; 每个器件可以使用独立电源 二. 基本工作原理: 以启动信号START来掌管总线,以停止信号STOP来释放总线; 每次通讯以START开始,以STOP结束; 启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R /W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据; 当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号; 每个数据字节在传送时都是高位(MSB)在前; 写通讯过程: 1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线; 2. 发送一个地址字节(包括7位地址码和一位R/W); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 4. 主控收到ACK后开始发送第一个数据字节; 5. 被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束; 6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线; 读通讯过程: 1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线; 2. 发送一个地址字节(包括7位地址码和一位R/W); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信

号(ACK); 4. 主控收到ACK后释放数据总线,开始接收第一个数据字节; 5. 主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束; 6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线; 四. 总线信号时序分析 1. 总线空闲状态 SDA和SCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高; 2. 启动信号START 时钟信号SCL保持高电平,数据信号SDA的电平被拉低(即负跳变)。启动信号必须是跳变信号,而且在建立该信号前必修保证总线处于空闲状态; 3. 停止信号STOP 时钟信号SCL保持高电平,数据线被释放,使得SDA返回高电平(即正跳变),停止信号也必须是跳变信号。 4. 数据传送 SCL线呈现高电平期间,SDA线上的电平必须保持稳定,低电平表示0(此时的线电压为地电压),高电平表示1(此时的电压由元器件的VDD决定)。只有在SCL线为低电平期间,SDA上的电平允许变化。 5. 应答信号ACK I2C总线的数据都是以字节(8位)的方式传送的,发送器件每发送一个字节之后,在时钟的第9个脉冲期间释放数据总线,由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。 6. 无应答信号NACK 在时钟的第9个脉冲期间发送器释放数据总线,接收器不拉低数据总线表示一个NACK,NACK有两种用途: a. 一般表示接收器未成功接收数据字节; b. 当接收器是主控器时,它收到最后一个字节后,应发送一个NACK信号,以通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。 五. 寻址约定

系统串口通讯协议

ZHET 系统串口通讯协议 通 讯 技 术 手 册 型号:SYRDS1-485 (SYRDSSS1) SYRDL1-485 (SYRLSSS1) 玺瑞国际企业有限公司 SYRIS International Corp.

通讯技术手册 通讯协议(Protocol) 卡片阅读机模块(Reader Module)的通讯协议(Protocol)皆出自于SYRIS 的一种标准通讯协议,这种协议格式如下表: 1.SOH 和 END 都是一个字节的控制字符: SOH 控制器端定义为 <0x09> 模块端定义为 <0x0A> END 控制器及模块端均固定为 <0x0D> 其中 <0x> 为十六进制表示法. 2.TYPE 为模块型式编号,固定为一个字节,本型式编号固定为“A”. 3.ID为模块端的识别代码,这一字节的 ASCII 字符必须是在 1 <0x31> 到 8 <0x38> 的范围内,假如控制器端传送之ID值与模块地址编号相同时, 则该模块将会接收控制器端所传送的数据,而模块响应时,也会传回相同的地址编号.

4.FC是通讯功能码(Function Code)和资料(DATA)有相关性,固定为一个 字节,这些资料请参考通讯协议表及相关说明. 5.错误讯息判断代码(Error Code)为两个字节,第一个字节为固定为 <0x0E> ,第二个字节为错误代码,请参考错误讯息代码表. 6.8 BITS BCC是所有字符的检查字段,为二个字节,有关 8 BITS BCC 的 信息和范例程序,请参考附录A. 7.RS485传输协议请设定为”E,8,1”,速率为”19200”. 错误讯息代码表(Error Code Table) ※ Error Code #1固定为 <0x0E>.

各种通信协议

分层及通信协议 协议软件是计算机通信网中各部分之间所必须遵守的规则的集合,它定义了通信各部分交换信息时的顺序、格式和词汇。协议软件是计算机通信网软件中最重要的部分。网络的体系结构往往都是和协议对应的,而且,网络管理软件、交换与路由软件以及应用软件等都要通过协议软件才能发生作用。 一、通信协议 1、什么是通信协议 通信协议(简称协议Protoco l),是指相互通信的双方(或多方)对如何进行信息交换所一致同意的一整套规则。一个网络有一系列的协议,每一个协议都规定了一个特定任务的完成。协议的作用是完成计算机之间有序的信息交换。 通信网络是由处在不同位置上的各节点用通信链路连接而组成的一个群体。通信网必须在节点之间以及不同节点上的用户之间提供有效的通信,即提供有效的接入通路。在计算机通信网中,将这种接入通路称为连接(connection)。建立一次连接必需要遵守的一些规则,这些规则也就是通信网设计时所要考虑的主要问题。 (l)为了能在两个硬件设备之间建立起连接,应保证在源、宿点之间存在物理的传输媒介,在该通路的各条链路上要执行某种协议。 如果传输线路使用电话线,则要通过调制解调器将信号从数字转换成模拟的,并在接收端进行反变换。 如果用的是数字传输线路,则在数据处理设备和通信设备之间,必须有一个数字适配器,以便将数字信号的格式转换成两种设备各自所期望的形式。 为了在两个端设备之间互换数据,需要协调和同步,调制解调器和数字适配器必须执行它们自己的协议。 无论是模拟的还是数字的通信设备,调制解调器和数字适配器的状态必须由接到节点上的设备来控制,这里必定有一个物理的或电气的接口来执行这种功能,执行某种适当的协议来达到这一控制目的。 (2)在计算机通信网中,许多信息源都是突发性的(bursty),问题是要利用信息的这种突发性质来降低消耗在线路上的费用,由此开发了许多共享通信资源的技术。所谓共享,是指允许多个用户使用同一通信资源,这就产生了多用户的接入问题。多路接入

I2C总线协议规范 v2.1

THE I2C-BUS SPECIFICATION VERSION 2.1 JANUARY 2000

CONTENTS 1PREFACE. . . . . . . . . . . . . . . . . . . . . . . . . . .3 1.1Version 1.0 - 1992. . . . . . . . . . . . . . . . . . . . 3 1.2Version 2.0 - 198. . . . . . . . . . . . . . . . . . . . . 3 1.3Version 2.1 - 1999. . . . . . . . . . . . . . . . . . . . 3 1.4Purchase of Philips I2C-bus components . . 3 2THE I2C-BUS BENEFITS DESIGNERS AND MANUFACTURERS. . . . . . . . . . . . . . .4 2.1Designer benefits . . . . . . . . . . . . . . . . . . . . 4 2.2Manufacturer benefits. . . . . . . . . . . . . . . . . 6 3INTRODUCTION TO THE I2C-BUS SPECIFICATION . . . . . . . . . . . . . . . . . . . . .6 4THE I2C-BUS CONCEPT . . . . . . . . . . . . . . .6 5GENERAL CHARACTERISTICS . . . . . . . . .8 6BIT TRANSFER . . . . . . . . . . . . . . . . . . . . . .8 6.1Data validity . . . . . . . . . . . . . . . . . . . . . . . . 8 6.2START and STOP conditions. . . . . . . . . . . 9 7TRANSFERRING DATA. . . . . . . . . . . . . . .10 7.1Byte format . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2Acknowledge. . . . . . . . . . . . . . . . . . . . . . . 10 8ARBITRATION AND CLOCK GENERATION . . . . . . . . . . . . . . . . . . . . . .11 8.1Synchronization . . . . . . . . . . . . . . . . . . . . 11 8.2Arbitration . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.3Use of the clock synchronizing mechanism as a handshake. . . . . . . . . . . 13 9FORMATS WITH 7-BIT ADDRESSES. . . .13 107-BIT ADDRESSING . . . . . . . . . . . . . . . . .15 10.1Definition of bits in the first byte . . . . . . . . 15 10.1.1General call address. . . . . . . . . . . . . . . . . 16 10.1.2START byte . . . . . . . . . . . . . . . . . . . . . . . 17 10.1.3CBUS compatibility. . . . . . . . . . . . . . . . . . 18 11EXTENSIONS TO THE STANDARD- MODE I2C-BUS SPECIFICATION . . . . . . .19 12FAST-MODE. . . . . . . . . . . . . . . . . . . . . . . .19 13Hs-MODE . . . . . . . . . . . . . . . . . . . . . . . . . .20 13.1High speed transfer. . . . . . . . . . . . . . . . . . 20 13.2Serial data transfer format in Hs-mode. . . 21 13.3Switching from F/S- to Hs-mode and back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2313.4Hs-mode devices at lower speed modes. . 24 13.5Mixed speed modes on one serial bus system. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 13.5.1F/S-mode transfer in a mixed-speed bus system. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 13.5.2Hs-mode transfer in a mixed-speed bus system. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 13.5.3Timing requirements for the bridge in a mixed-speed bus system. . . . . . . . . . . . . . 27 1410-BIT ADDRESSING. . . . . . . . . . . . . . . . 27 14.1Definition of bits in the first two bytes. . . . . 27 14.2Formats with 10-bit addresses. . . . . . . . . . 27 14.3General call address and start byte with 10-bit addressing. . . . . . . . . . . . . . . . . . . . 30 15ELECTRICAL SPECIFICATIONS AND TIMING FOR I/O STAGES AND BUS LINES. . . . . . . . . . . . . . . . . . . . 30 15.1Standard- and Fast-mode devices. . . . . . . 30 15.2Hs-mode devices. . . . . . . . . . . . . . . . . . . . 34 16ELECTRICAL CONNECTIONS OF I2C-BUS DEVICES TO THE BUS LINES . 37 16.1Maximum and minimum values of resistors R p and R s for Standard-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 39 17APPLICATION INFORMATION. . . . . . . . . 41 17.1Slope-controlled output stages of Fast-mode I2C-bus devices. . . . . . . . . . . . 41 17.2Switched pull-up circuit for Fast-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 41 17.3Wiring pattern of the bus lines. . . . . . . . . . 42 17.4Maximum and minimum values of resistors R p and R s for Fast-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 42 17.5Maximum and minimum values of resistors R p and R s for Hs-mode I2C-bus devices . . . . . . . . . . . . . . . . . . . . . 42 18BI-DIRECTIONAL LEVEL SHIFTER FOR F/S-MODE I2C-BUS SYSTEMS . . . . 42 18.1Connecting devices with different logic levels. . . . . . . . . . . . . . . . . . . . . . . . . 43 18.1.1Operation of the level shifter . . . . . . . . . . . 44 19DEVELOPMENT TOOLS AVAILABLE FROM PHILIPS. . . . . . . . . . . . . . . . . . . . . 45 20SUPPORT LITERATURE . . . . . . . . . . . . . 46

HLP SV Modbus标准通讯协议格式

HLP_SV Modbus RTU 标准通讯协议格式 通信资料格式 Address Function Data CRC check 8 bits 8 bits N×8bits 16bits 1)Address通讯地址:1-247 2)Function:命令码8-bit命令 01 读线圈状态 上位机发送数据格式: ADDRESS 01 ADDRH ADDRL NUMH NUML CRC 注: ADDR: 00000 --- FFFF(ADDR=线圈地址-1);NUM: 0010-----0040 (NUM为要读线圈状态值的二进制数位数) 正确时变频器返回数据格式: ADDRESS 01 BYTECOUNT DATA1 DATA2 DATA3 DATAN CRC 注: BYTECOUNT:读取的字数 错误时变频器返回数据格式: ADDRESS 0X81 Errornum CRC 注: Errornum为错误类型代码 如:要检测变频器的输出频率 应发送数据:01 01 00 30 00 10 3D C9(16进制) 变频器返回数据:01 01 02 00 20 B8 24(16进制) 发送数据:0030hex(线圈地址49) 返回的数据位为“0020”(16进制),高位与低位互换,为2000。即输出频率为 303(Max Ref)的50%。关于2000对应50%,具体见图1。

03读保持寄存器 上位机发送数据格式: ADDRESS 03 ADDRH ADDRL NUMH NUML CRC 注:ADDR: 0 --- 0XFFFF;NUM: 0010-----0040 (NUM为要读取数据的字数) ADDR=Parameter Numbe r×10-1 正确时变频器返回数据格式: ADDRESS 03 BYTECOUNT DATA1 DATA 2 DATA 3 DATAN CRC 注: BYTECOUNT:读取的字节数 错误时变频器返回数据格式: ADDRESS 0X83 Errornum CRC 如:要读变频器参数303的设定值 应发送数据:01 03 0B D5 00 02 95 BC (16进制) Parameter 303(3029)=0BD5HEX 变频器返回数据:“:”01 03 04 00 00 EA 60 B5 7B 返回的数据位为“00 00 EA 60”(16进制)转换为10进制数为60000, 表示303设置值为60.000 ※当参数值为双字时,NUM的值必须等于2。否则无法读取或读取错误。 05 写单个线圈状态 上位机发送数据格式: ADDRESS 05ADDRH ADDRL DATAH DA TAL CRC 注:ADDR: 0 ---- 0XFFFF(ADDR=线圈地址-1);DATA=0000HEX(OFF) OR FF00(ON) HEX 正确时变频器返回数据格式: ADDRESS 05 DATAH DATAL BYTECOUNT CRC 错误时变频器返回数据格式: ADDRESS 0X85 Errornum CRC 如:要使写参数为写入RAM和EEPROM 应发送数据:01 05 00 40 FF 00 CRC(16进制) 变频器返回数据:01 05 FF 00 00 01 CRC(16进制) 发送数据:0040hex(线圈地址65) 06 写单个保持寄存器值(只能写参数值为单个字的参数) 上位机发送数据格式: ADDRESS 06 ADDRH ADDRL DA TAH DATAL CRC 注:ADDR: ADDR=Parameter Numbe r×10-1 正确时变频器返回数据格式: ADDRESS 06 ADDRH ADDRL DA TAH DA TAL CRC 错误时变频器返回数据: ADDRESS 0X86 Errornum CRC 如:要对变频器参数101写入1 应发送数据:01 06 00 03 F1 00 01 19 BD(16进制) 变频器返回数据:01 06 03 F1 00 01 19 BD(16进制) PARAMETER 101(1009)=03F1 HEX

菱f系列plc编程口通信协议

三菱FX系列 PLC 编程口通信协议总览 三菱PLC-FX2N 三菱FX系列PLC编程口通信协议总览 该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。 通讯格式: 命令命令码目标设备 DEVICE READ CMD "0" X,Y,M,S,T,C,D DEVICE WRITE CMD "1" X,Y,M,S,T,C,D FORCE ON CMD " 7" X,Y,M,S,T,C FORCE OFF CMD "8" X,Y,M,S,T,C 传输格式: RS232C 波特率: 9600bps 奇偶: even 校验: 累加方式(和校验) 字符: ASCII 16进制代码: ENQ 05H 请求 ACK 06H PLC正确响应 NAK 15H PLC错误响应 STX 02H 报文开始 ETX 03H 报文结束 帧格式: STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower) 例子: STX ,CMD ,ADDRESS, BYTES, ETX, SUM 02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H

SUM=CMD+......+ETX; 30h+31h+30h+46h+36h+30h+34h+03h=74h; 累加和超过两位取低两位 1、DEVICE READ(读出软设备状态值) 计算机向PLC发送: 始命令首地址位数终和校验 STX CMD GROUP ADDRESS BYTES ETX SUM 例子:从D123开始读取4个字节数据 02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h 地址算法:address=address*2+1000h 再转换成ASCII 31h,30h,46h,36h PLC返回 STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM 注:最多可以读取64个字节的数据 例子:从指定的存储器单元读到3584这个数据 02h 33h 35h 38h 34h 03h 44h,36h 2、DEVICE WRITE(向PLC软设备写入值) 始命令首地址位数数据终和校验 STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA ...... LAST DATA ETX SUM 例子:向D123开始的两个存储器中写入1234,ABCD 02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h PLC返回 ACK (06H) 接受正确 NAK (15H) 接受错误 3、位设备强制置位/复位 FORCE ON置位 始命令地址终和校验 STX CMD ADDRESS ETX SUM 02h 37h address 03h sum FORCE OFF复位 始命令地址终和校验

关于IIC的通信协议程序

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define _BV(bit) (1 << (bit)) #ifndef cbi #define cbi(reg,bit) reg &= ~_BV(bit) #endif #ifndef sbi #define sbi(reg,bit) reg |= _BV(bit) #endif extern uchar dog; /* void delay_1ms(uchar xtal) { uchar i; for(i=0;i<(uint)(143*xtal-2);i++) {;} } //2 延时nms void delay_ms(uchar m, uchar fosc) { uchar i; i=0; while(i

RSSIRSSII及SAHARA三种安全通信协议实现技术

RSSP-I、RSSP-II及SAHARA三种安全通信协议实现技术简介 岳朝鹏 摘要:本文针对RSSP-I、RSSP-II、SAHARA三种安全通信协议的主要安全通信技术实现机制进行介绍,并对这三种安全协议进行多方面比对,从而便于研发人员可根据具体应用场景选取所需的安全协议或防护技术。 关键词:铁路信号安全通信协议、SAHARA、实现机制、综合比对 Abstract:Based on RSSP-I, RSSP-II, SAHARA three kinds of safety communication protocols,the main safety communication technology realization mechanism were introduced, and compare these safety protocols in many aspects, which will be convenient for R& D personnel to select required safety protocol or the protection technology according to the concrete application scene. Keywords: RSSP、SAHARA、Implementation mechanisms、Comprehensive comparison 目前,RSSP-I协议广泛运用在我国客运专线列控中心的外围系统接口间,RSSP-II协议广泛运用在无线闭塞中心及临时限速服务器的外围系统接口间,而SAHARA协议主要应用在西门子地铁CBTC系统中。本文将对RSSP-I、RSSP-II、SAHARA三种安全通信协议的主要安全通信技术实现机制进行介绍,并对这三种安全协议进行多方面比对,从而便于研发人员可根据具体应用场景选取所需的安全协议或防护技术。 1、RSSP-I安全通信协议 ,以源标识为初始值T(0)=SID, 按通信周期向左移位32位,且若最高位为1时须异或一个时间戳生成多项式作为附加干扰输入。如下图所示:

通信协议与编程

MODBUS通讯协议及编程 ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU 通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就ModBus RTU协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与MODBUS RTU通讯规约相兼容: 初始结构= ≥4字节的时间 地址码= 1 字节 功能码= 1 字节 数据区= N 字节 错误校检= 16位CRC码 结束结构= ≥4字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。 CRC码:二字节的错误检测码。

(二)、通讯规约: 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.错误校验 冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。

相关文档
最新文档